1樓:生活如歌
沒這麼用過,你的意思還是有鍵按下後通過串列埠傳送資訊,那直接呼叫一段傳送子程式就是了。
如果你非得用中斷,試試給ti,ri置1
2樓:大餅
能不能說說你要完成什麼功能?非要這麼實現我感覺是可以的,可是我想先知道你這是要幹什麼。
好吧,你可以把a鍵的外部中斷設定為邊沿觸發(下降沿)(假設是那個外部中斷的引腳是sbit ext0=p3^0),然後在中斷函式裡面寫上
int flag=1;
while(flag)
}我寫得這個沒加消抖,不過意思應該明白了吧
3樓:匿名使用者
這是不行的,如果是外部中斷的話,你可以講鍵接到外部中斷io口,可以實現,定時器中斷,可以接入到定時器io口,用計數器模式,也可以實現,但串列埠中斷卻不可以的 。
4樓:凌寒冰吻
如果用串列埠的話,按了a鍵(開啟串列埠),此時,傳送一個數字,並判斷是否符合,然後再按b,c鍵增加或減少數字,d鍵關閉串列埠.
如果不用串列埠的話,可以用a做一個位判斷標誌,按下時,可以進行b或c的加減,並進行數碼管的顯示,按d可以將a做的標誌清0.,,,
5樓:匿名使用者
貌似難實現,就算你能跳進中斷,你總不能呆在裡面不出來吧?中斷執行完後會自己返回的。
c52微控制器按下一個鍵進入中斷,再按這個鍵退出中斷可以實現嗎?
6樓:做而論道
可以的。
在中斷程式中,檢測按鍵,沒有按,就反覆檢測。
再次按下後,再退出中斷程式。
在51微控制器中,按一下按鍵1,執行一個程式功能1,按按鍵2,執行程式功能2,按鍵3,執行功能3
7樓:匿名使用者
設定外部中斷
,再copy中斷函式裡設定一個flag,
若按鍵1觸發中斷則,flag=1:其它兩個類似再主函式裡設定
while(1)
else if(flag==2)
else if(flag==3)}
51微控制器串列埠通訊寫字元,51微控制器串列埠通訊寫一個字元
你主程式這麼寫,傳送一個字元後,微控制器並不停止。應該加一行無限迴圈語句,while 1 才能停,如下 include include unsigned char ch bit read flag 0 void init serialcom void 串列埠通訊初始設定 向串列埠傳送一個字元 voi...
51微控制器,通過串列埠助手向微控制器傳送字串,微控制器將字串逆序傳送回計算機,用C語言程式設計
電腦通過串列埠助手向微控制器傳送字串,微控制器定義一個可以儲存7個字元的陣列,依次儲存接收的字串,當接收到7個字串後,就可以從陣列的最後一個字元向前傳送每一個字元給電腦就可以了。剩下的就是串列埠初始化,串列埠接收和傳送程式了,就比較好寫了。其實,電腦傳送任意的7個字元的字串都可以,微控制器收到後就可...
51微控制器串列埠傳送「 」是怎麼回事
51微控制器的串列埠,是個全雙工的串列埠,傳送資料的同時,還可以接收資料。當序列傳送完畢後,將在標誌位 ti 置 1,同樣,當收到了資料後,也會在 ri 置 1。無論 ri 或 ti 出現了 1,只要串列埠中斷處於開放狀態,微控制器都會進入串列埠中斷處理程式。在中斷程式中,要區分出來究竟是傳送引起的...