- 單片機與電路繪圖自學手冊
- 蔡杏山
- 4543字
- 2019-10-23 16:39:30
1.2 用實例了解單片機應用系統的開發過程
1.2.1 明確控制要求并選擇合適型號的單片機
1. 明確控制要求
在開發單片機應用系統時,先要明確需要實現的控制功能,單片機硬件和軟件開發都需圍繞著要實現的控制功能進行。如果要實現的控制功能比較多,可一條一條列出來,若要實現的控制功能比較復雜,則需分析控制功能及控制過程,并明確表述出來(如控制的先后順序、同時進行幾項控制等),這樣在進行單片機硬、軟件開發時才會目標明確。
本節以開發一個用按鍵控制一個發光二極管(LED)亮滅的項目為例來介紹單片機應用系統的硬、軟件的開發過程,其控制要求是:當按下按鍵時,發光二極管亮;松開按鍵時,發光二極管熄滅。
2. 選擇合適型號的單片機
明確單片機應用系統要實現的控制功能后,再選擇單片機種類和型號。單片機種類很多,不同種類型號的單片機結構和功能有所不同,軟、硬件開發也有區別。
在選擇單片機型號時,一般應注意以下幾點。
(1)選擇自己熟悉的單片機。不同系列的單片機內部硬件結構和軟件指令或多或少有些不同,而選擇自己熟悉的單片機可以提高開發效率,縮短開發時間。
(2)在功能夠用的情況下,考慮性能價格比。有些型號的單片機功能強大,但相應的價格也較高,而選擇單片機型號時功能足夠即可,不要盲目選用功能強大的單片機。
目前市面上使用廣泛的為51單片機,其中宏晶公司(STC)51系列單片機最為常見,編譯的程序可以在線寫入單片機,無需專門的編程器,并且可反復擦寫單片機內部的程序,另外價格低(5元左右)且容易買到。
1.2.2 設計單片機電路原理圖
明確控制要求并選擇合適型號的單片機后,接下來就是設計單片機電路,即給單片機添加工作條件電路、輸入部件和輸入電路、輸出部件與輸出電路等。圖1-5是設計好的用一個按鍵控制一只發光二極管亮滅的單片機電路原理圖,該電路采用了STC公司8051內核的89C51型單片機。
單片機是一種集成電路,普通的集成電路只需提供電源即可使內部電路開始工作,而要讓單片機內部電路正常工作,除了需提供電源外,還需提供時鐘信號和復位信號。電源、時鐘信號和復位信號是單片機工作必須的,提供這三者的電路稱為單片機的工作條件電路。

圖1-5 用一個按鍵控制一只發光二極管亮滅的單片機電路原理圖
STC89C51單片機的工作電源為5V,電壓允許范圍為3.8~5.5V。5V電源的正極接到單片機的正電源腳(VCC-40腳),負極接到單片機的負電源(VSS-20腳)。晶振X、電容C1、C2與單片機時鐘腳(XTAL2-18腳、XTAL1-19腳)內部的電路組成時鐘振蕩電路,產生12MHz時鐘信號提供給單片機內部電路,讓內部電路有條不紊地按節拍工作。C1、R1構成單片機復位電路,在接通電源的瞬間,C1還未充電,C1兩端電壓為0V,R1兩端電壓為5V,5V電壓為高電平,它作為復位信號經復位腳(RST、9腳)送入單片機,對內部電路進行復位,使內部電路全部進入初始狀態,隨著電源對C1充電,C1上的電壓迅速上升,R1兩端電壓則迅速下降,當C1上充得電壓達到5V時充電結束,R1兩端電壓為0V(低電平),單片機RST腳變為低電平,結束對單片機內部電路的復位,內部電路開始工作,如果單片機RST腳始終為高電平,內部電路則被鉗在初始狀態,無法工作。
按鍵S閉合時,單片機的P1.2腳(3腳)通過S接地(電源負極),P1.2腳輸入為低電平,內部電路檢測到該腳電平再執行程序,讓P0.3腳(36腳)輸出低電平(0V),發光二極管VD導通,有電流流過VD(電流途徑是:5V電源正極→R2→VD→單片機的P0.3腳→內部電路→單片機的VSS腳→電源負極),VD點亮;按鍵S松開時,單片機的P1.2腳(3腳)變為高電平(5V),內部電路檢測到該腳電平再執行程序,讓P0.3腳(36腳)輸出高電平,發光二極管VD截止(即VD不導通),VD熄滅。
1.2.3 制作單片機電路
按控制要求設計好單片機電路原理圖后,還要依據電路原理圖將實際的單片機電路制作出來。制作單片機電路有兩種方法:一種是用電路板設計軟件(如Protel 99 SE軟件)設計出與電路原理圖相對應的PCB圖(印制電路板圖),再交給PCB板廠生產出相應的PCB電路板,然后將單片機及有關元件安裝焊接在電路板上即可;另一種是使用萬能電路板,將單片機及有關元件安裝焊接在電路板上,再按電路原理圖的連接關系用導線或焊錫將單片機及元件連接起來。前一種方法適合大批量生產,后一種方法適合小批量實驗樣板制作,這里使用萬能電路板來制作單片機電路。
圖1-6是一個按鍵控制一只發光二極管亮滅的單片機電路元件和萬能電路板(又稱洞洞板)。在安裝單片機電路時,從正面將元件引腳插入電路板的圓孔,在背面將引腳焊接好,由于萬能電路板各圓孔間是斷開的,故還需要按電路原理圖連接關系,用焊錫或導線將有關元件引腳連接起來,為了方便將單片機各引腳與其他電路連接,在單片機兩列引腳旁安裝了兩排20腳的單排針,安裝時將單片機各引腳與各自對應的排針腳焊接在一起,暫時不用的單片機引腳可不焊接。制作完成的單片機電路如圖1-7所示。

圖1-6 一個按鍵控制一只發光二極管亮滅的單片機電路元件和萬能電路板

圖1-7 制作完成的單片機電路
1.2.4 用Keil軟件編寫單片機控制程序
單片機是一種軟件驅動的芯片,要讓它進行某些控制就必須為其編寫相應的控制程序。Keil μVision2是一款最常用的51單片機編程軟件,在該軟件中可以使用匯編語言或C語言編寫單片機程序。Keil μVision2的安裝和使用在后面有章節會詳細說明,故下面只對該軟件編程進行簡略介紹。
1. 編寫程序
在電腦屏幕桌面上執行“開始→程序→Keil μVision2”,如圖1-8所示,Keil μVision2軟件打開,如圖1-9所示,在該軟件中新建一個項目“一個按鍵控制一只LED亮滅.Uv2”,再在該項目中新建一個“一個按鍵控制一只LED亮滅.c”文件,如圖1-10所示,然后在該文件中用C語言編寫單片機控制程序(采用英文半角輸入),如圖1-11所示,最后點擊工具欄上的(編譯)按鈕,將當前C語言程序轉換成單片機能識別的程序,在軟件窗口下方出現編譯信息,如圖1-12所示,如果出現“0 Error(s), 0 Warning(s)”,表示程序編譯通過。

圖1-8 在電腦屏幕桌面上執行“開始→程序→Keil μVision2”

圖1-9 Keil μVision2軟件打開

圖1-10 新建一個項目并在該項目中新建一個“一個按鍵控制一只LED亮滅.c”文件

圖1-11 在“一個按鍵控制一只LED亮滅.c”文件中用C語言編寫單片機程序

圖1-12 點擊編譯按鈕將C語言程序轉換成單片機可識別的程序
C語言程序文件(.c)編譯后會得到一個16進制程序文件(.hex),如圖1-13所示,利用專門的下載軟件將該16進制程序文件寫入單片機,即可讓單片機工作并產生相應的控制。

圖1-13 C語言程序文件被編譯后就得到一個可寫入單片機的16進制程序文件
2. 程序說明
“一個按鍵控制一只LED亮滅.c”文件的C語言程序說明如圖1-14所示。在程序中,如果將“LED=KEY”改成“LED=!KEY”,即讓LED(P0.3端口)的電平與KEY(P1.2端口)的反電平相同,這樣當按鍵按下時P1.2端口為低電平,P0.3端口則置為高電平,LED燈不亮。如果將程序中的“while(1)”改成“while(0)”,while函數大括號內的語句“LED=KEY”不會執行,即未將LED(P0.3端口)的電平與KEY(P1.2端口)對應起來,操作按鍵無法控制LED燈的亮滅。

圖1-14 “一個按鍵控制一只LED亮滅.c”文件的C語言程序說明
1.2.5 計算機、下載(燒錄)器和單片機的連接
1. 計算機與下載(燒錄)器的連接與驅動
計算機需要通過下載器(又稱燒錄器)才能將程序寫入單片機。圖1-15是一種常用的USB轉TTL的下載器,使用它可以將程序寫入STC單片機。
在將下載器連接到計算機前,需要先在計算機中安裝下載器的驅動程序,再將下載器插入計算機的USB接口,計算機才能識別并與下載器建立聯系。下載器驅動程序的安裝如圖1-16所示,由于計算機操作系統為Windows XP,故選擇與Windows XP對應的驅動程序文件,雙擊該文件即開始安裝。

圖1-15 USB轉TTL的下載器及連接線
驅動程序安裝完成后,將下載器的USB插口插入計算機的USB接口,計算機即可識別出下載器。在計算機的“設備管理器”查看下載器與計算機的連接情況,在計算機屏幕桌面上右擊“我的電腦”,在彈出的菜單中點擊“設備管理器”,如圖1-17所示,彈出設備管理器窗口,展開其中的“端口(COM和LPT)”項,可以看出下載器的連接端口為COM3,下載器實際連接的為計算機的USB端口,COM3端口是一個模擬端口,記下該端口序號以便下載程序時選用。

圖1-16 安裝USB轉TTL的下載器的驅動程序
2. 下載器與單片機的連接
USB轉TTL的下載器一般有5個引腳,分別是3.3V電源腳、5V電源腳、TXD(發送數據)腳、RXD(接收數據)腳和GND(接地)腳。
下載器與STC89C51單片機的連接如圖1-18所示,從圖中可以看出,除了兩者電源正、負腳要連接起來外,下載器的TXD(發送數據)腳與STC89C51單片機的RXD(接收數據)腳(10腳,與P3.0為同一個引腳),下載器的RXD腳與STC89C51單片機的TXD腳(11腳,與P3.1為同一個引腳)。下載器與其它型號的STC-51單片機連接方法基本相同,只是對應的單片機引腳序號可能不同。

圖1-17 查看下載器與計算機的連接端口序號

圖1-18 下載器與STC89C51單片機的連接

圖1-18 下載器與STC89C51單片機的連接(續)
1.2.6 用燒錄軟件將程序寫入單片機
1. 將計算機、下載器與單片機電路三者連接起來
要將在計算機中編寫并編譯好的程序下載到單片機中,須先將下載器與計算機及單片機電路連接起來,如圖1-19所示,然后在計算機中打開STC-ISP燒錄軟件,用該軟件將程序寫入單片機。
2. 打開燒錄軟件將程序寫入單片機
STC-ISP燒錄軟件只能燒寫STC系列單片機,它分為安裝版本和非安裝版本,非安裝版本使用更為方便。圖1-20是STC-ISP燒錄軟件免安裝中文版,雙擊“STC_ISP_V483.exe”文件,打開STC-ISP燒錄軟件。用STC-ISP燒錄軟件將程序寫入單片機的操作如圖1-21所示。需要注意的是,在點擊軟件中的“Download/下載”按鈕后,計算機會反復往單片機發送數據,但單片機不會接收該數據,這時需要切斷單片機的電源,幾秒鐘后再接通電源,單片機重新上電后會檢測到計算機發送過來的數據,會將該數據接收下來并存到內部的程序存儲器中,從而完成程序的寫入。

圖1-19 計算機、下載器與單片機電路三者的連接

圖1-20 打開免安裝版本的STC-ISP燒錄軟件

圖1-21 用STC-ISP燒錄軟件將程序寫入單片機的操作

圖1-21 用STC-ISP燒錄軟件將程序寫入單片機的操作(續)
1.2.7 單片機電路的供電與測試
程序寫入單片機后,再給單片機電路通電,測試其能否實現控制要求,如若不能,需要檢查是單片機硬件電路的問題,還是程序的問題,并解決這些問題。
1. 用計算機的USB接口通過下載器為單片機供電
在給單片機供電時,如果單片機電路簡單、消耗電流少,可讓下載器(需與計算機的USB接口連接)為單片機提供5V或3.3V電源,該電壓實際來自計算機的USB接口,單片機通電后再進行測試,如圖1-22所示。
2. 用USB電源適配器給單片機電路供電
如果單片機電路消耗電流大,需要使用專門的5V電源為其供電。圖1-23是一種手機充電常見的5V電源適配器及數據線,該數據線一端為標準USB接口,另一端為Micro USB接口,在Micro USB接口附近將數據線剪斷,可看見有四根不同顏色的線,分別是“紅—電源線(VCC,5V+)”、“黑—地線(GND,5V-)”、“綠—數據正(DATA+)”和“白—數據負(DATA-)”,將綠、白線剪短不用,紅、黑線剝掉絕緣層露出銅芯線,再將紅、黑線分別接到單片機電路的電源正、負端,如圖1-24所示。USB電源適配器可以將220V交流電壓轉換成5V直流電壓,如果單片機的供電不是5V而是3.3V,可在5V電源線上再串接3個整流二極管,每個整流二極管電壓降為0.5~0.6V,故可得到3.2~3.5V的電壓,如圖1-25所示。

圖1-22 利用下載器(需與計算機的USB接口連接)為單片機提供電源

圖1-23 USB電源適配器與電源線制作

圖1-24 將正、負電源線接到單片機電路的電源正、負端
用USB電源適配器給單片機電路供電并進行測試如圖1-26所示。

圖1-25 利用3只整流二極管可將5V電壓

圖1-26 用USB電源適配器給單片機降低成3.3V左右的電壓電路供電并進行測試