專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

合泰單片機數(shù)碼管顯示控制程序

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年02月03日   【字體:
;4位共陰數(shù)碼管顯示0123
;數(shù)碼管段碼接法A-PD0,B-PD1....G-PD6,H-PD7
;數(shù)碼管位碼接法OM0-PC0...COM4-PC3
;目的:
;1.查表
;2.間接尋址
include HT66F50.inc

 
ORG0000H
JMPA1
ORG0020H
Q1:
DC03FH; 0
DC006H; 1
DC05BH; 2
DC04FH; 3
DC066H; 4
DC06DH; 5
DC07DH; 6
DC007H; 7
DC07FH; 8
DC06FH; 9
DC077H; A
DC07CH; B
DC039H; C
DC05EH; D
DC079H; E
DC071H; F
A1:
MOVA,0;顯示內(nèi)容
MOV[8AH],A;第一位數(shù)碼管段碼顯示內(nèi)容寄存器
MOVA,1;顯示內(nèi)容
MOV[8BH],A;第二位數(shù)碼管段碼顯示內(nèi)容寄存器
MOVA,2;顯示內(nèi)容
MOV[8CH],A;第三位數(shù)碼管段碼顯示內(nèi)容寄存器
MOVA,3;顯示內(nèi)容
MOV[8DH],A;第四位數(shù)碼管顯示內(nèi)容寄存器
MOVA,08H;跟CP1C寄存器設(shè)置要求選擇數(shù)據(jù)
MOVCP1C,A;設(shè)置PC口為I/0口而不是中斷口
CLRPCC;設(shè)置pc 口為輸出口
CLRPDC;設(shè)置PD 口為輸出口
MOVA,1;設(shè)置初始顯示位碼顯示第一位
MOV[80H],A;位碼寄存器
MOVA,8AH;設(shè)置對應(yīng)第一位段碼寄存器
MOVMP0,A;間接寄存器指針
A2:
CLRPC;清PC(清屏幕) 
MOVA,Q1;數(shù)據(jù)表地址
CLR TBHP ;清數(shù)據(jù)表地址高位否則出錯  
ADDA,IAR0;利用間接寄存器找到要顯示段碼所在數(shù)據(jù)表的地址
MOVTBLP,A;表格指針寄存器TBLP
TABRDPD;查表并將數(shù)據(jù)存到PD口寄存器
MOVA,[80H];位碼寄存器
MOVPC,A;將位碼寄存器的數(shù)存到PC口寄存器
;段碼和位碼的數(shù)都有了所以數(shù)碼管被點亮
INCMP0;間接寄存器指針加1指向下一個段碼寄存器
RL[80H];左移位碼寄存器控制下一個數(shù)碼管
SNZ[80H].5;判斷是否控制完4個數(shù)碼管
JMPA2;否返回繼續(xù)
MOVA,1;是則從新初始化寄存器數(shù)據(jù)
MOV[80H],A;
MOVA,8AH;
MOVMP0,A;
JMPA1;
END
 

這里還有一個holtek單片機的數(shù)碼管程序供大家參考:http://www.torrancerestoration.com/mcu/1349.html ,電路圖與程序都一應(yīng)俱全.
關(guān)閉窗口

相關(guān)文章