求助微控制器c語言程式問題,求助 微控制器C語言程式問題

2021-10-03 02:22:12 字數 2303 閱讀 4263

1樓:匿名使用者

第一個是在主程式中設定的定時計數器中斷相關引數設定,tmod=0x10:設定定時計數器的工作方式為方式1(16為計數器),也就是計數範圍為(0-65536)。th1=(65536-200)/256;:

tl1=(65536-200)%256;設定計數器的初值為:200. ea=1;開總中斷, et1=1;開定時計數器1;tr1=1;定時計數器啟動。

第二個是中斷服務程式,th1=(65536-200)/256; tl1=(65536-200)%256;這兩行是從新裝入初值。 clk=~clk;clk變數取反。

求助:微控制器c語言中延時程式怎樣計算?

2樓:人生灬舞曲

軟體除錯出來的時間 也就是延時函式呼叫到呼叫結束所用的時間 通過看彙編指令計算得出 彙編指令又和機器週期掛鉤 機器週期是通過晶振頻率計算出的 晶振頻率是人為選擇的 看你自己

3樓:做而論道

軟體的延時時間,取決於晶振頻率。

c 語言的執行時間,並沒有計算公式。

只能實驗,觀察結果。

4樓:匿名使用者

一般來說!這個程式的延時多少要看你的時鐘晶片的大小!

一般的回如果你用的是12m的晶振的話!答

void delay_ms(unsigned int nms) //ms延時精確的到ms

這個是我除錯過的!能精確到1ms的!

如果是11.0592m的話!

void delay_ms(unsigned int nms) //ms延時精確的到ms

如果是其他的,你就需要自己利用keil自己的**進行測試了!

求助微控制器c語言程式設計的一個序列中斷問題!

5樓:匿名使用者

強烈建議把 傳送放到主迴圈中。

中斷程式只是把設定下 現在的任務是接受還是傳送。

如unsigned char currtask***;

當要進行傳送的時候,在中斷程式中currtask***=1主迴圈讀取這個標誌位,來進行具體的傳送工作。

6樓:匿名使用者

第一種情況完全可以避免使用,中斷程式中完成接收,可以在其他子程式未必是中斷中實現傳送,因為序列通訊的中斷是硬體中斷其實現機制非常嚴格,而且這種在接收中斷中實現傳送的中斷也是不合常規邏輯的;

完全可以定義一個變數在接受中斷中將命令寫進去,中斷返回後,新增子程式實現命令的判斷,分別實現查詢傳送和接受中斷,此時的接收中斷也就是pc機通訊時使用的中斷服務;

7樓:

你出現了傳送中斷,就說明你往傳送緩衝區填資料了啊。

思路很簡單,接受時,分析命令,然後置相應的標記。推出中斷。在主迴圈裡處理命令,然後根據分支去做相應動作。

8樓:做而論道

51微控制器在中斷過程中,是不會響應同一級別的中斷申請的。

只有在執行了reti,退出中斷之後,才會響應後來的中斷申請。

在序列接收中斷中,應有兩個分支程式(ri=1、ti=1),每次進入這個中斷子程式裡,只是執行一種分支。

如果又出現了ti=1的事件,只有等到退出後,才會重新進入這個中斷子程式裡,執行另一種分支。

如何快速的學會微控制器c語言程式設計

9樓:綠葉楓

重點是:多看,多寫,多練,多思考!

微控制器有很多種,每種的側重都有不同,在自己想深入的微控制器方向選擇一本經典教材,然後將心沉入教材,開始用功學習。切記不要只看書,要讀懂書中例子程式,且動手程式設計實現它。

學習程式語言最好的方法是讀程式,讀程式是學習c語言入門最快,也是最好的方法。我們大家都應該有個體驗。讀了之後就要寫,這一點來不得半點懶惰。

如果你c語言功底紮實,按照選定教材鑽研幾天便可上手開發微控制器軟體。

10樓:曹超武術

選中要學的微控制器型號後,買塊開發板,對照著開發板上的演示程式跑一遍,把每個demo看懂,自己會修改,編寫程式,就ok了

11樓:饒磊

學習16的微控制器,學習的是ti的16位msp430微控制器,然後把底層的庫自己寫一遍,這個時候就會發現其實所有的微控制器就都是大同小異了,就是讀資料手冊,配置暫存器。

最後你可以用stm32這種32位的單片做一些東西,由於前面使用16位微控制器寫過底層,這個時候調庫就比較輕鬆,做專案更多的集中在演算法和電路上,而不是微控制器上了。

學習了以上這些,就會了微控制器,進而可以學習更高階的arm晶片,進而學習嵌入式作業系統的知識了,希望對你有所幫助。

求助微控制器c語言中延時程式怎樣計算

軟體除錯出來的時間 也就是延時函式呼叫到呼叫結束所用的時間 通過看彙編指令計算得出 彙編指令又和機器週期掛鉤 機器週期是通過晶振頻率計算出的 晶振頻率是人為選擇的 看你自己 軟體的延時時間,取決於晶振頻率。c 語言的執行時間,並沒有計算公式。只能實驗,觀察結果。一般來說!這個程式的延時多少要看你的時...

微控制器c語言程式設計的程式問題,一個微控制器c語言程式設計的程式問題!

define keyr p0 define keyc p0 這兩項後面去掉加分號!else p0 0x2f else p0 0x37 這些else多餘,一個if對應一個else define keyr p0 define keyc p0 char key 7 6 應該是全域性變數,應寫在主函式之前!...

bit用法 微控制器C語言,51微控制器C語言裡面,定義bit的方法,有哪些,請舉例,謝謝!

bit timerout 0 這裡的bit本質上和char int一樣的 功能一樣,型別不一樣 char是8位,int是16位,bit是1位。每個位元組是8位,就可以包含8個bit,bit只有兩個值,1和0.bit timerout 0 bit keypress 就是定義兩個長度為1位的變數。bit...