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位...