proteus仿真图
程序完整代码:
- #include<reg52.h>
- #include <intrins.h>
- sbit KEY1=P3^0; //各按键所连io口
- sbit KEY2=P3^1;
- sbit KEY3=P3^2;
- sbit KEY4=P3^3;
- sbit KEY5=P3^4;
- unsigned char code yyy[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管数字显示段码
- unsigned char xxx=0;
- unsigned char z=0;
- unsigned char y=0;
- unsigned char s=0;
-
- void Delay100us() //延迟函数 晶振值@11.0592MHz
- {
- unsigned char i;
- _nop_();
- i = 43;
- while (--i);
- }
- void Delay50us() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]延迟函数 [/font][/backcolor][/color][color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]晶振值[/font][/backcolor][/color]@11.0592MHz
- {
- unsigned char i;
- _nop_();
- i = 20;
- while (--i);
- }
- void key1() //按键1控制1队的分数“加1”及俩队分数的清零
- {
- if(KEY1==0)
- {
- Delay50us();
- if(KEY1==0)
- {
- while(!KEY1);
- if(xxx<10)
- xxx++;
- if(xxx==10)
- {xxx=0;z++;}
- }
-
- }
- if(KEY3==0)
- {
- if(KEY3==0)
- Delay50us();
- while(!KEY3)
- {
- xxx=0;
- z=0;
- y=0;
- s=0;
- }
- }
- }
- void key2() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]按键2控制2队的分数“加1”[/font][/backcolor][/color]
- {
- if(KEY2==0)
- {
- Delay50us();
- if(KEY2==0)
- {
- while(!KEY2);
- if(y<10)
- y++;
- if(y==10)
- {y=0;s++;}
- }
-
- }
- }
- void key4() //控制一队分数“减1”
- {
- if(KEY4==0)
- {
- Delay50us();
- if(KEY4==0)
- {
- while(!KEY4) ;
- if(xxx==0)
- {xxx=9;z--;}
- else
- xxx--;
- }
-
- }
- }
- void key5() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]控制二队分数“减1”[/font][/backcolor][/color]
- {
- if(KEY5==0)
- {
- Delay50us();
- if(KEY5==0)
- {
- while(!KEY5) ;
- if(y==0)
- {y=9;s--;}
- else
- y--;
- }
-
- }
- }
- void display() // 使数码管短时间交替显示使人看到数码管4个都是亮的
- {
- P0=0xff;
- Delay100us();
- P2=0xfe;P0=yyy[xxx];
- Delay100us();
- P0=0xff;
- Delay100us();
- P2=0xfd;P0=yyy[z];
- Delay100us();
- P0=0xff;
- Delay100us();
- P2=0xfb;P0=yyy[y];
- Delay100us();
- P0=0xff;
- Delay100us();
- P2=0xf7;P0=yyy[s];
- Delay100us();
- }
- main()
- {
- P3= 0xff; //???????????io???????1
- while(1)
- {
- display(); //??????????????????????
- key1();
- key2();
- key4();
- key5();
- }
- }
复制代码 |