新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機74HC164串口控制數碼管顯示

        51單片機74HC164串口控制數碼管顯示

        作者: 時間:2016-12-01 來源:網絡 收藏

        注意脈沖寬度:







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

        原理圖:



        程序代碼:
        完整的keil工程文件下載地址:http://www.51hei.com/f/k164.rar
        ORG 00H ;程序起始地址00H
        START:

        本文引用地址:http://www.104case.com/article/201612/324309.htm
        MOV 50H,#9 ;立即數9放入50H單元 第一個數碼管顯示9
        MOV 51H,#4 ;立即數4放入51H單元 第二個數碼管顯示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+碼表首地址)合成的地址中的數給累加器A
        MOV @R1,A ;把立即數9的段碼,放入 60H單元中
        INC R1 ;R1=61H
        INC R0 ;R0=51H
        DJNZ R2,DP0 ;如果R2不等于0,則跳轉到DP0

        //---------------從上面計算可得到: (60H)=10H,(61H)=19H
        MOV R0,#60H ;R0=60重新建立映射關系
        MOV R1,#2 ;數碼管有2個段碼
        DP1:
        MOV R2,#8 ;一個71HC164移位寄存器需要移動8次,以產生并口輸出數據給數碼管
        MOV A,@R0 ;(60H)中的數9的段碼,賦給累加器A
        DP2:
        RLC A ;帶進位標志的左移操作
        MOV P2.0,C ;串行輸出一位段碼數據
        CLR P2.1 ;
        SETB P2.1 ;來個上升沿以產生移位時鐘, 每次來這個脈沖,移位寄存器上的數往后面移動一位,原來A=1,
        ;來個脈沖后B=1,在來個脈沖后,C=1,以此類推。。。。。
        DJNZ R2,DP2 ;判斷8位段碼是否輸出完整
        INC R0 ;下一個需要輸出的段碼地址加1
        DJNZ R1,DP1 ;判斷2個段碼是否輸出完畢
        JMP $ ;程序停在此處
        TABLE: ;數碼管碼表
        DB 40H,79H,24H,30H,19H ;0,1,2,3,4
        DB 12H,02H,78H,00H,10H ;5,6,7,8,9
        END


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临颍县| 义乌市| 常山县| 谢通门县| 株洲县| 灵丘县| 绥德县| 长治市| 新建县| 义马市| 钦州市| 会宁县| 瑞金市| 九龙城区| 阳泉市| 门源| 道孚县| 东兴市| 宁阳县| 华安县| 安平县| 云浮市| 合肥市| 曲周县| 汉中市| 铜陵市| 若羌县| 婺源县| 湟中县| 平邑县| 泸定县| 峨边| 芜湖县| 宁明县| 贞丰县| 肃南| 栾城县| 灯塔市| 宁津县| 靖安县| 肥东县|