PIC按键我用软键模拟的时候,程序能够按步直接运行,可是用仿真器的时候,程序并不是按步运行的,<br /><br />#include "pic.h"<br />#define KEY RB5<br />unsigned char judge_a_s;<br />unsigned char key_value;<br />unsigned char display_data[30];<br />void key(void)<br />{<br /> PORTB=0xe1;<br /> if(KEY!=1)<br /> {<br /> delay();<br /> while(KEY!=1);<br /> judge_a_s=1;<br /> }<br /> PORTB=0xe2;<br /> if(KEY!=1)<br /> {<br /> delay();<br /> while(KEY!=1);<br /> judge_a_s=2;<br /> PORTB=0xe3;<br /> if(KEY!=1)<br /> {<br /> delay();<br /> while(KEY!=1);<br /> key_value++;<br /> if(key_value>4)<br /> key_value=0;<br /> } <br />}<br /><br />void main(void)<br />{<br /> TRISB=0xe0;//1110 0000<br /> while(1)<br /> {<br /> key();<br /> if(judge_a_s==1)<br /> {<br /> switch(key_value)//从这里开始跳转<br /> {<br /> case 0:display_data[25]++;break;<br /> case 1:display_data[26]++;break;<br /> case 2:display_data[27]++;break;<br /> case 3:display_data[28]++;break;<br /> default:break;<br /> }<br /> for(i=25;i=28;i++)<br /> {<br /> if(display_data>9)<br /> display_data=0;<br /> if(display_data<0)<br /> display_data=9;<br /> dis_one(display_data,key_value);<br /> }<br /> }<br /> }<br />}<br /><br />void dis_one(unsigned char display_data,unsigned char display_bit)<br />{<br /> unsigned char display_tran_data;<br /> unsigned char i;<br /> switch(display_data)<br /> {<br /> case 0:display_tran_data=0xef;break;//此处数据随意<br /> case 1:display_tran_data=0x60;break;<br /> default:break;<br /> }<br /> PORTB=0x1f;<br /> for(i=8;i!=0;i--)<br /> {<br /> LS164=display_tran_data&0x01;//直接跳转到这里<br /> CLK164=0;<br /> display_tran_data<<=1;<br /> CLK164=1;<br /> }<br /> PORTB=display_bit;<br />} |
|