導航:首頁 > 操作系統 > 單片機學習心得

單片機學習心得

發布時間:2022-04-23 04:44:49

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

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

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

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

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

㈢ 學習單片機會心得

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

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

㈣ 電路與電子技術學習心得或體會

第一部分:硬體知識

一、 數字信號

1、 TTL和帶緩沖的TTL信號 (1、輸出高電平>2.4V,輸出低電平<0.4V。在室溫下,一般輸出高電平是3.5V,輸出低電平是0.2V。最小輸入高電平和低電平:輸入高電平>=2.0V,輸入低電平<=0.8V,雜訊容限是0.4V。

2,CMOS電平:

1邏輯電平電壓接近於電源電壓,0邏輯電平接近於0V。而且具有很寬的雜訊容限。

3,電平轉換電路:

因為TTL和COMS的高低電平的值不一樣(ttl 5v<==>cmos 3.3v),所以互相連接時需要電平的轉換:就是用兩個電阻對電平分壓,沒有什麼高深的東西。哈哈

4,OC門,即集電極開路門電路,OD門,即漏極開路門電路,必須外界上拉電阻和電源才能將開關電平作為高低電平用。否則它一般只作為開關大電壓和大電流負載,所以又叫做驅動門電路。

5,TTL和COMS電路比較:

1)TTL電路是電流控制器件,而coms電路是電壓控制器件。

2)TTL電路的速度快,傳輸延遲時間短(5-10ns),但是功耗大。COMS電路的速度慢,傳輸延遲時間長(25-50ns),但功耗低。COMS電路本身的功耗與輸入信號的脈沖頻率有關,頻率越高,晶元集越熱,這是正常現象。

3)COMS電路的鎖定效應:

COMS電路由於輸入太大的電流,內部的電流急劇增大,除非切斷電源,電流一直在增大。這種效應就是鎖定效應。當產生鎖定效應時,COMS的內部電流能達到40mA以上,很容易燒毀晶元。

防禦措施: 1)在輸入端和輸出端加鉗位電路,使輸入和輸出不超過不超過規定電壓。

2)晶元的電源輸入端加去耦電路,防止VDD端出現瞬間的高壓。

3)在VDD和外電源之間加線流電阻,即使有大的電流也不讓它進去。

4)當系統由幾個電源分別供電時,開關要按下列順序:開啟時,先開啟COMS電路得電源,再開啟輸入信號和負載的電源;關閉時,先關閉輸入信號和負載的電源,再關閉COMS電路的電源。

6,COMS電路的使用注意事項

1)COMS電路時電壓控制器件,它的輸入總抗很大,對干擾信號的捕捉能力很強。所以,不用的管腳不要懸空,要接上拉電阻或者下拉電阻,給它一個恆定的電平。

2)輸入端接低內組的信號源時,要在輸入端和信號源之間要串聯限流電阻,使輸入的電流限制在1mA之內。

3)當接長信號傳輸線時,在COMS電路端接匹配電阻。

4)當輸入端接大電容時,應該在輸入端和電容間接保護電阻。電阻值為R=V0/1mA.V0是外界電容上的電壓。

5)COMS的輸入電流超過1mA,就有可能燒壞COMS。

7,TTL門電路中輸入端負載特性(輸入端帶電阻特殊情況的處理):

1)懸空時相當於輸入端接高電平。因為這時可以看作是輸入端接一個無窮大的電阻。

2)在門電路輸入端串聯10K電阻後再輸入低電平,輸入端出呈現的是高電平而不是低電平。因為由TTL門電路的輸入端負載特性可知,只有在輸入端接的串聯電阻小於910歐時,它輸入來的低電平信號才能被門電路識別出來,串聯電阻再大的話輸入端就一直呈現高電平。這個一定要注意。COMS門電路就不用考慮這些了。

8,TTL電路有集電極開路OC門,MOS管也有和集電極對應的漏極開路的OD門,它的輸出就叫做開漏輸出。OC門在截止時有漏電流輸出,那就是漏電流,為什麼有漏電流呢?那是因為當三機管截止的時候,它的基極電流約等於0,但是並不是真正的為0,經過三極體的集電極的電流也就不是真正的 0,而是約0。而這個就是漏電流。開漏輸出:OC門的輸出就是開漏輸出;OD門的輸出也是開漏輸出。它可以吸收很大的電流,但是不能向外輸出的電流。所以,為了能輸入和輸出電流,它使用的時候要跟電源和上拉電阻一齊用。OD門一般作為輸出緩沖/驅動器、電平轉換器以及滿足吸收大負載電流的需要。

9,什麼叫做圖騰柱,它與開漏電路有什麼區別?

TTL集成電路中,輸出有接上拉三極體的輸出叫做圖騰柱輸出,沒有的叫做OC門。因為TTL就是一個三級關,圖騰柱也就是兩個三級管推挽相連。所以推挽就是圖騰。一般圖騰式輸出,高電平400UA,低電平8MA)

2、 RS232和定義

一、RS-232-C

RS-232C標准(協議)的全稱是EIA-RS-232C標准,其中EIA(Electronic Instry Association)代表美國電子工業協會,RS(recommeded standard)代表推薦標准,232是標識號,C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。。它規定連接電纜和機械、電氣特性、信號功能及傳送過程。常用物理標准還有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。 這里只介紹EIA�RS-232-C(簡稱232,RS232)。 例如,目前在IBM PC機上的COM1、COM2介面,就是RS-232C介面。

1.電氣特性

EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規定。

在TxD和RxD上:邏輯1(MARK)=-3V~-15V

邏輯0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制線上:

信號有效(接通,ON狀態,正電壓)=+3V~+15V

信號無效(斷開,OFF狀態,負電壓)=-3V~-15V

以上規定說明了RS-323C標准對邏輯電平的定義。對於數據(信息碼):邏輯「1」(傳號)的電平低於-3V,邏輯「0」(空號)的電平高於+3V;對於控制信號;接通狀態(ON)即信號有效的電平高於+3V,斷開狀態(OFF)即信號無效的電平低於-3V,也就是當傳輸電平的絕對值大於3V時,電路可以有效地檢查出來,介於-3~+3V之間的電壓無意義,低於-15V或高於+15V的電壓也認為無意義,因此,實際工作時,應保證電平在±(3~15)V之間。

EIA-RS-232C與TTL轉換:EIA-RS-232C是用正負電壓來表示邏輯狀態,與TTL以高低電平表示邏輯狀態的規定不同。因此,為了能夠同計算機介面或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平和邏輯關系的變換。實現這種變換的方法可用分立元件,也可用集成電路晶元。目前較為廣泛地使用集成電路轉換器件,如MC1488、SN75150晶元可完成TTL電平到EIA電平的轉換,而MC1489、SN75154可實現EIA電平到TTL電平的轉換。MAX232晶元可完成TTL←→EIA雙向電平轉換。

3、 RS485/422(平衡信號)

RS485採用差分信號負邏輯,+2V~+6V表示「0」,- 6V~- 2V表示「1」。RS485有兩線制和四線制兩種接線,四線制只能實現點對點的通信方式,現很少採用,現在多採用的是兩線制接線方式,這種接線方式為匯流排式拓樸結構在同一匯流排上最多可以掛接32個結點。在RS485通信網路中一般採用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個介面的「A」、「B」端連接起來。而忽略了信號地的連接,這種連接方法在許多場合是能正常工作的,但卻埋下了很大的隱患,這有二個原因:(1)共模干擾問題: RS-485介面採用差分方式傳輸信號方式,並不需要相對於某個參照點來檢測信號,系統只需檢測兩線之間的電位差就可以了。但人們往往忽視了收發器有一定的共模電壓范圍,RS-485收發器共模電壓范圍為-7~+12V,只有滿足上述條件,整個網路才能正常工作。當網路線路中共模電壓超出此范圍時就會影響通信的穩定可靠,甚至損壞介面。(2)EMI問題:發送驅動器輸出信號中的共模部分需要一個返回通路,如沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個匯流排就會像一個巨大的天線向外輻射電磁波。

由於PC機默認的只帶有RS232介面,有兩種方法可以得到PC上位機的RS485電路:(1)通過RS232/RS485轉換電路將PC機串口RS232信號轉換成RS485信號,對於情況比較復雜的工業環境最好是選用防浪涌帶隔離珊的產品。(2)通過PCI多串口卡,可以直接選用輸出信號為RS485類型的擴展卡。

RS-422標准全稱是「平衡電壓數字介面電路的電氣特性」,它定義了介面電路的特性。實際上還有一根信號地線,共5根線。由於接收器採用高輸入阻抗和發送驅動器比RS232更強的驅動能力,故允許在相同傳輸線上連接多個接收節點,最多可接10個節點。即一個主設備(Master),其餘為從設備(Salve),從設備之間不能通信,所以RS-422支持點對多的雙向通信。接收器輸入阻抗為4k,故發端最大負載能力是10×4k+100Ω(終接電阻)。RS-422四線介面由於採用單獨的發送和接收通道,因此不必控制數據方向,各裝置之間任何必須的信號交換均可以按軟體方式(XON/XOFF握手)或硬體方式(一對單獨的雙絞線)。 RS-422的最大傳輸距離為4000英尺(約1219米),最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在 100kb/s速率以下,才可能達到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為 1Mb/s。

RS-422需要一終接電阻,要求其阻值約等於傳輸電纜的特性阻抗。在矩距離傳輸時可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸電纜的最遠端。

4、 干接點信號

二、 模擬信號視頻

1、 非平衡信號

2、 平衡信號

三、 晶元

1、 封裝

2、 7407

3、 7404

4、 7400

5、 74LS573

6、 ULN2003

7、 74LS244

8、 74LS240

9、 74LS245

10、 74LS138/238

11、 CPLD(EPM7128)

12、 1161

13、 max691

14、 max485/75176

15、 mc1489

16、 mc1488

17、 ICL232/max232

18、 89C51

四、 分立器件

1、 封裝

2、 電阻:功耗和容值

3、 電容

1) 獨石電容

2) 瓷片電容

3) 電解電容

4、 電感

5、 電源轉換模塊

6、 接線端子

7、 LED發光管

8、 8字(共陽和共陰)

9、 三極體2N5551

10、 蜂鳴器

五、 單片機最小系統

1、 單片機

2、 看門狗和上電復位電路

3、 晶振和瓷片電容

六、 串列介面晶元

1、 eeprom

2、 串列I/O介面晶元

3、 串列AD、DA

4、 串列LED驅動、max7129

七、 電源設計

1、 開關電源:器件的選擇

2、 線性電源:

1) 變壓器

2) 橋

3) 電解電容

3、 電源的保護

1) 橋的保護

2) 單二極體保護

八、 維修

1、 電源

2、 看門狗

3、 信號

九、 設計思路

1、 電源:電壓和電流

2、 介面:串口、開關量輸入、開關量輸出

3、 開關量信號輸出調理

1) TTL―>繼電器

2) TTL―>繼電器(反向邏輯)

3) TTL―>固態繼電器

4) TTL―>LED(8字)

5) 繼電器―>繼電器

6) 繼電器―>固態繼電器

4、 開關量信號輸入調理

1) 干接點―>光耦

2) TTL―>光耦

5、 CPU處理能力的考慮

6、 成為產品的考慮:

1) 電路板外形:大小尺寸、異形、連接器、空間體積

2) 電路板模塊化設計

3) 成本分析

4) 器件的冗餘度

1. 電阻的功耗

2. 電容的耐壓值等

5) 機箱

6) 電源的選擇

7) 模塊化設計

8) 成本核算

1. 如何計算電路板的成本?

2. 如何降低成本?選用功能滿足價格便宜的器件

十、 思考題

1、 如何檢測和指示RS422信號

2、 如何檢測和指示RS232信號

3、 設計一個4位8字的顯示板

1) 電源:DC12

2) 介面:RS232

3) 4位3」8字(連在一起)

4) 亮度檢測

5) 二級調光

4、 設計一個33位1」8字的顯示板

1) 電源:DC5V

2) 介面:RS232

3) 3排 11位8字,分4個、3個、4個3組,帶行與行之間帶間隔

4) 單片機最小系統

5) 解碼邏輯

6) 顯示驅動和驅動器件

5、 設計一個PCL725和MOXA C168P的介面板

1) 電源:DC5V

2) 介面:PCL725/MOXA 8個RS232

1. PCL725,直立DB37,孔

2. MOXA C168P,DB62彎

3) 開關量輸出信號調理:6個固態繼電器和8個繼電器,可以被任何一路信號控制和驅動,介面:固態繼電器5.08直立,繼電器3.81直立

4) 開關量輸入調理:干接點閉合為1或0可選,介面:3.81直立

5) RS232調理:

1. LED指示

2. 前4路RS232全信號,後4路只需要TX、RX、0

3. 無需光電隔離

4. 介面形式:DB9(針)直立

第二部分:軟體知識

一、 匯編語言

二、 C51

該部分可以從市場上買到的N種開發板上學到,至於第一部分,需要人來帶吧。

為什麼要掌握這些知識?

實際上,電子工程師就是將一堆器件搭在一起,注入思想(程序),完成原來的這

些器件分離時無法完成的功能,做成一個成品。所需要的技能越高、功能越復雜、

成本越低、市場上對相應的東東的需求越大,就越成功。這就是電子工程師的自身

的價值。從成本到產品售出,之間的差價就是企業的追求。作為企業的老闆,是在

市場上去尋找這樣的應用;對電子工程師而言,是將老闆提出的需求或者應用按照

一定的構思原則(成本最低、可靠性最高、電路板最小、功能最強大等)在最短的

時間內完成。最短的時間,跟電子工程師的熟練程度、工作效率和工作時間直接有

關。這就是電子工程師的價值。

將電子產品抽象成一個硬體的模型,大約有以下組成:

1) 輸入

2) 處理核心

3) 輸出

輸入基本上有以下的可能:

1) 鍵盤

2) 串列介面(RS232/485/can bus/乙太網/USB)

3) 開關量(TTL,電流環路,干接點)

4) 模擬量(4~20ma、 0~10ma、0~5V(平衡和非平衡信號))

輸出基本上有以下組成:

1) 串列介面(RS232/485/can bus/乙太網/USB)

2) 開關量(TTL、電流環路、干接點、功率驅動)

3) 模擬量(4~20ma, 0~10ma,0~5V(平衡和非平衡信號))

4) LED顯示:發光管、八字

5) 液晶顯示器

6) 蜂鳴器

處理核心主要有:

1) 8位單片機,主要就是51系列

2) 32位arm單片機,主要有atmel和三星系列

51系列單片機現在看來,只能做一些簡單的應用,說白了,這個晶元也就是做單一

的一件事情,做多了,不如使用arm來做;還可以在arm上加一個操作系統,程序既

可靠又容易編寫。

最近三星的arm受到追捧,價格便宜,乙太網和USB的介面也有,周立功的開發系統

也便宜,作為學習ARM的產品來說,應該是最好的;作為工業級的控制,是不是合

適,在網友中有不同的看法和爭議。本公司使用atmel ARM91系列開發的1個室外使

用的產品,在北京室外使用,沒有任何的通風和加熱的措施,從去年的5月份到現

在,運行情況良好。已經有個成功應用的案例。

但對於初學者來說,應該從51著手,一方面,51還是入門級的晶元,作為初學者練

還是比較好的,可以將以上的概念走一遍;很多特殊的單片機也是在51的核的基

礎上增加了一些I/O和A/D、D/A;也為今後學習更高一級的單片機和ARM打下基礎。

再說了,哪個老闆會將ARM級別的開發放在連51也沒有學過的新手手中?

在51上面去做復雜的並行擴展是沒有必要的,比如,擴展I/O口和A/D、D/A等等,

可以直接買帶有A/D、D/A的單片機;或者直接使用ARM,它的I/O口線口多。可以使

用I2C介面的晶元,擴展I/O口和A/D、D/A,以及SPI介面擴展LED顯示,例如:

MAX7219等晶元。

市面上一些比較古老的書籍中還有一些並行擴展的例子,如:RAM、EPROM、A/D、

D/A等,我覺得已經沒有必要去看了,知道歷史上有這些一回事就行了;

這知識,是所有產品都具備的要素。所以要學,再具體應用。

㈤ 如何學習單片機

樓主,
單片機的定義:
就是相當於電腦CPU的簡化版。根據CORE(內核)可分為:
如8051內核稱為51系列單片機;
如arm7內核稱為ARM7系列單片機;
如arm920T.940T/926內核稱為ARM9系列單片機;
因為現在所有8/16/32位(51系列,MSP430系列,ARM系列;
此外還有MSP430和AVR、PLC等
學習方法:
1,你首先要學習C語言基礎,就相當於80%會單片機了,因為現在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C語言。
2,先看內核8051的單片機:台灣宏晶的STC89C51-DIP40/或其它如新茂,到網上買一個開發板,價格不會超過200元。
3,看一下單片機功能:包換內部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,編譯環境、編程軟體KEIL。
5,打開開發板的例子程序,在KEIL編譯,下載到板,看結果和說明是不是相符,達到這樣效果時,你心裡肯定很激動,這時你真正學會了單片機,你成功了!!!!!。
6,單片機C語言舉例:
sbit SPEAK = P1^5; //IO口定義為蜂鳴器控制
如果蜂鳴器正極接電源,SPEAK =0;蜂鳴器就會響,你看就是這么簡單。
unsiggne char temp;//定義TEMP為單位元組變數。
sfr PORTA P1;//將P1口定義為PORTA
7,當你過渡到ARM時,你就要學習LINUX和WINCE這兩個最基本的操作系統運用在單片機上。
8,同樣的理,你也要買ARM2410/2440為代表的開發板,慢慢按照說明書一步一步地操作,練習,不停地做實驗,就學會。
9,當然,你得打一份工作,關於我上所說的,開始工資不要要求太高,等你做完幾個項目後,你真正學會了,才跟老闆或上司提,這樣繼續或或另尋高就才有資本。
10,你也抽點時間看看《郭天祥十天學會單片機和c語言編》一書,鞏固一下理論知識。
總結:多做開發板上的實驗,你要多參與這樣的項目開發,慢慢就會了。

㈥ 51單片機的這些學習心得,你悟出來了嗎

聽課也有不少學問。學會聽課,對初中生的學習進步至關重要
課堂是學生學習的主要場所,課堂學習是學習的最主要環節,四十五分鍾課堂學習效益的高低,某種程度上決定著學生學習成績的好壞。
也許有的家長和學生會想,每個人都有一雙耳朵,聽課誰不會呀。其實不然,聽課也有不少學問。學會聽課,對初中生的學習進步至關重要。

首先,要集中注意力聽。心理學研究表明:注意能夠幫助我們從周圍環境所提供的大量信息中,選擇對當前活動最有意義的信息;同時,使心理活動維持在所選擇的對象上,還能使心理活動根據當前活動的需要作適當的分配和調整。所以,注意力對於學習尤為重要。集中注意力、專心致志才能學有所得;心不在焉、心猿意馬往往一無所獲。

其次,要帶著問題、開動腦子聽。有些同學聽課不善於開動腦子,不去積極思維,看似目不轉睛,但一堂課下來心中卻不留痕跡。俗話說:"學貴有疑","疑是一切學習的開始"。帶著問題聽課,就能使聽課有比較明確的目標和重點,增強聽課的針對性,從而提高課堂學習效率;帶著問題聽課,還能促使自己積極動腦,緊跟老師的教學節奏,及時理解和消化教學內容。

㈦ 求單片機學習心得

六個字「多看書,多實驗」

㈧ 我對單片機技術應用的認識與學習單片機課程的體會

http://user.qzone.qq.com/35323021/blog/1322075325
我這里寫有,自己去看吧

㈨ 跪求,單片機交通燈控制設計心得體會.

心得體會:

1、通過這次課程設計,加強了我們動手、思考和解決問題的能力。在整個設計過程中,我們通過這個方案包括設計了一套電路原理和PCB連接圖,和晶元上的選擇。這個方案總共使用了74LS248,CD4510各兩個,74LS04,74LS08,74LS20,74LS74,NE555定時器各一個。

2、在設計過程中,經常會遇到這樣那樣的情況,就是心裡想老著這樣的接法可以行得通,但實際接上電路,總是實現不了,因此耗費在這上面的時間用去很多。

3、我沉得做課程設計同時也是對課本知識的鞏固和加強,由於課本上的知識太多,平時課間的學習並不能很好的理解和運用各個元件的功能,而且考試內容有限,所以在這次課程設計過程中,我們了解了很多元件的功能,並且對於其在電路中的使用有了更多的認識。

平時看課本時,有時問題老是弄不懂,做完課程設計,那些問題就迎刃而解了。而且還可以記住很多東西。比如一些晶元的功能,平時看課本,這次看了,下次就忘了,通過動手實踐讓我們對各個元件映象深刻。認識來源於實踐,實踐是認識的動力和最終目的,實踐是檢驗真理的唯一標准。所以這個期末測試之後的課程設計對我們的作用是非常大的。

4、在製作PCB時,發現細心耐心,恆心一定要有才能做好事情,首先是線的布局上既要美觀又要實用和走線簡單,兼顧到方方面面去考慮是很需要的,否則只是一紙空話。

5、在畫好原理圖後的做PCB版時,由於項目組成員對單面板的不熟悉,導致布線後元件出現在另一邊,增加了布線難度,也產生很多不曾注意的問題,今後要牢記這個教訓,使以後布線更加順利。

6、經過兩個星期的實習,過程曲折可謂一語難盡。在此期間我們也失落過,也曾一度熱情高漲。從開始時滿富盛激情到最後汗水背後的復雜心情,點點滴滴無不令我回味無長。

生活就是這樣,汗水預示著結果也見證著收獲。勞動是人類生存生活永恆不變的話題。通過實習,我才真正領略到「艱苦奮斗」這一詞的真正含義,我才意識到老一輩電子設計為我們的社會付出。我想說,設計確實有些辛苦,但苦中也有樂,在如今單一的理論學習中,很少有機會能有實踐的機會,但我們可以,而且設計也是一個團隊的任務,一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學里一年的相處還趕不上這十來天的合作,我感覺我和同學們之間的距離更加近了;我想說,確實很累,但當我們看到自己所做的成果時,心中也不免產生興奮; 正所謂「三百六十行,行行出狀元」。我們同樣可以為社會作出我們應該做的一切,這有什麼不好?我們不斷的反問自己。也許有人不喜歡這類的工作,也許有人認為設計的工作有些枯燥,但我們認為無論干什麼,只要人生活的有意義就可。社會需要我們,我們也可以為社會而工作。既然如此,那還有什麼必要失落呢?於是我們決定沿著自己的路,執著的走下去。

同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發揚團結協作的精神。某個人的離群都可能導致導致整項工作的失敗。實習中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導致整個工作失敗。團結協作是我們實習成功的一項非常重要的保證。而這次實習也正好鍛煉我們這一點,這也是非常寶貴的。

對我們而言,知識上的收獲重要,精神上的豐收更加可喜。挫折是一份財富,經歷是一份擁有。這次實習必將成為我人生旅途上一個非常美好的回憶!

通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。

這次課程設計終於順利完成了,在設計中遇到了很多專業知識問題,最後在老師的辛勤指導下,終於游逆而解。同時,在老師的身上我們學也到很多實用的知識,在次我們表示感謝!同時,對給過我幫助的所有同學和各位指導老師再次表示忠心的感謝!

7、此次課程設計,學到了很多課內學不到的東西,比如獨立思考解決問題,出現差錯的隨機應變,和與人合作共同提高,都受益非淺,今後的製作應該更輕松,自己也都能扛的起並高質量的完成項目。

8、在此,感謝於老師的細心指導,也同樣謝謝其他各組同學的無私幫助!

PROTEL99SE 軟體工具應用技巧

Protel 99SE 提供了一系列的電路設計工具、優秀的文件管理系統,使用戶真正享受到方便快捷而又形象的設計自動化,使設計人員從煩瑣的電路設計中解脫出來,只需擁有一台電腦,即可完成從電路原理圖的設計到最終的印製電路板設計的全部過程。它包含有各功能模塊和標準的元件庫。

主要功能模塊:

Protel 99SE 具有出色的用戶管理技術,強大的自動化設計功能,靈活的編輯功能,簡單方便的操作環境和完善的元件庫管理能力。Protel 99SE
主要由兩大部分組成,每一部分有三個功能模塊

1.電路設計部分

a.
原理圖設計模塊,包括用於設計原理圖的原理圖編輯器,用於管理元器件的零件編輯器和各種相關報表生成器。

b. 印製電路板設計模塊,包括用於設計電路板的電路板編輯器,用於零件封裝管理的零件封裝編輯器,電路板組件管理器和各種相關報表生成器。

c.
無網格布線模塊。

2.電路模擬與PLD 設計部分

a.
可編程邏輯器件設計模塊,包括具有語法意識的文本編輯器,用於編譯和模擬結果的PLD
和用於觀 模擬結果的Wave.

b. 電路模擬模塊,包括一個功能強大的數字/模擬混合信號電路模擬器及用於模擬結果顯示、測量的波形顯示器。

c.
高級信號完整性分析模塊,主要包括一個高級信號完整性分析模擬器,能分析PCB 設計和檢查設計參數等。

㈩ 急求單片機學習心得一份!!!!懸賞20

單片機初學者幾個不易掌握的概念

一、匯流排:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中 ,連連線並不成為一個問題,因為各器件間一般是串列關系,各器件之間的連線並不很 多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各 器件之間的工作必須相互協調?所以就需要的連線就很多了,如果仍如同模擬電路一樣 ,在各微處理器和各器件間單獨連線線,則線的數量將多得驚人,所以在微處理機中引 入了匯流排的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線 上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩?器件同時送出數據,一 個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是是不允許的,所以 要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有 多個器件同時接收)。器件的數據線也就被稱為數據匯流排,器件所有的控制線被稱 控制 匯流排。
在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配 地址,才能 用,分配地址當?也是以電信號的形?給出的,由於存儲單元比較多,所以 ,用於地址分的線也較多,這些線被稱為地址匯流排。

二、數據、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的—數字,或者說都是?串『0』和『1』組成的序列。換言之,地址、指令也都是數據 。指令由單片機晶元的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的 一一對應關,不可以由 單片機的開發者更改。地址:是尋找單片機內部、外部的存儲 單元、輸入輸出口的依據,內 單元的地址值已由芯?設計者規定好,不可更改,外部的 單元可以由單片機開發者自行決,但有一些地址單元是一定要有的(詳見程序的執行過 程)。數據:這是由微處理機處理的 象,在各種 不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:

1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2方式字或控制字(如MOV TMOD,#3),3即是控制字。
3常數(如MOV TH0,#10H)10H即定時常數。
4實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗, 則執 兄 令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實 際?出的值。 理解了地址、指令的本質,就不難理解程序運行過程中為什麼會跑飛,會把數據當成指 令來 行了。

三、P0口、P2口和P3的第二功能用法 初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間 要有個切換的過程,或者說要有一條指令,事實?,各埠的第二功能完全是自動?,不需要?指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口 時,它們揮作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從 P3. 或P3.7送出,不需要事先用指令說明。事實上『不能作為通用I/O口使用』也並不是『不能?而是(使用者)『不會』將其作為通用I/O口使用。你完全可以在指令中按排一條S ETB P3.7的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會 這么做,因為這通常這會導致系統當潰(即死機)。

四、程序的執行過程 單片機在通電復位後8051內的程序計數器(PC)中的值為『0000?,所以程序總是從『0000』單元開始執行,也就是說:在系統的ROM中一定要存在『0000』?個單元,並且在『0000』單元中存放的一定是一條指令。

五、堆棧 堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的 一?份,特殊的是它存放和取用數據的方式,即所謂的『先進後出,後進先出』,並且 堆棧有特 的數據傳輸指令,即『PUSH』和甈OP』,有一個特殊的專為其服務的單元,即堆棧指 針SP 每當執一次 PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原 來值基礎上)?動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP值,就可以把堆棧設置在規定的內存單元中,如在程序開始時?用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這 么?條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元 開始往後?8H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成 數?的渾亂。不? 作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問 題。當設置好堆棧區?,並不意味著該區域成為一種專用內存,它還是可以象普通內存 區域一樣使用,只是一般情 下編程者不會把它當成?通內存用了。

六、單片機的開發過程 這里所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好 硬體下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實?這些 常?、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其 地址也就確定了,當 器件的功能被確定下來後,其控制字也就被確定了。然後用文本編緝器(如EDIT、CCED 等)寫軟體,編寫好後,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡 單?程序外,一般應用模擬機對軟體進行調試,直到程序運行正確為止。運行正確後, 就可以寫(將程序固 化在EPROM中)。在源程序被編譯後,生成了擴展名為HEX的目標文件,一般編程器能夠 識別種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉 一?說明: ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;設堆棧 LOOP: NOP LJMP LOOP ;循環 END

閱讀全文

與單片機學習心得相關的資料

熱點內容
郵箱設置域名伺服器錯誤什麼意思 瀏覽:669
硬碟解壓失敗受損藍屏 瀏覽:652
應用和伺服器是什麼意思 瀏覽:485
程序員需要知道的網站 瀏覽:713
微信支付頁面加密碼怎麼加 瀏覽:57
網路加密狗問題 瀏覽:698
cnc曲面編程實例 瀏覽:170
什麼app零粉分發視頻有收益 瀏覽:164
肯亞程序員 瀏覽:640
新科源碼 瀏覽:661
如何判斷伺服器有沒有帶寬 瀏覽:43
天正建築批量刪除命令 瀏覽:96
cad最下面的一排命令都什麼意思 瀏覽:456
pythonimportcpp 瀏覽:852
W10的系統怎麼給U盤加密 瀏覽:372
華為手機代碼編程教學入門 瀏覽:764
和彩雲沒會員怎樣解壓 瀏覽:636
androidimageview保存 瀏覽:389
新買店鋪什麼伺服器 瀏覽:886
文件夾能直接刻錄嗎 瀏覽:495