• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 光電顯示 > 設計應用 > 基于AT89C2051串口的LED數碼管顯示電路

    基于AT89C2051串口的LED數碼管顯示電路

    作者: 時間:2010-02-24 來源:網絡 收藏


    子程序首先初始化,使工作在方式0,再讀取緩沖區內的數據(緩沖區主要是用來存放即將要顯示的數據),然后通過查表的方式找到對應的字形碼,最后把字形碼寫入寄存器SBUF通過串口方式0發送出去。當8個時鐘脈沖后,字形碼都移至74Ls164的Q0-Q7,管就顯示相應按鍵的編碼。

    顯示子程序是怎么將顯示緩沖區中的數據變成相應的字形碼呢?具體的方法是將每個數字的字形碼以16進制數從小到大的次序依次存放在存儲器中的固定區域中,構成顯示代碼表。當要顯示某字符時,把表格的起始地址送入數據指針寄存器DPTR中作為基址,將顯示緩沖區內的數據作為偏移量送入變址寄存器A,執行查表指令“MOVCA,@A+DPTR”,則累加器A中得到的結果即表格中取出的對應數字的字形碼。

    注意:MOVC指令是將程序存儲器內相應地址的值賦給累加器A。MOVC指令只有兩種,一種是:MOVCA,@A+DPTR,將程序存儲器中地址為A+ DPTR內的數據賦給A,例如:累加器A內的數據為01H,而DPTR內的數據為2000H,程序存儲器中地址2001H內的數據為50H,那么執行 MOVCA,@A+DPTR指令后,累加器A內的數據變為50H。另一種是MOVCA,@A+PC。將程序存儲器中地址為A+PC內的數據賦給A。兩種指令的功能基本是一樣。只是第一種中的地址是存放在DPTR中,而第二種是直接使用PC指針的地址。


    對于中的74LS164共陰極管數據位和字形的對應關系如下表。

    由于單片機在以方式0串行發送數據的時候數據從RXD引腳從低位到高位依次輸出,而最先輸出的數據經過74LS164串轉并后到達Q7,也就是說單片機內的DO通過串口發送并經過74LS164后到達74LS164的Q7腳即管的A腳,因此在單片機內字型碼與74LS164所對應的字型碼正好相反,所以在單片機內O-8所對應的字型碼分別是:

    3FH,06H,5BH,4FH,66H,6DH,7DH,07H.7FH。

    DIY機械鍵盤相關社區:機械鍵盤DIY



    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 衢州市| 达日县| 贵港市| 唐河县| 湾仔区| 林周县| 耒阳市| 扶余县| 长泰县| 商城县| 临湘市| 抚顺市| 克什克腾旗| 个旧市| 铜梁县| 祁阳县| 射阳县| 双桥区| 广丰县| 江达县| 白城市| 鄄城县| 耿马| 泗洪县| 瑞丽市| 甘泉县| 霍山县| 鸡西市| 定襄县| 方山县| 涞水县| 尼勒克县| 武强县| 洪泽县| 永善县| 包头市| 曲松县| 达州市| 西盟| 海晏县| 望都县|