双按键控制数码管,仿真出错,求大佬指点迷津,有文件上传
- #include <reg51.h>
- sbit SW1=P1^0;
- sbit SW2=P1^1;
- sfr LED=0xA0;
- unsigned char ID;
- void delay(int time);
- void Disp(unsigned char i);
- unsigned char SW_check(void);
- //unsigned char code LED_SUM[10]={0xfc,0x61,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
- //主函数通过调用按键检测函数,显示函数完成数码管对按键有效击键次数的显示
- void mian(void){
- ID=0;
- while(1){
-
- SW_check();
- Disp(ID);
- }
-
-
- }
- void Disp(unsigned char i){
- unsigned char x,y;
- x=i%10;
- y=i/10;
- y<<4;
- LED=y|x;
- }
- unsigned char SW_check(void){
- if(!SW1){//sw1是否按下
- delay(10);
- if(!SW1){
- if((ID++)>=99)ID=0;
- while(!SW1);
- }
-
- }
- else if(!SW2){
- delay(10);
- if(!SW2){
- if((ID--)<=0){
- ID=99;
- }
- while (!SW2);
- }
-
- }
-
- return ID;
-
- }
- void delay(int time){
- unsigned char j;
- for(time;time>=0;time--)
- for(j=125;j>0;j--)
- {;}
- }
复制代码
双按键组合加减.rar
(43.02 KB, 下载次数: 6)
求大佬指点迷津。
|