為什么我的代碼運行不了?我想按鍵按一下松開后,電機正向轉動,再按另一個按鍵,電機反向轉動。可是代碼運行不了,檢查了,但是不知道問題出哪里了,求大神指教
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define out P2
- sbit pos=P0^0;
- sbit neg=P0^1;
- uchar posflag,negflag;
- void delayms(uint);
- uchar code turn[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};
- void keyscan(void)
- {
- if(pos==0)
- {
- delayms(2);
- if(pos==0)
- {
- while(!pos);
- posflag=1;
- negflag=0;
- }
- }
- else if(neg==0)
- {
- delayms(2);
- if(neg==0)
- {
- while(!neg);
- negflag=1;
- posflag=0;
- }
- }
- }
- void main(void)
- {
- uchar i;
- out=0x03;
- keyscan();
- while(1)
- {
- if(posflag==1)
- {
- i=i<8?i+1:0;
- out=turn[i];
- delayms(100);
- }
- else if(negflag==1)
- {
- i=i>0?i-1:7;
- out=turn[i];
- delayms(100);
- }
- }
- }
- void delayms(uint j)
- {
- uchar i;
- for(;j>0;j--)
- {
- i=250;
- while(--i);
- i=249;
- while(--i);
- }
- }
復制代碼
無標題.png (47.47 KB, 下載次數: 24)
下載附件
2018-9-10 22:09 上傳
|