74HC164应用实例驱动数码管两例电路图和源程序_第1页
74HC164应用实例驱动数码管两例电路图和源程序_第2页
74HC164应用实例驱动数码管两例电路图和源程序_第3页
74HC164应用实例驱动数码管两例电路图和源程序_第4页
74HC164应用实例驱动数码管两例电路图和源程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4HC164 应用实例:驱动数码管两例(电路图和源程序)文章编号:100816210758文章分类:电路 > 电子元件点击:.关键词:74HC164文章来源:百合电子工作室收集整理摘要:74HC164 应用实例:驱动数码管的两个实例分别提供了汇编源程序和C源程序.实例174HC164 是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等.74HC164 因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO 口又比较紧张的电子产品中,下面浅谈使用方法:1.首先先了解他的引脚功能和逻辑图,如下图:PIN DESCRIPTIONPIN NOSYMBOLMAME AND F

2、UNCTION1.2A BData Inputs3, 4, 5. 6.i2.13QA to QHOutputs8CLOCKOocK Input (LOW toHIGH. Edge-triggered)9_ CLEARMaster Reset Input7GND 1Grand (W)14VecPositive Supply voltage图1引脚名称和用途TRUTH TABLEINPUTSOUCLEARCLOGKSERIjAL INQAQBABLXXXLLHTXXNO CHLXLQAnHTXLLQAn HHHHQAnX: Don't CareQAn - QGn : Trte I日咫 of

3、 QA -0G, respeCfveh/ befcne 3 nwst-fDoea traredion of tti clod.图2真值表通过真值表我们可以了解到,A,B两个输入端是互锁的,CLK上升沿时数据移入移位寄存器中,CLEAR为清零用的,接低电平时所有端口都输出低电平,了解了真值表之后开始运用了先给出如下原理图:u?P50P6<5vecP(5c5-O51P 弭 OSOT51T53SHUPfiO-NTICDATAU?口CLZAJ.qc11111BMCCTi6 RS £PNPBCLK10 K11P53-KSTMCU&NP74HC15+图3原理图图中,采用义隆的EM7

4、8P153作为控制芯片,P50作为CLK时钟信号,注意平时数据不传输 时,时钟信号是不发送的应一直保持低电平或者高电平,数据需要传输的时候才输出时钟信号A_A ,继续P51作为移位数据输出端,接到74HC164 的B端,A端接高电平,当然也可 以AB端短路,然后连接到 DATA移位数据端,P52作为数码管的选通信号(也可以叫消隐 A_A),作用是使数据传输过程暂时关闭显示,以免显示出不需要的数据,原因是应为164不带锁存功能,数据传输过程是一位一位白,向高位移位输出的,所以要等数据全部移入后才打开始点亮数码管.注意了哦,通过查看164的规格书发现,164输出高电平电流比输出低电平电流要小 ,亦

5、称 灌电流大,扇出电流弱,所以适合选用共阳数码管,如图,本人偷懒没有画出那个数码管的 8 卜该介绍的介绍的差不多了 ,废话少说,该开始干活了,任务是:显示0-9每秒+1,到9后又 返回0,一直循环显示,根据任务得到如下流程图:1 .显示部分:将需要显示的数值送入A =>查表求得显示段码=> 将段码逐位移入 164=>8 位移完后点亮数码管=> 延时=> 返回第一步执行2 .中断部分:进入中断=> 保存现场(以备调查取证,送你入狱a_a)=> 重置TCC=> 够1秒钟将 需要显示的数据+1,并重置,不够就退出;根据以上要求就开始写代码调试了,要注意

6、一点,数据移位时一定要记得高位在前哦,否则显示错误别怪我没有说清楚,我当年实验时就因为这个数据移位方向反了排查了半天,甚至以为是时钟频率不对,又以为时许不对.搞了半天,NND后来重看DATASHEET 才发现, 原来是低级错误啊,呜呼哀哉.,希望你不要重蹈我覆辙,哎哟!!谁!谁!谁扔砖头上 来?啥?你扔的?我废话太多,那俺少来两句,继续上菜,咦好像没啥可说的了 ,上源程序吧1. ;中断部分:2.3. ; 中断;;4. INTPUT:5. MOVTEMPA, A6. MOV A,130;7. MOVTCC, A;255-130=1258. CLR RF;9. ; 此处填写250Us处理程序10.

7、 BS WKREG,T500US11. ;12. DJZ R1MS13. JMP INTEXT ;14. MOVA,415. MOVR1MS, A;重置16. BS WKREG,T1MS17. ;此处填写1ms处理程序18.19. ;20. DJZ R20MS21. JMP INTEXT ;22. MOVA,2023. MOVR20MS, A;重置24. ;此处填写1秒处理程序25. BS WKREG,T20MS26. ;27. DJZ R1S28. JMP INTEXT ;29. MOVA,5030. MOVR1S, A;311 .;32. INC NUMBER33. MOVA,NUMBER

8、34. SUB A,1035. JBS SR ,236. JMP INTEXT37. MOVA,038. MOVNUMBER,A39.40.41. INTEXT:42. MOVA,TEMPA;43. RETI;7.48.49. ;显示部分:50 .51.;TXDATA52 .TXDATA:53 .BS P5, CC154.MOVA,855.MOVDATALOP, A;56.TXLOP:57.BC WKREG,T500US58.BS P5, CLK;clk=高59.NOP60.NOP61.JBS DATA_BUF ,762.JMP $+363.BS P5, DATA;64.J

9、MP $+265.BC P5, DATA66.DD1MS: JBS WKREG,T500US67.JMP $-168.BC P5, CLK69.BC WKREG,T500US70.JBS WKREG,T500US71.JMP $-1 ;72.RLC DATA_BUF73.DJZ DATALOP74.JMPTXLOP75.;76.BC WKREG,T500US77.BS P5, CLK;clk=高78.BC WKREG,T500US79.JBS WKREG,T500US80.JMP $-1 ;81.BC P5, CLK82.;83.BC P5, CC184.85.RET;86.87.;数据查表8

10、8.;DSPTBL89.DSPTBL: ADD PC, A90.RETL 0B01000000;091.RETL 0B01111001;192.RETL 0B00100100;293.RETL 0B00110000;394. RETL 0B00011001 ;495. RETL 0B00010010 ;596. RETL 0B00000010 ;697. RETL 0B01111000 ;798. RETL 0B00000000 ;899. RETL 0B00010000 ;9100.101.102. ;循环体部分;103.104. ;主程序;;105. MLOOP:106. MOVANUMB

11、ER107. CALL DSPTBL108. MOVDATA_BUF, A109. CALL TXDATA110. BC WKREG,T1MS111. JBS WKREG,T1MS112. JMP $-1113. NOP114.115. JMP MLOOP;实例2在实际应用中驱动数码管常用的方式分动态扫描和静态驱动。动态扫描方式需要x+y个IO (x*y个数码管的情况,一般 x=8 , y=位数)这种方法很浪费 MPU的IO端口对 于2051等20脚的芯片就很难实现。 静态显示驱动法,即是指每一个LED灯分别对应一 个独立的IO驱动口,这种方法适用较少 LED的驱动,不适合数码管驱动。还有一种

12、利用 74HC164 来驱动的方法。74HC164 是比较典型的移位寄存器,该移位寄存器有一个数据输入端口、一个时钟信号端口和八个输出端口。这种方法只需要2个MPU的IO端口,而且在锁存器件这 2个端口还可以干别的事情。74HC164驱动共阴、共阳数码管都很方便。驱动要点:1、上升沿写入串行数据:CLK=0;DAT=num&0x01;CLK=1;2、写入数据的数码管编码(指代码中的tab)串行数据是FIFO先进先出,也就是先写高位,移位放入。74HC1M9W<:RQ3X38十LK-醺 A B c -M 2 9 9电路如图:BC2RHC164驱打的I ED里示电茏设计刘日办程序源代

13、码:3、/共阴数码管74HC164串行驱动1.2.3.#include<AT892051.H>4.5.#define uint unsigned int6.7.#define uchar unsigned char4.15./0-9,9.void sendbyte(uchar byte)20.21.uchar code tab=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6;-,全灭sbit CLK=P3A4;/模拟时钟控制端sbit DAT=P3A7;/模拟串口数据发送端23. .24. .4.65.int t)uchar num,c;num=tabbyte;for (c=0;c<8;c+)CLK=0;DAT=num&0x01;CLK=1;num>>=1;void delay_50ms( unsignedunsigned int j;for (;t>0;t-)for (j=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论