PIC系列單片機(jī)應(yīng)用設(shè)計(jì)與實(shí)例
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一.引言
在微控制器(Microcontroller)應(yīng)用領(lǐng)域日益廣泛的今天,各個(gè)領(lǐng)域的應(yīng)用也向微控制器廠(chǎng)商提出了更高要求,希望速度更快、功耗更低、體積更小、價(jià)格更廉以及組成系統(tǒng)時(shí)所需要的外圍器件更少;隨著越來(lái)越多的各種非電子工程技術(shù)人員的應(yīng)用需求,他們想把微控制器作為嵌入式部件應(yīng)用到自己熟悉的領(lǐng)域中,還提出簡(jiǎn)單易學(xué)易用的要求。用戶(hù)的需求就是廠(chǎng)商的市場(chǎng)和動(dòng)力,老的半導(dǎo)體廠(chǎng)商順應(yīng)潮流不斷推出新品種,新的半導(dǎo)體廠(chǎng)商則后來(lái)居上,把越來(lái)越多的外圍接口器件集成到片內(nèi),功能越來(lái)越強(qiáng)、性能越來(lái)越高。迄今至少也有35家國(guó)外半導(dǎo)體廠(chǎng)商的微控制器進(jìn)入中國(guó)市場(chǎng)。在這眾多的五彩繽紛的微控制器中,美國(guó)Microchip技術(shù)公司的PIC系列微控制器則異軍突起,獨(dú)一幟。它率先推出采用精簡(jiǎn)指令集計(jì)算機(jī)(RISC--Reduced Instruction Set Computer)、哈佛(Harvard)雙總線(xiàn)和兩級(jí)指令流水線(xiàn)結(jié)構(gòu)的高性能價(jià)格比的8位嵌入式控制器(Embedded Controller)。其高速度(每條指令最快可達(dá)160ns)、低工作電壓(最低工作電壓可為3V)、低功耗(3V,32kHz時(shí)15μA)、較大的輸入輸出直接驅(qū)動(dòng)LED能力(灌電流可達(dá)25mA)、一次性編程(OTP--One Time Programmable)芯片的低價(jià)位、小體積、指令簡(jiǎn)單易學(xué)易用(35--37條指令)等,都體現(xiàn)了微控制器工業(yè)發(fā)展的新趨勢(shì)?! ?/p>
這個(gè)系列的微控制器在市場(chǎng)上極具強(qiáng)勁的競(jìng)爭(zhēng)力,在全球都可以看到PIC微控制器在從辦公自動(dòng)化設(shè)備、消費(fèi)電子產(chǎn)品、電訊通信、智能儀器儀表到汽車(chē)電子、金融電子、工業(yè)控制等不同領(lǐng)域的廣泛應(yīng)用。PIC系列微控制器在世界微控制器市場(chǎng)份額排名中逐年提前,以至已成為一種新的8位微控制器的世界標(biāo)準(zhǔn)和最有影響力的主流嵌入式控制器。大家會(huì)發(fā)現(xiàn),在國(guó)內(nèi)目前仍然是Intel的MCS-51系列及其兼容的單片機(jī)占絕對(duì)主流地位,原因是該系列單片機(jī)引進(jìn)歷史最長(zhǎng),在國(guó)內(nèi)應(yīng)用一直繁榮而面廣,參考資料相對(duì)豐富,使用慣性使然。
二.PIC系列微控制器系統(tǒng)擴(kuò)展技術(shù)
系統(tǒng)擴(kuò)展有兩類(lèi)不同的方法,一類(lèi)是并行擴(kuò)展,另一類(lèi)是串行擴(kuò)展。
對(duì)于并行擴(kuò)展,目前使用的微處理器和微控制器絕大部分都采用總線(xiàn)結(jié)構(gòu),無(wú)論進(jìn)行存儲(chǔ)器擴(kuò)展還是I/O接口擴(kuò)展,都是利用數(shù)據(jù)總線(xiàn)、地址總線(xiàn)和控制總線(xiàn)這三總線(xiàn)來(lái)擴(kuò)展。因?yàn)檫@個(gè)系列的微控制器的設(shè)計(jì)是基于真正的單片機(jī)應(yīng)用,芯片引腳并未安排三總線(xiàn)。但是可以利用接口電路仿真三總線(xiàn)。任何一種微控制器,只要有足夠多的I/O接口可用,就可以用一個(gè)8位I/O口作為8位I/O口仿真16位的地址線(xiàn)(實(shí)際上還可以根據(jù)需要擴(kuò)展成任意位數(shù)據(jù)線(xiàn)和地址線(xiàn))。當(dāng)然這種方法占用I/O口資源太多,顯得不經(jīng)濟(jì)。另外一種可用的方法就是模仿Intel的8031擴(kuò)展方法,占用一個(gè)8位鎖存器將地址信號(hào)分離出來(lái);再根據(jù)需要擴(kuò)展器件尋址范圍的大小,用另外一個(gè)I/O口的若干位作為高位地址線(xiàn)。需要擴(kuò)展的器件就可以與這三總線(xiàn)相應(yīng)信號(hào)相連。當(dāng)需要對(duì)擴(kuò)展器件進(jìn)行訪(fǎng)問(wèn)時(shí),即可以在高8位地址線(xiàn)的I/O口先輸出高位地址,再?gòu)姆謺r(shí)復(fù)用的I/O口輸出低8位地址,并用另外一個(gè)I/O線(xiàn)作為地址鎖存允許信號(hào)線(xiàn)ALE去控制鎖存器,鎖存住8位的低位地址。這時(shí)就可對(duì)尋址單元進(jìn)行訪(fǎng)問(wèn)。下面的并行擴(kuò)展都采用這個(gè)方案?! ?/p>
對(duì)于串行擴(kuò)展,比較簡(jiǎn)單,因?yàn)樵赑IC16CXX系列芯片中已有同步串行口部件SSP,可以直接進(jìn)行I2C方式、SPI方式串行通信,另外還有異步通信接口USART。在PIC16C5X系列芯片中沒(méi)有串行通信部件,但是可以用軟件仿真實(shí)現(xiàn)?!?
PIC系列微控制器系統(tǒng)擴(kuò)展技術(shù)有:
1、數(shù)據(jù)存儲(chǔ)器擴(kuò)展
?。?)并行數(shù)據(jù)存儲(chǔ)器擴(kuò)展;(2)串行數(shù)據(jù)存儲(chǔ)器擴(kuò)展,例如,二總線(xiàn)EEPROM和三總線(xiàn)EEPROM同串行EEPROM,PIC16C5X與24XXXX系列串行EEPROM的接口,擴(kuò)展I2C總線(xiàn)協(xié)議所規(guī)定地址空間技術(shù)-16C54與24LC65的接口方法和編程,16C5X與四線(xiàn)制串行EEPROM芯片93LC46的接口方法和編程,16CXX SPI接口和93LCXX的接口。[!--empirenews.page--]
2、PIC系列微控制器的I/O口擴(kuò)展
?。?)74系列TTL集成電路芯片擴(kuò)展技術(shù);(2)可編程并行接口擴(kuò)展技術(shù);(3)用PIC16C5X實(shí)現(xiàn)數(shù)字電位器的功能;(4)人機(jī)對(duì)話(huà)的鍵盤(pán)、LED數(shù)碼顯示、LCD驅(qū)動(dòng)擴(kuò)展,用PIC16C57直接擴(kuò)展LED數(shù)碼管和鍵盤(pán),用PIC16C54/56擴(kuò)展LED數(shù)碼管和鍵盤(pán),用PIC系列微控制器直接驅(qū)動(dòng)LCD顯示器。
3、中斷系統(tǒng)的擴(kuò)展和實(shí)現(xiàn)
?。?)軟件中斷技術(shù)(2)PORTB口作外部中斷。
4、I2C總線(xiàn)接口與串行通信
(1)I2C總線(xiàn)軟件設(shè)計(jì)及其子程序;(2)異步串行通信的軟件實(shí)現(xiàn);(3)PIC16CXX系列異步串行通信中斷驅(qū)動(dòng)的軟件實(shí)現(xiàn)。
三、PIC系列微控制器應(yīng)用系統(tǒng)開(kāi)發(fā)及其常用工具
單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā),用單片機(jī)開(kāi)發(fā)設(shè)計(jì)制作的應(yīng)用系統(tǒng)或產(chǎn)品,與純粹用硬件電路實(shí)現(xiàn)的裝置不一樣。這是因?yàn)槌讼鄳?yīng)的硬件電路外,其關(guān)鍵在于應(yīng)用系統(tǒng)軟件的開(kāi)發(fā),而單片機(jī)本身并沒(méi)有軟件開(kāi)發(fā)功能。編寫(xiě)的應(yīng)用程序如何調(diào)試和修改?怎么能高效率地找出應(yīng)用系統(tǒng)硬件和軟件中的錯(cuò)誤?又如何把最后調(diào)試好的程序固化到單片機(jī)片內(nèi)程序存儲(chǔ)器中?這些需要相應(yīng)的開(kāi)發(fā)工具,稱(chēng)為開(kāi)發(fā)系統(tǒng)。主要包括單片機(jī)匯編語(yǔ)言編譯器、在線(xiàn)實(shí)時(shí)仿真器ICE(Incircuit Emulator) 、非在線(xiàn)仿真器(軟件模擬仿真器Simulator)、編程器、EPROM擦除器等。硬件調(diào)試還可能用到邏輯分析儀等。
系統(tǒng)開(kāi)發(fā)常用工具有:
1、PIC匯編器
(1)PICASM匯編程序;(2)MPALC匯編程序;(3)MPASM宏匯編程序;(4)MPASM匯編語(yǔ)言。
2、軟件仿真器MPSIM。
3、實(shí)時(shí)在線(xiàn)硬件仿真器
?。?)實(shí)時(shí)在線(xiàn)仿真器PICMATE(2)EasyPack-PIC 16F高級(jí)仿真器。
4、單片機(jī)內(nèi)置程序存儲(chǔ)器編程器
?。?)PICPROG編程器;(2)PRO MATE編程器。
四、MPLAB集成開(kāi)發(fā)環(huán)境(IED)軟件
MPLAB是適用于Microchip Technology公司PIC16/17微控制器系列的、基于Windows的、易學(xué)易用的集成開(kāi)發(fā)環(huán)境(IDE--Intergrated Development Environment)。這種集成開(kāi)發(fā)環(huán)境使應(yīng)用系統(tǒng)開(kāi)發(fā)工程師可以即方便又靈活地編輯、匯編、仿真、開(kāi)發(fā)利用和調(diào)試查錯(cuò)。 MPLAB集成開(kāi)發(fā)環(huán)境軟件集成了下列開(kāi)發(fā)工具。(1)工程項(xiàng)目管理程序(Project Manager)(2)MPLAB編輯程序(MPLAB Editor)(3)MPLAB匯編程序(MPLAB Assembler)(4)MPLAB-SIM軟件模擬程序(MPLAB-SIM Software Simulator)(5)PICMASTER硬件在線(xiàn)仿真器(PICMASTER Emulator),還有其它工具等。
五、PIC系列微控制器的應(yīng)用實(shí)例
PIC系列微控制器的應(yīng)用范圍很廣,例如:1、交流數(shù)字電壓表 ;2、電力周波表 ;3、閃光報(bào)警器; 4、帶有世界時(shí)鐘的賓館移動(dòng)式客房控制器 ;5、用PIC16C71控制的不間斷電源; 6、用PIC單片機(jī)產(chǎn)生均勻分布的隨機(jī)數(shù) ;7、用PIC17C42實(shí)現(xiàn)4階IIR數(shù)字濾波器; 8、用PIC17C42實(shí)現(xiàn)FFT算法; 9、即熱式熱水器溫度控制器; 10、標(biāo)準(zhǔn)并行接口漢字熱敏微型打印機(jī) ;11、PIC16CXX片內(nèi)I2C總線(xiàn)接口的應(yīng)用。