?? myproj.asm
字號:
org 0000H
LJMP Main
org 0003H
LJMP Int0Add
org 000bH
LJMP TimeSec
org 0013H
LJMP Int1Dec
org 0023H
LJMP RecvDat
org 0100H
Main: ;初始化
mov SP,#60h
mov R0,#01h
mov R1,#10h
mov R4,#00h
mov R3,#3ch
mov R2,#00h
mov P2,#0FFh
mov P0,#0FFH
mov DPTR,#0400H
mov TMOD,#21h
mov TH1,#0fdh
mov TL1,#0Fdh
mov TH0,#00h
mov TL0,#00h
mov SCON,#50h
mov PCON,#00h
mov IE,#0d7h
setb it1
setb it0
setb TR1
setb TR0
clr ri
clr F0
Again: ;循環(huán)調(diào)用顯示
Call DispLed
Call DispNum
JMP Again
;LED顯示
DispLed:
mov P2,#80h
mov P0,R0
mov R6,#05h
Call DelayMs
ret
;數(shù)碼顯示 注意修改位控位及位控電平
DispNum:
mov A,R0
mov B,#10h
div AB
movc A,@A+DPTR
mov p2,#40h
mov p0,A
mov R6,#05h
Call DelayMs
mov A,B
movc A,@A+DPTR
mov p2,#20H
mov P0,A
mov R6,#05h
Call DelayMs
ret
;外部中斷0
Int0Add:
clr ex0
inc R0
setb ex0
reti
;外部中斷1
Int1Dec:
clr ex1
dec R0
setb ex1
reti
;串行中斷 實(shí)現(xiàn)簡單的置數(shù)及計(jì)數(shù)啟停
RecvDat:
jnb TI,RiCom
CLR TI
RiCom:
jnb RI,ExitCom
CLR RI
mov A,SBUF
mov R0,A
CJNE R0,#00h,NextCom
CLR TR0
NextCom:
CJNE R0,#01h,ExitCom
mov TH0,#0ffh
mov TL0,#0ffh
mov R1,#10h
Setb TR0
ExitCom:
reti
;定時(shí)器中斷0
TimeSec:
mov TL0,#00h
mov TH0,#00h
DJNZ R1,ExitSec
mov R1,#10H
inc R0
ExitSec:
reti
;秒級延時(shí)子程序以130050us為單位,最大為130050us
DelaySs:
mov r6,#0ffh
ss:
mov r7,#0ffh
djnz r7,$
djnz r6,ss
djnz r5,DelaySs
ret
;毫秒延時(shí)子程序以510us為單位,最大為130050us
DelayMs:
mov r7,#0ffh
djnz r7,$
djnz r6,DelayMs
ret
;微秒延時(shí)以2us為單位,最大為510us
DelayUs:
djnz r7,$
ret
org 0400h
;共陽極數(shù)碼管數(shù)模0~9、A~F
DB 0C0h,0F9H,0A4H,0B0H,099H,092H,082H,0F8H
DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -