1樓:嘻哈海棠
找了幾個定時/計數器的題目,外部中斷應該很簡單。
1、利用定時/計數器t0從p1.0輸出週期為1s的方波,讓發光二極體以1hz閃爍,設晶振頻率為12mhz。。
2、利用定時/計數器t1產生定時時鐘,由p1口控制8個發光二極體,使8個指示燈依次一個一個閃動,閃動頻率為10次/秒(8個燈依次亮一遍為一個週期),迴圈。
3、同時用兩個定時器控制蜂鳴器發聲,定時器0控制頻率,定時器1控制同個頻率持續的時間,間隔300ms依次輸出1,10,50,100,200,400,800,
1k(hz)的方波。
4、用定時器以間隔500ms在6位數碼管上依次顯示0、1、2、3….c、d、e、f,重複。
微控制器的外部中斷問題!!!現在急求答案!!**等!
2樓:匿名使用者
52微控制器不帶pwm功能,只能用定時器模擬,還要配合i/o。例如 週期 = 50ms ,當一個變數 小於 30ms時 p1.0等於1 否則等於0, 那麼p1.
0 在一個週期(50ms)裡前30ms 為1 後20ms為0.
可以選用stc12系列微控制器,自帶pwm。
定時器中斷不會影響外中斷0,外部中斷0的優先順序是出復位外最高的。(看下優先順序)
!中斷會打亂時序器件,例如:如果程式中還掛有iic驅動,那麼在執行iic時就應該遮蔽中斷,iic結束完後再開中斷。
3樓:匿名使用者
50us明顯太短,因為中斷程式本身消耗的時間也是在這50us中的,如果中斷寫的不夠簡練,那等於微控制器始終在中斷中跑了,主程式幾乎跑不動
4樓:最近的天涯海角
你確定pwm程式執行了?也許是你的示波器設定不對
5樓:匿名使用者
參考一下這個**例項,**試試
求微控制器題目的答案。。懂的人幫忙看看。謝謝
6樓:六月風
單選:b a c b d b c d
多選:ab,abcde,bce,abe
判斷:對 對 錯 錯 對 錯
這麼多題耗時間啊,給點分吧
急求!微控制器定時中斷和主程式
7樓:泥巴
放在while(1)中如果沒有加延時會一直在獲取ad值,而ad獲取過程如果有中斷打斷的話,ad值會有非常大的差距,一般建議ad轉換放中斷。如果必須放主函式的話可以考慮在中斷加一個標誌位,每過1ms或者1s置1,主函式判斷標誌位,為1,則清0標誌位並進行ad轉換。只要ad轉換的時間不超過中斷一次的時間就不會出現數值不對的情況了
急求微控制器外部中斷程式
8樓:匿名使用者
這相不用中斷程式,就是一個按鍵掃描就行了
9樓:百學需先勵志
bit sign=0;
void main()}}
void ww() interrupt 0我只是簡寫一下,大概就是這個意思:第一次按下數碼管顯示,再按一下數碼管不顯示
希望對你有所幫助!
51微控制器外部中斷使用問題,急求!馬上給分!
10樓:遙不可及
結束while(1)語句最好的方法就是使用break來跳出死迴圈,關鍵就是選擇合適的flag(標誌位),如果說中斷標誌位是硬體自動清零的話,那麼樓主不妨在中斷服務子程式中自己加入一個標誌位:如果用組合語言的話,psw中的f0位就可以很好的使用;如果用c的話,就可以隨便定義一個位變數,如bit a=0;。也就是說,樓主需要在程式中定義一個位變數a,在中斷服務子程式中將a置1,退出中斷後查詢a是否為1,例如:
if(a) 這樣就跳出了while語句了。
比方說,如果樓主想寫一個等待按鍵按下中斷的程式,就可以用while(!a);而不用while(1)語句了。
11樓:
while裡邊用break是可以的,在中斷程式中設一個標誌位,決定break是否起作用就可以了
求微控制器串列埠中斷接收程式,急求!~~~
12樓:
快下班了,給你一個思維吧
宣告一個陣列來快取資料,宣告一個變數來順序接收,在宣告一個定時器中斷變數來判斷一幀資料是否接收完成.
unsigned char ucuartrecv_arr[256];
unsigned char ucuartrecv_cnt = 0; //順序接收資料
unsigned char uctimer0_cnt = 0; //定時器1ms計數
unsigned char ucuartrecv_flag = 0; //接收完成標誌
void 定時器 1ms中斷()}}
void 接收中斷函式()
求c51程式,微控制器中斷有關。
13樓:匿名使用者
#include
#define uchar unsigned charuchar led=0xff;
sbit ku=p1^0;
sbit kd=p1^1;
main()}}
14樓:
p0.0口接的發光二極體,以1s/次的頻率閃爍,請問一箇中斷閃爍多少次呢?這個告訴一下,不然就觸發方式改為電平方式,這樣那能做啊。
微控制器:中斷程式的入口地址有什麼用
15樓:牽著你的手
在程式執行到任何地方時,發生中斷,則中斷當前的程式執行,去響應中斷,那麼cpu自動取得中斷入口地址並轉入執行中斷程式,同時儲存當前的程式地址,當中斷程式執行完後,將返回被儲存的程式地址處,繼續執行被中斷了的程式。
16樓:ct知道
中斷響應的主要過程是首先由硬體自動生成一條長呼叫指令lcall addr16。
這裡的addr16就是程式儲存區中的相應的中斷入口地址。
例如,對於外部中斷1的響應,產生的長呼叫指令為:
lcall 0013h
生成lcall指令後,緊接著就由cpu執行該指令。首先是將程式計數器pc的內容壓入堆疊以保護斷點,再將中斷入口地址裝入pc,使程式轉向響應中斷請求的中斷入口地址。
各中斷源服務程式的入口地址是固定的,如下所示:
外部中斷0 0003h
定時/計數器t0 000bh
外部中斷1 0013h
定時/計數器1 001bh
序列口中斷 0023h
17樓:韶希彤壬然
000bh
如:org
0000h
ajmp
start
org000bh
;t0中斷地址入口
ajmp
int_t0
;轉到真正的處理程式處
org30h
51微控制器的各自中斷入口:
int0
0003h
int1
0013h
t0000bh
t1001bh
s0023h
關於51微控制器的中斷問題,51微控制器外部中斷0的問題
優先中斷,就是在執行乙個中斷的時候,又來了乙個中斷 如果新來的中斷,其優先順序高於正在執行的中斷,那麼就會暫停現在的中斷而去執行新來的中斷,等這個新中斷執行完之後再會回去繼續執行剛才那個沒執行完也就是那個被打斷的中斷 如果新來的中斷,其優先順序不如正在執行的中斷的優先順序高,那麼程式會繼續執行這個中...
微控制器中查詢和中斷的本質區別,微控制器中查詢和中斷的本質區別? 10
說一下個人的理解,什麼時候用中斷,一般的微控制器中斷響應時間也就是一個或兩個機器週期這樣,所以如果我們要處理的東西要求時間很嚴格,那就要在中斷服務程式裡來出來,比如常用的傳送或接收非同步通訊資料,傳送接收遙控訊號,等等.這個時候就要用中斷來做.什麼時候用查詢 一般一些處理事件要求時間不是很嚴格的情況...
微控制器c語言程式中斷問題,高手進
count 0 放if程式裡面 另外不一定對吧 把m 0 b 1 y 0 改成m 1 b 0 y 1不行嗎!萬一有引腳是三態的 你這樣的賦值有可能出錯 另外把這個初始賦值放main裡面去 if裡面的狀態有取異 對不起 昨天晚上的作答沒有過腦子 主程式 退出了,所以 沒用 加個while 1 試下,你...