51单片机中LS138译码器的原理
1、这个数字芯片属于3线-8线译码器,输入3位,输出8位。因为3位2进制数可以组成8个状态,即000,001,010,011,100,101,110,111。然后没一种状态的输出是唯一的,8位输出中有一位为0。
2、L138译码器对51单片机实现功能当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2)为低电平时,可将用单片机3个引脚控制地址端的二进制编码在一个对应的输出端以低电平译出。
3、利用***EE2和E3可级联扩展成***24***线译码器;若外接一个反相器还可级联扩展成***32***线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。可用在8086的译码电路中,扩展内存。
4、这8个代码译成8个低电平信号;第2片74LS138工作而第1片74LS138禁止时,将的1000~1111这8个代码译成8个低电平信号。
5、LS138是一片3-8的译码器,它的输出端Y5接的是左边8255的CS片选脚,Y6是右边的8255片选脚。知道这个就好办了。
6、是一个3-8译码器,可以将3位二进制的数据,译成十进制的数据。在器件连接上,通常情况下,是将地址的最高位分别接到译码器的输入端AAA0端,然后其输出端Y0-Y7每端接一个芯片的片选。
我是51单片机初学者,写了一个红外遥控,在数码管上显示的程序。可是不...
1、如果没问题,那就检查解码代码,联合仿真器和经验一步一步校验。(2)如果是数码管根本就不显示,那么我可以认为你是个新手或者经验不足。
2、我帮你看了一下,没发现代码上有明显的问题,建议你按照我说的步骤自己调试一下。将main函数里面的LED注释掉。使用P0=LED[不一样的值],添加到红外解码的代码里面。
3、k==2)disdate=dis_7[display[k]]|1;else***disdate=dis_7[display[k]];discan=scan_con[k]***;k_74=0;***k_74=1;Delay_us(100);}***}***main(){***while(1){***scan();}***}***未检查段码,您再读读并试试。
4、有最后的***while***(1);,你的单片机就不断循环空等,输出会保持,所以第一个数码管正确显示6。
5、你先送位选信号,再送段选信号就可以了。你现在是错开一位的,你可以试试。
6、//***解码值在Im[2]中,当IrOK=1时解码有效。
单片机题目,求8255端口地址
一般用CPU引脚的地址管脚中的A0-A9来确定8255A的地址,由于8255A有四个端口,因此用A0。
A***芯片占用4个地址,图中把***A0***接到系统的***A1***,A1***接到***A2***,就是***A0***无效,可以是任意值***X***,就是每个口占用2个***CPU***地址。A2***A1***A0***0******0******X******;000***~***001******,000***、001***都是***A***口***。
系统总线信号A9~A2与门为1或门为0,A1和A0是8255A的端口选择信号,00为a口,01为b口,10为c口,11为控制口,所以A9到A0就可以得出端口地址。
51单片机的LED灯不能点亮,请指教。谢谢
1、可能是发光二极管的问题或接线问题,单片机坏的可能性不大。可以将接线调一下看是不是LED的问题,将不亮的LED接其它p2的管脚试试。
2、首先从你给出的条件来说:你用***it***声明led1来代表P1^0口,但是在主函数中却使用led来点亮,很明显这个是不行的,而且编译时会报错。再一个你要确定LED是连在P1口。
3、你把输入、输出,弄反了。单片机引脚,应该接到***573***的***D***端。
4、原因可能是连接的方法不太对,你可以参考下述连接方式,检查一下你的电路。方法1:用8050的三极管做开关电路,三极管的基极接p0,然后用集电极通过led接5v电源,发射极通过220欧姆电阻接地。
51单片机时钟程序,C语言,汇编都行
1、调节秒钟状态),key4键为秒表功能键。实施步骤:第一步:开启定时器,完成数码管时钟走动功能;第二步:完成***数码管时钟调节功能;第三步:完成数码管秒表显示功能。
2、这是我初学时写的,刚好也是数码管***/*位选接P2口,三个按钮分别接P25~P27。
3、你所有调用display()和***delay()函数时候都没在后面加个分号。
本文转载自互联网,如有侵权,联系删除