新闻  |   论坛  |   博客  |   在线研讨会
我的第一个Proteus仿真
0750long | 2009-07-09 12:46:48    阅读:1168   发布文章

我的第一个Proteus仿真

点击看大图

#include<reg51.h>
#include<stdio.h>
#define uchar unsigned char;
unsigned int m="0";
 unsigned int n="0";
sbit p10=P1^0;
sbit p27=P2^6;
sbit p28=P2^7;

void delay();
unsigned char    data     LED[]={0xc0,0xF9,0xA4,0xB0,0x99,//0-4
                                0x92,0x82,0xF8,0x80,0x90,//5-9
        0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E
                                0x8E,0x8C,0x89};//F,G,H,.,-}    //定义p00为p0.0口
main()       //演示程序
{ TMOD=0x20;     //设置定时器0工作方式2
 TH1=0x00;     //给TH0赋初值
 TL1=0x00;      //给TL0赋初值
 ET1=1;      //定时器0中断允许
 EA=1;      //CPU开中断
 TF1=0;      //计数器0溢出标志置零
 TR1=1;
 p27=0x00;
    p28=0x00;                     //启动计数器0
 while(1){
 
 }
}
void Timer0( ) interrupt 3 using 0  //定时器0溢出中断函数
{  unsigned int x="10";
 m++;
if (m>9){
m=0;
n++;
if(n>16){
n=0;} }
while(x--) {
p27=~p27; 
P0=LED[n];
delay();
p27=~p27; 
p28=~p28;
P0=LED[m];
delay();
p28=~p28;

 }
delay();
TF1=0;
TH1=0x38;     //给TH0赋初值
TL1=0x38;      //取反,产生方波
}
 
 void delay(void)//稍微延时
{unsigned int i,j;
 for(i=0;i<100;i++)
  for(j=0;j<50;j++);
 }

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客