?? 14-2.asm
字號:
;***********************************************************************
; 功能 :定時器延時程序
; 作者 :LIHJ
; 創建日期 :04-1-2
; 版本 :V1.0
; 修改日期 :
;************************************************************************
;變量定義
Count50 ms DATA 50H
;程序
ORG 0000H ;定義程序入口
JMP MAIN ;復位后,跳轉到主程序
ORG 000BH ;定時器0的中斷入口
JMP T0INT ;跳轉到定時器0的中斷服務程序
;主程序
ORG 0050H ;定義主程序保存地址(可以不指定)
MAIN:
;定時器賦初值
MOV TMOD, #01H ;選擇方式1,16位定時器方式
MOV TH0, #3CH ;定時器0設置為50 ms
MOV TL0, #0B0H
MOV Count50 ms, #00H ;初始化50 ms計數器
SETB EA ;開中斷總開關
SETB ET0 ;運行定時器0中斷
SETB TR0 ;啟動定時器0
;主循環程序
LOOP:
;****************************
;其他程序
;****************************
;延時判斷
MOV A, Count50 ms ;將50 ms計數值賦給累加器A
CJNE A, #100, PROCESS1 ;判斷延時世界有沒有到
PROCESS1:
JC CONTINUE1 ;根據C標志判斷延時時間是否到
MOV A, Count50 ms ;Count50 ms = Count50 ms - 100
SUBB A, #100
MOV Count50 ms, A
;************************ ;延時時間到,運行被延時的程序
;被延時的程序
;************************
CONTINUE1: ;延時時間沒有到,繼續運行其他程序
;****************************
;其他程序
;****************************
JMP LOOP ;開始下一個主循環
;結束主循環
;子程序
;定時器0中斷服務子程序
T0INT:
PUSH PSW ;保護中斷現場
PUSH ACC
MOV TH0, #3CH ;重新載入定時器0的初始值
MOV TL0, #0BAH
INC Count50 ms ;50 ms計數器自加1
POP ACC ;恢復中斷現場
POP PSW
RETI ;中斷返回
END ;結束程序
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -