请教各位:<br /> 我用74HC164做数码管的段选码,74HC145做数码管的位选码,<br />编的程序是这样的(硬件没有问题),软件上模拟有输出,但是烧入片子后,测不到RC4管脚的电平变化,请教各位这是为什么啊?<br />我用的PIC16C63A的<br />接74HC145的是 RB0;RB1;RB2;RB3;(对应A B C D)<br />接74HC164的是 RB0;RB4;CLR接高电平<br />#include "pic.h"<br />#define LS164 RB0<br />#define CLK164 RB4<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;//使74HC145不工作<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 />}<br />void main(void)<br />{<br /> unsigned char j;<br /> unsigned int k;<br /> TRISC=0xef;<br /> TRISB=0x00;//<br /> while(1)<br /> { dis_one(j++,2)<br /> if(j>2)<br /> {j=0;}<br /> for(k=0;k<20000;k++)<br /> {;}<br /> RC4=0;<br /> for(k=0;k<20000;k++)<br /> {;}<br /> RC4=1;<br /> }<br />} |
|