1. pic 單片機 參考文獻
PIC8位單片機的基本組成
PIC系列8位單片機為適應各種不同的用途,有多種型號可供選用。但是,盡管PIC單片機有不同的檔次和型號,但其最基本的組成則大同小異。因此,在這里先從型號PIC16F84的單片機入手,討論其基本組成。PIC16F84是雙列直插式(DIP)塑料封裝,最大時鍾頻率可達4MHz。現為Microchip公司的獨家產品,關於其具體技術指標,可查閱該公司的產品手冊,或在網址www.microchip.com上查找。
PIC16F84單片機的引腳排列可參閱本期本版的16F8X系列簡介一文。本文的附圖是該器件的主要組成部分。PIC16F84雖然體積不大,但仍然是一個完整的計算機,它有一個中央處理器(CPU)、程序存儲器(ROM)、數據寄存器(RAM)和兩個輸入/輸出口(I/O口)。
和其它品種的單片機一樣,CPU是此單片機的「首腦」,它從程序存儲器中讀取和執行指令。在取指和執行時,還可同時對數據寄存器進行取數(前已介紹PIC16F84採用哈佛結構)。由附圖可明顯看出,程序存儲器和數據存儲器各有一條匯流排與CPU相連。有些CPU將CPU內部的寄存器與其外部的RAM是分開管理的,但PIC單片機不是這樣,它的通用數據RAM也歸為寄存器,稱為File寄存器。在PC16F84中,有68個位元組的通用RAM,其地址為0CH~4FH。
除了通用數據寄存器外,還有一些專用寄存器,其中最常用的工作寄存器為「W寄存器」。CPU將工作數據存放在W寄存器中。寄存器W的作用與其它單片機中的「累加器A」相似。此外,還有幾個專用寄存器,它們分別以某種方式控制PIC的運作。
PIC16F84的程序存儲器是由Flash(閃速)EPROM構成,它可用電來記錄和擦除,而在斷電時,仍可保留其內容。PIC單片機有些型號的程序存儲器用的是EPROM,需要用紫外線來擦除;還有一些型號是一次性可編程(OTP)的產品(一經編程便不能再擦除)。
PIC16F84有兩個輸入/輸出口,即A口和B口。每個口的每個引腳可單獨設定為輸入或輸出。各個口的位是從0開始編號的。當A口為輸出方式時,其第4位(即RA4)為開路集電極(或開路漏極)輸出,而B口及A口其它各位為常規的全CMOS驅動電路。這些功能必須注意,否則會在編程時出錯。CPU對每個埠都按一個位元組8位來處理,但A口只有5位引腳。
PIC輸入與COMS兼容,所以PIC輸出可驅動TTL或CMOS邏輯晶元。每個輸出引腳可以流出或吸入20mA電流,即使一次只用了一個引腳亦是如此。
摘 要:在介紹空調室內機控制器功能的基礎上,從軟體的規劃著手,詳細介紹了室內機軟體的總體設計過程、詳細設計過程以及編碼的實現,並在此基礎上重點給出了空調室內機運行模式的特點和結合這些特點如何用MPLAB集成開發環境去實現各運行模式。
關鍵詞:空調;控制器;單片機;軟體設計
單片機軟體實現是單片機系統應用的重點,他是在硬體設計基礎上實現程序設計的重要環節。單片機程序設計一般包括以下幾個步驟:軟體規劃、流程圖編制、代碼編寫。由於單片機系統具有軟硬體緊密結合的特點,因此在基於某種單片機系統的軟體開發時,應充分了解該系統實現的硬體環境,同時也應該在系統設計與硬體設計階段,對軟體設計有一個大體的規劃。因此,本文在介紹室內機控制器功能的基礎上,重點討論如何用軟體實現該室內機的功能。
一:PIC16C71的問題和對策
問題1:在晶元進入低功耗睡眠模式 (SLEEP MODE)後,其振盪腳將處於浮態,這將使晶元的睡眠功耗上升,比原手冊中的指標高了10μA以上。
對策:在振盪腳OSC1和地 (GND)之間加一10MΩ電阻可防止OSC1進入浮態,且不會影響正常振盪。
問題2:RA口方向寄存器TRISA目前只是一個4位寄存器,對應於RA0~RA3,並非手冊中所言是8位寄存器,對應於RA0~RA4,即RA4並沒有相應的輸入/輸出方向控制位,它是一個具有開極輸出,施密特輸入I/O腳。
對策:避免使用對RA口進行讀-修改-寫指令(如BCF RA, BSF RA),以免非意願地改變RA4的輸入/輸出狀態。對於RA口的操作應採用寄存器的操作方式(MOVWF RA)。
問題3:當CPU 正在執行一條對INTCON寄存器進行讀-修改-寫指令時,如果發生中斷請求,則讀中斷常式會被執行二次。這是因為當中斷請求發生後INTCON寄存器中的GIE位會被硬體自動清零(屏蔽所有中斷),並且程序轉入中斷常式入口(0004H)。當GIE位被清零後,如果這時正好CPU在執行一條對 INTCON的讀-修改-寫指令(如BSF INTCON等),則 GIE位還會被寫回操作重新置1,這樣會造成CPU二次進入中斷常式。
對策:如果在程序中需對INTCON的某一中斷允許位進行修改,則應事先置GIE=0
,修改完成後再恢復GIE=1。
…………..
BCF INTCON, GIE
BSF INTCON, ×××
BSF INTCON, GIE
…………..
圖1
問題4:當晶元電壓VDD加電上升時間大於100μs時,電源上電復位電路POR和電源上電延時器PWRT可能不能起正常的作用,而使晶元的復位出現不正常(即PC≠復位地址)。一般在這種情況下建議不要採用PWRT。
對策:如果VDD上升時間很長,此晶元一般需較長的電源上電延時,可靠的電源上電延時方法如圖1所示,在MCLR端外接復位電路。
問題5:如果在A/D轉換中用RA3作為參考電壓輸入,則最大滿量程誤差(NFS)要大於手冊中的指標。實際情況如表1所示。
表1 A/D滿量程誤差表
VREF源
(5.12V) 滿量程誤差
(NFS)
VDD <±1 LSb
RA3 <±2.5 LSb
二:PIC16C84的問題和對策
問題1:PIC16C84的內部的E2PROM數據存儲器的E/W周期偶爾會超出最大值(10ms)。
對策:在程序中應該用EECON1寄存器中的WR位來判斷寫周期的完成,或是啟用「寫周期完成中斷」功能,這兩種方法可保證寫入完成。
問題2:VDD和振盪頻率的關系如表2所示。
VDD 振盪方式 最高頻率
2V-3V RC, LP 2MHZ,200MHZ
3V-6V RC,XT,LP 4MHZ,200MHZ
4.5V-5.5V HS 10MHZ
2. 基於pic單片機控制的智能小車
我們做小車一般是把實現各個功能的模塊在電路板上搭起來,電路你可以在網上找經典電路,省時省力。也可以自己設計,不過這個很難。再把各個模塊搭建在小車上。程序一般也可以網路得到,也可以自己寫,網路的程序你把埠按你的解法修改一下,燒錄到單片機就行了。
3. 通俗的介紹一下pic單片機
為什麼要和電腦類比呢?看來你沒有用過單片機吧,單片機的結構都是大同小異的。
那就象徵性地類比下。
pic是哈佛結構的,程序存在程序存儲器,也就是ROM或者Flash裡面,相當於電腦硬碟。
數據存儲在數據存儲器里,也就是RAM,相當於電腦的內存。
pic單片機有些內部沒有RC振盪,所以基本都要外接晶振,pic單片機一般內部指令周期4分頻,也就是晶振頻率/4的執行速度,相當於電腦主頻。
其實單片機和電腦的cpu才是近親啊。
還有就是各種介面啊。比如串口,單片機一般都是有的,台式電腦上也基本都是有的。
還有就是spi,i2c,AD等這些外設。電腦上沒有。
pic單片機比其他單片機的優勢?估計不太大了。主要是據說它剛干擾比較強,但實際上那是十幾二十年前的說法了,老外用得比較多。價格沒有優勢,比較貴。資源也沒有優勢,就性價比來說,pic沒太大優勢。
而且硬體方面的特點:14bit一字的程序存儲器,和ram分頁是最大的特點。這個導致很多初學者看不懂。ram本來就小還分成數頁,給操作帶來很大的麻煩。
10f和12f因為fROM和RAM是在太小,不建議用c語言,最好用匯編編寫。
就我用過的多款單片機中,pic單片機給我的印象資源一般,操作比較繁瑣,價格較高,抗干擾么,感覺上是比一般的好點。
如有問題,歡迎追問
4. 單片機C語言程序設計實訓100例:基於PIC+Proteus模擬的編輯推薦
《單片機C語言程序設計實訓100例:基於PIC+Proteus模擬》:一本凝聚了作者近兩年艱苦寫作經歷的書籍
一本忠實的讀者們期待已久的單片機技術開發書籍
一本涵蓋PIC單片機C語言程序設計大量核心源碼的書籍
一本帶領你進入PIC單片機C語言程序設計神奇之旅的書籍
一本可作為「代碼寶典或「代碼手冊」使用的書籍
◆豐富的C語言源程序全部基於MPLAB IDE+H1—TECHPICC/PICC 1 8/MCC 1 8開發環境
◆基於Proteus提供的實物電路案例模擬解決了實驗條件欠缺的問題
◆逐步遞進的案例設計及難易適中的實訓目標引領讀者進入爐火純青的程序設計境界
◆基礎設計類案例涵蓋PIC單片機最基本的埠編程、定時/計數器應用、中斷程序設計、A/D轉換、CCP程序設計、EEPRoM、FIash、USART及看門狗程序設計等
◆硬體應用類案例涉及單片機存儲器擴展、介面擴展、解碼、編碼、驅動、光電、機電、感測器、I2C及SP}介面器件、MMC、ATA、遙控等器件等
◆綜合設計類案例涉及消費類電子產品、儀器儀表及智能控制設備等相關技術,部分案例涉及IRDA/RS-485/M0dbus/CAN/Ethernet等技術應用
5. 單片機C語言程序設計實訓100例:基於PIC+Proteus模擬的目錄
第1章PIC單片機C語言程序設計概述
1.1 PIC單片機簡介
1.2 MPLAB+C語言程序開發環境安裝及應用
1.3 PICC/PICC18/MCC18程序設計基礎
1.4 PIC單片機內存結構
1.5 PIC單片機配置位
1.6 基本的I/O埠編程
1.7 中斷服務程序設計
1.8 PIC單片機外設相關寄存器
1.9 C語言程序設計在PIC單片機應用系統開發中的優勢
第2章PROTEUS操作基礎
2.1 PROTEUS操作界面簡介
2.2 模擬電路原理圖設計
2.3 元件選擇
2.4 模擬運行
2.5 MPLAB IDE與PROTEUS的聯合調試
2.6 PROTEUS在PIC單片機應用系統開發中的優勢
第3章 基礎程序設計
3.1 閃爍的LED
3.2 用雙重循環控制LED左右來回滾動顯示
3.3 多花樣流水燈
3.4 LED模擬交通燈
3.5 單只數碼管循環顯示0~9
3.6 4隻數碼管滾動顯示單個數字
3.7 8隻數碼管掃描顯示多個不同字元
3.8 K1~K5控制兩位數碼管的開關、加減與清零操作
3.9 數碼管顯示4×4鍵盤矩陣按鍵
3.10 數碼管顯示撥碼開關編碼
3.11 繼電器及雙向可控硅控制照明設備
3.12 INT中斷計數
3.13 RB埠電平變化中斷控制兩位數碼管開關與加減顯示
3.14 TIMER0控制單只LED閃爍
3.15 TIMER0控制流水燈
3.16 TIMER0控制數碼管掃描顯示
3.17 TIMER1控制交通指示燈
3.18 TIMER1與TIMER2控制十字路口秒計時顯示屏
3.19 用工作於同步計數方式的TMR1實現按鍵或脈沖計數
3.20 用定時器設計的門鈴
3.21 報警器與旋轉燈
3.22 用工作於捕獲方式的CCP1設計的頻率計
3.23 用工作於比較模式的CCP1控制音階播放
3.24 CCP1 PWM模式應用
3.25 模擬比較器測試
3.26 數碼管顯示兩路A/D轉換結果
3.27 EEPROM讀寫與數碼管顯示
3.28 睡眠模式及看門狗應用測試
3.29 單片機與PC雙向串口通信模擬
3.30 PIC單片機並行從動埠PSP讀寫測試
第4章 硬體應用
4.1 74HC138與74HC154解碼器應用
4.2 74HC595串入並出晶元應用
4.3 用74HC164驅動多隻數碼管顯示
4.4 數碼管BCD解碼驅動器7447與4511應用
4.5 8×8LED點陣屏顯示數字
4.6 8位數碼管段位復用串列驅動晶元MAX6951應用
4.7 串列共陰顯示驅動器MAX7219與7221應用
4.8 14段與16段數碼管串列驅動顯示
4.9 16鍵解碼晶元74C922應用
4.10 1602LCD字元液晶測試程序
4.11 1602液晶顯示DS1302實時時鍾
4.12 1602液晶工作於4位模式實時顯示當前時間
4.13 帶RAM內存的實時時鍾與日歷晶元PCF8583應用
4.14 2×20串列字元液晶演示
4.15 LGM12864液晶顯示程序
4.16 PG160128A液晶圖文演示
4.17 TG126410液晶串列模式顯示
4.18 HDG12864系列液晶演示
4.19 Nokia7110液晶菜單控製程序
4.20 8通道模擬開關74HC4051應用測試
4.21 用帶I2C介面的MCP23016擴展16位通用I/O埠
4.22 用帶SPI介面的MCP23S17擴展16位通用I/O埠
4.23 用I2C介面控制MAX6953驅動4片5×7點陣顯示器
4.24 用I2C介面控制MAX6955驅動16段數碼管顯示
4.25 用帶SPI介面的數/模轉換器MCP4921生成正弦波形
4.26 用帶SPI介面的數/模轉換器MAX515控制LED亮度循環變化
4.27 正反轉可控的直流電機
4.28 PWM控制MOSFET搭建的H橋電路驅動直流電機運行
4.29 正反轉可控的步進電機
4.30 用L297+L298控制與驅動步進電機
4.31 PC通過RS-485器件MAX487遠程式控制制單片機
4.32 I2C介面DS1621溫度感測器測試
4.33 SPI介面溫度感測器TC72應用測試
4.34 溫度感測器LM35全量程應用測試
4.35 K型熱電偶溫度計
4.36 用鉑電阻溫度感測器PT100設計的測溫系統
4.37 DS18B20溫度感測器測試
4.38 SHT75溫濕度感測器測試
4.39 1-Wire式可定址開關DS2405應用測試
4.40 光敏電阻應用測試
4.41 MPX4250壓力感測器測試
4.42 用I2C介面讀寫存儲器AT24C04
4.43 用SPI介面讀寫AT25F1024
4.44 PIC18 I2C介面存儲器及USART介面測試程序
4.45 PIC18 SPI介面存儲器測試程序
4.46 PIC18定時器及A/D轉換測試
4.47 用PIC18控制Microwire介面繼電器驅動器MAX4820
4.48 MMC存儲卡測試
4.49 ATA硬碟數據訪問
4.50 微芯VLS5573液晶顯示屏驅動器演示
第5章 綜合設計
5.1 用DS1302/DS18B20+MAX6951設計的多功能電子日歷牌
5.2 用PCF8583設計高模擬數碼管電子鍾
5.3 用4×20LCD與DS18B20設計的單匯流排多點溫度監測系統
5.4 用內置EEPROM與1602液晶設計的加密電子密碼鎖
5.5 用PIC單片機與1601LCD設計的計算器
5.6 電子秤模擬設計
5.7 數碼管顯示的GP2D12模擬測距警報器
5.8 GPS全球定位系統模擬
5.9 能接收串口信息的帶中英文硬字型檔的80×16點陣顯示屏
5.10 用M145026與M145027設計的無線收發系統
5.11 紅外遙控收發模擬
5.12 交流電壓檢測與數字顯示模擬
5.13 帶位置感應器的直流無刷電機PMW控制模擬
5.14 3端可調正穩壓器LM317應用測試
5.15 模擬射擊訓練游戲
5.16 帶觸摸屏的國際象棋游戲模擬
5.17 溫室監控系統模擬
5.18 PIC單片機MODBUS匯流排通信模擬
5.19 PIC單片機內置CAN匯流排通信模擬
5.20 基於PIC18+Microchip TCP/IP協議棧的HTTP伺服器應用
參考文獻