这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 74HC164 看看这个网上找的东东--静态显示74HC164

共2条 1/1 1 跳转至

74HC164 看看这个网上找的东东--静态显示74HC164

院士
2006-09-17 18:14:16     打赏
74HC164 看看这个网上找的东东--静态显示74HC164



关键词: 74HC164     看看     这个     网上     东东     静态     显示    

院士
2006-12-22 22:43:00     打赏
2楼
问 我用这个代码怎么不成功呢?硬件接线都没问题啊!!!

大家伙看看啊




51单片机74HC164静态显示接口



单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。

MCS-51单片机串行口方式0为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1…Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hg···a各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74LS164中。

驱动程序:

入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。

出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显示器中显示。

显示程序如下:

ORG 0000H

AJMP START

ORG 30H

START: MOV SP,#6FH

MOV 65H,#0

MOV 64H,#1

MOV 63H,#2

MOV 62H,#3

MOV 61H,#4

MOV 60H,#5

LCALL DISP

SJMP $



DISP: MOV SCON,#00H ;初始化串行口方式

MOV R1,#06H ;显示6位数

MOV R0,#65H ;60H-65H为显示缓冲区

MOV DPTR,#SEGTAB ;字形表的入口地址

LOOP:

MOV A,@R0 ;取最高位的待显示数据

MOVC A,@A+DPTR ;查表获取字形码

MOV SBUF,A ;送串口显示

DELAY: JNB TI,DELAY ;等待发送完毕

CLR TI ;清发送标志

DEC R0 ;指针下移一位,准备取下一个待显示数

DJNZ R1,LOOP ;直到6个数据全显示完。

RET

SEGTAB: ;字形表

DB 03H,9FH,27H,0DH,99H,49H,41H,1FH,01H,09H,0FFH

; 0 1 2 3 4 5 6 7 8 9 消隐码

END

测试用主程序


如果按图示数码管排列,则以上主程序将显示的是543210,想想看,如果要显示012345该怎样送数?

你们只接了一个数码管,想想应该很容易吧。

74LS165 是一个8位并入串出的移位寄存器,原理一样。
1: 看出什么没有?问题在哪呢?用别的程序就好使,用这个就不行。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]