微控制器定時器 問題

2022-02-16 08:07:31 字數 1284 閱讀 8969

1樓:匿名使用者

做一個時鐘,24小時一個迴圈週期,每個分度的時間長短根據實際情況定。時鐘工作在定時器中斷子程式裡,主程式不斷和時鐘對時,如果符合設定值就開通電機。 下面的程式你參考下,裡面具體的值我沒算過,你自己算下改了吧。

如果分頻暫存器不夠按我的演算法加。別說不會哦。。

org 00h

ljmp start

org 0bh

ljmp timer

org 32h

start:

setb p1.0 ;p1.0用於控制電機,高電平關,低電平開mov ie,#10000010b

mov tmod,#00000010b

mov th0,#55

mov tl0,#55

mov sp,#6fh

clr rs0

clr rs1

mov r0,#00h

mov r1,#00h

setb tr0

ljmp loop

timer:

inc r0 ;這些是分頻暫存器,自己根據需要設定好了,我不給你算了。如果不夠自己加。

cjne r0,#2,end_timer

mov r0,#00h

inc r1

cjne r1,#130,end_timermov r1,#00h

end_timer:

reti

loop:

mov a,r1

mov b,#100 ;設r1值在100~110之間時開通電機div ab ;通過除法比較大小,如果商等於零,說明r1中的值小於100

jz off

mov a,r1

mov b,#110 ;如果r1值大於100,在比較是否小於110div ab

jz on

ljmp off

on:clr p1.0

ljmp loop

off:

setb p1.0

ljmp loopend

2樓:浴血前鋒

[原創心得]菜鳥請教問題謹記5條忠告:

1,別問小白問題,自己多看兩眼書或去網上搜尋下就知道答案的問題別拿出來問,沒人會理你。

2,別問泛泛的問題,誰也沒時間給你係統的上一堂課,你的老師都不見得會這麼做。

3,實在弄不明白了,再把問題歸納到一個瓶頸,組織好語言再拿出來虛心請教。

4,耐心等待有時間的大蝦指教,別吭哧c吭哧v的滿世界都問到,很招人煩的。

5,如果問問題還口出不遜,那就是自取其辱,不信你試試

微控制器時間中斷,51微控制器中的定時器中斷是怎麼用的 ?

while 1 在那 會使微控制器停在那 相當於是等待當中斷來臨時 執行中斷 下面那個就是當到50ms的時候 執行計時器1中斷如果沒有那個while 1 則主程式就執行完了 中斷會沒有作用中斷和程式主程式各個執行是同步的 因為你把那個et0開了 則就有時鐘中斷了 當到了50ms 中斷就會自動作用 停...

51微控制器中的定時器中斷是怎麼用的

如下 實現led燈一秒亮滅閃爍 void main tmod 0x01 設定定時器0為工作方式1 m1 m0為01 th0 65536 45872 256 裝初值11.0582晶振定時50ms數為45872 tl0 65536 45872 256 ea 1 開總中斷 et0 1 開定時器0中斷 tr...

51微控制器T0定時器4種方式的定時時長分別是多少

模式0 8192 模式1 65536 模式2 256 自動重灌載模式,波特率發生器必須是這個模式 模式3 256 該模式用處不大,將定時器分成兩個8位定時器 這個取決於系統時鐘和定時器位數。例如傳統89c51微控制器 在不考回慮新型微控制器有分頻設定的情答況下 12mhz系統時鐘,採用8位定時器,最...