日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2-《电子入门趣谈》第一章_一切从单片机开始-1.1单片机概述

發布時間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2-《电子入门趣谈》第一章_一切从单片机开始-1.1单片机概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

接下來,我將帶您走入一個神奇的世界。

? ? 我知道,當您拿起這本書翻開第一頁的時候,您心里肯定還是在嘀咕“我到底該如何入門電子科技呢?這個頭該怎么開呢?”。

? ? 好吧,我來告訴你,從單片機開始。

? ? 為何要從單片機開始,原因很簡單,這是一個科技入門的捷徑。請相信我,如果能把一塊單片機開發板學會了那基本上軟件編程和硬件電路知識就都能小有造詣了,因為你只有看懂了電路圖才能編出正確的程序,將程序都玩通了之后還可以試著自己設計新的電路,這是一個互相促進的過程,這也是好多電子愛好者達成的共識,好多人就是從單片機開始入門科技制作,然后他們學會了編程,學會了電子電路的實戰技巧,然后又試著開始制作屬于自己的競賽機器人,再然后獲得了很多個科技獎項,再然后你會發現他們學習其他的東西(尤其是和軟硬件沾邊的)往往比一般人要快,再然后等他們上研究生了或者畢業了往往要比別人有更好的發展前景,呵呵,這是一條因果使然的人生軌跡,而且,并不夸張。

? ? 好吧,不多說廢話了。

? ? 諸位看官。

? ? 讓我們直接進入今天的主題,單片機!

1.1 單片機概述

??? 1.1.1 啥叫單片機

? ? 您有時候也許會聽到周圍的大神們常常說道這樣的字眼,像什么“單片機”、“單片機開發板”、“單片機學習板”之類的,我第一次聽到“單片機”三個字的時候曾天真的以為單片機就是一臺很高深莫測的機器,也許長得很像一輛卡丁車,也許就像一部手機吧。但是很快就發現了自己被騙了,其實“單片機”還不如直接叫“單片”,因為他確確實實的就是一個孤單的小芯片。

? ? 那時候我經常懷著一份好奇,到底單片機是個什么東西,于是免不了的就往圖書館跑跑,結果不要緊,一眼望去《單片機基礎教程》《51單片機接口技術》《單片機原理》《51單片機設計實例》。。。我勒個去,滿滿的一屋子都是關于單片機的書,隨便的抽出這么幾本,發現不是講一些基本理論讓人看了一頭霧水,就是擺一堆亂七八糟的電路原理圖不知所云的。唉,就沒有一本通俗點的書告訴我單片機到底是個啥嗎?

? ? 好吧,下面慢慢地告訴你,它到底是個啥。

? ? 根據經驗,姑且以為初入門的親們往往有著兩個誤區,這兩個誤區說大不大說小不小,但是當親們成為大神之后再回看當年這兩個錯誤,就會哭笑不得。來看看這兩個想法你有沒有過呢?

? ? 1.單片機是一塊板子,上面有好多的芯片。

? ? 2.各種芯片工作是純靠板子上的電路完成的。

? ? 這兩個問題是不是有點似曾相識呢?如果沒有,那恭喜你,你已經比很多學生入門的時候要聰明很多啦~

首先第一個問題,第一段已經說了,單片機就是一個孤單的芯片,那塊大大的電路板叫做開發板,上面除了單片機(最小系統電路),還有各種芯片、數碼管、蜂鳴器、繼電器巴拉巴拉的。雖然單片機芯片的樣式、大小不同,什么直插式啦,貼片式啦,什么20引腳、40引腳啦,那都是浮云,重點是單片機就是一個片,而他的偉大之處正在于此,一個龐大的檢測和控制的核心,往往就是這小小的一個片兒。據知情人爆料,一個飛思卡爾單片機就有著控制一架波音747的能力,是不是有一種“哇塞”的感覺呢?

? ? 那么第二個問題,一個功能到底是怎么實現的呢?肯定不是純電路結構啦,其實我們可以簡單地理解為,單片機就是一個大腦,它通過識別和控制引腳電平的變化來工作。我們結合下圖一起來看一下。

? ? 那是一個電阻,串聯著一個發光二極管,您可以把它理解成一個燈泡,現在我想把這個燈泡點亮,需要怎么辦?用打火機嗎?肯定不行!只要稍微懂點電子知識的大家都知道,只需要在右面加一個正電源,比如5V,左端加一個0電壓,俗稱“地”,OK,一個點燈的項目就完成了。

?????

? ? 接下來我對上圖做一個改裝。把“地”去掉,取而代之的是一塊長方形芯片,再擴展成如下圖所示的樣子。

? ? 沒錯,中間的那個長方形的東西就叫單片機,假如你想讓燈L亮起來,只需要讓P1.4那個地方(學名叫管腳)作用等同于“地”即可,你想讓燈L滅掉只需要讓P1.4管腳作用等同于“+5V”電源,而這些我們都可以通過編寫程序來實現,具體怎么編寫程序這是后話暫且不表。各位再看P1.0管腳,目前的情況是,P1.0管腳通過了一個電阻直接連到了+5V電源,如果我這個時候按下了按鍵S,此時P1.0管腳會被短路直接接地,這個特性很有意思,單片機的P1.0管腳可以通過感應自身是高電平(高電平是數字電子技術中的術語,在上圖中就是代表+5V電源電壓)還是低電平(同高電平一個道理,在上圖中代表“地”)來判斷您是否按下了S,有了這個功能我就可以實現一個很有生活氣息的小項目:通過按鍵控制一個燈的亮滅,當P1.0檢測到有按鍵按下時就讓P1.4轉換一個電平狀態,從而達到控制燈泡L亮滅的目的。這就是一個簡單的測量與控制系統。很多人在沒學習單片機的時候可能會認為,按鍵部位通過一條線連接到P1.4處,然后按下按鍵燈就會亮。不知道你有沒有這樣認為過呢?這樣雖然從原理圖上看起來是沒錯的,但是單片機就悲催的毫無作用了……所以說,單片機就是可以控制一個引腳輸出高/低電平(電源電壓或者地)并可以檢測一個引腳輸入了何種電平的芯片。要實現這些功能,就需要我們親自動手編寫程序并且將程序送給單片機來實現,單片機就是憑著可以由用戶來編寫智能程序來實現各種功能而笑傲整個電子江湖,臭美去吧!

?

1.1.2 學習單片機

? ? 為啥要學?

? ? 單片機重要之處在于它的開發目的是將計算機的應用推廣到智能儀表、數據采集、自動測試、工業自動化領域中,讓非計算機專業的工程技術人員能容易地掌握計算機應用系統的設計、組裝和調試。???

? ? 與通用計算機如PC機相比,單片機結構簡單,只要外加一些擴展電路及必要的通道接口,就可以構成各種計算機應用系統。

? ? 再說點接點地氣的話,就像一開始提到的那樣,單片機是電子愛好者初學者們入門的一個不二捷徑,而且,相當的“不二”!

??? 怎么學?

? ? 不編程永遠學不會單片機!

? ? 單片機是門學問呀,怎么學?想做題海戰術?呃,您老給出道題看看。檢驗出真知,學單片機只能靠實踐。怎么實踐?編程!

? ? 就像人體會檢測身體狀況并做出反應一樣,單片機功能也是如此。你的胃空了,你的大腦會識別傳來的信號,然后輸出“餓”的信號讓你察覺。相似的,按鍵按下,某個管腳的電平置低,單片機識別電平變化并操縱連接LED的管腳置低電平。大腦有一套天生的系統,會識別,知道識別到信號變化后進行怎樣的操作。但是單片機怎么知道如何做呢?那就是靠你下載到里面的程序啦~

? ? 胃空了大腦會讓你感覺餓,腿抽筋了大腦會讓你覺得疼。那開發板上每個芯片也像身體的不同器官,有不同的信號變化和對應的不同操作。因此你要學習對不同芯片的程序的編寫。

? ? 編程說難也難,說容易也容易,編程的根本目的就在于控制單片機,由您來給單片機發口令,讓它執行各種任務,比如你對它喊“讓燈亮!”,它就老老實實的讓燈亮,再對它喊“睡大覺”,它就得心甘情愿的去睡大覺!只不過我們對單片機發口令的時候不是真的靠“喊”,而是靠“寫”,寫它能認識的文字。懂點單片機的發燒友應該都有這個體會,編程有一個經常要用到的關鍵東西:寄存器。

? ? 寄存器是一個神奇的東西,顧名思義,寄存器,寄存器,寄存東西的各種神器,你可以把單片機理解成一個大盒子,而寄存器就是這個大盒子中的一個個排列整齊的小盒子,小盒子里當然可以存東西,寄存器里面就是存放口令的地方,一個寄存器在單片機里對應一種功能,您對單片機編寫程序基本上都要對寄存器進行操作,它像一個個的箱子。小盒子里面還可以有小小盒子,比如一個小盒子又分為8個小小盒,寄存器也是一樣的,有的有8個空,有的有16個,通過往里面放1或者0,單片機就會改變它的工作狀態。比如在飛思卡爾單片機里,向PTB管腳的方向寄存器PTBDD里放1,管腳就成為輸出管腳,放0則成為輸入管腳。在AD轉換的程序中,寄存器的值還可以控制時鐘分頻、觸發方式、中斷開關等,有一個老師這樣跟我們說“單片機編程就是玩寄存器”,謙虛的我們一般會接上一句“編程就是被寄存器玩”,都無所謂啦。具體如何編程,且聽下文分解。???

?

1.1.3 世界上有多少種單片機

?

? ? 要問世界上有多少種單片機,這個問題恐怕和問世界上有多少種手機是一個意思,單片機多的數不勝數,各自都有各自的功能特點。比較主流的單片機類型有以下幾種。

1、Motorola單片機

? ? Motorola公司曾經是世界上最大的單片機生產廠商,產品覆蓋8位、16位、32位單片機領域,現在Motorola公司的單片機行業已經由Freescale公司接管。我們平時接觸到的QG8 、JM60等單片機就是出自Freescale旗下。Motorola單片機的運行速度快、高頻噪聲低、抗干擾能力強,特別適合在工業領域或其他惡劣環境下運行。M-Core架構的32位單片機在性能和功耗方面甚至超過了ARM7.

2、Microchip單片機

? ? 在8位單片機領域,Microchip公司是市場份額增長最快的單片機生產廠商,其CPU率先采用RISC結構,運行速度快,性價比也很高,適合用于生產量大、價格敏感、檔次一般的產品。

3、Intel單片機

? ? 同胞們,我們通常所說的51單片機實際上有STC-51和AT89S51兩種,其中著名的STC-51系列單片機就是STC公司以Intel公司在1980年推出的8位單片機MCS-51內核生產的,它能夠利用串口來直接燒寫程序所以被廣泛使用,因為是80年誕生的所以這一系列中最著名的單片機就起其名曰“8051”。后來Intel公司又推出了16位單片機,性能更強,適用于要求較高的場合。

4、三星單片機

? ? 三星公司以生產存儲器芯片著稱,但在存儲器市場供大于求的形勢下,它也涉足參與單片機行業的競爭了。三星公司里比較有名的單片機有KS51和KS57系列4位單片機,KS86和KS88系列8位單片機,KS17系列16位單片機和KS32系列32位單片機。三星公司走的思路是引進發達技術,生產與之兼容的單片機產品,以價格優勢取勝。比如在4位單片機上采用NEC的技術,8位單片機上引進Zilog公司的Z8技術,32位單片機購買ARM7內核,還有DEC、東芝公司的技術等。三星公司的裸片具有非常強的競爭力。

5、Zilog單片機

? ? Zilog公司的旗艦產片就是Z8單片機了,它采用多累加器結構,有較強的中斷處理能力,開發工具物美價廉。單片機以18引腳封裝為主,主要面向低端應用場合。

6、Atmel單片機

? ? 同胞們,不得不提的AT89S51單片機就誕生于Atmel公司,說51單片機的粉絲量居世界首位一點都不為過,尤其在學生領域里的受歡迎程度就更不用提了。Atmel公司是世界上最著名的高性能、低功耗、非易失性存儲器和數字集成電路的一流半導體生產公司。它最令人矚目的就是它的EEPROM電可擦除技術和閃存(Flash,也就是您手中的優盤)技術等。Atmel公司的單片機獨具特色而又性能優越,它在計算機外圍設備、通信設備、自動化、工業控制、宇航設備、儀器儀表和各種消費類產品中有著廣泛的應用前景,其生產的AT90系列是增強型RSIC架構、內含閃速存儲器的單片機,它有一個和51一樣如雷貫耳名字——AVR。目前AT89S51的生命力依然旺盛,目測這種51熱還會一直延續下去。

7、NEC單片機

? ? NEC單片機自成體系,以78K系列8位單片機生產量最高,它的發展思路主要是服務大客戶,并投入相當大的技術力量為大客戶開發產品。比如九安公司電子血壓計的主要CPU就基于NEC平臺。

8、華邦單片機

? ? 華邦單片機也屬于8051內核類單片機,它們的W78系列與標準的8051兼容,W77為增強型51系列,對8051的時序作了改進,在同樣的時鐘頻率下,其CPU速度提升了2.5倍,更重要的是具有了在線系統編程(In-System Programming,ISP)的功能,這種能力對程序調試來說具有劃時代的意義。

9. 等等等等。。。。

?

? ? 選擇單片機和選擇手機的道理也一樣,看你需要實現什么功能了,有的單片機沒什么功能,有的就集成了AD轉換、I2C、SPI等模塊,如果只是控制個燈泡之類的,51單片機足夠用了,如果需要測量信號或者需要和其他芯片通信那就選擇帶有AD轉換和通信功能的單片機,下圖是一些常見單片機的實物展示圖。樣子其實都差不多,長得跟小蜈蚣似的。

?? ????

? ??

? ? 再引申一下。剛才說的是單片機控制一個燈,其實單片機不止能控制燈,它能控制很多電子器件,如LED數碼管、蜂鳴器、液晶、繼電器、還有各種數字的或者模擬的芯片等等等等。我們將這些器件都和單片機連到一起然后焊接到一塊電路板上,這就構成了一個單片機開發板,或者又叫單片機學習板,目前市場上流行著很多單片機學習板供初學者學習,他們的樣子大都大同小異,類似于下圖。

???

? ? 在國內,目前最流行的單片機有51單片機,AVR單片機,飛思卡爾單片機等等,不用擔心不同的單片機使用起來會有很大的不同,其實不同的單片機就像不同的手機一樣,最簡單的手機只能打電話,發短信,后來的手機可以照相,上網,聽音樂,你會使用一款手機就應該也會很快入手其他款手機,這跟單片機是一樣的。它并不神秘,記住“我們是用單片機。不是做單片機”。后文中講到單片機編程時,基本上都是借助于51單片機,需要說明的是目前比較流行的AT89S52、AT89C52和STC89C52都是51內核單片機,AT89S52除了性能提升和具有ISP下載功能外,他們沒有本質區別、驅動能力也相當接近,所以大家約定俗成的將它們統稱為“51單片機”。

? ? 跟大家分享一個小技巧,有時候我們不想花錢買芯片怎么辦?這就需要和生產廠家申請樣片了,登陸芯片公司的網址一般都會有申請樣片的網頁,試著填寫一下,往往一個月之內就能收到樣片。

1.1.4 要掌握的基礎知識

?

(1)編程語言

? ? 關于使用的編程語言,單片機編程語言高手會使用匯編語言,就是比較高深那種,新手一般使用C語言就足夠了,學習C語言請到網上找一些C語言編程的入門書稍微看看即可,一般教學視頻里都會詳細教給你。

如果您學過C++那就會給你省很多時間,只不過單片機中的C語言和您在電腦上用C++編程有兩點不同之處,一定要注意。

①C語言中定義變量一定要在函數的最前面定義,如

Void main()????????????????? void main()

{?????????????????????????????????? {

? int a;?? //正確???????????????? … …

? char b;????????????????????????? int a; //這樣就錯誤,是不是挺矯情的?

?… …????????????????????????????char b;

}????????? ?????????????????????????}

②單片機程序最后一定要進入一個死循環。

? ? 單片機死循環的理念和我們在電腦上利用VC6.0編寫程序時的理念大相徑庭。因為在電腦上CPU不允許你做死循環,那是大忌,電腦可不想讓自己處于死循環的類死機狀態。但是單片機就不同了,它一定要進入到一個死循環里,舉一個例子,比如我們用單片機來編寫一個家用熱水器的程序,功能是這樣:

??? 當水的溫度低于80°的時候,熱水器處于加熱狀態。

??? 當水的溫度達到100°的時候,熱水器處于保溫狀態。

??? 單片機需要做的就是時時刻刻的檢測水的溫度,根據水的溫度來調控內部加熱器的工作狀態,那問題就來了,假如單片機的程序和電腦上C++一樣也是運行一遍就完的話,它只會檢測一遍水的溫度,以后水的溫度無論變成什么樣跟它都沒有任何關系了,聽著似乎很悲壯的一個愛情故事。這個時候我們就需要將“檢測水溫”的程序放到死循環里,讓他不停的檢測,一遍又一遍的做出判斷,然后做出相應的控制,不用擔心它會累死,這是上天賦予它的基本使命,就算累死,也得干!

常用死循環程序

for( ;? ; ){…

//這里面寫主程序

?…}或

while(1){…

//這里面寫主程序

?…}

?

(2)位和字節、數制

??? 位和字節在單片機里是特別重要的兩個概念。

??? 位(bit):指的是取值只能為0或1的一個二進制數值位。記作b

??? 字節(byte):由8位二進制位組成,通常用作計算存儲容量的單位。記作B。我們常說的B,K,M,G,T之間有如下的轉換關系:

??????? K(kelo),1K=1024B=210

??????? M(mega),1M=1024K=220

??????? G(giga),1G=1024M=230

??????? T(tera),1T=1024G=240

? ? 數制:數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。單片機中的數制主要涉及10進制、2進制、16進制。編程的時候更多的是2進制和16進制之間的轉換,3種數制之間的轉換關系如下表所示:

?

10進制(默認數制)

2進制(聲明方式0b或0B)

16進制(聲明方式0x或0X)

0

0

0

1

1

1

2

10

2

3

11

3

4

100

4

5

101

5

6

110

6

7

111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

?

? ? 之所以說位和字節的概念重要是因為它們和上文提到的“寄存器”息息相關,一個寄存器通常情況下就是一個字節(有的單片機一個寄存器是兩個字節),一個字節對應8位,一個寄存器在單片機里都對應著一種功能指令,我們通過向寄存器里寫二進制數來控制單片機。?

? ? 明白了位、字節、數制的概念后再對寄存器舉一個例子:

? ? 51單片機姓P1的管腳一共有8個,分別叫P1^0、P1^1、P1^2、P1^3……P1^7,我們想讓P1^1、P1^3、P1^5、P1^7輸出低電平,P1^0、P1^2、P1^4、P1^6輸出高電平,則只需要向控制P1輸出狀態的寄存器“P1”中寫二進制數0b01010101(0b代表后面的數為二進制數,8位字節最高位代表P1^7,最低位代表P1^0,1代表高電平,0代表低電平),編程的時候由于單片機只認16進制,所以寫成C語言就像下面這個樣子

? ? P1=0x55;

對,就是這樣一句簡單的代碼就能讓單片機實現功能了。

?

未完待續。。。

總結

以上是生活随笔為你收集整理的2-《电子入门趣谈》第一章_一切从单片机开始-1.1单片机概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。