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