版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、PIC單片機原理及運用(第二版)美國微芯公司授權(quán)上海技術(shù)培訓(xùn)中心2005.01第1章微型計算機概論 微型計算機是一種既有快速運算才干,又有極強邏輯判別才干和大容量存儲功能的電子設(shè)備,它是20世紀(jì)人類最杰出的科學(xué)發(fā)明之一。 本章引見微型計算機的根底知識,主要內(nèi)容有微型計算機的開展歷史及運用領(lǐng)域、計算機硬件、軟件系統(tǒng)的根本組成。 1.1 微型計算機的開展歷史及運用 我們今天所說的計算機,是指利用電子技術(shù)實現(xiàn)計算并具有邏輯判別和程序存儲功能的設(shè)備。 1.1.1 微型計算機的開展歷史 從計算機開展的歷史看,微型計算機已屬于第四代計算機,而微型計算機的開展又曾閱歷了四代。 1.1.2 微型計算機的運用
2、科學(xué)計算 數(shù)據(jù)處置 過程控制 計算機輔助設(shè)計/輔助制造 (CAD/CAM) 計算機網(wǎng)絡(luò) 1.1.3 微型計算機系統(tǒng)主要技術(shù)目的 字長 :計算機的字長取8的整數(shù)倍數(shù), 如8位、16位、32位、64位等 速度 :計算機的速度目的可用主頻及運算 速度來評價 G、萬次/秒存儲系統(tǒng)容量 :內(nèi)存和外存MG 1.2 微型計算機系統(tǒng)的組成 計算機的硬件通常包括運算器、存儲器、控制器、輸入設(shè)備及輸出設(shè)備等五個部分 1.2.2 軟件系統(tǒng) 軟件系統(tǒng)是一臺計算機中的系統(tǒng)軟件、運用軟件、程序設(shè)計言語和支持軟件及各種文檔的總稱。 系統(tǒng)軟件:包括操作系統(tǒng)、效力程序、匯編程序、解釋程序和編譯程序等。 運用軟件:是用匯編言語或
3、高級言語為處理某種實踐問題而編寫的程序。 程序設(shè)計言語:通常分為面向機器的匯編言語和面向用戶的高級言語。 1.3 微控制器系統(tǒng) 在計算機的開展歷史上,特別是在第一臺小型控制器件構(gòu)成以后,沿著兩條完全不同的用途、不同的價錢、和不同的技術(shù)內(nèi)涵,而被充實于我們的日常生活中。 1.3.1 單片機系統(tǒng) 單片機的開展過程和性能的日益完善,實踐上是對傳統(tǒng)控制技術(shù)的一場革命,開創(chuàng)了微控技術(shù)的新天地。 現(xiàn)代控制系統(tǒng)的中心內(nèi)涵就是嵌入式計算機運用系統(tǒng)MCU,而單片機就是最典型、最廣泛、最普及的嵌入式計算機運用系統(tǒng)。 單片機的降臨,主要也是源于其性能價錢比。普通單片機用于控制的目的,而對于其承當(dāng)?shù)挠嬎愎δ軈s要求不高
4、,只需能按照一定的程式進展在線檢測和即時控制任務(wù)。目前,各個單片機消費廠家還是立足于8位單片機的競爭,由于從其降臨以來,不斷成為運用最廣泛的器件。2002年美國MICROCHIP和MOTOROLA兩家公司,已占據(jù)著世界8位單片機產(chǎn)量最高的前兩個芯片制造商。 普通的單片機的構(gòu)造可以用圖1.2所示的方塊圖描畫,用三大總線DB、AB、CB實現(xiàn)模塊之間的信息傳送。單片機內(nèi)部構(gòu)造 單片機的主要運用 人有所思,單片機就可為。單片機的運用必將隨著社會的開展和技術(shù)的提高,而獲得更寬廣運用。系列化的單片機 ?電信家用電器工業(yè)控制儀器儀表汽車玩具 單片機有哪些特點 單片機具備體積小、價錢低、性能強、速度快、用途廣
5、、可靠性高、靈敏性強等優(yōu)點,它與通用的計算機相比,還具有以下一些特點:存儲器ROM和RAM的相互獨立采用面向控制的指令系統(tǒng)輸入/輸出端口的強大功能 1.3.2 PIC系列單片機 PIC系列單片機,可以滿足用戶的各種需求。從中檔產(chǎn)品PIC16F877作為切入點,提供非常完備、易學(xué)易用的MPLAB-ICD集成開發(fā)環(huán)境。 特別是對于單片機的新手,仿佛從茫然迷惑的大海搭上一艘便利平穩(wěn)的小船,感到非常輕松自若。 第2章 PIC單片微機的組成 PICPeriphery Interface Chip單片微機是美國Microchip公司消費的PIC系列單片機。 PIC系列單片機的硬件系統(tǒng)設(shè)計簡約,指令系統(tǒng)設(shè)計
6、精煉。在一切的單片機種類中,PIC具有性能完善、功能強大、學(xué)習(xí)容易、開發(fā)運用方便、人機界面友好等突出優(yōu)點。 2.1 PIC系列單片機概述 Microchip公司是一家專門努力于單片機開發(fā)、研制和消費的制造商,其產(chǎn)品設(shè)計起點高,技術(shù)領(lǐng)先,性能優(yōu)越。 它不是在普通微型計算機CPU的根底上加以改造,而是獨樹一幟,采用全新的流水線構(gòu)造、單字節(jié)指令體系、嵌入閃存以及10位A/D轉(zhuǎn)換器,使之具有杰出的性能,代表著單片機開展的新方向。 PIC系列單片機,具有高、中、低三個檔次,可以滿足不同用戶開發(fā)的需求,適宜在各個領(lǐng)域中的運用。 它具有如下特點: 2.1.1 PIC系列單片機特點單片機總線構(gòu)造 單片微型計算
7、機通常采用兩種體系構(gòu)造:一種是普林斯頓體系構(gòu)造;另一種是哈佛體系構(gòu)造。 在普林斯頓體系構(gòu)造中,其程序存儲器和數(shù)據(jù)存儲器一致編址,也就是說兩種存儲器位于同一邏輯空間。這種單片機的取指令和存取數(shù)據(jù)必需分時地進展,影響了執(zhí)行指令的速度。 哈佛體系構(gòu)造的程序存儲器和數(shù)據(jù)存儲器獨立編址,也就是說兩種存儲器有不同的邏輯空間。 PIC系列單片機采用哈佛總線構(gòu)造,在芯片內(nèi)部數(shù)據(jù)總線和指令總線分別,允許采用不同的字節(jié)寬度。這樣,就為實現(xiàn)指令提取和執(zhí)行的“流水作業(yè)提供構(gòu)造保證,即在執(zhí)行一條指令的同時對下一條指令進展取指操作。 兩總線的分別,也為PIC實現(xiàn)全部指令的單字節(jié)化和單周期化發(fā)明條件,從而大大提高CPU執(zhí)行
8、指令的速度和任務(wù)效率。1. 哈佛總線構(gòu)造 單片機總線構(gòu)造比較 從同一存儲器空間取指令和取操作數(shù)據(jù)。 限制了數(shù)據(jù)流量。 從兩個獨立的存儲空間分別取指令和存取操作數(shù)。 數(shù)據(jù)流量添加。 針對程序區(qū)和數(shù)據(jù)區(qū)可以設(shè)計不同的數(shù)據(jù)線寬度。程序和數(shù)據(jù)存儲器馮-紐曼構(gòu)造8-位CPU程序存儲器數(shù)據(jù)存儲器8-位12/14/16-位哈佛構(gòu)造CPU PIC系列單片機的指令系統(tǒng),由于采用RISC技術(shù),和普通單片機指令系統(tǒng)通常有上百條指令相比要少得多。 2RISC技術(shù) PIC系列單片機只需4種尋址方式:存放器間接尋址、立刻數(shù)尋址、直接尋址和位尋址,比較容易掌握。 PIC系列單片機的程序、數(shù)據(jù)、堆棧三者各自采用相互獨立的地址
9、空間,前兩者的地址訪問需求用戶特別留意四個分區(qū)的范圍,而堆棧過程用戶不用參與和操心。 代碼緊縮率,就是指一樣程序存儲器空間所能包容有效指令的數(shù)量。3指令特征 由于PIC系列單片機采用CMOS構(gòu)造,使其功率耗費極低,是目前世界上最低功耗的單片機種類之一。 其中有些型號,在4MHz時鐘下任務(wù)時耗電不超越2mA,而在睡眠方式下耗電可低到1A以下。 因此,PIC系列單片機,尤其適用于野外挪動儀表的控制以及戶外免維護的控制系統(tǒng)。 5功耗低 I/0端口驅(qū)動負載的才干較強,每個輸出引腳可以驅(qū)動多達20-25mA的負載,既可以高電平直接驅(qū)動發(fā)光二極管LED、光電藕合器、小型繼電器等,也可以低電平直接驅(qū)動,這樣
10、可大大簡化控制電路。 不過,請讀者留意,每個引腳的驅(qū)動才干并不表示端口引腳同時都具有這樣的效果。普通端口驅(qū)動才干約60-70mA,而一切輸入輸出驅(qū)動小于200mA,詳細數(shù)據(jù)可參考有關(guān)數(shù)據(jù)手冊。 6驅(qū)動才干強 PIC主要是采用哈佛總線構(gòu)造,可以同時進展指令讀取和指令執(zhí)行的流水線作業(yè)方式。 如:MCS-51 12M,指令執(zhí)行時間為1s4s PIC 12M時鐘周期,指令執(zhí)行時間為0.30.6s 7運轉(zhuǎn)速度高 PIC系列單片機的一些型號具有同步串行口,可以滿足I2C主控/從動和SPI主控總線要求。I2C和SPISerial Peripheral Interface分別是PHILIPS公司和MOTORO
11、LA公司研制的兩種廣泛流行的串行總線規(guī)范,是一種在芯片之間實現(xiàn)同步串行數(shù)據(jù)傳輸?shù)募夹g(shù)。 利用單片機串行總線端口可以方便而靈敏地擴展外圍器件,目前已在許多電子產(chǎn)品中得到廣泛運用。 8同步串行數(shù)據(jù)傳送方式 2.1.2 PIC16F877的構(gòu)造 從其執(zhí)行功能思索,可以將單片機分成兩大組件,即根本功能模塊和公用功能模塊。 PICl6F87X系列單片機有雙列直插式28引腳和40引腳及外表貼裝式44引腳等幾種封裝方式。 多數(shù)I/O引腳都設(shè)計有第2功能,甚至第3功能。采用引腳復(fù)用技術(shù),以便使單片機添加功能而又不增大體積和引腳數(shù)量。 2.1.3 PIC16F877的引腳 F877單片機內(nèi)部配置了較完善的多個存
12、儲器,可分為數(shù)據(jù)存儲器和程序存儲器兩種,為普通用戶提供很大的方便。 但它們在方式上,具有很豐富的內(nèi)涵。 2.2 存儲器概述 F877單片機內(nèi)部配置了8K l4位的閃爍FLASH程序存儲器,可以很方便進展在線擦除和燒寫,壽命可達1000次以上。 在PIC系列單片機教學(xué)實驗和科研開發(fā)中,顯示出無窮的魅力和廣大的運用前景。 相應(yīng)的地址編碼范圍為0000HlFFFH。 2.2.1 程序存儲器 程序存儲器構(gòu)造 F877單片機內(nèi)部配置兩類數(shù)據(jù)存儲器,普通RAM數(shù)據(jù)存儲器和EEPROM失電堅持數(shù)據(jù)存儲器。 RAM總的地址空間為512個單元,其中包括部分無效單元,但每一個有效單位均可以象存放器一樣進展移位、置
13、位、復(fù)位和位測試等操作。 PIC單片機的數(shù)據(jù)存儲器和其他單片機一樣,在配置構(gòu)造上可分為通用存放器和特殊功能存放器兩大類,前者給用戶運用,而后者通常定義給某些功能模塊,是一種具有特殊目的的功能存放器。 2.2.2 數(shù)據(jù)存儲器 同時在PIC16F877片內(nèi)又配置另一種可掉電維護的數(shù)據(jù)存儲器EEPROM,共有2568位寬的存儲單元,可以長期存放用戶或系統(tǒng)的重要參數(shù):如時間、配置及數(shù)據(jù)表格等,是一種非常重要的硬件資源。數(shù)據(jù)存儲器單元功能分配 體BANK0 體BANK1 體BANK2 體BANK3 存儲器是單片機中一個非常重要的部件,專門用于存放指令、數(shù)據(jù)和運算結(jié)果。 分析F877單片機存儲器構(gòu)架,可以
14、從其配置的三大模塊著手進展,它們是: 8K l4位FLASH程序存儲器 5128位數(shù)據(jù)存儲器RAM 2568位可掉電維護數(shù)據(jù)的EEPROM存儲器模塊。 第3章 PIC存儲器 存儲器從運用功能上來分,可分為隨機存儲器RAMRandom Access Memory和只讀存儲器ROMRead Only Memory兩類。 3.1 存儲器分類 F877程序存儲器具有13位寬的程序計數(shù)器PC。PC指針?biāo)a(chǎn)生的13位地址最大可尋址的程序存儲器空間為8K,相應(yīng)的地址編碼范圍為0000HlFFFH。 F877歸屬于中檔單片機,其指令字節(jié)寬度為14位,內(nèi)部構(gòu)架配置了8K l4位的閃爍FLASH程序存儲器。 3.
15、2 程序存儲器構(gòu)架 普通將整個程序存儲器以2KB為單位進展分頁PAGE,如圖3-1所示F877單片機,8KB程序存儲器共分作4頁,分別稱為“頁0、“頁l、“頁2和“頁3。 程序計數(shù)器高8位PCLATH的Bit4-Bit3位構(gòu)成程序存儲器分頁的選擇位,對應(yīng)的地址空間如下: PCLATH Bit4:Bit3: 0 0 頁0:0000H 07FFH 0 1 頁l:0800H 0FFFH 1 0 頁2:1000H 17FFH 1 1 頁3:1800H 1FFFHPIC16F877 單片機架構(gòu)程序存儲器最大8K字(13 位) 程序存儲空間程序空間按頁面劃分,每頁2K字 (11 位);最多四頁。頁面選擇
16、PCLATH復(fù)位向量地址 0000h中斷向量地址 0004hPage 00000h0004h07FFhInterruptResetPage 10800h0FFFhPage 21000h17FFhPage 31800h1FFFhPCLATH = 00PCLATH = 01PCLATH = 10PCLATH = 11 程序存儲器中有2個單元地址比較特殊,除了具備同其他單元地址一樣的普通用途外,還具有專門用途: 0000H:用作單片機系統(tǒng)的復(fù)位矢量; 0004H:用作系統(tǒng)特殊模塊的中斷矢量。 復(fù)位矢量中斷矢量 F877用于存儲數(shù)據(jù)的RAM單元比普通單片機RAM的功能要強大得多,它除了具備普通RAM的
17、功能之外,每一個單元都能實現(xiàn)移位、置位、復(fù)位和位測試等通常由存放器才干完成的功能操作。 3.3 數(shù)據(jù)存儲器構(gòu)架 RAM數(shù)據(jù)存儲器和FLASH程序存儲器一樣在空間構(gòu)架上,進展類似方式進展分區(qū)。按橫向陳列,分為4個“體BANK,從左到右分別記為“體0、“體1、“體2和“體3,每個體為128個8位寬的存儲器單元。 RP1:RP0 體域 存放器地址 0 0 體0: 000H 07FH 0 1 體1: 080H 0FFH 1 0 體2: 100H l7FH 1 1 體3: 180H lFFH 數(shù)據(jù)存儲器分區(qū)數(shù)據(jù)存儲器四個存儲體每個 128 字節(jié)特殊功能存放器存儲體選擇經(jīng)過 Status中的 RP0,1
18、和 IRP512單元368有效GPRGPRsSFRsBank0000h01Fh020h07FhGPRsSFRsBank1080h09Fh0A0h0FFh0F0hGPRsSFRsBank2100h11Fh120h17Fh170hGPRsSFRsBank3180h19Fh1A0h1FFh1F0hRP RP RP RP = 00 = 01 = 10 = 11 有些存放器單元在4個體上是相互映射的,如形狀存放器STATUS、間接尋址存放器INDF、程序計數(shù)器低8位PCL、文件選擇存放器FSR、程序計數(shù)器高8位PCLATH和中斷控制存放器INTCON。 所謂互為映射就是說,在4個體內(nèi)的一樣位置,物理上對
19、應(yīng)同一個存放器單元,所以該單元具備4個不同的地址。 相互映射 F877單片機的通用存放器GPRGeneral Purpose Registers,可由用戶自行支配存放隨機數(shù)據(jù)。 地址區(qū)域:F0HFFH、170Hl7FH和1F0H1FFH,都可以索引或映射到體0的16個RAM單元。 這樣安排是為了便于中斷效力程序的設(shè)計和數(shù)據(jù)處置,就可以在程序設(shè)計中可以有效突破體的限制而定義通用的變量函數(shù) 3.3.1 通用存放器 特殊功能存放器SFRSpecial Function Registers是用于公用目的的存放器,每個存放器單元,甚至其中的每一位,都有它本人特定的稱號和用途。 主要涉及PIC內(nèi)核構(gòu)造、外
20、圍功能模塊的配置和數(shù)據(jù)通訊方式的定義,是單片機賴于正常運轉(zhuǎn)的任務(wù)平臺。所以,特殊功能存放器又稱為公用存放器。 可以根據(jù)它們不同的用途分為兩類:一類是與CPU內(nèi)核相關(guān)的存放器;另一類是與外圍模塊相關(guān)的存放器。 3.3.2 特殊功能存放器 形狀存放器的內(nèi)容用來記錄算術(shù)邏輯單元ALU的運算結(jié)果形狀、CPU的特殊運轉(zhuǎn)形狀以及RAM數(shù)據(jù)存儲器體間選擇等信息。 1形狀存放器STATUS Bit0C:進位/借位標(biāo)志,被動參數(shù)。 0:執(zhí)行加法或減法指令時,假設(shè)最高位無進位或有借位; 1:執(zhí)行加法或減法指令時,假設(shè)最高位有進位或無借位。 Bit1DC:輔助進位/借位標(biāo)志,被動參數(shù)。 0:執(zhí)行加法或減法指令時,假
21、設(shè)低4位向高4位無進位或有借位; 1:執(zhí)行加法或減法指令時,假設(shè)低4位向高4位有進位或無借位。Bit2Z:零標(biāo)志,被動參數(shù)。 0:算術(shù)或邏輯運算結(jié)果不為0; 1:算術(shù)或邏輯運算結(jié)果為全0。 形狀標(biāo)志位 Bit6-Bit5RP1-RP0:RAM數(shù)據(jù)存儲器體選位,僅用于直接尋址。 兩位復(fù)合選擇RAM數(shù)據(jù)存儲器4個體,詳細關(guān)系如下: RP1、RP0 = 0 0 選中體0 RP1、RP0 = 0 1 選中體1 RP1、RP0 = 1 0 選中體2 RP1、RP0 = 1 1 選中體3 Bit7IRP:RAM數(shù)據(jù)存儲器體選位,僅用于間接尋址。 0:選擇數(shù)據(jù)存儲器低位體: 即體0FSR的Bit7=0或體1
22、FSR的Bit7=1;1: 選擇數(shù)據(jù)存儲器高位體: 即體2FSR的Bit7=0或體3FSR的Bit7=1。 數(shù)據(jù)存儲器體選位 在RAM數(shù)據(jù)存儲器中,有一個非常特別的存放器INDF它的專有功能是與FSR存放器配合,實現(xiàn)間接尋址。 當(dāng)訪問地址INDF時,實踐上是訪問以FSR內(nèi)容為地址的數(shù)據(jù)存儲器RAM單元。 2間接尋址的存放器INDF和FSR 在直接尋址中,體選碼來自形狀存放器STATUS的RP1和RPO位,體內(nèi)的單元地址直接來自指令機器碼。而在間接尋址中,體選碼由STATUS的IRP位和FSR存放器的BIT7組成 直接尋址/間接尋址方式的表示圖 程序計數(shù)器PC指針寬13位,它的內(nèi)容指向CPU將要
23、執(zhí)行的下一條指令所在程序存儲器單元的地址。 低8位PCL有本人的地址,可讀可寫;而高5位PCH和其它單片機不一樣,即沒有本人的地址,不能用軟件訪問,也就不能直接寫人,只能用存放器PCLATH裝載的方式進展間接寫人。 3與PC相關(guān)的存放器PCL和PCLATH 兩種情況下PC值的裝入過程 PCLATH對于高5位PCH的裝載分兩種情況: 一種情況是當(dāng)執(zhí)行以PCL為目的的寫操作指令時,PC的低8位來自算術(shù)邏輯單元ALU,PC的高5位來自PCLATH的低5位; 另一種情況是當(dāng)執(zhí)行跳轉(zhuǎn)指令GOTO或調(diào)用子程序指令CALL時,PC的低11位來自指令碼中直接攜帶的11位地址,高2位由PCLATH3-4提供。
24、程序存儲器: PC 絕對尋址OP CODEkkkk14-位 call 和goto指令kkkkkkk 經(jīng)過 CALL 和 GOTO修正 PC (程序指針)kkkkkkkkkxxxkkxxxPCLATH存放器有效的 13-位程序存儲器地址11-位 來自指令2-位來自PCLATHkkkkPCH PCL 13-位程序指針PCLATH 內(nèi)部數(shù)據(jù)總線 558movlwHIGH DelaymovwfPCLATHmovlwLOW DelaymovwfPCL *對于讀PC值時: 僅從PCL讀低8位值, PCH不會被載入到PCLATH程序存儲器: PC 相對尋址 主要用于設(shè)置定時/計數(shù)器TMR0、前后分頻器、外部
25、INT中斷以及B端口的弱上拉功能等各種控制位。 4選項存放器OPTION_REG Bit2-Bit0PS2-PS0:分頻器倍率選擇位 Bit3PSA:前后分頻器分配位,自動參數(shù)。0: 分配給TMR0,作為TMR0的前分頻器;1: 分配給WDT,作為WDT的后分頻器。Bit4T0SE:TMR0用于計數(shù)器,計數(shù)脈沖信號邊沿選擇位,自動參數(shù)。0: RA4/T0CKI引腳上的上升沿增量;1: RA4/T0CKI引腳上的下降沿增量。Bit5T0CS:定時/計數(shù)器TMR0時鐘源選擇位,自動參數(shù)。0: 用內(nèi)部指令周期時鐘CLKOUT作為TMR0的觸發(fā)脈沖;1: 用T0CKI引腳上的外部時鐘作為TMR0的觸發(fā)
26、脈沖。Bit6INTEDG:INT中斷信號觸發(fā)邊沿選擇位,自動參數(shù)。0: BR0/INT引腳上的上升沿觸發(fā);1: BR0/INT引腳上的下降沿觸發(fā)。Bit7RBPU:B端口弱上拉使能位,自動參數(shù)。0: RB0-RB7引腳弱上拉使能;1: RB0-RB7引腳弱上拉不使能。 主要用于中斷控制方式的設(shè)置。5中斷控制存放器INTCON端口存放器PORTA BCDE端口I/O定義存放器TRISA BCDEDi = 0 定義為輸出形狀Di = 1 定義為輸入形狀 6端口存放器 指令是單片機的指點中心,就是指揮CPU按要求進展一系列操作的命令。普通來說,單片機都具有本人特有的指令系統(tǒng),相互之間大都互不兼容。
27、 PIC單片機系列按照不同用戶的要求分成三個不同的運用檔次。 第4章 PIC指令系統(tǒng) 指令的執(zhí)行時間總是分解成兩部分:取指過程和執(zhí)行過程,取指的快慢直接與指令的字節(jié)數(shù)有關(guān),而指令的執(zhí)行快慢與時鐘的振蕩頻率有關(guān)。 在以往的單片機構(gòu)造中,程序存儲器和數(shù)據(jù)存儲器的地址空間和數(shù)據(jù)傳輸通道都相互并用,必需采用分時操作順序執(zhí)行。 而PIC單片機指令的執(zhí)行過程是遵照著一種全新哈佛總線體系構(gòu)造的原那么,充分利用計算機系統(tǒng)在程序存儲器和數(shù)據(jù)存儲器之間地址空間的相互獨立性,取指過程和執(zhí)行程序可以流水線操作同時進展。 4.1 指令流水線操作原那么 Flush Fetch 4Fetch SUB_1 Tcy0 Tcy1
28、 Tcy2 Tcy3 Tcy4 PIC單片機指令流水線表示Execute 1Fetch 31. MOVLW 55h Fetch 1Execute 3Fetch 2Execute 2 Fetch 42. MOVWF PORTB3. CALL SUB_14. BSF PORTA, BIT3 在這種尋址方式中,操作數(shù)或其中之一另一個是W是立刻數(shù), 隨指令碼攜帶,而無需再到其他地方去尋覓。指令中的操作數(shù)為8-位常數(shù).運用立刻數(shù)尋址方式的指令有: movlw, addlw, retlw, etc. 如: ADDLW16H指令尋址方式闡明 1.存放器立刻尋址14-位 立刻尋址指令OP CODEkkkkkk
29、kk2.存放器直接尋址7-位 直接從指令中獲取2-位從STATUS 存放器中獲取如:IORWF26H,09-位 有效存放器地址IRPRP1RP0OP CODETOPDZDCCSTATUS 存放器14-位指令fffffffRP1RP0fffffff7-位來自指令字2-位來自STATUS 存放器3.存放器間接尋址8-位 間接地址來自 FSR (選擇存放器).1-位 來自 STATUS 存放器. 例如:MOVWF INDFIRPfffffffffIRPRP1RP0TOPDZDCCfffffffSTATUS 存放器8-位 FSR 存放器有效的 9-位存放器地址8-位來自 FSR1-位來自STATUS
30、存放器 這是一種比較特別的尋址方式,是經(jīng)過兩個存放器INDF和FSR的組合而實現(xiàn)功能的。操作數(shù)是FSR存放器內(nèi)容位指針,所指向存放器單元的內(nèi)容。 間接尋址實例運轉(zhuǎn)機制: a 清從0 x20 to 0 x7F一切的RAM區(qū)域 b間接地址載入FSR c 每一次對INDF運轉(zhuǎn),由FSR指向的存放器被運用 例子:movlw0 x20movwfFSRLOOPclrfINDFincfFSR,FbtfssFSR,7gotoLOOP0000 00000000 0000FSR = 20hINDF00h04h20h7Fh數(shù)據(jù)記憶區(qū) 這是PIC單片機的特征之一,它可以對一切的RAM數(shù)據(jù)存儲器進展位尋址,即置位和清零
31、等。 如:BSF 26H,4;26H原為26H 4.位尋址 每條指令的字節(jié)長度為14位,主要由闡明指令功能的操作碼和參與指令處置的操作數(shù)組成。 操作碼部分,簡稱助記符,如表4-2中心助記符,是借用英語單詞來間接表達和定義其操作功能。 操作數(shù)部分,是按照操作碼的操作功能,對操作數(shù)進展處置。 根據(jù)操作數(shù)的源地址和目的地址的訪問性質(zhì),可以有多種表現(xiàn)方式:主要有直接尋址、間接尋址、立刻尋址和位尋址四類。 4.2 指令集闡明 中心助記符 指令系統(tǒng)補充字符闡明 數(shù)據(jù)傳送類指令共有4條指令,主要功能是將數(shù)據(jù)從源地址或立刻數(shù)傳送至目的地址中。 4.2.1 數(shù)據(jù)傳送類指令 【例題4-1】 請利用數(shù)據(jù)傳送類指令編
32、寫一段子程序,將立刻數(shù)20H傳送到通用存放器20H中。 【例題4-2】 請利用數(shù)據(jù)傳送類指令編寫一段子程序,將通用存放器20H和30H中的內(nèi)容進展交換。 算術(shù)運算類指令是PIC單片機指令系統(tǒng)中,承當(dāng)運算功能的重要部分,共有6條指令。主要有加減指令、增量和減量指令 4.2.2 算術(shù)運算類指令 【例題4-3】 請將通用存放器20H、30H構(gòu)成的16位數(shù)據(jù)與通用存放器40H、50H構(gòu)成的16位數(shù)據(jù)相加后放入40H、50H 中,知其和不會超出65535。 邏輯運算類指令是一組比較復(fù)雜的指令,方式較多,可以對位和字節(jié)進展邏輯操作。主要有與、或、異或、清零、置位、取反和左右移位等14條指令 4.2.3 邏
33、輯運算類指令 【例題4-4】 請將數(shù)據(jù)存儲器20H和30H中的數(shù)據(jù)分別與立刻數(shù)20H、30H相與和相或后相加,結(jié)果放入40H存儲器中,請編寫相應(yīng)的程序。 【例題4-5】 請編寫一個完好的程序,將數(shù)據(jù)存儲器20H低4位和30H高4位組合成一個八位二進制數(shù)據(jù),并從RC端口輸出。 控制轉(zhuǎn)移類指令,是在指令系統(tǒng)中方式靈敏、功能較強的一組指令,共11條。它們是構(gòu)成程序循環(huán)和跳轉(zhuǎn)的關(guān)鍵要素,普通可以分為有條件跳轉(zhuǎn)和無條件跳轉(zhuǎn)兩大類。 4.2.4 控制轉(zhuǎn)移類指令 這是一種比較特殊的轉(zhuǎn)移方式,根據(jù)位測試或加減1后的內(nèi)容判別條件的成立與否,而決議程序繼續(xù)執(zhí)行還是間跳執(zhí)行指令。 當(dāng)前判別語句A下一條語句B 再下一
34、條語句C1.相對轉(zhuǎn)移間跳 PIC指令系統(tǒng)的絕對轉(zhuǎn)移,主要由CALL和GOTO語句引出。在指令機器碼內(nèi)部本身并沒有攜帶完好的轉(zhuǎn)移目的地址,只包含低11位地址,而高2位將由PCLATH存放器給出。 【例題4-6】 請將通用存放器單元20H-2FH,分別對應(yīng)賦值20H-2FH,請編寫相應(yīng)的軟件程序。 2.絕對轉(zhuǎn)移和調(diào)用 【例題4-7】 請分析以下程序片段,并指出當(dāng)程序執(zhí)行完后,涉及到的一切存儲器單元的結(jié)果。 MOVLW22HMOVWF22HMOVWFFSRADDWFINDF,FINCFINDFSWAPF22H,WRLF22H,WDECFFSR,FMOVWFINDFBSFINDF,7【例題4-6】編寫
35、散轉(zhuǎn)指令程序 Microchip公司為PIC系列單片機配備了功能強大、基于Windows、易學(xué)易用的軟件集成開發(fā)環(huán)境MPLAB。 該開發(fā)環(huán)境可以使人們在本人的微機系統(tǒng)上,對PIC系列單片機進展程序的創(chuàng)建、錄入、編輯以及匯編,還能方便而靈敏地實現(xiàn)程序的模擬運轉(zhuǎn)和動態(tài)調(diào)試,可以對實踐運用系統(tǒng)進展在線仿真和功能模塊開發(fā)。 第5章 PIC集成開發(fā)系統(tǒng) PIC單片機指令系統(tǒng)和其它單片機一樣,是較為低級的言語系統(tǒng),是一套控制和指揮CPU任務(wù)的編碼,即機器言語。 單片機只能識別和執(zhí)行由二進制數(shù)組成的機器言語,然而,這樣一種二進制代碼的機器言語是很難為人們直接了解和分析。 為了能較好表達人們的設(shè)計思緒,便于記
36、憶和運用,人們在低級言語之上設(shè)計出一種新的符號言語,即匯編言語。 第6章 匯編言語程序設(shè)計 PIC單片機指令系統(tǒng)和其它單片機一樣,是較為低級的言語系統(tǒng),是一套控制和指揮CPU任務(wù)的編碼,即機器言語。 為了能較好表達人們的設(shè)計思緒,便于記憶和運用,人們在低級言語之上設(shè)計出一種新的符號言語,即匯編言語。 6.1 匯編言語指令格式 根據(jù)指令的功能和作用,只需操作碼是必需存在的,它主要決議了指令的操作性質(zhì),而其它部分是指令語句的重要補充和闡明,有時可以缺省。 標(biāo)號位于指令助記符前面,它普通是用于表示指令所在的地址,例如表示主程序或子程序的起始地址、轉(zhuǎn)移語句的入口地址等。 1.標(biāo)號 標(biāo)號并不是指令的必需
37、部分,只需那些欲被其他語句援用的指令之前,才必需附加標(biāo)號。標(biāo)號不一定和語句同行,可以單獨在語句上方作為一行運用。標(biāo)號最多可以由32個字母、數(shù)字和其它一些字符組成,但第一個字符必需是字母或下劃線。標(biāo)號不能用系統(tǒng)保管字,即系統(tǒng)禁用指令助記符、存放器名、標(biāo)志符等作為標(biāo)號,如:ADD、PCLATH等。一個標(biāo)號只能表示一個地址,不允許多個地址用一個標(biāo)號反復(fù)定義。標(biāo)號的定義和援用必需一致,其中的大小寫可以混寫但必需一樣。標(biāo)號必需頂格書寫,終了不用冒號。 運用標(biāo)號的要點是: 操作碼決議著指令的操作類型和操作性質(zhì),是匯編言語語句中的中心要素,每一條匯編指令都不可短少,而其它三部分有些指令可以缺省。 2. 操作
38、碼 操作碼所對應(yīng)的指令助記符,其中的符號大小寫可以混寫,而不會影響操作碼的含意,這一點和標(biāo)號、操作數(shù)符號變量的表達方式是有本質(zhì)區(qū)別。指令助記符不能頂格書寫,當(dāng)前面沒有標(biāo)號時,必需至少保管一個空格。操作碼中心助記符部分比較簡單,初學(xué)者必需熟習(xí)復(fù)合助記符部分的功能。 有關(guān)操作碼指令助記符的要點是: 在PIC匯編言語語句中,操作數(shù)的方式和內(nèi)容最為豐富,它是指令助記符操作的對象,普通以數(shù)據(jù)或地址的方式出現(xiàn),也可以用符號變量所表示的數(shù)據(jù)或地址。 3.操作數(shù) 運用操作數(shù)的要點是: 假設(shè)操作數(shù)有二項,中間應(yīng)該用逗號半角分開。以A、B、C、D、E、F開頭的數(shù),前面應(yīng)加0作為引導(dǎo)。MPASM編輯環(huán)境默許進制為十
39、六進制,也可按用戶需求進展重新設(shè)置。操作數(shù)部分的符號變量必需區(qū)分大小寫。注重d參數(shù)的運用,目的地址為: Fd=1;Wd=0。 各種進制168的表示方式 注釋內(nèi)容用分號引出,是匯編言語語句功能的一種補充闡明,主要是便于人們閱讀、分析、修正和程序的調(diào)試。 4. 注釋 用半角分號引出注釋內(nèi)容,可以緊跟指令之后,也可以獨立一行或多行書寫,但每一行均需由分號引出。注釋內(nèi)容可以英文書寫,也能用中文書寫來源于文本編輯內(nèi)容。 運用注釋的要點是: 各種單片機的匯編程序除了指令系統(tǒng)語句以外,普通都還定義許多非正式指令的語句,即偽指令。大多數(shù)偽指令匯編時并不產(chǎn)活力器碼,僅為源程序提供匯編控制信息。6.2 系統(tǒng)偽指令
40、 格式:ORG nnnn 闡明:ORG偽指令指出緊跟在該偽指令后的機器碼指令的匯編地址,即經(jīng)匯編后生成的機器碼目的程序或數(shù)據(jù)塊在單片機程序存儲器中的起始存放地址。 1.定位偽指令:ORGOrigin 格式:符號名 EQU nn 闡明:EQU偽指令幾乎每一個程序中都用到,其操作含意是使EQU兩端的值相等。普通在PIC的程序設(shè)計中,原那么上每次遇到新的符號參數(shù),都必需在前面補充定義符號名的初始數(shù)值或存儲器地址。 符號名一旦被EQU賦值,其值便不能被再重新定義。這里的符號名,既可以是PIC中的特殊功能存放器、一個常數(shù),或者是表示一個通用數(shù)據(jù)存儲器地址。 2.賦值偽指令:EQUEquate 實踐上對于
41、偽指令:ABC EQU20H,其中ABC既可以以為是符號變量,由于ABC代表20H地址;又可以以為是符號常量,由于ABC可以代表符號常量20H。 所以對于一個定義的符號量,應(yīng)結(jié)合援用的指令進展分析才干真正確定符號量的類型。 分析 ABC EQU20H【例題6-2】正確區(qū)別符號變量和符號常量之間的關(guān)系A(chǔ)BCEQU 20H;定義符號量ABC ORG 0000H NOPMOVLW 77HMOVWF 20HMOVLW 88HMOVF ABC,0;ABC為數(shù)據(jù)存儲器地址20HMOVLW ABC ;ABC為常量20HNOP END 在符號名定義和援用過程中,必需保證大小寫屬性的一致性,留意不能混合運用以及
42、所代表角色功能。 假設(shè)有定義:ABCEQU20H在援用符號名ABC時,不能改動其大小寫的屬性,即Abc、aBC或ABc與ABC是不一樣的,在匯編時均會發(fā)生出錯信息。 格式:END 闡明:END偽指令表示匯編言語源程序*.ASM的終了,MPASM匯編器匯編時遇到END就以為程序已終了,對其后的程序段不再進展匯編。 3.程序終了偽指令:END 格式:LIST 可選項,可選項, 闡明:LIST偽指令用于設(shè)置各種匯編參數(shù),以便控制整個匯編過程或?qū)Υ蛴≥敵龅牧斜砦募M展格式化。 1P 例如:P16F877 2R 例如:RDEC十進制; RHEX十六進制; RBIN二進制; 默以為十六進制。4.列表選項偽
43、指令:LIST 格式:INCLUDE “文件名 闡明:INCLUDE偽指令的主要功能是將外部預(yù)先編寫好的指定文件納入根源程序的匯編內(nèi)容,這樣可以減少反復(fù)勞動,提高編程效率。 如:P16F877.INC為F877單片機的復(fù)位矢量、公用存放器的地址及其控制位和形狀位的位地址的原始定義,有些參考書把P16F877.INC稱為F877的頭文件。 5.外調(diào)程序偽指令:INCLUDE 格式:RADIX 闡明:RADIX偽指令用于設(shè)置在MPLAB-ICD集成開發(fā)環(huán)境中采用的進制方式,如定義十進制、八進制和十六進制等參數(shù),MPLAB-ICD集成開發(fā)系統(tǒng)缺省為十六進制。 例如:RADIX DEC ;定義為十進制
44、 RADIX HEX ;定義為十六進制 RADIX OCT ;定義為八進制6.進制定義偽指令:RADIX 在PIC單片機中,有兩個概念是令初學(xué)者感到頭痛的事情,也是本課程的難點和重點,對于正確進展程序設(shè)計至關(guān)重要。 一個是數(shù)據(jù)存儲器四體的體選方式,需求時辰思索每一個訪問的特殊功能存放器和通用數(shù)據(jù)存儲器的體位;另一個是程序存儲器四頁的頁選方式,特別是在發(fā)生轉(zhuǎn)移或跳轉(zhuǎn)時,須親密留意能否會發(fā)生頁面轉(zhuǎn)換。 6.3 存儲器選擇方式 F877單片機的數(shù)據(jù)存儲器是一個具有空間為512字節(jié)的存儲器,其中只需19個字節(jié)是無效存儲單元。為了能完全選擇512字節(jié)內(nèi)的數(shù)據(jù),需求9根地址線。 而根據(jù)9根地址線的組合方式
45、不同,構(gòu)成兩種迥然不同的尋址方式:即直接尋址和間接尋址。 6.3.1 數(shù)據(jù)存儲器體選方式 根據(jù)直接尋址和間接尋址操作碼攜帶址址信息情況,普通把512字節(jié)包括無效地址的數(shù)據(jù)存儲器分成4個區(qū)域,在PIC中被稱為“體BANK。 體0000H07FH 體1080H1FFH 體2100H17FH 體3180H1FFH數(shù)據(jù)存儲器體域 在指令機器碼中操作數(shù)所攜帶的尋址信息是低7位地址,這不是一個完備的數(shù)據(jù)信息,每一個體中均會有一個相關(guān)的地址與之對應(yīng)。要獨一確定地址單元,還必需依托其它的數(shù)據(jù)線進展復(fù)合選擇。 利用形狀標(biāo)志STATUS位中的RP1和RP0,與直接尋址機器碼中低7位地址共同選擇相應(yīng)數(shù)據(jù)存儲器的內(nèi)容
46、參與操作。 1.直接尋址訪問數(shù)據(jù)存儲器 在指令機器碼中真正攜帶的尋址信息是低8位地址,這也不是一個完備的數(shù)據(jù)信息,在整個數(shù)據(jù)存儲器中有二個相關(guān)的地址與之對應(yīng)。 要獨一確定地址單元,也必需依托另一根數(shù)據(jù)線進展復(fù)合選擇。主要是依托形狀標(biāo)志位的IRP,才干準(zhǔn)確選擇相應(yīng)數(shù)據(jù)存儲器的內(nèi)容參與操作。 2.間接尋址訪問數(shù)據(jù)存儲器 F877單片機的程序存儲器FLASH是一個具有空間為8K14位的存儲器,其中14位為單元字節(jié)長度。為了能完全選擇8K的程序存儲器,需求合成13根地址選擇線。 6.3.2 程序存儲器頁選方式 復(fù)位地址0000H,直接給出13根地址選擇線;中斷地址0004H,直接給出13根地址選擇線;
47、指令存放器,是在每一個指令的執(zhí)行周期自動加1而構(gòu)成當(dāng)前程序的執(zhí)行方向;執(zhí)行以PCL為目的地址的算術(shù)邏輯類指令;調(diào)用子程序方式,即CALL語句以及相應(yīng)的前往語句RETRUN、RETFIE、RETLW。轉(zhuǎn)移指令方式,即GOTO語句;程序存儲器指令語句的選擇 主要有以下幾種途徑: 執(zhí)行以PCL為目的地址的算術(shù)邏輯類指令執(zhí)行跳轉(zhuǎn)指令call、goto、retrun、retfie、retlw 兩類指令的執(zhí)行過程中的裝載效能 ABC EQU 20H ORG 0100H BANKSEL ABC MOVLW 00H ;常數(shù)00送入W MOVWF ABC ;W送入ABC存儲器中 ORG 0100H PAGESE
48、L ABC GOTO ABC ;轉(zhuǎn)移至ABC ORG 1000H ABC MOVLW 00H;常數(shù)00送入W MOVWF 20H;W送入20H中 補充偽指令 PAGESEL、BANKSEL 在程序設(shè)計中,除主程序以外還有一部分很重要的內(nèi)容就是關(guān)于子程序的設(shè)計,它是為完成特定的目的而構(gòu)成的復(fù)合程序。 6.4常用子程序的設(shè)計 轉(zhuǎn)移和循環(huán)程序,主要是經(jīng)過跳轉(zhuǎn)、判別和位測試指令來構(gòu)成的。 1.跳轉(zhuǎn)指令 GOTO 2.判別指令 INCFSZ、DECFSZ 3.位測試指令 BTFSS、 BTFSC6.4.1 轉(zhuǎn)移和循環(huán)子程序 【例題6-6】比較兩個數(shù)據(jù)存放器20H和30H內(nèi)容的大小,將較大的數(shù)送入40H中
49、。 【例題6-6】請將通用存放器單元20H-2FH,分別對應(yīng)賦值20H-2FH,請編寫相應(yīng)的軟件程序。 【例題6-7】假定RB0接入一個按鍵K,當(dāng)K按下時,RB0為高電平,而K為常態(tài)時,RB0為低電平。請編寫按鍵K的監(jiān)控掃描片段程序,DELAY10MS為10M延遲程序,程序框圖如6-4所示。 單片機的延時程序,在程序設(shè)計中具有很重要的位置。延時的設(shè)計,普通可以經(jīng)過兩種方式:硬件延時和軟件延時。 所謂硬件延時,就是由單片機系統(tǒng)的定時器實現(xiàn);而軟件延時,是經(jīng)過循環(huán)程序?qū)崿F(xiàn)。普通來說,前者適用于準(zhǔn)確定量延時,而后者常用于初略定性延時。 【例題6-8】簡單循環(huán)的軟件延時子程序。 【例題6-9】請編寫1
50、0MS軟件延時子程序。 【例題6-10】請編寫1S軟件延時子程序。 6.4.2 軟件延時子程序 數(shù)據(jù)查表子程序在某些特殊場所是非常有用的,如共陰極LED八段顯示器以及其它具有固定顯示方式的場所,需根據(jù)其顯示數(shù)值去查找對應(yīng)參考數(shù)據(jù)庫編碼輸出。 6.4.3 數(shù)據(jù)查表子程序 【例題6-11】將RC端口與共陰極LED八段顯示器相連,從0-9循環(huán)顯示,間隔時間為1秒,請編寫相應(yīng)的軟件程序。 八段顯示數(shù)值0-9編碼 00000000XXXXXXXXPIC單片機架構(gòu)PC相對尋址 查表實例movlwHIGH DecodemovwfPCLATHmovf DisplayValue,WcallDecodemovwf
51、PORTBgotoContinueDecodeaddwfPCL,FretlwB00111111 ;decode 0retlwB00000110 ;decode 1retlwB01011011 ;decode 2retlwB01001111 ;decode 3retlwB01100110 ;decode 4retlwB01101101 ;decode 5retlwB01111101 ;decode 6retlwB00000111 ;decode 7retlwB01111111 ;decode 8retlwB01101111 ;decode 9ContinuebegafdcRB0RB1RB2RB3
52、RB4RB5RB6bcdefgW 存放器I/O B口01101101 00000101 01101101 gafdcbe 【例題6-12】將RC端口與八個LED顯示器相連,請按照表6-4即跑馬燈流動顯示方式,間隔時間為1秒,請編寫相應(yīng)的軟件程序。 在PIC指令系統(tǒng)中并沒有類似的語句,但假設(shè)借助于PIC單片機指令的特殊功能,同樣可以輕松地構(gòu)成分支跳轉(zhuǎn)。 分支跳轉(zhuǎn)實踐上是多條件判別指令,條件本身是一個整數(shù)或事件,而跳轉(zhuǎn)出口應(yīng)該是整數(shù)的信息前往或事件功能內(nèi)容的詳細表現(xiàn)。 在程序方式上,分支功能跳轉(zhuǎn)子程序與數(shù)據(jù)查表子程序的構(gòu)造類似,只是它是用GOTO語句替代了RETLW語句。 6.4.4 分支功能跳轉(zhuǎn)
53、子程序 假定W為某個按鍵的輸入值JIANGNADDWFPCL,F(xiàn) ;確定相對偏移量GOTOPKEY0 ;執(zhí)行PKEY0鍵盤定義功能GOTOPKEY1;執(zhí)行PKEY1鍵盤定義功能GOTOPKEY2;執(zhí)行PKEY2鍵盤定義功能 . . . GOTOPKEYN;執(zhí)行PKEYN鍵盤定義功能 本節(jié)給出一些常用的數(shù)學(xué)運算類子程序,主要有加、減、乘、除等子程序,還有為外擴系統(tǒng)設(shè)計中的數(shù)碼顯示所需的BCD碼和二進制數(shù)據(jù)的互換子程序。 均涉及入口條件及出口條件,在調(diào)用時務(wù)必加以留意。普通入口條件是指參與操作的相關(guān)源數(shù)據(jù),用S1、S2source等表示,而操作結(jié)果用R1、R2result等表示。高低8位數(shù)據(jù)分別用
54、H、L表示,另外用Z表示中8位數(shù)據(jù)。 可以將這些固定變量參數(shù)定義在PIC16F877的頭文件內(nèi),并且單元定義位于映射區(qū)域70H7FH,這樣就可以不受程序所在頁面的影響。 6.4.4 常用數(shù)學(xué)運算類子程序 將兩個無符號16位數(shù)相加,編寫雙精度運算程序。 將兩個無符號16位數(shù)相減,編寫雙精度運算程序。 將兩個無符號16位數(shù)相乘,編寫雙精度運算程序。 將兩個無符號16位數(shù)相除,編寫雙精度運算程序。 將一個5位數(shù)65 535 的BCD碼轉(zhuǎn)換成二進制數(shù)。 將一個16位二進制數(shù)轉(zhuǎn)換成BCD碼 ui,闡明逼近存放器所生成的數(shù)字量太大,應(yīng)將逼近存放器里的最高位去掉,改置次高位D6為“1;假設(shè)ua ui,闡明所
55、生成的數(shù)字量還不夠大,應(yīng)保管該位為“1,此外還需把下一次高位D5置 “1,依此方法逐位比較下去,直至確定最低位D0是“0還是“1。 12.2 A/D轉(zhuǎn)換器主要技術(shù)目的 A/D轉(zhuǎn)換器有三個主要的技術(shù)目的:轉(zhuǎn)換時間轉(zhuǎn)換速率、分辨率和轉(zhuǎn)換精度。 1轉(zhuǎn)換時間和轉(zhuǎn)換速率 轉(zhuǎn)換時間是A/D完成一次轉(zhuǎn)換所需求的時間,轉(zhuǎn)換時間的倒數(shù)即為轉(zhuǎn)換速率。 2分辨率 3轉(zhuǎn)換精度 A/D轉(zhuǎn)換器的轉(zhuǎn)換精度定義為一個實踐A/D轉(zhuǎn)換器在量化值上的差值??捎媒^對誤差或相對誤差表示。 A/D轉(zhuǎn)換器的量化精度稱為分辨率,習(xí)慣上用輸出二進制位數(shù)或BCD碼表示。例如AD574模數(shù)轉(zhuǎn)換器,可輸出二進制數(shù)12位,即用 212個分割對待測模擬
56、量進展量化。 12.3 ADC模塊構(gòu)造和操作原理 12.3.1 F877片內(nèi)ADC模塊 F877內(nèi)部嵌入的ADC模塊是10位數(shù)字量精度,共有8個模擬通道。與ADC模塊有關(guān)的存放器比較多,共有11個。 ADC控制存放器0:ADCON0 ADC控制存放器1:ADCON1ADC結(jié)果存放器:ADRESH :ADRESL 中斷控制存放器:INTCOM中斷標(biāo)志存放器:PIR1 中斷屏蔽存放器:PIE1A口方向存放器:TRISAE口方向存放器:TRISEE口數(shù)據(jù)存放器:PORTE1. A/D控制存放器ADCON0 Bit0/ADON:A/D轉(zhuǎn)換器開關(guān)位。0:封鎖ADC,令其退出任務(wù)形狀,可以不耗費電流;1:
57、起用ADC,令其進入任務(wù)形狀。Bit2/GODONE:A/D轉(zhuǎn)換啟動控制位兼作形狀位。 在ADON=1的前提下:0: A/D轉(zhuǎn)換曾經(jīng)完成自動清零或表示未進展A/D轉(zhuǎn)換; 1: 啟動A/D轉(zhuǎn)換過程或闡明A/D轉(zhuǎn)換正在進展。 Bit5- Bit3/CHS2-CHS0:A/D轉(zhuǎn)換模擬信道選擇位。 選擇公共通路與哪一個模擬輸入端接通。其中AN5AN7通道只需40腳封裝的型號才具備。CHS2-CHS0:000:選擇信道0,RA0AN0; 001:選擇信道1,RA1AN1; 010:選擇信道2,RA2AN2; 011:選擇信道3,RA3AN3; 100:選擇信道4,RA5AN4; 101:選擇信道5,RE
58、0AN5; 110:選擇信道6,RE1AN6; 111:選擇信道7,RE2AN7。Bit7- Bit6/ADCS1-ADSC0:A/D轉(zhuǎn)換時鐘及其頻率選擇位。ADCS1-ADSC0: 00:選擇系統(tǒng)時鐘,頻率為fosc/2;01:選擇系統(tǒng)時鐘,頻率為fosc/8;10:選擇系統(tǒng)時鐘,頻率為fosc/32; 11:選擇內(nèi)部阻容RC振蕩器,頻率為fR C。 . ADC控制存放器ADCON1 主要用于控制相關(guān)引腳的功能選擇。對于RA和RE端口的各條引腳功能進展設(shè)置,它們可以被設(shè)置成模擬輸入、或者參考電壓輸入、或者通用數(shù)字I/O引腳。 . ADC控制存放器ADCON1 Bit3- Bit0/PCFG3
59、-PCFG0: A/D轉(zhuǎn)換引腳功能選擇位。 Bit7/ADFM:A/D轉(zhuǎn)換結(jié)果格式選擇位,自動參數(shù)。 0:結(jié)果左對齊,ADRESL存放器的低6位讀作0; 1:結(jié)果右對齊,ADRESH存放器的高6位讀作0 例如:PCFG3-PCFG0=0011,RE2-RE0定義為通用數(shù)字I/O引腳,RA5、RA2、RA1和RA0定義為模擬信道,RA3引腳定義為外接正參考電壓REF+,VSS引腳定義為內(nèi)接負參考電壓REF-。 3方向控制存放器TRISA、TRISE 方向控制存放器TRISA、TRISE和ADCON1配合運用,有控制ADC模擬通道引腳的功能。作為模擬輸入時,方向存放器中相應(yīng)位必需被置位。假設(shè)方向存
60、放器相應(yīng)位被清零,把相應(yīng)引腳設(shè)置為輸出方式,也就成通用數(shù)字I/O引腳。 ADC模塊的轉(zhuǎn)換行為與ADCON1存放器內(nèi)PCHS2-PCHS0位的形狀無關(guān),轉(zhuǎn)換模擬信道是由ADCON0的CHS2-CHC0確定的。 第13章 PIC系統(tǒng)功能 IC系列單片機在片內(nèi)集成了一系列具有獨特功能的外圍公用電路。采用這樣的芯片構(gòu)成的運用系統(tǒng)不僅可以提供最大的系統(tǒng)可靠性,而且由于最大限制地減少外部器件,降低了系統(tǒng)本錢和系統(tǒng)功耗。PIC強大的系統(tǒng)功能及完善的配置方式,對于從事單片機運用開發(fā)工程人員來說,提供了非常大的方便。 13.1PIC系統(tǒng)功能及配置 就系統(tǒng)功能及配置情況,PIC系列單片機可以說功能強大、配置完善,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安全生產(chǎn)獎懲制度責(zé)任合同書范本2篇
- 二零二五年度建筑工地材料搬運承包協(xié)議3篇
- 2025年度離婚雙方關(guān)于孩子醫(yī)療決策權(quán)協(xié)議3篇
- 2025年北師大版選修4歷史下冊階段測試試卷含答案
- 二零二五年度待崗人員就業(yè)援助與職業(yè)培訓(xùn)服務(wù)合同3篇
- 輔助人員應(yīng)聘登記表
- 二零二五年度分公司股權(quán)轉(zhuǎn)讓與同業(yè)競爭限制協(xié)議3篇
- 招聘人員報名表
- 二零二五年度定制版企業(yè)員工工資收入證明合同模板3篇
- 二零二五年度建筑工程招標(biāo)代理技術(shù)咨詢合同范本3篇
- 工業(yè)互聯(lián)網(wǎng)平臺 安全生產(chǎn)數(shù)字化管理 第2部分:石化化工行業(yè) 編制說明
- 成人手術(shù)后疼痛評估與護理-中華護理學(xué)會團體標(biāo)準(zhǔn)2023 2
- DB15-T 3585-2024 高標(biāo)準(zhǔn)農(nóng)田施工質(zhì)量評定規(guī)程
- 天津濱海新區(qū)2025屆數(shù)學(xué)七年級第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 2024年浙江省臺州市仙居縣中考二??茖W(xué)試卷
- 醫(yī)院護理培訓(xùn)課件:《經(jīng)氣管插管、氣管切開處吸痰》
- 2024年大學(xué)計算機基礎(chǔ)考試題庫附參考答案(完整版)
- 租金評估技術(shù)報告范文模版
- Unit1+Food+for+thought+Understanding+ideas+A+child+of+two+cuisines語言點高中英語外研版必修第二冊
- 安徽省合肥市廬江縣2022-2023學(xué)年八年級上學(xué)期期末物理試卷(含答案)
- 劉強東成功故事
評論
0/150
提交評論