新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 松翰單片機(jī)定時(shí)中斷數(shù)碼管程序

松翰單片機(jī)定時(shí)中斷數(shù)碼管程序

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
;數(shù)碼管 ---- 目的:學(xué)習(xí)查表及間接尋址定時(shí)中斷

;完整代碼下載地址:http://www.51hei.com/f/smysh.rar
CHIP SN8F27E65
//{{SONIX_CODE_OPTION
.Code_Option WDT_CLK Flosc/4
.Code_Option Reset_Pin P04
.Code_Option LVD LVD_Max ; 3.3V Reset
.Code_Option Watch_Dog Disable ;關(guān)閉看門狗
.Code_Option Low_Fcpu Flosc/1
.Code_Option High_Clk IHRC_16M ; Internal 16M RC Oscillator
.Code_Option High_Fcpu Fhosc/1
.Code_Option Security Enable
.Code_Option Noise_Filter Enable
//}}SONIX_CODE_OPTION
DATAC EQU P4M
DATA EQU P4
LEDC EQU P0M
LED EQU P0

本文引用地址:http://butianyuan.cn/article/201611/323618.htm

.DATA;數(shù)據(jù)
ORG 0
TEMP DS 1
ACCBUF DS 1
PflagBUF DS 1

.CODE;程序代碼
ORG 0000H
JMP A0
ORG 000BH
JMP T0
; ORG 0015H
A0: B0BCLR FT0IEN;關(guān)閉T0中斷
B0BCLR FT0ENB;禁止T0中斷
MOV A,#16;設(shè)置T0時(shí)鐘
B0MOV T0M,A;
MOV A,#16;裝初值
B0MOV T0C,A;
B0BCLR FT0IRQ;清中斷標(biāo)志
B0BSET FT0IEN;開T0中斷
B0BSET FT0ENB;允許T0中斷
B0BSET FGIE;開總中斷

MOV A,#3;顯示值
MOV 41H,A

MOV A,#2;顯示值
MOV 42H,A
MOV A,#1;顯示值
MOV 43H,A
MOV A,#0;顯示值
MOV 44H,A
;*********************************************
;顯示設(shè)置
;*********************************************
A1: MOV A,#11111110B ;顯示位碼
MOV 31H,A
MOV A,#4;顯示位數(shù)
MOV 33H,A
B0MOV H,#0 ; 清“H”以尋址RAM bank 0。
B0MOV L,#41H ; 設(shè)定寄存器地址。
JMP $
;*********************************************
;T0中斷
;*********************************************
T0: B0BCLR FT0IEN;關(guān)T0中斷
B0BCLR FT0ENB;禁止T0中斷
B0XCH A,ACCBUF;壓棧
B0MOV A,PFLAG;
B0MOV PFLAGBUF,A;
MOV A,#0FFH;清顯示
B0MOV DATAC,A;
B0MOV DATA,A;
MOV A,#0FFH;
B0MOV LEDC,A;
MOV A,#0FFH;
B0MOV LED,A;
T1:
MOV A,#0FFH;設(shè)置為輸出口
B0MOV DATAC,A;
B0MOV Y,#Q1$M;編碼表地址
B0MOV Z,#Q1$L;編碼表地址
B0MOV A, @HL;間接尋址
ADD Z,A;尋找要顯示編碼
MOVC ;查表高八位存在R低八位存在ACC
B0MOV DATA,A;數(shù)據(jù)輸出

MOV A,#0FFH;設(shè)為輸出口
B0MOV LEDC,A

MOV A,31H;位碼
B0MOV LED,A
MOV A,31H;處理位碼的數(shù)由于沒(méi)有RL只有RLC現(xiàn)在這里處理C
MOV 32H,A
RLC 32H
RLCM 31H;移動(dòng)位碼
INCMS L;顯示數(shù)據(jù)控制寄存器處理
CALL M001;延時(shí)提高亮度
MOV A,#0FFH;清顯示
B0MOV DATAC,A
B0MOV DATA,A
MOV A,#0FFH
B0MOV LEDC,A
MOV A,#0FFH
B0MOV LED,A
DECMS 33H;自動(dòng)減1判斷是否也顯示完成
JMP T1

MOV A,#11111110B ;顯示位碼
MOV 31H,A
MOV A,#4;顯示位數(shù)
MOV 33H,A
B0MOV H,#0 ; 清“H”以尋址RAM bank 0。
B0MOV L,#41H ; 設(shè)定寄存器地址。
B0MOV A,PFLAGBUF;彈棧
B0MOV PFLAG,A;
B0XCH A,ACCBUF;
MOV A,#16;設(shè)T0時(shí)鐘
B0MOV T0M,A;
MOV A,#16;重裝初值
B0MOV T0C,A;
B0BCLR FT0IRQ;清中斷標(biāo)志
B0BSET FT0IEN;開中斷
B0BSET FT0ENB;允許中斷
B0BSET FGIE;開總中斷
RETI;
;******************************************
;延時(shí)子程序
;******************************************
M001: MOV A,#1
MOV 51H,A
M002: MOV A,#24
MOV 52H,A
M003: MOV A,#250
MOV 53H,A
M004: DECMS 53H
JMP M004
DECMS 52H
JMP M003
DECMS 51H
JMP M002
RET
;******************************************
;編碼表
;******************************************
Q1: DW 00C0H ;0
DW 00F9H ;1
DW 00A4H ;2
DW 00B0H ;3
DW 0099H ;4
DW 0092H ;5
DW 0082H ;6
DW 00F8H ;7
DW 0080H ;8
DW 0090H ;9
DW 0088H ;A
DW 0083H ;B
DW 00C6H ;C
DW 00A1H ;D
DW 0086H ;E
DW 008EH ;F
endp



評(píng)論


技術(shù)專區(qū)

關(guān)閉