微控制器C語言程式

2022-07-07 19:27:12 字數 4959 閱讀 4780

1樓:產學研

#define uint unsigned int就是用unit替換unsigned int,unsigned int是c語言關鍵字,unit比較簡單

void delayms(uint x)//定義乙個函式,無返回值,引數是個 無符號整形的變數叫 x

uchar 上面不是定義了unsigned char 無符號字元型,就是8位乙個位元組的變數

。。。。

建議還是自己花兩天系統看看c語言的書吧,不難的

2樓:

大俠,首先你要弄清楚哪個是主函式,主函式是沒必要返回乙個值的!故可以是void main()

#define uchar unsigned char//

#define uint unsigned int//這兩句是巨集定義,定義以後你就可以用uchar代替繁瑣的unsigned char了。同理uint (兩者都是無符號的,題目暗示)

void delayms(uint x)//延時函式,總延時時間為x毫秒

//(for(i=0;i<120;i++);//在此延時一毫秒)

}led=~led,其中「~」是按位取反運算子,開啟開發板電源,p0^0預設是高電平,即1。二極體不亮。按位取反後變為低電平,即0。二極體變亮。

delayms(100);意思是延時100毫秒,即此二極體每100毫秒亮一下。

3樓:文子瘦

#include包含了所有介面和位址的名稱,不只是特殊功能暫存器,#define uchar unsigned char//#define uint unsigned int//是巨集定義,這樣定義以後,在接下來的程式當中就能用uint 代替unsigned int了,void delayms(uint x)//是乙個子函式,當呼叫時,就直接執行大括號裡面的語句,while(x--)//是迴圈語句,當x--=0時,就不滿足條件,跳出迴圈。它整個的功能就是乙個延時,等待微控制器處理完其它任務,這樣寫程式符合程式的規範化和可讀性的要求,

void是說明返回值是空的,即沒有返回值,可以不寫,led=~led;//是取反,每次執行這條語句就會使其值取反,若上次是0,則執行後其值變為1,

delayms(100);就是呼叫了上面的子函式,代表延時100ms

4樓:匿名使用者

#define uchar unsigned char//#define uint unsigned int//表示下面可以用uchar代替 unsigend char

用unit代替unsigned int

void delayms(uint x)//是定義乙個變數為x的名為delayms的函式,其實就是延時x秒的函式

while(x--)表示要一直迴圈到x=0為止,迴圈一次x=x-1led=~led表示取反,亮的變成不亮,不亮的變成亮delayms(100)就是呼叫delayms函式了,表示延時100ms

找譚浩強的c語言書看看,c語言學好就感覺輕鬆多了!

5樓:做而論道

從0起點學習微控制器,應該先從硬體、彙編入手。掌握了硬體,編寫程式,思路就清晰了。

先學軟體,特別是c51這樣對硬體依賴極強的軟體,有點像建造空中樓閣。

即使費了很大的勁,學會了c語言程式設計,也未必能設計微控制器的電路,解決不了實際問題。

這就是在 建造空中樓閣。

呵呵,「十天學會微控制器」!很多人都被忽悠了。

求寫一段簡單的51微控制器c語言**

6樓:

微控制器檢測高電平。1、可以用外部中斷,外接雷射感測器最好用普通光耦隔離一下,順便改成低電平觸發微控制器中斷。然後用位移指令移動跑馬燈,然後計數值加1.

2、可以用迴圈檢測,也建議用光耦隔離先,在main裡面不斷檢測p00,發現變化後,再次檢測以便確認,確認後同樣位移一下跑馬燈,然後計數加1。

7樓:

假如led是8位,輸出口為pb

void ledshift(void)

i=i<<1;

pb = i;}}

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

8樓:綠葉楓

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

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

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

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

9樓:曹超武術

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

10樓:匿名使用者

很多想學微控制器的人問我的第一句話就是怎樣才能學好微控制器?對於這個問題我今天就我自己是如何開始學微控制器,如何開始上手,如何開始熟練這個過程給大家講講。

先說說微控制器,一般我們現在用的比較多的的mcs-51的微控制器,它的資料比較多,用的人也很多,市場也很大。就我個人的體會怎麼樣才能更快的學會微控制器這門課。微控制器這門課是一項非常重視動手實踐的科目,不能總是看書,但是學習它首先必須得看書,因為從書中你需要大概了解一下,微控制器的各個功能暫存器,而說明白點,我們使用微控制器就是用軟體去控制微控制器的各個功能暫存器,再說明白點,就是控制微控制器那些管腳的電平什麼時候輸出高,什麼時候輸出低。

由這些高低電平的變化來控制你的系統板,實現我們需要的各個功能。至於看書,只需大概了解微控制器各管腳都是幹什麼的?能實現什麼樣的功能?

第一次,第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學微控制器看書看兩三天的就夠了,看**你一天能看五六本,看微控制器你兩三天看兩三遍就夠了,可以不用仔細的看。推薦一本書,就這一本就足夠,書名是《新編mcs-51微控制器應用設計》,是哈爾濱工業大學出版社出的的,作者是張毅剛。

大概了解一下書上的內容,然後實踐,這是非常關鍵的,如果說學微控制器你不實踐那是不可能學會的,關於實踐有兩種方法你可以選擇,一種方法:你自己花錢買一塊微控制器的學習板,不要求功能太全的,對於初學者來說你買功能非常多的那種板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、ad或da(原理一樣)、液晶、蜂鳴器,這就差不多了。如果上面我提到的這些,你能熟練應用,那可以說對於微控制器方面的硬體你已經入門了,剩下的就是自己練習設計電路,不斷的積累經驗。

只要過了第一關,後面的路就好走多了,萬事開頭難,大家可能都聽過。方法二:你身邊如果有微控制器方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。

對於高手來說,做個微控制器的最小系統板只需要一分鐘的時間,而對於初學者可就難多了,因為只有對硬體了解了,才能熟練運用。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你最好是自己買上一塊,畢竟自己有一塊要方便的多,以後做微控制器類的小實驗時都能用得上,還省事。

有了微控制器學習板之後你就要多練習,最好是自己有台電腦,一天少看電影,少打遊戲,把學習板和電腦連好,開啟除錯軟體坐在電腦前,先學會怎麼用除錯軟體,然後從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意願隨意流動時你已經入門了,你會發現微控制器是多麼迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,當你編寫的程式按你的意願實現時你比做什麼事都開心,你會上癮的,真的。做電子類的人真的會上癮。然後讓數碼管亮起來,這兩項會了後,你已經不能自拔了,你已經開始考慮你這輩子要走哪一行了。

就是要這樣練習,在寫程式的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,當得到解答後你會記住一輩子的,知識必須用於現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這麼多年大學,天天上課,你在課堂上學到了什麼?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,下學期開學回來忘的一乾二淨,是不是?

你學到什麼了?但是我告訴你微控制器一旦學會,永遠不會忘了。另外我再說說用彙編和c語言程式設計的問題。

很多同學大一二就開設了c語言的課,我也上過,我知道那時天天就是幾乘幾,幾加幾啊,求個階乘啊。學完了有什麼用?讓你用c語言編微控制器的程式你是不是就傻了?

書上的東西我們必須要會運用。微控制器程式設計用c語言或組合語言都可以,但是我建議用c語言比較好,如果原來有c語言的基礎那學起來會更好,如果沒有,也可以邊學微控制器邊學c語言,c語言也挺簡單,只是一門工具而已,我勸你最好學會,將來肯定用得著,要不你以後也得學,你一點彙編都不會根本無所謂,但你一點c語言都不會那你將來會吃苦頭。匯編寫程式**效率高,但相對難度較大,而且很羅嗦,尤其是遇到演算法方面的問題時,根本是麻煩的不得了,現在微控制器的主頻在不斷的提高,我們完全不需要那麼高效率的**,因為有高頻率的時鐘,微控制器的rom也在不斷的提高,足夠裝得下你用c語言寫的任何**,c語言的資料又多又好找,將來可移植性非常好,只需要變乙個io口寫個溫度感測器的程式在**都能用,所以我勸大家用c語言。

總結上面,只要你有信心,做事能堅持到底,有不成功不放棄的強烈意志,那學個微控制器來說就是件非常容易的事。

步驟:1.找本書大概了解一下微控制器結構,大概了解就行。不用都看懂,又不讓你出書的。(三天)

2.找學習板練習編寫程式,學微控制器就是練程式設計序,遇到不會的再問人或查書。 (二十天)

3.自己網上找些小電路類的資料練習設計外圍電路。焊好後自己除錯,熟悉過程。 (十天)

4.自己完全設計具有個人風格的電路,產品,。。。你已經是高手了。 。。。。

看到了嗎?下功夫乙個多月你就能成為高手,我就講這麼多了,學不學得會,下不下得了功夫就看你的了。

參考資料:

11樓:饒磊

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

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

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

C語言微控制器程式求助

void main 這種方法原理簡單易行,缺點是精度比定時器稍低,注意不要使x y溢位。我們還可以對上面的程式優化 void main 用計數器做!和中斷 中斷設定成 邊沿觸發中斷 在中斷的同時開啟計數器,並判斷是此時高電平還是低電平,然後等到下乙個中斷到來,將計數器的內容另存,然後清空重新計數 這...

微控制器(組合語言)程式,微控制器組合語言

開發當bai然是用c,又快又易懂好維 du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣乙個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本公升高時質量卻...

pic微控制器c程式的問題,PIC微控制器C程式的問題

學微控制器一定要先看微控制器的記憶體表,即map,知道微控制器內部的暫存器設定,及每個暫存器位址。上面的程式就是直接對暫存器操作,這是微控制器學習較高的境界。adr 8其實是對adr進行移位操作,8是2的三次方。即是把adr的位址左移三位。可以看成是 基位址 偏移位址的方式來取位址。bit應該是3位...