新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機驅動數碼管顯示設計

        單片機驅動數碼管顯示設計

        作者: 時間:2013-01-15 來源:網絡 收藏
        點擊瀏覽下一頁
        圖6

        現在讓我們把目標文件"smg1.hex"燒寫到中去,看看實際的效果吧,將ISP編程器硬件連接好(見下圖7)。

        點擊瀏覽下一頁
        圖7:ISP

        將產品配套光盤中的“ISP編程器驅動軟件”文件夾復制到你電腦硬盤的D盤根目錄下,并將其目錄下的所有文件的只讀屬性去掉,具體操作如下:全選文件夾中的文件,鼠標右鍵單擊出現文件屬性對話框,單擊“只讀”屬性前面復選框中的勾,使其只讀屬性去掉即可。然后雙擊文件夾中的“ISP編程器驅動軟件.exe”啟動編程軟件,點擊"文件",在打開文件的對話框中找到工程文件夾中的目標文件"smg1.hex"打開即可,然后點擊“AUTORUN”將程序燒寫到內部(如下圖8)。

        點擊瀏覽下一頁
        圖8:將程序燒寫到內部

        燒寫完成了,把單片機從編程器中取出,然后插到S51增強型實驗板上,插上USB電源,看看顯示效果是不是和上面圖4顯示一樣,是否有一點點的成就感呀!初學者也許會問:一個數字“6”就要15行程序,太復雜了?的確有點復雜了,在上面程序中為了顯示數字“6”,數碼管的段碼"b"、段碼"dp"輸出的是高電平,其它引腳輸出的是低電平,實際上從單片機的P0.0~P0.7輸出的是二進制碼“10000010”,轉換成十六進制為82H。因此,我們只要把所有要顯示的數字和字符的段碼根據硬件連接編制一個字形表,顯示時直接把相應的字形碼送到P0口就可以了。

        共陽LED數碼管字形(段碼)表
        顯示數字
        (字符)
        P0.7
        "dp"
        P0.6
        "g"
        P0.5
        "f"
        P0.4
        "e"
        P0.3
        "d"
        P0.2
        "c"
        P0.1
        "b"
        P0.0
        "a"
        二進制代碼
        十六進制代碼
        0
        1
        1
        0
        0
        0
        0
        0
        0
        11000000
        C0H
        1
        1
        1
        1
        1
        1
        0
        0
        1
        11111001
        F9H
        2
        1
        0
        1
        0
        0
        1
        0
        0
        10100100
        A4H
        3
        1
        0
        1
        1
        0
        0
        0
        0
        10110000
        B0H
        4
        1
        0
        0
        1
        1
        0
        0
        1
        10011001
        99H
        5
        1
        0
        0
        1
        0
        1
        1
        0
        10010110
        92H
        6
        1
        0
        0
        0
        0
        0
        1
        0
        10000010
        82H
        7
        1
        1
        1
        1
        1
        0
        0
        0
        11111000
        F8H
        8
        1
        0
        0
        0
        0
        0
        0
        0
        10000000
        80H
        9
        1
        0
        0
        1
        0
        0
        0
        0
        10010000
        90H
        A
        1
        0
        0
        0
        1
        0
        0
        0
        10001000
        88H
        B
        1
        0
        0
        0
        0
        0
        1
        1
        10000011
        83H
        C
        1
        1
        0
        0
        0
        1
        1
        0
        11000110
        C6H
        D
        1
        0
        1
        0
        0
        0
        0
        1
        10100001
        A1H
        E
        1
        0
        0
        0
        0
        1
        1
        0
        10000110
        86H
        F
        1
        0
        0
        0
        1
        1
        1
        0
        10001110
        8EH
        H
        1
        0
        0
        0
        1
        0
        0
        1
        10001001
        89H
        O
        1
        1
        0
        0
        0
        0
        0
        0
        11000000
        A3H
        P
        1
        0
        0
        0
        0
        1
        0
        0
        10000100
        8CH
        N
        1
        1
        0
        0
        1
        0
        0
        0
        11001000
        C8H

        從上面表格中可以看到,顯示“6”的十六進制段碼值為"82H",因此我們把剛才的程序修改一下,修改后的完整程序如下:

        MAIN:MOV P0,#82H ;將數字"6"的段碼輸出到P0口
         MOV P2,#0FEH;從P2口輸出數碼管選通代碼,即輸出二進制“11111110”
         AJMPMAIN;跳轉到開始重新進行
         END ;程序結束

        手機電池相關文章:手機電池修復


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 治县。| 秦皇岛市| 昌平区| 大同市| 北安市| 开阳县| 江西省| 万山特区| 泗洪县| 广昌县| 九寨沟县| 江华| 定襄县| 响水县| 万年县| 宁国市| 抚顺县| 安国市| 呼图壁县| 金塔县| 汶川县| 丘北县| 茌平县| 闸北区| 海城市| 弥勒县| 明光市| 堆龙德庆县| 定安县| 黑河市| 庆城县| 西乌珠穆沁旗| 新乡县| 塔城市| 滕州市| 犍为县| 西和县| 博客| 静海县| 乌拉特中旗| 南岸区|