新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機與74HC164靜態(tài)顯示接口

51單片機與74HC164靜態(tài)顯示接口

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
單片機應(yīng)用系統(tǒng)中,顯示器顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小??梢蕴峁﹩为氭i存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)換電路74LS164為例,介紹一種常用靜態(tài)顯示電路,以使大家對靜態(tài)顯示有一定的了解。

MCS-51單片機串行口方式0為移位寄存器方式,外接6片74LS164作為6位LED顯示器的靜態(tài)顯示接口,把8031的RXD作為數(shù)據(jù)輸出線,TXD作為移位時鐘脈沖。74LS164為TTL單向8位移位寄存器,可實現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個引腳按邏輯與運算規(guī)律輸入信號,共一個輸入信號時可并接。T(第8腳)為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到T端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進制數(shù)全部移入74LS164中。R(第9腳)為復(fù)位端,當(dāng)R=0時,移位寄存器各位復(fù)0,只有當(dāng)R=1時,時鐘脈沖才起作用。Q1…Q8(第3-6和10-13引腳)并行輸出端分別接LED顯示器的hg···a各段對應(yīng)的引腳上。在給出了8個脈沖后,最先進入74LS164的第一個數(shù)據(jù)到達了最高位,然后再來一個脈沖會有什么發(fā)生呢?再來一個脈沖,第一個脈沖就會從最高位移出,搞清了這一點,下面讓我們來看電路,6片7LS164首尾相串,而時鐘端則接在一起,這樣,當(dāng)輸入8個脈沖時,從單片機RXD端輸出的數(shù)據(jù)就進入到了第一片74LS164中了,而當(dāng)?shù)诙€8個脈沖到來后,這個數(shù)據(jù)就進入了第二片74LS164,而新的數(shù)據(jù)則進入了第一片74LS164,這樣,當(dāng)?shù)诹鶄€8個脈沖完成后,首次送出的數(shù)據(jù)被送到了最左面的164中,其他數(shù)據(jù)依次出現(xiàn)在第一、二、三、四、五片74LS164中。

驅(qū)動程序:

入口:把要顯示的數(shù)分別放在顯示緩沖區(qū)60H-65H共6個單元中,并且分別對應(yīng)各個數(shù)碼管LED0-LED5。

出口:將預(yù)置在顯示緩沖區(qū)中的6個數(shù)成相應(yīng)的顯示字形碼,然后輸出到顯示器中顯示。

顯示程序如下:

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

MOVR1,#06H;顯示6位數(shù)

MOVR0,#65H;60H-65H為顯示緩沖區(qū)

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

LOOP:

MOVA,@R0;取最高位的待顯示數(shù)據(jù)

MOVCA,@A+DPTR;查表獲取字形碼

MOVSBUF,A;送串口顯示

DELAY:JNBTI,DELAY;等待發(fā)送完畢

CLRTI;清發(fā)送標志

DECR0;指針下移一位,準備取下一個待顯示數(shù)

DJNZR1,LOOP;直到6個數(shù)據(jù)全顯示完。

RET

SETTAB:;字形表

DB03H9FH27H0DH99H49H41H1FH01H09H0FFH

;0123456789消隱碼

測試用主程序

ORG0000H

AJMPSTART

ORG30H

START:MOVSP,#6FH

MOV65H,#0

MOV64H,#1

MOV63H,#2

MOV62H,#3

MOV61H,#4

MOV60H,#5

LCALLDISP

SJMP

如果按圖示數(shù)碼管排列,則以上主程序?qū)@示的是543210,想想看,如果要顯示012345該怎樣送數(shù)?

你們只接了一個數(shù)碼管,想想應(yīng)該很容易吧。

74LS165是一個8位并入串出的移位寄存器,原理一樣。


評論


技術(shù)專區(qū)

關(guān)閉