單片機通用延時子程序
使用方法如下:
1、如果用循環(huán)語句實現(xiàn)的循環(huán),沒法計算,但是可以通過軟件仿真看到具體時間,但是一般精精確延時是沒法用循環(huán)語句實現(xiàn)的。2、如果想精確延時,一般需要用到定時器,延時時間與晶振有關系,單片機系統(tǒng)一般常選用11.059 2 MHz、12 MHz或6 MHz晶振。第一種更容易產生各種標準的波特率,后兩種的一個機器周期分別為1 μs和2 μs,便于精確延時。本程序中假設使用頻率為12 MHz的晶振。最長的延時時間可達216=65 536 μs。若定時器工作在方式2,則可實現(xiàn)極短時間的精確延時;如使用其他定時方式,則要考慮重裝定時初值的時間(重裝定時器初值占用2個機器周期)。
通用延時子程序 [地址]
7FEBH - FFEBH [功能]:延時 [入口]:延時常數(shù)放在 R2 寄存器中。時間常數(shù) N(十六進制)所對應的延時時間(6MZH 晶振時)見下表: [出口]:R2=0 [占用寄存器]:R2 [調用]:無 例:延時1 秒子程序 MOV R2,#18H LCALL 7FEBH RET ORG 7FEBH ;通用延時子程序(07EBH & 0FEBH & ...) L7FEB: PUSH 02H ;R2(復位后R2即為 02H)存放時間常數(shù),進棧保護 L7FED: PUSH 02H ; R2 進棧保護 L7FEF: