導航:首頁 > 操作系統 > 單片機的體會

單片機的體會

發布時間:2023-02-10 09:56:31

A. 基於51單片機的數字電壓表總結與體會

通過與同學的討論與認真計算設計分析所完成的,課程設計的任務是設計、組裝並調試一個數字電壓表測量系統。需要我們綜合運用單片機等課程的知識,通過查閱資料、方案論證與選定;設計和選取電路和元器件;分析指標及討論,完成設計任務。
在這次課程設計中,我學會了怎樣去根據課題的要求去設計電路和調試電路。動手能力得到很大的提高。從中我發現自己並不能很好的熟練去使用我所學到的高頻電路知識。在以後學習中我要加強對使用電路的設計和選用能力。但由於電路比較簡單、定型,而不是真實的生產、科研任務,所以我們基本上能有章可循,完成起來並不困難。把過去熟悉的定型分析、定量計算逐步,元器件選擇等手段結合起來,掌握工程設計的步驟和方法,了解科學實驗的程序和實施方法。這對今後從事技術工作無疑是個很好的訓練。通過這種綜合訓練,我們可以掌握電路設計的基本方法,提高動手組織實驗的基本技能,培養分析解決電路問題的實際本領,為以後畢業設計和從事電子實驗實際工作打下基礎。
還有就是每次在組團做試驗都會感覺特別的充實,我們可以按照自己設計的電路去完成,老師也不是死板的要求我們怎麼怎麼,而是給了我們盡可能大的自己決定的餘地,這次的元器件都是按照我們設計出來的電路參數給定的,而且每位老師都很耐心的為我們解決試驗中所出現的問題,最後真心的感謝老師對我們課程設計的建議和幫助,我們才得以圓滿的完成這次課程設計!

B. 我的單片機畢業設計的一些問題,求解答

什麼問題啊。
對於單片機的學習,自己多動手實踐,多交流。
跟著吳 鑒 鷹學習板學習。
當然,這其中也有很多問題,
第一、不夠細心比如由於粗心大意焊錯了線,由於對課本理論的不熟悉導致編程出現錯誤。
第二,是在學習態度上,這次課設是對我的學習態度的一次檢驗。對於這次單片機綜合課程實習,我的第一大心得體會就是作為一名工程技術人員,要求具備的首要素質絕對應該是嚴謹。我們這次實習所遇到的多半問題多數都是由於我們不夠嚴謹。
第三,在做人上,我認識到,無論做什麼事情,只要你足夠堅強,有足夠的毅力與決心,有足夠的挑戰困難的勇氣,就沒有什麼辦不到的。

C. 剛開始學單片機的第一步要幹嘛或者談談初學單片機應該怎麼做。

學單片機要有數電模電、計算機原理、匯編或者C等編程語言,等等這些基礎學科的知識。如果您不是做硬體電路的話,重點在編程語言,其它學科可以弱化但一定要知道一些基礎的東西。初學單片機要選擇一些廣泛使用的單片機,如51,avr,stm32等等,冷門單片機對初學者來說完全沒得搞。
真正上手的第一步,要寫一個循環點燈的程序。幾乎所有的開發板都有GPIO直接點LED的設計。這是最基本的對整個開發環境和開發流程的熟悉階段,就像學習某種編程語言首先要寫hello world一樣。
單片機的調試要比PC軟體或者嵌入式軟體的調試,難度高很多。PC軟體或者嵌入式軟體開發,因為有OS罩著,開發和運行環境基本不會出問題。但單片機出了問題,軟硬兩方面都要考慮,甚至軟硬方面都有問題。所以最好是有高手做現場指導,或者買一套帶有視頻教程的開發板,緊跟視頻來學習。否則出了問題搞不定的時候,初學者找不到頭緒,很難應付的,會打擊學習的積極性。
一定要買常式完整的大廠的開發板!哪怕貴點兒~(貴也貴不太多)

D. 學習MCS-51(具體以89C51為例)系列單片機的體會

http://www.38xian.com/index.aspx?menuid=4&type=articleinfo&lanmuid=19&infoid=685&language=cn

http://www.38xian.com/index.aspx?menuid=4&type=articleinfo&lanmuid=19&infoid=686&language=cn

又來看了一下,修改一下吧,加點文字

C語言學習總結
搞嵌入式的,大都用C語言寫代碼,本人從事單片機開發,也寫了不少的代碼,一直習慣用 if 、switch打天下,在定義數據結構的時候也只用到 字元型、整型、數組,位;很少用結構體,共用體,枚舉,因為咱C語言學得不好,和它們不熟,總感覺它們不那麼好招呼,重要的是自已覺得沒必要用上它們。隨著越來越多的積累,咱寫代碼的風格也在不斷的發生變化,從以前的喜歡將所有的函數及數據的定義寫在一個文件里到逐漸的將函數按功能模塊化、從以前的習慣直接在程序里寫常數到慢慢的開始用上宏來代替,咱編程的風格也逐漸開始正規化,編程水平也逐步提升,當然這些成績都源於咱不斷的學習,學習匠人的編程規范、學習herald的感悟設計、還有網上寫得非常出色的代碼以及STM32的固件函數庫,在咱的不斷領悟和思考下,總結了幾點關於C語言的用法,與大家共同分享。

一、 學習匠人的頭文件包含巧妙用法
當一個頭文件被多個C文件包含,且該頭文件中定義了這些C文件的公共變數,則在編譯的時候會出現重復定義,導致編譯通不過,通常我們會採用如下兩種做法來解決上述問題。
(為了讓問題表述得更清楚,我們假設兩個C文件C1,C2,C3,一個頭文件H1,C1,C2,C3有兩個公共變數V1和V2)
1、 在C1文件中定義變數V1和V2,在C2和C3文件中對V1,V2用extern聲明;
2、 在C1文件中定義變數V1和V2,在H1中對V1,V2用extern聲明,然後在C2和C3文件中包含H1;
很顯然,以上兩種方法都要對V1和V2書寫至少兩次,一次定義,一次外部聲明,且不是在同一文件下,這樣不利於管理和修改,有沒有一種方法可以讓這些公用的變數放在一個文件里,且只要書寫一次呢?
偶在二姨那裡無意中看到匠人的發帖,就是關於該問題的討論,現在我轉發一下,與大家同共分享。首先我們將要用到的公共變數全部書寫到com.h文件中,每一個變數在定義前加一個符號EXT_,當該頭文件被main.c函數包含時,定義EXT_為空,表示com.h中的變數在main.c中被定義,當被其它文件包含時,定義EXT_為extern,表示外部聲明,如:
Com.h文件:
//避免重復定義
#ifdef root
#define EXT_
#else
#define EXT_ extern
#endif

//全局變數
EXT_ u8 variable1; //該變數在三個C文件中都要用到

Main.c
#define root //在包含com.h前定義root
#include "com.h"

二、 用結構體的方式來定義匯流排或外設地址
當一個整體包含不同類型的多個成員時,通常用結構體來定義結構體變數,這樣內存會將這些變數按照遞增的方式分配到相鄰的地址(不對齊的地方會有填充),按「結構體名.成員名」的方式訪問結構體內的成員,這是訪問結構體變數的方式;但是還有一種指向結構體變數的指針,它可以將某個地址轉換成該結構體類型的指針,比如寄存器的定義:
(以下是摘自STM32固件函數庫,關於GPIO的定義)
typedef struct
{
vu32 CRL; //0
vu32 CRH; //偏移量4
vu32 IDR; //偏移量8
vu32 ODR;
vu32 BSRR;
vu32 BRR;
vu32 LCKR;
} GPIO_TypeDef;

#define GPIOA_BASE ((u32)0x40010800) //GPIOA的基地址為0x40010800
#define GPIOA (GPIO_TypeDef *) GPIOA_BASE; //強制類型轉換為GPIO_TypeDef類型的指針

這樣在操作GPIOA的寄存器時只要這樣寫就可以了
讀: X="GPIOA-">CRL; 寫:GPIOA->CRL=X;
或 讀: X=(*GPIOA).CRL; 寫:(*GPIOA).CRL =X;

當然,要達到上述目的也可以採用如下方式
#define GPIOA_ CRL 0x40010800
#define GPIOA_ CRH 0x40010804
#define GPIOA_ IDR 0x40010808
#define GPIOA_ ODR 0x4001080C
#define GPIOA_ BSSR 0x40010810
#define GPIOA_ LCKR 0x40010814

很明顯,第一種書寫方式更加正規化,且當定義多個GPIO時,只要將其它GPIO的基地址強制轉換為該結構類型的指針即可。

再來看看一個定義外部匯流排的例子
typedef struct
{
vu8 CH375_DATA;
vu8 CH375_CMD; //偏移量1
} CH375_TypeDef;
#define CH375 ((CH375_TypeDef *) 0x6c000000)
CH375-> CH375_DATA=data; //往0x6c000000地址處寫數據
CH375-> CH375_CMD=cmd; //往0x6c000001地址處寫命令
怎麼樣,是不是方便多了。重要的是代碼的觀賞和可讀性提高了。

三、 用枚舉數據類型來定義特定的狀態
在實際問題中,有些變數的取值被限定在一個有限的范圍內。例如,一個函數在操作過程中會返回幾個特定的狀態:操作成功,操作失敗,忙,等等。如果我們直接在函數里用0,1和2來表示這三種狀態,有時偶爾會出現數值與實際狀態對不上號的情況,造成置狀態和判斷狀態錯誤,那麼我們可以在程序里用宏或者枚舉來事先定義好這些狀態。
如:用宏定義:
#define Sucess 0
#define Failure 1
#define Busy 2

用枚舉
typedef enum { Sucess = 0, Failure , Busy } FlagStatus;

四、 用共用體類型定義共享內存空間
共用體類型定義的數據是將多個成員共享同一內存空間,該空間的大小為最大成員的大小,其用法與結構體完全相同,但值得注意的是不能同時引用多個成員,在某一時刻只能使用其中之一成員。
在程序中如果全局變數比較多,包含幾個結構和數組,如果這些全部定義的話勢必會佔大量的內存,有可能還會導致單片機內存不夠,如果能讓幾個不同時用到的數組和結構變數共享一段內存,則能省出很多的內存空間。
比如以下輸入輸出若不同時進行,則可以共享同一段內存空間
union {
struct {
unsigned char Flag;
unsigned char Type;
unsigned char State;
unsigned long DataLen;
unsigned char Buffer[64];
}DataOut;
struct {
unsigned char Flag;
unsigned char Type;
unsigned char State;
unsigned long DataLen;
unsigned char Buffer[64];
} DataIn;
} BOC;

C語言博大精深,豐富多彩,用得好能很好的發揮它的作用,同時學習好的編程方法養成良好的編程習慣對於一名設計人員來說也是極其的重要,以上四點都是本人自身積累和學習的一些總結,希望能夠與大家一起共同交流,共同學習和提高。

個人珍藏的好文章,貼出來分享

E. 單片機課程設計心得體會範文1000字

做了兩周的課程設計,有很多的心得體會,有關於單片機方面的,更多的是關於人與人之間關系方面的。
我們組一共有三個人,但其他兩個人是真的神龍見首不見尾,除了在最後答辯的時候他們一起坐在了我旁邊,冠冕堂皇的指著我畫了幾遍的圖說了幾嘴,我想可能他們自己都不知道自己在說怎麼,雖然有的東西他們也答出來了。我佩服他們的勇氣,羨慕他們的運氣(我見到的很多做了10天的人最後的成績都有不如他們的),但是鄙視他們的做法。
所幸的是,我得到了很多同學的幫助。我想沒有他們我可能都要放棄了,因為我本人對單片機也並不是很熟悉,學的東西好像它是它,我是我似的,理論聯系不了實際。以前的匯編語言沒學好,一開始的程序這塊兒就要令我抓狂了。後來請教我們班的一個男生,每次跟他一起到試驗室調試程序(他們組也只有他一個人動手),看他邊做邊給我講解。最後在開發機上做出來的時候,雖然不是我自己寫的,但看他那麼高興,我也有一種分享到的成就感。後來我們組就用了他寫的程序,他自己又抽空做了些拓展。
接下來就是做硬體方面的焊接工作了。沒想到這項看起來不需要多少技術的工作卻是非常的勞心勞力。很多次是早上起來帶瓶水帶些吃的到實訓中心,一泡就是一天。我看到有很多人跟我一樣,不同的是他們是三三兩兩,而我大部分時間都是一個人做。在這個時候也有很多人幫助我,或是熱心的幫我帶飯,或是在我打盹兒的時候幫我做點焊接。大家都鼓勵我,即使最後出不來東西,但是一定要堅持把它做完。當我想放棄的時候,我也這么對自己說,即使你做出來的是次品甚至不合格品,但是你一定要拿出來一件成品。
在要驗收前,終於做了一件成品出來,不幸的是它真的是一件不合格品。幫我的那個男生做的已經出來了,所以最後應該還是我的焊接方面的問題。有一點灰心,想再重做來不及了,單是檢查線路卻也查不出來什麼問題。那麼就准備答辯吧。我對著電路圖再看課本,發現以前很多覺得很難記的東西現在記起來容易多了,因為整天都在同它們打交道。51的引腳及其功能,a/d轉換器的,驅動器的,所有我用到的我都一再的看書了解,同時請教同學我看書過程當中的疑惑。在這個過程中又發現了以前焊接當中出的一些問題,能改的就改,不能改的,咳,要是時間再多一些,或者我能早點做好,要是不只是我一個人動手……算了吧,不要想那些如果,還是准備我自己的,做好我現在能做的吧。
還好,驗收還算成功,得了3分,不是很高,但是我覺得對我來說已經很好,代表了我真實的水平,我覺得我對單片機的一些知識在這個動手的過程中真的是從無到有增長的。同時我也盡量不去想別人得了多少分,沒有什麼不平衡的,有些人付出的是努力,有些人付出的是風險代價,其實這也沒有什麼不一樣,這一點我早就了解。
最後,我發現自己對單片機竟然也有了一點興趣,想暑假回家以後自己去買一些東西來做,再補一補匯編語言。有什麼問題請教下以前的那些老同學好了,他們好厲害,在高中勞動課就成功的做出過調頻收音機,大一暑假的時候參加了學校的電子競賽培訓接著比賽,不過後來怎麼樣我就不知道了。汗。看來要多保持聯絡,這次回家就好好找他們敘敘舊。

F. 單片機最小系統焊接實訓心得體會的範文

系統以AT89S51 為核心部件,利用軟體編程,通過鍵盤控制和液晶顯示實現了密碼鎖的功能、報警功能,並能防止多次試探密碼,能實現本設計題目的基本要求和發揮部分。盡量做到硬體電路簡單穩定、減小電磁干擾和其他環境干擾,充分發揮軟體編程的優點,減小因元器件精度不夠引起的誤差。本設計方案的智能密碼鎖,具有造價低,工作可靠,功能多,智能化,實用性強等特點,在許多場合都能應用,並且控制智能化、靈活。
由於時間有限和本身知識水平的限制,本系統還存在一些不夠完善的地方,要作為實際應用還有一些具體細節問題需要解決。例如:擴展紅外探測技術,指紋識別技術,語音識別技術,圖像識別技術等等。這樣更能滿足社會的發展和人民的需求。
隨著計算機科學及感測技術的不斷發展,我們相信在不久的將來密碼鎖和相關技術將發展成熟,為提高人們的生活質量中發揮更大的作用。

踉踉蹌蹌地忙碌了兩個月,我的畢業設計課題也終將告一段落。設計實物也基本達到預期的效果,但由於能力和時間的關系,總是覺得有很多不盡人意的地方,譬如功能不全、外觀粗糙……數不勝數。但我可以自豪的說,這裡面的每一段代碼,都有我的勞動。當看著自己的程序,自己成天相伴的系統能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。
畢業設計,也許是我大學生涯交上的最後一個作業了。想藉此機會感謝一直以來給我幫助的所有老師、同學,你們的友誼是我人生的財富,是我生命中不可或缺的一部分。我的畢業指導老師吳慧峰老師,她一直都以一位長輩的風范來容諒我的無知和沖動,給我不厭其煩的指導。在此,特向她道聲謝謝。
這次做論文的經歷也會使我終身受益,我感受到做論文是要真真正正用心去做的一件事情,是真正的自己學習的過程和研究的過程,沒有學習就不可能有研究的能力,沒有自己的研究,就不會有所突破,那也就不叫論文了。希望這次的經歷能讓我在以後學習中激勵我繼續進步。

G. 學習單片機會心得

首先,學習單片機要有一定的基礎:電子技術方面要有數字電路和模擬電路等方面的理論基礎,特別是數字電路;編程語言要求匯編語言或C語言。要想成為單片機高手,建議初學者首先學習匯編語言,學的差不多的時候,轉入C語言學習。盡管匯編語言屬於低級語言,編程效率低,但是較C語言具有目標代碼簡短,佔用內存少,執行速度快等優點,更重要的是能使初學者盡快熟悉單片機的內部結構,並能對其進行精確的控制。匯編語言在單片機教材裡面都會涉及,不需要單獨購買教材和學習。C語言是一門學問,有很多專業書籍來講解,並且對我們今後的編程生涯有絕對的好處,因此要深入學習,千萬不要自以為看了某某的視頻教程就以為掌握了C語言,那隻是C語言的一部分。在這里給大家推薦一本單片機C語言程序設計參考書,馬忠梅等著,北京航空航天大學出版社出版的《單片機的C語言應用程序設計》,要求C語言基礎。如果沒學過C語言,建議學習清華大學譚浩強編寫的C語言程序設計,這本書寫的不錯,通俗易懂。

其次,是單片機教材選擇。單片機是一門非常重視實踐的技術,不能總是看書,但要學習它首先應看書,對單片機引腳、內部結構、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能幹些什麼?剛開始時,也許你看不明白,但這並不要緊,因為你還缺乏實踐經驗。現在單片機應用廣泛,因此各個廠家分別推出了自己的單片機,按內部結構體系派系分:51系列、PIC系列、AVR系列、摩托羅拉等等……我們沒必要每樣都學!因為他們的編程方法和調試過程以及內部指令結構有一定的相似,只要學精通一款就OK了!尤其是用C語言編程,就幾乎不用分什麼派系,但是我們要選擇一款有代表性的知識范圍廣,並且入門容易,書籍多。一般來說,MCS-51系列單片機已經得到廣泛的普及和應用,市場上它的資料也比較多,用的人也很多。

H. 單片機學到什麼樣子才算是高手了

1,精通C和匯編,缺一不可
2,精通常用演算法,如PID調節、CRC、各種數學函數在單片機中靈活實現以及應用
3,精通兩個以上不同系列MCU的軟硬體
4,精通各種串列數據介面的軟硬規范
5,精通各種大功率驅動任務的實現
6,精通各種單片機開發會涉及到的軟體
7,熟悉上述涉及到的以及可能涉及到的器件、模塊
8,熟悉所有在開發任務中可能設計到的機械、化學、材料等基礎知識
9,擁有110以上的智商
10,永遠覺得還有很多東西需要去學習
11,嚴謹的設計理念,善於統籌協調成本與性能的關系
12,較強的知識產權意識,尊重自己以及他人

都以為單片機簡單是吧?就那麼一個小小的電子晶元,但它涉及的東西太多太多。。。。。。
哥玩的不是單片機,是寂寞~~~

I. 《單片機》課程學習總結

《單片機》課程學習總結

篇一:《單片機》課程學習總結

《單片機》這門課程我已經學了一個學期了,在這一個學期的學習過程中,我一開始不怎麼懂得編程,但慢慢的我現在已經不僅會讀程序還會寫程序了。真為自己一個學期來努力學到的單片機知識只是而感到高興。

怎麼學單片機?也常看到有人說學了好幾個月可就是沒有什麼進展。當然,受限於每個人受到的教育水平不同和個人理解能力的差異,學習起來會有快慢之分,但我感覺最重的就是學習方法。一個好的學習方法,能讓你事半功倍,這里說說我學習單片機的經歷和方法。

我覺得學習單片機首先要懂得C語言,因為單片機大多說都是靠程序來實現的,如果看不懂程序或則不懂的編程是很難學會單片機的。學習單片機首先要明白一個程序是怎麼走的,要完全懂得程序每一個步驟的意思。其次要懂得每一條指令的意思,不能盲目地去靠背指令,這是記得不牢靠的,最主要的還是靠了解。學習單片機最主要的對89C51晶元內部結構有全方面的,只要了解了89C51才能知道單片機實現什麼樣的功能和作用,才能對單片機有更深一步的了解。 通過一個學期《單片機》這門課程的學習,我也從中有了不少心

得和體會想和大家分享一下。

萬事開頭難、要勇敢邁出第一步。開始的時候,不要老是給自己找借口,不要說單片機的程序全是英文,自己看不懂。遇到困難要一件件攻克,不懂指令就要勤奮看書,不懂程序就先學它,這方面網上教程很多,隨便找找看一下,做幾次就懂了。然後可以參考別的人程序,抄過來也無所謂,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎麼一回事,無論寫大程序還是小程序,要做的工序不會差多少。然後建個程序,加入項目中,再寫代碼、編譯、運行。必須熟悉這一套工序。個人認為,一塊學習板還是必要的,寫好程序在上面運行一下看結果,學習效果會好很多,模擬器就看個人需要了。單片機是注重理論和實踐的,光看書不動手,是學不會的。

知識點用到才學,不用的暫時丟一邊。厚厚的一本書,看著人頭都暈了,學了後面的,前面的估計也快忘光了,所以,最好結合實際程序,用到的時候才去看,不必說非要把書從第一頁看起,看完它才來寫程序。比如你寫流水燈,完全就沒必要看中斷的知識,專心把流水燈學好就是了,這是把整本書化整為零,一小點一小點的啃。 程序不要光看不寫,一定要自己寫一次。最開始的時候,什麼都不懂,可以抄人家的程序過來,看看每一句是干什麼用的,達到什麼目的,運行後有什麼後果。看明白了之後,就要自己寫一次,你會發現,原來看明白別人的程序很容易,但到自己寫的時候卻一句也寫不出來,這就是差距。當你自己能寫出來的時候,說明你就真的懂了。

必須學會掌握調試程序的方法。不少人寫程序,把代碼寫好了,

然後一運行,不是自己想要的結果,就暈了,然後跑到論壇上發個帖子,把程序一貼,問:為什麼我的程序不能正常運行?然後就等別人來給自己分析。這是一種很不好的行為,應該自己學會發現問題和學會如何解決問題。這就需要學習調試程序的方法,比如KEIL里,可以下斷點啦,查看寄存器內容等等,這些都是調試程序的手段,當你發現你寫的程序運行結果和你想像中不一樣的時候,你可以單步,也可以下斷點,然後跟蹤,查看各相關寄存器內容,看看程序運行過中是不是有什麼偏差,找出影響結果的地方,改正過來。這一個過程非常重要,通過程序的排錯,你可以學到的知識是書上得不到的。

找到解決問題思路比找到代碼更重要。我們用單片機來控制周邊器件,達到我們想到的目的,這是一個題目,而如何寫出一個程序,來控制器件按你想要的結果去運作,這個就是解題的思路。要寫程序,就得先找到解決問題的思路,你學會找出這個解題思路,比你找到代碼更為重要。不少人很喜歡找人家的代碼,有的人甚至有了代碼就直接復制到自己的程序中,可以說,這不是一種學習的態度,無助於你編程水平的提高。

我幾乎不怎麼看人家的代碼,多數時候是看別人的思路,有方框圖最好,沒有的話文字說明也可以。要從代碼中看出別人處理問題的思路,是相當困難的,特別是大型的程序,看起來是非常的累人。所以現在我也明白了,以前讀書時說的程序流程圖很重要,現在算是知道了。當你知道一個問題怎麼去解決了,那麼剩下的只是你安排代碼去完成,這就已經不是什麼問題了。

開動腦筋,運用多種方法,不斷優化自己的程序。想想用各種不同方法來實現同一功能。這是一個練習和提高的過程,一個問題,你解決了,那麼你再想想,能不能換種寫法,也可以實現同一功能,或者說,你寫出來的代碼,能不能再精簡一點,讓程序執行效率更高,這個過程,就是一個進步的過程。很多知識和經驗的獲得,並不是直接寫在書讓你看就可以得到的,需要自己去實踐,開動腦筋,經驗才能得到積累,編程水平才能有所提高。

看別人的程序,學習人家的思路。這個在學習初期是很有用,通過看別人的程序,特別是老師寫出的具有一定水平的程序,可以使自己編程水平得到迅速的提高。同時,也可以結合別人的編程手法,與自己的想法融合在一起,寫出更高水平的程序,從中得到進步。但要注意,切忌將學習變成抄襲,更不是抄襲完了就認為自己學會了,這樣做只會使你退步。

嘗試編寫一下綜合應用的程序。從流水燈學起,到動態掃描,再到中斷,那麼,你可以試試寫一下時鍾這種綜合性應用的程序,不要小看時鍾,要寫好它不是一件容易的事情,它包括了單片機大部分的知識,比如有按鍵(IO讀取)、動態掃描(IO輸出)、中斷等,如何協調好各功能模塊正常工作,才是編程者需要學習的地方,當你單獨寫一個功能的時候,比如按鍵讀取,你可能感覺很容易,因為你的程序什麼也不做,只是讀按鍵。但把它和其它功能混合在一起,如何在整個程序運行中使每一部分都正常工作,這就不是寫一個按鍵讀取這么容易的事情,功能模塊之間有可能會互相影響,比如你需要讓數碼管既能顯示,又要去處理按鍵讀取,怎麼使這兩部分都正常工作,這就是一個協調過程。當你有了這個處理協調能力,你就算是入門了。

著重於培養解決問題的能力,而不是具體看自己編寫了多少程序或者做過什麼。「學單片機重點在於學習解決問題的思路,而不是局限於具體的晶元類型和語言」這一直是我的座右銘,是我學單片機學習單片機之後感悟出來的。真正的能力不是你曾經編寫過多少個可以實現的程序,而應該是:「遇到沒有解決過的問題,能利用自己已學的知識,迅速找到解決問題的方法。」這個才是能力。

面對一個新程序時,多自己開動腦筋,不要急於找別人的程序。

有不少人面對一個新程序時,第一步想到的就是網上找別人寫過的程序,然後抄一段,自己再寫幾句,湊在一起就完成任務,這雖然可能是省時間,但絕對不利你的學習。當你接到一個程序時,應該先自己構思一下整個程序的架構,想想如何來完成。有可能的話,畫一個流程圖,簡單的可以畫在腦子里,對程序中用到的數據、變數有一個初步的安排,然後自己動手去寫,遇到實在沒辦法解決的地方,再去請教老師或同學,或看別人是怎麼處理的,這樣首先起碼你自己動過腦想過,自己有自己的思路。如果你一開始就看別人的程序,你的思維就會受限在別人的思維里,自己想再創新就更難了,這樣你自己永遠也沒辦法提高,因為你是走在別人的影子里。

學會提問題。一般來說,學習過程中,你遇上的問題,多數人也有遇上的,所以如果有什麼不懂,你可以去問老師。我覺得學習單片機最主要的要多提問,對於一個自己不是太懂的程序,自己一定要多提問幾遍,這樣不但有利於加深自己的印象還能從中學到不少別人的方法。

經過一個學期我對《單片機》這門課程的學習,不僅讓我懂得了很多程序的編寫,還讓我學到了很多對自己有用的學習方法。總結這個學期來的我自己的學習情況,我覺得自己對編程進步了不少,懂得運用正確的學習方法學習單片機程序,不再去死記硬背指令了。所以我覺得學習要不斷總結學習方法,才能讓自己學習不斷進步。

交通信號燈設計報告

實驗目的: P1口的使用方法,延時程序的編寫

實驗要求:在一個十字路口分為東西南北走向,信號等按以下的狀態順序工作:

(1) 初始狀態0,東西、南北紅燈全亮。延時一定時間;

(2) 狀態1,南北綠燈亮通車,東西紅燈,延時一定時間;

(3) 狀態2,南北綠燈閃爍幾次轉黃燈,東西仍然紅燈,延時一定

時間;

(4) 狀態3,南北紅燈,東西綠燈通車,延時一定時間;

(5) 狀態4,南北仍然紅燈,東西綠燈閃爍幾次轉黃燈,延時一定

時間;

(6) 循環至狀態1,繼續

實驗電路和流程框架圖:

(1) 硬體電路

交通燈實訓設備用最小系統板和信號燈組合而成。

2、軟體編程

若各路口燈亮滅的時間間隔為2s鍾,燈光閃爍時間間隔為0.5s。用軟體延時的方法,晶振頻率12MHz時,一個機器周期為1us。

編寫交通信號燈程序:

編寫主程序,由R7做主程序的計數器,確定調用延時時間為0.5s,從而獲得交通燈的亮滅時間。

篇二:《單片機》課程學習總結

時光飛逝,一轉眼,一個學期又進尾聲了,本學期的單片機課程也結束,但通過這次單片機的學習,我不僅加深了對單片機理論的理解,將理論很好地應用到實際當中去,而且我還學會了如何去培養我們的創新精神,從而不斷地戰勝自己,超越自己。創新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。

當今社會隨著電子技術的發展,特別是隨著大規模集成電路的產生,給人們的生活帶來了根本性的變化,如果說微型計算機的出現使現代的科學研究得到了質的飛躍,那麼可編程式控制制器的出現則是給現代工業控制測控領域帶來了一次新的革命。在現代社會中,溫度控制不僅應用在工廠生產方面,其作用也體現到了各個方面。本學期我們就學習了單片機這門課程,感覺是有點難呢。也不知道整個學習過程是怎麼過來得,可是時間不等人。

剛開始學習的時候,對單片機沒有什麼認識,不知道什麼是單片機,更不知道它有什麼作用。通過學習才大體知道了單片機的一些知識。單片機是一塊在集成電路晶元上集成了一台有一定規模的微型計算機。簡稱為:單片微型計算機或單片機。單片機的應用到處可見,應用領域廣泛,主要應用在智能儀表、實時控制、通信、家電等方面。由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O介面、定時器/計數器以及串列通信介面等集成在一塊晶元上,構成了一個單片微型計算機,簡稱為單片機。它的應用范圍很廣,在工業自動化中應用有數據採集、測控技術。

在智能儀器儀表中應用有數字示波器、數字信號源、自動取款機等。在消費類電子產品中應用有空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有手機、小靈通等。在武器裝備方面應用有飛機、坦克、導彈、太空梭、智能武器等。剛開始學習時只能抄寫別人做成功的程序,一遍一遍的寫,從簡單的入手,逐步的積累,一步步的能夠將小的程序結合到一起,拼接成較為復雜一些的程序。但是程序不要只是看別人得,一定要自己寫過才是自己的。只有當你自己能寫出來的時候說明你真懂了。剛接觸KEIL時確實很讓人頭疼,使用 KEIL不會建項目、不會使用實驗板。然後可以參考已經成功的程序,抄過來,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,先建個項目,再配置一下項目,然後建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。其實當遇到問題一定要自己嘗試著解決,不能遇到問題就去問別人,自己一定要掌握解決問的方法和思路。對一個新項目時,自己一定要多想想,不要急著去看別人是怎麼寫的。應該先想一下程序的構架,想想如何來完成。然後自己動手去寫,理清自己的思路這樣更容易提高自己。

熟悉單片機的人都知道,要學好單片機可不是一件容易的事,倒不是因為單片機很難學,而是很難找到一本專為單片機入門者而編寫的教材。翻一下身邊的單片機教材,都好像是為已經懂單片機的人而寫的,一般先介紹單片機的硬體結構和指令系統,再是系統擴展和外圍器件,順便講一些應用設計(隨便說一下,很多書中的電路設計已經過時,並且有些程序還是錯誤的`)。如果按照此種學習方法,想進行產品開發,就必須先把所有的知識全部掌握了才可以進行實際應用。學習使用單片機只能靠循序漸進的積累,雖然單片機的課程只上了幾節就去上班了,但在學習的過程中有了一定的了解。下面就本人學習單片機的過程和經驗做簡要介紹。

首先,學習單片機要有一定的基礎:電子技術方面要有數字電路和模擬電路等方面的理論基礎,特別是數字電路;編程語言要求匯編語言或C語言。要想成為單片機高手,建議初學者首先學習匯編語言,學的差不多的時候,轉入C語言學習。盡管匯編語言屬於低級語言,編程效率低,但是較C語言具有目標代碼簡短,佔用內存少,執行速度快等優點,更重要的是能使初學者盡快熟悉單片機的內部結構,並能對其進行精確的控制。匯編語言在單片機教材裡面都會涉及,不需要單獨購買教材和學習。C語言是一門學問,有很多專業書籍來講解,並且對我們今後的編程生涯有絕對的好處,因此要深入學習,千萬不要自以為看了某某的視頻教程就以為掌握了C語言,那隻是C語言的一部分。在這里給大家推薦一本單片機C語言程序設計參考書,馬忠梅等著,北京航空航天大學出版社出版的《單片機的C語言應用程序設計》,要求C語言基礎。如果沒學過C語言,建議學習清華大學譚浩強編寫的C語言程序設計,這本書寫的不錯,通俗易懂。

其次,是單片機教材選擇。單片機是一門非常重視實踐的技術,不能總是看書,但要學習它首先應看書,對單片機引腳、內部結構、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能幹些什麼?剛開始時,也許你看不明白,但這並不要緊,因為你還缺乏實踐經驗。現在單片機應用廣泛,因此各個廠家分別推出了自己的單片機,我們沒必要每樣都學!因為他們的編程方法和調試過程以及內部指令結構有一定的相似,只要學精通一款就OK了!尤其是用C語言編程,就幾乎不用分什麼派系,但是我們要選擇一款有代表性的知識范圍廣,並且入門容易,書籍多。一般來說,MCS-51系列單片機已經得到廣泛的普及和應用,市場上它的資料也比較多,用的人也很多。給大家推薦一些參考書,學習時只需要一本就足夠拉。書名:《新編MCS-51單片機應用設計》,哈爾濱工業大學出版,作者:張毅剛;書名:《單片機原理及應用》,高等教育出版社,作者:張毅剛等;書名:《單片機高級教程:應用與設計》,北京航空航天大學出版社,作者:何立民。相關教材還有很多,在這不一一列舉。

然後,是開發工具和開發環境的選擇。選擇一塊合適的學習板,對於初學者來說一般無力接受,如果經濟條件允許、本人又對單片機很感興趣、有從事相關工作意向的話,鼓勵大家購買。隨便說一句,學習板功能要求太全,具有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD或DA、液晶、蜂鳴器等就差不多啦,畢竟,功能齊全的價格比較高。模擬器對單片機初學者來說既是那麼耳熟,同時又有些陌生,這主要是因為市場上傳統的模擬器價格都在千元以上,對經濟不是非常寬裕的人來說是不小的開支。同時模擬器是用來提高調試程序效率的,也不是非需不可的,如果你沒有模擬器,遇到程序出錯的時候,只好苦思冥想,反復燒寫調試。

隨便推薦一下,學林電子的51tracer模擬器,有興趣的朋友可關注一下。有了單片機教程板以後,先看下指導說明書,熟悉一下學習板,開卷有益。以後就得靠自己多練習了,將學習板與電腦連接好,先學會開發軟體的使用,然後從最簡單的流水燈實驗做起,按照你自己的意願控制流水燈,當你完成時,你會發現這是多麼愜意的事情。太好玩了,你會覺得這不是在學習,而是在玩,當你發現,單片機能夠按照你編寫的程序工作時,你會覺得非常興奮,比做什麼事情都開心,這樣你會慢慢迷上單片機,真的。不少網站上說搞定某個實驗,就恭維的告訴你一聲」恭喜你,學會了」自己學會了單片機,這有點可笑,這只能說明你算過關了,對單片機有了一定了解和會使用它了。但是單片機能完成的功能太多了,尤其是對外圍器件的控制,綜合起來能設計出許多意想不到的產品.因此除了入門外,精通可千萬別輕易說出口。

最後,在熟練掌握和應用後,那可以說對於單片機方面的硬體你已經入門了,剩下的就是自己練習設計開發各種課題,不斷的積累經驗。最終,自己完全設計具有個人風格的課題,產品,這樣你就是單片機高手拉。只要過了第一關,後面的路就好走多了,萬事開頭難,這大家可能都聽過。

有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,一邊學習理論知識,一邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。要堅定自己的學習信心,在付出持之以恆的努力,我相信自己能進一步加深對單片機的了解,在單片機的學習道路上走得更遠!

;

J. 單片機實驗心得體會

等有了發給你

閱讀全文

與單片機的體會相關的資料

熱點內容
lua中的android 瀏覽:441
加密貴還是植發貴 瀏覽:662
陽光壓縮機繼電器 瀏覽:969
修改阿里雲伺服器密碼 瀏覽:815
lk4102加密晶元 瀏覽:588
怎麼更改app店面 瀏覽:489
設備部門如何做好伺服器 瀏覽:849
androido下載 瀏覽:478
神奇高量戰法副圖源碼 瀏覽:830
匯編語言設計凱撒密碼加密器 瀏覽:392
主次梁加密是加在哪裡 瀏覽:664
模板匹配演算法matlab 瀏覽:825
外地程序員去北京 瀏覽:24
安卓機換蘋果12如何轉移數據 瀏覽:420
互聯網ntp伺服器地址及埠 瀏覽:613
pdf到word轉換器 瀏覽:269
飛行解壓素材 瀏覽:498
51單片機指令用背嗎 瀏覽:936
unityai演算法 瀏覽:834
我的世界ice伺服器如何打開pvp 瀏覽:975