|
找提示的第一個(gè)錯(cuò)誤,后面的是累記的,一般第一個(gè)錯(cuò)誤改正后就沒(méi)錯(cuò)誤了
給你改了,對(duì)比一下就知道哪里錯(cuò)了。
- #include <reg52.h>
- #include <intrins.h>
- #define unit unsigned int
- #define uchar unsigned char
- sbit k0=P1^0;
- sbit k1=P1^1;
- sbit k2=P1^2;
- #define leds p2
- void delay_1ms();
- void delay_ms(unsigned int x);
- uchar mode1[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//0x04---00000 1000
- uchar mode2[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
- uchar mode3[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
- void main()
- {
- uchar i;
- uchar mode=0;
- uchar key_flag=0;
- while(!key_flag)
- {
- if(!k0)
- {
- _nop_();
- if(!k0)
- {
- key_flag=1;
- mode=1;
- while(!k0);
- }
- }
- if(!k1)
- {
- _nop_();
- if(!k1)
- {
- key_flag=1;
- mode=2;
- while(!k1);
- }
- }
- if(!k2)
- {
- _nop_();
- if(!k2)
- {
- key_flag=1;
- mode=3;
- while(!k2);
- }
- }
-
- }
- while(1)
- {
- if(mode==1)
- {
- for(i=0;i<8;i++)
- {
- P2=mode1[i];
- delay_ms(500);
- }
- }
- else if(mode==2)
- {
- for(i=0;i<8;i++)
- {
- P2=mode2[i];
- delay_ms(500);
- }
- }
- else if(mode==3)
- {
- for(i=0;i<16;i++)
- {
- P2=mode3[i];
- delay_ms(500);
- }
- }
- }
- }
復(fù)制代碼 |
|