1樓:網友
org 00h
ljmp start
strat:
cpllcall delay
ljmp start
delay:
mov r2,#
d1:mov r3,#
d2:mov r4,#
djnz r4,$
djnz r3,d2
djnz r2,d1
ret 單判稿好掘鉛敬遊片機接繼電器。
關於微控制器中斷程式的定時器0和定時器
2樓:那次遇到過你
首先,你所說的兩種賦值方法,實際上是一種,就是就是暫存器的高8為位個低8位賦值。你說的第二種(th0=(65536-50000)/256)所賦的值是經過計算(=(65536-50000)/256)得到的,你知道定時計數器的工作原理就清楚了。
其次,賦值大小要根據你的晶振以及微控制器工作模式確定機器週期,然後才能確定需要賦多大的值,的晶振能產生與時鐘週期更吻合的波形,12mhz的更利於計算,如果需要更精確的時鐘,建議使用時鐘晶元。th0=(65536-50000)/256、tl0=(65536-50000)%256的中斷時間為50毫秒(微控制器全速執行,晶振12mhz),這只是一種估計的賦值,時間誤差很大。
如果覺得手工計算很麻煩,可以使用工具幫忙,只要選擇你的引數就能出結果,見附件。
最後,如果你不想計算,給你列舉一些:
晶振:,微控制器模式:12t
20毫秒:th0 = 0xb8;tl0 = 0x00;
30毫秒:th0 = 0x94; tl0 = 0x00;
50毫秒:th0 = 0x4c; tl0 = 0x00;
晶振:12mhz,微控制器模式:12t
20毫秒:th0 = 0xb1;tl0 = 0xe0;
30毫秒:th0 = 0x8a;tl0 = 0xd0;
50毫秒:th0 = 0x3c; tl0 = 0xb0;
我是微控制器初學者,定時器中斷問題不太明白! 請
3樓:網友
第乙個問題,不是乙個機器週期執行一條語句,執行一條語句有的乙個週期,比如mov r2,#1;有的兩個週期,比如djnz r2,$;還有的4個週期,比如 mul ab。
第二個問題,是的。
第三個問題,啟動tr=1時,定時器開始在後臺自動計數,程式同步執行。相互不影響。如果定時時間到,產生溢位訊號,申請中斷,此時正在執行的語句執行完,進入中斷服務程式。
4樓:網友
1、 乙個機器週期不一定執行一條語句,有時候要幾個機器週期才執行一條語句。
2、 好久沒用51了,貌似是開啟tr=1就開始中斷了。
3、 (1)對 (2)要是定時還沒溢位程式就執行語句2了,這是ok的,再執行語句2的時候,當定時器定時溢位中斷了,就會去執行定時器的中斷程式,把語句2晾在一邊,再執行完定時器中斷程式後,再繼續進行語句2的程式。
記住,是繼續執行語句2,不是重頭開始執行語句2。即執行到語句2的哪一段(比如如a段)的時候進入了定時器中斷,等待中斷程式執行完後,就從語句2的那一段後面(即a段後面)繼續執行語句2程式。
5樓:網友
1 , 不對 各種指令的機器週期 不一樣,請看微控制器 指令系統。
2 , 對 一般在 出現中斷後 執行完當前指令 後馬上 進入中斷服務程式,中斷返回 繼續執行下面程式。
3 , 不正確,應該是 啟動 tr=1 定時器/計數器 開始 +1 計數, 程式是正常執行的,定時器/計數器 中斷 和 其它中斷 一樣,
6樓:melody丶丨
1.得看是什麼語句,也要看微控制器晶振是多少,另外是多少t的。
通常對12m晶振,12t(乙個機器週期是12個時鐘週期)的51微控制器,有的指令(彙編)是1個機器週期,有的是2個,還有兩條指令是4個(乘,除),這樣對應的就需要1us,2us,4us
如果是c的語句,就要看編譯成的機器指令是什麼樣的2.中斷都是這樣執行的。
3.你想實現的目的是讓微控制器等待,這種情況就是讓微控制器這段時間什麼都不做,可以通過軟體延時比如for(i=0;i<1000;i++)迴圈 讓程式一直在數數 數完了 往下執行 你想延時多久 就讓它數多久,還有一種比較好的辦法就是定時器延時,因為不佔用cpu資源,在延時的同時可以做其他事,延時到 置位乙個標誌 語句2通過判斷這個標誌來執行。你的後臺這種理解是錯誤的,定時器是個硬體,他根據時脈頻率在計數,tr=1讓定時器開始工作,定時到了會給cpu一箇中斷訊號,不會去佔用cpu
微控制器中斷系統與定時器/計數器
7樓:蒿焱洋蔓蔓
也不一定都對,你參考一下。
1、當定時/計數器選定為定時器方式時,是對片內機器週期脈衝數進行計數,選定為計數器方式時,是對(外部事件)進行計數。
2、設定時器t0為方式1定時,定時器t1為方式1計數,則工作方式控制字tmod=(
51h)。3、設(tmod)=0a5h,則定時器t0的狀態是(方式1計數,定時器t1的狀態是(方式2定時。
4、mcs-51定時/計數器,當fosc=6mhz時,最大定時為(,fosc=12mhz時,最大定時為(
5、定時器t0溢位標誌位是(tf0,定時器t1溢位標誌位是(tf1
微控制器彙編程式讀引腳問題,剛學微控制器,組合語言中,MOVP1,0FFH與MOVP1,0F0H都是什麼意思啊,求指教
mov p0,ffh 這條指令是來向p0的鎖存器寫源高電平bai 同時給p0引腳也輸du出高電平了 但是如果p0 埠zhi被強負載拉低,則引 dao腳就為低 如我們外部接一個開關,被按下的時候 即p0的引腳電平與外部負載有直接關係的 如果我們要讀取外表資料 讀引腳 則我們必須先執行這條指令mov p...
微控制器低電平控制12V繼電器,微控制器驅動12v繼電器
微控制器低電平控制12v繼電器步驟 1 微控制器低電平控制8050導通,需要加一個反相電路,因為8050是npn三極體。2 可以用兩個8050來實現低電平導通,或直接使用高電平導通 如果你不介意高電平導通的話 3 繼電器一端接8050集電極,另一端接12v電源,不要再接電阻了。plc用軟體功能取代了...
求微控制器程序,實現LED控制,求微控制器程式,實現LED控制
可以實現,我曾經接過微控制器用的89s52,我想你覺的有難度的是在於聲音感測上,看聲控燈原理圖,vt2接微控制器,也可以加一個單穩態電路,程式可以這樣設計.擊掌產生一個電平變化然後延時再檢電平變化,擊掌幾次,用微控制器記錄下來,然後比較,如一次脈衝彩燈怎樣變換,兩次脈衝彩燈怎樣變換,程式的關鍵在於延...