標(biāo)題:
單片機(jī)數(shù)碼管加減程序 匯編語言
[打印本頁]
作者:
hongniu
時(shí)間:
2015-6-23 22:04
標(biāo)題:
單片機(jī)數(shù)碼管加減程序 匯編語言
ORG 0000H
ajmp main
org 000bh
AJMP PDF ;TR0中斷入口
org 0030h
MAIN:clr f0 ;觸發(fā)標(biāo)志位 ****************************************
MOV DPTR,#TAB01
MOV 32H,#10H;預(yù)設(shè)定
MOV 31H,#60H;預(yù)設(shè)定
MOV 30H,#003H;預(yù)設(shè)定;
MOV R1,#32H;設(shè)定指針與R0配合,很重要值不能改;而且是工作是的指針,最重要
MOV TMOD,#01H;定時(shí)器設(shè)定
MOV TH0,#0BH
MOV TL0,#0DCH
mov r7,#20h
SETB ea
setb et0 ;開中斷 ****************** ***************************************
STA:MOV R0,#30H; ***************************** 以下是顯示程序
mov p2,#80h;顯示字
hgfd:jb f0,s;判是否觸發(fā)
cvbn:mov 40h,r1
mov a,r0
cjne a,40h,kz ;進(jìn)行比較R1和R0相等時(shí)便是設(shè)定狀態(tài)可以通過加減修改30H,31H,32H,
jnb p3.4,INCr1
JNB P3.5,DECR1
JNB P1.5,INCR0 ;按鍵檢測,在設(shè)定狀態(tài)有效工做狀態(tài)無效
JNB P1.6,DECR0
JNB P1.7,CFKS
S:CJNE R0,#31H,XX ;顯示31H是要加小數(shù)點(diǎn)
MOV A,@R0
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A ; ;顯示高BCD
MOV A,P2
RL A
MOV P2,A
LCALL YS
MOV DPTR,#TAB
MOV A,@R0
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A ;顯示低BCD
MOV A,P2
RL A
MOV P2,A
MOV DPTR,#TAB01
AJMP ER ;............................................
DECR0:AJMP ECR0
INCR0:AJMP NCR0
CFKS:AJMP FKS ;中轉(zhuǎn)戰(zhàn)因?yàn)槌绦蛱L
DECR1:AJMP ECR1
INCR1:AJMP NCR1
XX: MOV A,@R0;.30H,32H顯示
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
LCALL YS
MOV A,@R0
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
ER:LCALL YS ;延時(shí)可設(shè)定
jb f0,kdm ;判設(shè)定還是工作狀態(tài)
ajmp sta ;若是設(shè)定狀態(tài)則返回
kdm:JB ACC.5,STA;吃大虧了和下面的DJNZ R7,S矛盾改STA的位置就行
kz:INC R0 ;顯示用指針
js:AJMP hgfd ;**************以上是顯示程序*****************************.
PDF:DJNZ R7,PT01 ;*********以下是中斷和工作減一 程序*******************
BN:CJNE R1,#32H,KJ
AJMP HG
KJ:CJNE R1,#31H,SF
AJMP FS
SF:CJNE R1,#30H,BN
AJMP XW
HG:MOV A,32H
CJNE A,#00H,V ;判32
CLR P1.0
DEC R1
FS:MOV A,31H
CJNE A,#00H,DDJY;判31
CLR P1.3
DEC R1
XW:MOV A,30H
CJNE A,#00H,V ;判30
CLR P1.4
MOV R1,#32H
CLR TR0
AJMP STA;............................
V: MOV A,@R1
ANL A,#0FH
CJNE A,#00h,k
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#00H,h
MOV @R1,#00H
MOV R7,#20H ;設(shè)定
CLR TR0
reti
K:MOV A,@R1
DEC A
MOV @R1,A
MOV R7,#20H ;設(shè)定
reti
h: dec A
SWAP A
add A,#09H
mov @R1,A
MOV R7,#20H ;設(shè)定
PT01:reti;...................................................................
SWG:AJMP S
DDJY: MOV A,@R1
ANL A,#0FH
CJNE A,#00h,XA
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#00H,CQ
MOV R7,#20H ;設(shè)定
reti
XA:MOV A,@R1
DEC A
MOV @R1,A
MOV R7,#01H ;設(shè)定
reti
CQ: dec A
SWAP A
add A,#09H
mov @R1,A
MOV R7,#01H ;設(shè)定
RETI ;****************************8以上是中斷和工作減一 程序***********
NCR1:MOV R5,#099H ;*************以下是工作在設(shè)定狀態(tài)時(shí)的按鍵選單元****
Z:MOV R6,#0FFH
X:NOP
DJNZ R6,X
DJNZ R5,Z;去抖動(dòng)
JB P3.4,SWG
MOV A,R1
CJNE A,#32H,TQ
MOV R1,#32H
AJMP STA
TQ:INC R1
AJMP STA ;********************
ECr1: mov r5,#99h ;******************************
cv:mov r6,#0FFh
os:nop
djnz r6,os
djnz r5,cv
JB P3.5,SWG;注意這里要重復(fù)檢查
mov a,r1
cjne a,#30h,QT
mov r1,#30h
ajmp sta
QT:DEC R1
AJMP STA;**************以上是工作在設(shè)定狀態(tài)時(shí)的按鍵選單元********************************
NCR0:MOV R5,#0F9H;************以下是單元加減鍵*************************
ZCP:MOV R6,#0FFH
XMQ:NOP
DJNZ R6,XMQ
DJNZ R5,ZCP;去抖動(dòng)
MOV A,@R1
ANL A,#0FH
CJNE A,#09h,DAMQ
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#09H,FUL
MOV @R1,#99H
AJMP S
DAMQ:MOV A,@R0
INC A
MOV @R1,A
AJMP S
FUL: INC A
SWAP A
mov @R1,a
AJMP S;******************************************
ECR0:MOV R5,#0F9H;***************************************
Zh:MOV R6,#0FFH
Xj:NOP
DJNZ R6,Xj
DJNZ R5,Zh;去抖動(dòng)
MOV A,@R1
ANL A,#0FH
CJNE A,#00h,kWS
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#00H,hIV
MOV @R1,#00H
AJMP S
KWS:MOV A,@R1
DEC A
MOV @R1,A
AJMP S
hIV: dec A
SWAP A
add A,#09H
mov @R1,A
AJMP S;*****************以上是單元加減鍵****************************
FKS:SETB F0
SETB TR0
MOV R1,#32H;工作重裝!
AJMP STA ;**
ys:mov r3,#05h ;******************************
l:mov r4,#056h
lo:nop
djnz r4,lo
djnz r3,l
ret ; ***************************************
TAB01: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
TAB: DB 02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H
END
作者:
hongniu
時(shí)間:
2015-6-23 22:07
改進(jìn)版:
ORG 0000H
ajmp main
org 000bh
AJMP PDF
org 0030h
main:MOV DPTR,#TAB01
MOV 32H,#10H;設(shè)定
MOV 31H,#60H;設(shè)定
MOV 30H,#10H;設(shè)定;
MOV R1,#32H;..................................................................
MOV TMOD,#01H
MOV TH0,#0BH
MOV TL0,#0DCH
mov r7,#20h
SETB ea
setb et0
setb tr0;*******************************************
STA:MOV R0,#30H;.....................................................
mov p2,#80h
S:CJNE R0,#31H,XX
MOV A,@R0
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
LCALL YS
MOV DPTR,#TAB
MOV A,@R0
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
MOV DPTR,#TAB01
AJMP ER ;............................................
XX: MOV A,@R0;.........................
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
LCALL YS
MOV A,@R0
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,P2
RL A
MOV P2,A
ER:LCALL YS
JB ACC.5,STA
INC R0
AJMP S ;.........................................................
PDF:DJNZ R7,PT01
BN:CJNE R1,#32H,KJ
AJMP HG
KJ:CJNE R1,#31H,SF
AJMP FS
SF:CJNE R1,#30H,BN
AJMP XW
HG:MOV A,32H
CJNE A,#00H,V ;判32
CLR P1.0
DEC R1
FS:MOV A,31H
CJNE A,#00H,DDJY;判31
CLR P1.3
DEC R1
XW:MOV A,30H
CJNE A,#00H,V ;判30
CLR P1.4
MOV R1,#32H
CLR TR0
AJMP STA;................................................................
V: MOV A,@R1
ANL A,#0FH
CJNE A,#00h,k
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#00H,h
MOV @R1,#00H
MOV R7,#20H
CLR TR0
reti
K:MOV A,@R1
DEC A
MOV @R1,A
MOV R7,#20H
reti
h: dec A
SWAP A
add A,#09H
mov @R1,A
MOV R7,#20H
PT01:reti;...................................................................
DDJY: MOV A,@R1
ANL A,#0FH
CJNE A,#00h,XA
MOV A,@R1
swap a
anl a,#0fh
CJNE A,#00H,CQ
MOV R7,#20H
reti
XA:MOV A,@R1
DEC A
MOV @R1,A
MOV R7,#01H
reti
CQ: dec A
SWAP A
add A,#09H
mov @R1,A
MOV R7,#01H
RETI
ys:mov r3,#05h
l:mov r4,#02h
lo:nop
djnz r4,lo
djnz r3,l
ret
TAB01: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
TAB: DB 02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H
END
復(fù)制代碼
作者:
ln7812
時(shí)間:
2015-7-2 14:02
我正在學(xué)習(xí)數(shù)碼管操作,樓主有這個(gè)加減程序的電路圖嗎
作者:
lxa0
時(shí)間:
2015-7-12 09:53
玩匯編的
沒有電路圖配合
等于零
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1