王粉花,李 擎,張萬(wàn)書
(北京科技大學(xué)自動(dòng)化學(xué)院,北京 100083)
“單片機(jī)原理”是信息和控制類學(xué)科一門專業(yè)必修課,國(guó)內(nèi)高校在課程教學(xué)中普遍采用MCS-51系列MCU。然而,MCS-51系列的應(yīng)用領(lǐng)域已逐漸被其他單片機(jī)所取代。Microchip公司推出的外圍接口控制器PIC(Peripheral Interface Controller)系列單片機(jī),由于采用哈佛總線結(jié)構(gòu),精簡(jiǎn)指令集和流水線取指方式,I/O端口驅(qū)動(dòng)能力強(qiáng),穩(wěn)定性好,性價(jià)比高,受到用戶的普遍歡迎[1]。
傳統(tǒng)的單片機(jī)實(shí)驗(yàn)系統(tǒng)透明度不高,實(shí)驗(yàn)板上的芯片和接口都是固定連接的。如果能做到硬件只需很少的連接或不需連接,就可以直接進(jìn)行程序設(shè)計(jì),那么單片機(jī)以硬件設(shè)計(jì)為主,軟硬結(jié)合的訓(xùn)練就會(huì)變相轉(zhuǎn)化成了純軟件編程的學(xué)習(xí)[2]。
本文基于模塊獨(dú)立、便于擴(kuò)展和注重硬件設(shè)計(jì)的思想,設(shè)計(jì)了一套PIC Study V1.0單片機(jī)實(shí)驗(yàn)系統(tǒng),改變傳統(tǒng)的固定線路和固定接口的模式,對(duì)實(shí)驗(yàn)板上的硬件資源采用了模塊化的結(jié)構(gòu),同時(shí)還提供比較豐富的接口,以及構(gòu)成單片機(jī)系統(tǒng)最常使用的外圍功能電路。板上的單片機(jī)引腳全部開(kāi)放,同時(shí)將單片機(jī)系統(tǒng)中最常使用的顯示、按鍵和鍵盤等都作為獨(dú)立的開(kāi)放單元模塊,用戶只需稍加擴(kuò)展即可構(gòu)建自己的應(yīng)用系統(tǒng)[3]。
PIC Study V1.0實(shí)驗(yàn)系統(tǒng)選用PIC16F877A單片機(jī),這是PIC系列單片機(jī)的中級(jí)產(chǎn)品。它是一種高速、低功耗和高性能的8位CMOS器件,采用14位的RISC指令系統(tǒng)。由于其具有強(qiáng)大的在線調(diào)試和編程功能,以及廉價(jià)的配套開(kāi)發(fā)工具,非常適合于學(xué)習(xí)。實(shí)驗(yàn)系統(tǒng)的硬件核心是實(shí)驗(yàn)板。
實(shí)驗(yàn)板由PIC16F877A最小系統(tǒng)、液晶模塊、八段數(shù)碼管、LED模塊、按鍵、溫度傳感器模塊、ADC模塊、E2PROM模塊、蜂鳴器模塊和串口通信模塊等10個(gè)模塊組成。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示,其特點(diǎn)是各模塊之間獨(dú)立設(shè)計(jì),部分外圍接口模塊與單片機(jī)I/O口接線不固定,用戶可以根據(jù)需要自行設(shè)計(jì),下面介紹幾個(gè)主要模塊。
1)PIC16F877A單片機(jī)最小系統(tǒng)
該實(shí)驗(yàn)系統(tǒng)是實(shí)驗(yàn)板的核心部分,主要包括電源、PIC16F877A單片機(jī)芯片、復(fù)位電路、外部晶振及ICSP下載接口。該系統(tǒng)設(shè)計(jì)了兩種下載接口,分別采用排針式和星頭式接口,便于靈活下載。最小系統(tǒng)電路原理如圖2所示。
圖2 PIC16F877A最小系統(tǒng)電路原理圖
單片機(jī)PIC16F877A的I/O引腳有33條,分別是RA5~RA0、RB7~RB0、RC7~RC0、RD7~RD0及RE2~RE0,全部為復(fù)用引腳。每個(gè)I/O引腳輸入電流最大值可達(dá)到25mA,而輸出電流最大值可達(dá)到20mA,能夠直接驅(qū)動(dòng)發(fā)光二極管、數(shù)碼管、光電耦合器及小型揚(yáng)聲器等。實(shí)驗(yàn)板上的單片機(jī)引腳全部開(kāi)放,用戶可以自行設(shè)計(jì)接口電路。
2)液晶模塊
LCD1602是一種專門用來(lái)顯示字母、數(shù)字和符號(hào)等的點(diǎn)陣型液晶模塊,顯示的內(nèi)容為16×2。LCD12864主要用于顯示漢字,每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣ASCII碼字符,每屏最多可顯示32個(gè)中文字符或64個(gè)ASCII碼字符。
該模塊設(shè)計(jì)了標(biāo)準(zhǔn)的16 2字符的LCD1602液晶顯示器接口和12864液晶顯示器接口。各管腳分配均已設(shè)計(jì)好,兩者通過(guò)RA口分時(shí)選通,使用時(shí)只需斷電插拔相應(yīng)的液晶模塊即可。
3)八段數(shù)碼管
選用LG3641AH八段共陰型數(shù)碼管模塊,高電平點(diǎn)亮某段,低電平選通某位。為了節(jié)約單片機(jī)管腳、降低功耗,采用軟件譯碼方式動(dòng)態(tài)掃描點(diǎn)亮數(shù)碼管。實(shí)驗(yàn)板上已設(shè)計(jì)好數(shù)碼管的位選和段選排針,用于連接單片機(jī)的I/O引腳。
4)LED發(fā)光二極管
8個(gè)LED發(fā)光二極管,采用共陰極接法,即高電平點(diǎn)亮,用于輸出顯示。其中8只470Ω電阻是用于保護(hù)LED的限流電阻,使用時(shí)只需從LED排針處用杜邦線引出即可[4]。
5)按鍵模塊
按鍵模塊用于按鍵輸入、外部中斷輸入等。按鍵采用外部上拉電阻,通過(guò)P5排針接線,在按鍵未按下時(shí),P5排針輸出高電平,當(dāng)按鍵按下時(shí),輸出低電平,需自行設(shè)計(jì)接口電路。
6)DS18B20溫度傳感器
數(shù)字溫度傳感器DS18B20,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為 -55℃ ~+125℃,可編程為9位~12位的A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出。其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;CPU只需一條引腳就能與DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引腳和邏輯電路。通過(guò)P8跳線可接通單片機(jī)的RE1引腳,使用DS1802溫度傳感器可做單總線實(shí)驗(yàn)。
7)ADC模塊
ADC模塊是由精密電位器與電源組成的0~5V的可調(diào)直流電壓源,可提供0~5V可調(diào)直流電壓信號(hào)。用于實(shí)現(xiàn)A/D轉(zhuǎn)換、直流電壓表和模擬溫度計(jì)等實(shí)驗(yàn)[5]。
8)E2PROM模塊
E2PROM模塊采用AT24C02芯片,采用I2C總線通信,內(nèi)含256×8位存儲(chǔ)空間,工作電壓范圍為2.5V~5.5V。擦寫次數(shù)大于10000次,寫入速度小于10ms。E2PROM 模塊通過(guò) P6 的1、2、3、4 引腳用跳線連接單片機(jī)的RC3和RC4引腳,使用該模塊可學(xué)習(xí)I2C總線通信技術(shù)。
9)蜂鳴器模塊
該模塊由單片機(jī)的某一引腳輸出一定頻率的方波,就可以發(fā)出聲響,可以作為一個(gè)簡(jiǎn)單的外設(shè)。蜂鳴器采用9014三極管驅(qū)動(dòng),可通過(guò)跳線J7連接到單片機(jī)的RC2引腳。
10)串口通信模塊
該模塊采用MAX232芯片實(shí)現(xiàn)電平轉(zhuǎn)換,以滿足RS232標(biāo)準(zhǔn)電平與PC機(jī)標(biāo)準(zhǔn)串口連接。其中通過(guò)P6的5、6、7、8引腳用跳線帽連接單片機(jī)的 RC6和RC7進(jìn)行異步串口通信[6]。
PIC Study V1.0實(shí)驗(yàn)系統(tǒng)使用的軟件開(kāi)發(fā)平臺(tái)是MPLAB-IDE,這是Microchip公司專門為PIC系列單片機(jī)提供的一款基于Windows的集成開(kāi)發(fā)環(huán)境應(yīng)用軟件包。利用MPLAB-IDE可以編寫、匯編或者編譯源代碼、調(diào)試及優(yōu)化源代碼。MPLAB-IDE支持MPLAB-ICD2硬件在線調(diào)試器、MPLAB-ICE和PICMASTER 仿真器和PICSTART-Plus、PRO MATE II燒寫器,還支持其它的Microchip和第三方開(kāi)發(fā)工具。
MPLAB-ICD2是Microchip公司開(kāi)發(fā)的為用于片內(nèi)Flash程序存儲(chǔ)器的PIC16F87X系列芯片所研制的一套學(xué)習(xí)和開(kāi)發(fā)工具套件。它既是一個(gè)編程器,又是一個(gè)實(shí)時(shí)在線調(diào)試器。用MPLAB-ICD2可以代替常用的硬件程序燒寫器和在線實(shí)時(shí)仿真器,它利用了PIC16F87X片內(nèi)集成的在線調(diào)試功能和Microchip公司的在線串行編程技術(shù)。MPLAB-ICD2工作在MPLAB-IDE集成開(kāi)發(fā)環(huán)境軟件包之下,其仿真頭直接連接到PIC Study V1.0實(shí)驗(yàn)板上,如同將一片PIC16F87X芯片插入到實(shí)驗(yàn)板內(nèi)一樣去運(yùn)行用戶編制的程序,其與PC機(jī)的通信可以用USB串行接口方式[7]。
PIC Study V1.0實(shí)驗(yàn)系統(tǒng)隨機(jī)提供了16個(gè)實(shí)驗(yàn)項(xiàng)目,如表1所示。其中編號(hào)1~12是基本實(shí)驗(yàn),13~16是綜合實(shí)驗(yàn)。
表1 實(shí)驗(yàn)項(xiàng)目列表
學(xué)生在完成每個(gè)實(shí)驗(yàn)項(xiàng)目時(shí),首先都需要進(jìn)行硬件電路的設(shè)計(jì)和接線,然后根據(jù)硬件電路編寫相應(yīng)的軟件,體現(xiàn)了軟硬件的協(xié)同設(shè)計(jì)。同時(shí)我們已出版配套的教材《嵌入式系統(tǒng)與單片機(jī)實(shí)踐教程》,學(xué)生借助該教材和實(shí)驗(yàn)系統(tǒng)可以很容易地自行設(shè)計(jì)常用的單片機(jī)輸入輸出系統(tǒng),比如電子密碼鎖。學(xué)生在本實(shí)驗(yàn)系統(tǒng)的基礎(chǔ)上,再稍加擴(kuò)展,還可設(shè)計(jì)出各種各樣的單片機(jī)應(yīng)用系統(tǒng),比如超聲波測(cè)距系統(tǒng)、聲音定位系統(tǒng)等。
1)電子密碼鎖
電子密碼鎖的硬件平臺(tái)由最小系統(tǒng)、按鍵、八段數(shù)碼管、LED發(fā)光二極管、蜂鳴器及E2PROM等模塊組成。其應(yīng)用軟件主要由鍵盤掃描程序和顯示程序組成。識(shí)別鍵盤有無(wú)按鍵被按下的方法是讓所有行線均輸入為“1”電平,檢查各列線輸入電平是否為全“0”。如果全為“0”,則說(shuō)明按鍵未被按下,反之則說(shuō)明有按鍵被按下。識(shí)別具體按鍵的方法也稱為行掃描法。逐行置“1”電平,檢查各列線電平的狀態(tài),此時(shí)如果讀得某列電平變?yōu)椤?”,則可以確定此列與當(dāng)前輸出為“1”行的交叉點(diǎn)上的按鍵被按下。即獲得了被按下鍵所處的行號(hào)和列號(hào),根據(jù)行、列位置信息便可得到當(dāng)前按鍵的位置或鍵號(hào)。
2)超聲波測(cè)距系統(tǒng)
超聲波測(cè)距系統(tǒng)硬件電路主要包括電源模塊、單片機(jī)最小系統(tǒng)模塊、超聲波發(fā)射電路、超聲波接收電路、測(cè)溫模塊、數(shù)碼管顯示模塊及蜂鳴器模塊。在本實(shí)驗(yàn)系統(tǒng)的基礎(chǔ)上,還需要額外增加一個(gè)超聲波傳感器模塊。
該系統(tǒng)軟件主要包括測(cè)距程序、顯示程序和報(bào)警程序。測(cè)距時(shí)先對(duì)溫度傳感器進(jìn)行初始化,發(fā)送溫度轉(zhuǎn)換命令,接收溫度傳感器測(cè)得的溫度,并將溫度值顯示在數(shù)碼管上。利用測(cè)量的溫度值計(jì)算出聲速后,即可進(jìn)行距離的測(cè)量。電路先發(fā)射4個(gè)周期的超聲波脈沖,其頻率為40kHz,然后關(guān)閉發(fā)射器,打開(kāi)定時(shí)器開(kāi)始計(jì)時(shí),等待接收反射波。當(dāng)接收電路接收到反射波回波信號(hào)后,依次經(jīng)放大、檢波及整形,接收到的信號(hào)即為單片機(jī)可識(shí)別的信號(hào),并立即產(chǎn)生一個(gè)中斷。進(jìn)入中斷后,先關(guān)閉定時(shí)器,此時(shí)定時(shí)器中的值就是超聲波在這次測(cè)量中所花費(fèi)的時(shí)間t,利用t就可以計(jì)算出相應(yīng)的距離了。
PIC Study V1.0單片機(jī)實(shí)驗(yàn)系統(tǒng)各組成模塊可獨(dú)立設(shè)計(jì),便于接口靈活擴(kuò)展,適用于PIC16F87X系列單片機(jī)課程內(nèi)的實(shí)驗(yàn)教學(xué)、課程設(shè)計(jì)和電子競(jìng)賽培訓(xùn)學(xué)習(xí)等。經(jīng)過(guò)多個(gè)學(xué)期的教學(xué)實(shí)踐,該實(shí)驗(yàn)系統(tǒng)獲得學(xué)生和同行的一致好評(píng)。學(xué)生在此基礎(chǔ)上自主設(shè)計(jì)出多個(gè)單片機(jī)應(yīng)用案例,可以提高動(dòng)手設(shè)計(jì)能力。
[1]李學(xué)海著.PIC單片機(jī)實(shí)用教程--基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007年2月
[2]馬潮.AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2007年10月
[3]石愛(ài)平,杜玉杰.高校單片機(jī)實(shí)驗(yàn)教學(xué)系統(tǒng)的設(shè)計(jì)[J].南京:電氣電子教學(xué)學(xué)報(bào),2010,32(1):84-85
[4]仲玉芳,黃克強(qiáng),吳明光.面向嵌入式系統(tǒng)的單片機(jī)集成實(shí)驗(yàn)平臺(tái)的研制[J].北京:實(shí)驗(yàn)技術(shù)與管理,2008,25(9):77-81
[5]鄒應(yīng)全,劉建成.模塊化單片機(jī)實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].南京:南京工程信息大學(xué)學(xué)報(bào):自然科學(xué)版,2010,2(2):185-189
[6]孫志海,朱善安.基于Internet的51單片機(jī)實(shí)驗(yàn)系統(tǒng)[J].上海:實(shí)驗(yàn)室研究與探索,2006,25(2):189-191
[7]包建華,張興奎,丁啟勝.模塊化單片機(jī)實(shí)驗(yàn)系統(tǒng)的研制[J].南京:電氣電子教學(xué)學(xué)報(bào),2010,32(6):98-100