找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 8370|回復(fù): 8
收起左側(cè)

51單片機(jī)74HC164串口控制數(shù)碼管顯示

  [復(fù)制鏈接]
ID:59583 發(fā)表于 2014-3-13 04:12 | 顯示全部樓層 |閱讀模式
轉(zhuǎn)自:http://www.torrancerestoration.com/mcu/2655.html

一般數(shù)碼管需要接7個(gè)腳才能顯示,如果用單片機(jī)本身的I/O口,雖然可以但是浪費(fèi)寶貴的i/O口資源。本例用移位寄存器74HC164作為數(shù)碼管驅(qū)動(dòng)進(jìn)行控制。

74HC164特性   是一種8位串轉(zhuǎn)并口的控制芯片,用于數(shù)碼管和液晶顯示等.
                        工作電壓2--6V
              管腳定義:
                                 


    1)  A,B管腳:與門數(shù)據(jù)輸入引腳。
     2)QA---QH 數(shù)據(jù)并口輸出引腳
     3) CLR 低電平時(shí),數(shù)據(jù)清零,不能輸入
     4) CLK 數(shù)據(jù)輸入時(shí)鐘,上升沿讀取串口數(shù)據(jù)
     

   
      
                          :
                     
時(shí)序圖:
            


             注意脈沖寬度:

               





本51單片機(jī)用的是12MHZ晶振,每條指令最小執(zhí)行時(shí)間1uS》》1ns  ,可以根據(jù)時(shí)序圖隨便使用.

原理圖:
            


程序代碼:
完整的keil工程文件下載地址: http://www.torrancerestoration.com/f/k164.rar
ORG 00H                       ;程序起始地址00H
START:
                MOV 50H,#9                    ;立即數(shù)9放入50H單元   第一個(gè)數(shù)碼管顯示9
MOV 51H,#4                    ;立即數(shù)4放入51H單元  第二個(gè)數(shù)碼管顯示4
MOV R0,#50H                 ;R0=50   
MOV R1,#60H                 ;R1=60   
MOV R2,#2

DP0:
MOV DPTR,#TABLE     ;將碼表首地址給DPTR指針
MOV A,@R0                   ;將50H單元中的9給A
MOVC A,@A+DPTR     ;查表得到(9+碼表首地址)合成的地址中的數(shù)給累加器A
MOV @R1,A                  ;把立即數(shù)9的段碼,放入 60H單元中
INC R1                            ;R1=61H
INC R0                            ;R0=51H
DJNZ R2,DP0                ;如果R2不等于0,則跳轉(zhuǎn)到DP0

             //---------------從上面計(jì)算可得到: (60H)=10H,(61H)=19H

                MOV R0,#60H                ;R0=60重新建立映射關(guān)系
MOV R1,#2                     ;數(shù)碼管有2個(gè)段碼

DP1:
                MOV R2,#8                     ;一個(gè)71HC164移位寄存器需要移動(dòng)8次,以產(chǎn)生并口輸出數(shù)據(jù)給數(shù)碼管
MOV A,@R0                   ;(60H)中的數(shù)9的段碼,賦給累加器A

DP2:
                RLC A                              ;帶進(jìn)位標(biāo)志的左移操作
MOV P2.0,C                    ;串行輸出一位段碼數(shù)據(jù)
        CLR P2.1                        ;
SETB P2.1                     ;來(lái)個(gè)上升沿以產(chǎn)生移位時(shí)鐘, 每次來(lái)這個(gè)脈沖,移位寄存器上的數(shù)往后面移動(dòng)一位,原來(lái)A=1,
                                                          ;來(lái)個(gè)脈沖后B=1,在來(lái)個(gè)脈沖后,C=1,以此類推。。。。。
DJNZ R2,DP2                ;判斷8位段碼是否輸出完整
INC R0                            ;下一個(gè)需要輸出的段碼地址加1
DJNZ R1,DP1                ;判斷2個(gè)段碼是否輸出完畢
JMP $                              ;程序停在此處

TABLE:                                            ;數(shù)碼管碼表
         DB 40H,79H,24H,30H,19H   ;0,1,2,3,4
DB 12H,02H,78H,00H,10H   ;5,6,7,8,9
END


回復(fù)

使用道具 舉報(bào)

ID:59780 發(fā)表于 2014-3-18 14:57 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:59269 發(fā)表于 2014-3-22 07:30 | 顯示全部樓層
小新灬 發(fā)表于 2014-3-18 14:57
學(xué)習(xí)學(xué)習(xí)

實(shí)用資料,下載學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2014-3-22 13:03 來(lái)自觸屏版 | 顯示全部樓層
這的確是一個(gè)好資料
回復(fù)

使用道具 舉報(bào)

ID:67573 發(fā)表于 2014-10-23 08:59 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:629091 發(fā)表于 2020-4-16 17:43 | 顯示全部樓層
有沒(méi)有c的代碼
回復(fù)

使用道具 舉報(bào)

ID:451500 發(fā)表于 2020-6-25 11:07 | 顯示全部樓層
謝謝分享,辛苦了,端午節(jié)快樂(lè)
回復(fù)

使用道具 舉報(bào)

ID:785163 發(fā)表于 2020-6-25 18:46 | 顯示全部樓層
挺好的,但是好像沒(méi)有c的代碼
回復(fù)

使用道具 舉報(bào)

ID:720231 發(fā)表于 2022-8-22 23:16 | 顯示全部樓層
只有C啊 沒(méi)有看到仿真咋?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表