關(guān)于我們
書單推薦
新書推薦
|
SOC單片機原理與應(yīng)用
本書以C8051F020為例介紹了SOC型的單片機原理及應(yīng)用, 該系列單片機具有與MCS51完全兼容的指令內(nèi)核和豐富的外設(shè)接口及片內(nèi)資源。書中詳細敘述了該單片機的基本結(jié)構(gòu)、指令系統(tǒng)及用C51語言對片內(nèi)資源的編程方法、C8051F單片機應(yīng)用系統(tǒng)的開發(fā)方法及實驗項目等方面的內(nèi)容。本書附有習題、實驗題、應(yīng)用實例及程序源碼, 以供讀者練習。
第二版重點修改了有關(guān)知識點的敘述,盡量實用和簡潔,刪除了部分不經(jīng)常用的器件的敘述,增加了部分實用項目的關(guān)鍵技術(shù)例程及解讀,對TI公司具有無線通信功能的51單片機進行了簡單的介紹。書中C51的介紹著重在與標準C語言的不同之處,讀者應(yīng)該在具備一定C語言編程知識的基礎(chǔ)上閱讀本書內(nèi)容。書中大部分章節(jié)附有習題,以供讀者練習。本書附件提供教學(xué)用PPT、實驗的源代碼的電子文檔,供讀者參考。
單片微型計算機簡稱單片機,是典型的嵌入式微控制器。隨著電子技術(shù)的飛速發(fā)展,目前的單片機已經(jīng)集成了A/D、D/A轉(zhuǎn)換器,存儲器,I2C,CAN、SPI總線接口及一些專用外設(shè),形成了SoC(System on Chip)型的單片機,或稱為系統(tǒng)級芯片,也有稱片上系統(tǒng),在工業(yè)控制、機電一體化、通信終端、智能儀表、家用電器等諸多領(lǐng)域中得到了廣泛應(yīng)用,已成為傳統(tǒng)機電設(shè)備進化為智能化機電設(shè)備的重要手段。因此高等理工科院校師生和工程技術(shù)人員了解和掌握SoC型的單片機原理和應(yīng)用技術(shù)是十分必要的。
目前單片機已經(jīng)形成很多種類,C8051F系列單片機就是一種典型的SoC型單片機,原是Cygnal公司的產(chǎn)品,該公司于2003年并入Silicon Laboratories公司。C8051F系列單片機具有與MCS51完全兼容的指令內(nèi)核,采用流水線處理(pipe line)技術(shù),不再區(qū)分時鐘周期和機器周期,能在執(zhí)行指令期間預(yù)處理下一條指令,提高了指令執(zhí)行效率。而且大部分C8051F單片機具備控制系統(tǒng)所需的模擬和數(shù)字外設(shè),包括看門狗、ADC、DAC、電壓比較器、電壓基準輸出、定時器、PWM、定時器捕捉和方波輸出等,并具備多種總線接口,包括UART、SPI、SMBUS(與I2C兼容)總線以及CAN總線等。C8051F系列單片機采用Flash ROM技術(shù),集成JTAG,支持在線編程和調(diào)試。C8051F系列單片機諸多特點和優(yōu)越性,使其廣受單片機系統(tǒng)設(shè)計工程師青睞,成為很多測控系統(tǒng)設(shè)計的首選機型。
本書以C8051F020為講述對象,是因為該單片機為C8051F系列單片機中功能較全、*具有代表性的一款。熟悉了C8051F020單片機工作原理和編程方法后,可較快地對C8051F系列的其他單片機上手編程。事實上,模擬和數(shù)字外設(shè)以及各種總線具有共性,因而本書也可作為其他廠商單片機的參考資料,書中例程稍加修改,即可應(yīng)用于其他單片機。而且本書大部分代碼采用C51語言編寫,這也是單片機應(yīng)用的發(fā)展方向,同時增強了程序的可讀性和可移植性。
書中對于C51的介紹著重在與標準C語言的不同之處,讀者應(yīng)該在具備一定C語言編程知識的基礎(chǔ)上閱讀本書內(nèi)容。書中大部分章節(jié)附有習題,以供讀者練習。本書配套提供教學(xué)用PPT、實驗的源代碼的電子文檔(請訪問清華大學(xué)出版社網(wǎng)站獲。┳x者參考。
此次再版重點修改了有關(guān)知識點的敘述,盡量實用和簡潔,刪除了部分不經(jīng)常用的器件的敘述,增加了部分實用項目的關(guān)鍵技術(shù)例程及解讀,對TI公司具有無線通信功能的51單片機進行了簡單的介紹。
本書由鮑可進擔任主編,書中第1章、第2章、第5章由鮑可進編寫,第4章由趙念強編寫,第3章由趙念強、申屠浩編寫、第6章由申屠浩、趙念強編寫、第7章由陳向益、鮑可進編寫、第8章由陳向益編寫,鮑可進對全書進行了修改并統(tǒng)稿。
在編寫過程中,我們參考了有關(guān)書刊、資料,在此對有關(guān)作者一并表示感謝。
由于水平有限,書中不妥之處在所難免,懇請讀者批評指正。
編者
2016年9月
第1章概述
1.1單片機的發(fā)展概況
1.1.1單片機的發(fā)展歷史
1.1.2典型的8位單片機產(chǎn)品
1.2單片機的應(yīng)用及發(fā)展趨勢
1.2.1單片機的應(yīng)用
1.2.2單片機的發(fā)展趨勢
習題1
第2章SoC單片機的結(jié)構(gòu)與原理
2.1C8051F系列單片機總體結(jié)構(gòu)
2.1.1C8051F系列單片機簡介
2.1.2CIP51內(nèi)核
2.1.3C8051F020單片機的片上資源
2.2C8051F020存儲器組織
2.2.1程序存儲器
2.2.2內(nèi)部數(shù)據(jù)存儲器
2.2.3特殊功能寄存器
2.2.4位尋址區(qū)
2.2.5外部RAM和片內(nèi)XRAM
2.3中斷系統(tǒng)
2.3.1中斷概念
2.3.2C8051F中斷系統(tǒng)
2.4端口輸入/輸出
2.4.1優(yōu)先權(quán)交叉開關(guān)譯碼器
2.4.2端口0~3的I/O初始化
2.4.3端口4~7
2.4.4端口特殊功能寄存器
2.4.5交叉開關(guān)引腳分配示例
2.4.6片上資源配置工具Config的應(yīng)用
2.5電源管理方式
2.5.1空閑方式
2.5.2停機方式
2.6復(fù)位與時鐘
2.6.1復(fù)位源
2.6.2上電/掉電復(fù)位
2.6.3外部復(fù)位
2.6.4內(nèi)部復(fù)位
2.6.5系統(tǒng)時鐘
習題2
第3章51單片機編程語言
3.1單片機的編程語言概述
3.2CIP51指令介紹
3.2.1尋址方式
3.2.251指令集
3.3匯編語言
3.3.1偽指令
3.3.2順序程序設(shè)計
3.3.3分支程序設(shè)計
3.3.4循環(huán)程序設(shè)計
3.3.5子程序設(shè)計
3.4C51語言
3.4.1C51關(guān)鍵字
3.4.2C51變量定義
3.4.3C51數(shù)據(jù)類型
3.4.4C51指針類型
3.4.5C51函數(shù)定義
3.4.6C51程序設(shè)計的注意事項
習題 3
第4章SoC單片機的片內(nèi)功能部件
4.1定時器/計數(shù)器
4.1.1定時器/計數(shù)器的一般結(jié)構(gòu)和工作原理
4.1.2定時器/計數(shù)器T0和T1
4.1.3定時器/計數(shù)器T2和T4
4.1.4定時器T3
4.2可編程計數(shù)器陣列
4.2.1PCA0交叉開關(guān)配置
4.2.2PCA0的特殊功能寄存器
4.2.3PCA0定時器/計數(shù)器
4.2.4PCA0捕捉/比較模塊
4.2.5PCA0應(yīng)用舉例
4.3UART通信接口
4.3.1串行通信及基礎(chǔ)知識
4.3.2串行接口的組成和特性
4.3.3串行接口的工作方式
4.3.4波特率設(shè)計
4.3.5串行口應(yīng)用編程
4.3.6多機通信原理及應(yīng)用
習題4
第5章模/數(shù)和數(shù)/模轉(zhuǎn)換器
5.1模/數(shù)轉(zhuǎn)換器
5.1.1模數(shù)轉(zhuǎn)換原理和性能指標
5.1.2C8051F020的ADC0功能結(jié)構(gòu)
5.1.3模擬多路選擇器和PGA
5.1.4ADC的工作方式
5.1.5ADC0 可編程窗口檢測器
5.1.6ADC1(8位ADC)
5.1.7模數(shù)轉(zhuǎn)換舉例
5.2數(shù)/模轉(zhuǎn)換器
5.2.1數(shù)模轉(zhuǎn)換原理及性能指標
5.2.2C8051F020的DAC功能
第5章
模/數(shù)和數(shù)/模轉(zhuǎn)換器
A/D轉(zhuǎn)換器簡寫為ADC(Analog to Digital Converter),是一種能把模擬量轉(zhuǎn)換成相應(yīng)的數(shù)字量的電子器件。D/A轉(zhuǎn)換器簡寫為DAC(Digital To Analog Converter),與A/D轉(zhuǎn)換器相反,它能把數(shù)字量轉(zhuǎn)換成相應(yīng)的模擬量。在單片機控制系統(tǒng)中,經(jīng)常需要用到A/D和D/A轉(zhuǎn)換器。它們的功能及其在實時控制系統(tǒng)中的地位如圖51所示。由圖可見,被控實體的過程信號可以是電量(如電流、電壓等),也可以是非電量(如溫度、壓力、傳速等),其數(shù)值是隨時間連續(xù)變化的。各種模擬量都可以通過變送器或傳感器變換成相應(yīng)的數(shù)字量送給單片機。單片機對過程信息進行運算和處理,把過程信息進行當?shù)仫@示或打印等,同時將處理后的數(shù)字量送給D/A轉(zhuǎn)換器,轉(zhuǎn)換成相應(yīng)的模擬量去對被控系統(tǒng)進行控制和調(diào)整,使系統(tǒng)處于*佳工作狀態(tài)。
圖51單片機實時控制系統(tǒng)示意圖
上述分析表明: A/D轉(zhuǎn)換器在單片機控制系統(tǒng)中主要用于數(shù)據(jù)采集,向單片機提供被控對象的各種實時參數(shù),以便單片機對被控對象進行監(jiān)視和控制決策; D/A轉(zhuǎn)換器用于模擬控制,通過機械或電氣手段對被控對象進行調(diào)整和控制。因此,A/D、D/A轉(zhuǎn)換器是架設(shè)在單片機和被控實體之間的橋梁,在單片機控制系統(tǒng)占有極其重要的地位。
C8051F020是混合信號型單片機,在片內(nèi)集成了模/數(shù)(A/D)和數(shù)/模(D/A)轉(zhuǎn)換電路。下面分別進行敘述。
5.1模/數(shù)轉(zhuǎn)換器
A/D是將模擬量轉(zhuǎn)換成數(shù)字量的器件。模擬量可以是電壓、電流等電信號,也可以是聲、光、壓力、濕度、溫度等隨時間連續(xù)變化的非電的物理量。非電的模擬量可通過合適的傳感器(如光電傳感器、壓力傳感器、溫度傳感器)轉(zhuǎn)換成電信號。
C8051F020片內(nèi)包含一個9通道的12位的模數(shù)轉(zhuǎn)換器ADC0和8通道8位的模數(shù)轉(zhuǎn)換器ADC1。
5.1.1模數(shù)轉(zhuǎn)換原理和性能指標
1. 轉(zhuǎn)換原理
A/D轉(zhuǎn)換器的種類很多,根據(jù)轉(zhuǎn)換原理可以分計數(shù)式、并行式、雙積分式、逐次逼近式等。計數(shù)式A/D轉(zhuǎn)換器結(jié)構(gòu)簡單,但轉(zhuǎn)換速度也很慢,所以很少采用。并行A/D轉(zhuǎn)換器的轉(zhuǎn)換速度*快,但因結(jié)構(gòu)復(fù)雜而造價較高,只用于那些轉(zhuǎn)換速度極高的場合。雙積分式A/D轉(zhuǎn)換器抗干擾能力強,轉(zhuǎn)換精度也很高,但速度不夠理想,常用于數(shù)字式測量儀表中。計算機中廣泛采用逐次逼近式A/D轉(zhuǎn)換器作為接口電路,它的結(jié)構(gòu)不太復(fù)雜,轉(zhuǎn)換速度也較高。下面僅對逐次逼近式和雙積分式A/D轉(zhuǎn)換器的轉(zhuǎn)換原理作簡單介紹。
圖52逐次逼近式A/D原理框圖
1) 逐次逼近式A/D轉(zhuǎn)換器
逐次逼近式A/D也稱逐次比較法A/D。它由結(jié)果寄存器、D/A、比較器和置位控制邏輯等部件組成,原理框圖如圖52所示。
這種A/D采用對分搜索法逐次比較、逐步逼近的原理來轉(zhuǎn)換,整個轉(zhuǎn)換過程是個“試探”過程。控制邏輯先置1結(jié)果寄存器*高位Dn-1然后經(jīng)D/A轉(zhuǎn)換得到一個占整個量程一半的模擬電壓Vs,比較器將此Vs和模擬輸入電壓Vx比較,若Vx>Vs則保留此位Dn-1(為1),否則清0Dn-1位。然后控制邏輯置1結(jié)果寄存器次高位Dn-2,連同Dn-1一起送D/A轉(zhuǎn)換,得到的Vs再和Vx比較,以決定Dn-2位保留為1還是清0,以此類推。*后,控制邏輯置1結(jié)果寄存器*低位D0,然后將Dn-1、Dn-2、……、D0一起送D/A轉(zhuǎn)換。轉(zhuǎn)換得到的結(jié)果Vs和Vx比較,決定D0位保留為1還是清0。
至此,結(jié)果寄存器的狀態(tài)便是與輸入的模擬量Vx對應(yīng)的數(shù)字量。
2) 雙積分式的A/D轉(zhuǎn)換器
雙積分式也稱二重積分式,其實質(zhì)是測量和比較兩個積分的時間,它的工作原理如圖53所示,一個是對模擬輸入電壓積分的時間T0,此時間往往是固定的; 另一個是以充電后的電壓為初值,對參考電源Vref反向積分,積分電容被放電至零所需的時間Ti(Vref與Vi符號相反)。反向積分的斜率是固定的。模擬輸入電壓Vi與參考電壓Vref之比,等于上述兩個時間之比。由于Vref、T0固定,而放電時間Ti可以測出,因而可計算出模擬輸入電壓的大小。
圖53雙積分式A/D轉(zhuǎn)換器工作原理圖
由于T0、Vref為已知的固定常數(shù),因此反向積分時間Ti與輸入模擬電壓Vi在T0時間內(nèi)的平均值成正比。輸入電壓Vi愈高,VA愈大,Ti就愈長。在Ti開始時刻,控制邏輯同時打開計數(shù)器的控制門開始計數(shù),直到積分器恢復(fù)到零電平時,計數(shù)停止。則計數(shù)器所計出的數(shù)字即正比于輸入電壓Vi在T0時間內(nèi)的平均值,于是完成了一次A/D轉(zhuǎn)換。
由于雙積分型A/D轉(zhuǎn)換是測量輸入電壓Vi在T0時間內(nèi)的平均值,所以對常態(tài)干擾(串模干擾)有很強的抑制作用,尤其對正負波形對稱的干擾信號,抑制效果更好。
雙積分型的A/D轉(zhuǎn)換器具有電路簡單、抗干擾能力強、精度高等優(yōu)點。但轉(zhuǎn)換速度比較慢,常用的A/D轉(zhuǎn)換芯片的轉(zhuǎn)換時間為毫秒級。例如12位的積分型A/D芯片ADCET12BC,其轉(zhuǎn)換時間為1ms。因此適用于模擬信號變化緩慢,采樣速率要求較低,而對精度要求較高,或現(xiàn)場干擾較嚴重的場合。例如常在數(shù)字電壓表中采用該芯片進行A/D采樣。
2. 性能指標
衡量A/D性能的主要參數(shù)是:
1) 分辨率(resolution)
分辨率是指輸出的數(shù)字量變化一個相鄰的值所對應(yīng)的輸入模擬量的變化值; 取決于輸出數(shù)字量的二進制位數(shù)。一個n位的A/D轉(zhuǎn)換器所能分辨的*小輸入模擬增量定義為滿量程值的2-n倍。例如,滿量程為10V的8位A/D芯片的分辨率為10V×2-8=39mV; 而16位的A/D是10V×2-16=153μV。
2) 滿刻度誤差(full scale error)
滿刻度誤差也稱增益誤差,即輸出全1時輸入電壓與理想輸入量之差。
3) 轉(zhuǎn)換速率(conversion rate)
轉(zhuǎn)換速度是指完成一次A/D轉(zhuǎn)換所需時間的倒數(shù),是一個很重要的指標。A/D轉(zhuǎn)換器型號不同,轉(zhuǎn)換速度差別很大。選用A/D轉(zhuǎn)換器型號視應(yīng)用需求而定,在被控系統(tǒng)的時間允許的情況下,應(yīng)盡量選用便宜的逐次比較型A/D轉(zhuǎn)換器。
4) 轉(zhuǎn)換精度(conversion accuracy)
A/D轉(zhuǎn)換器的轉(zhuǎn)換精度由模擬誤差和數(shù)字誤差組成。模擬誤差是比較器、解碼網(wǎng)絡(luò)中的電阻值以及基準電壓波動等引起的誤差,數(shù)字誤差主要包括丟失碼誤差和量化誤差,前者屬于非固定誤差,由器件質(zhì)量決定,后者和A/D輸出數(shù)字量的位數(shù)有關(guān),位數(shù)越多,誤差越小。
5.1.2C8051F020的ADC0功能結(jié)構(gòu)
C8051F020的ADC0子系統(tǒng)就是一個100ksps、12位分辨率的逐次逼近寄存器型ADC。ADC0的*高轉(zhuǎn)換速度為100ksps,其轉(zhuǎn)換時鐘來源于系統(tǒng)時鐘分頻,分頻值保存在寄存器ADC0CF的ADCSC位。C8051F020的ADC0子系統(tǒng)功能框圖如圖54所示,它包括一個9通道的可編程模擬多路選擇器(AMUX0)、一個可編程增益放大器(PGA0)和一個100ksps、12位分辨率的逐次逼近寄存器型ADC,ADC中集成了跟蹤保持電路和可編程窗口檢測器。AMUX0、PGA0、數(shù)據(jù)轉(zhuǎn)換方式及窗口檢測器都可用軟件通過特殊功能寄存器來控制。ADC0所使用的電壓基準將在5.3節(jié)專門介紹。只有當ADC0控制寄存器中的AD0EN位被置1時ADC0子系統(tǒng)(ADC0、跟蹤保持器和PGA0)才被允許工作。當AD0EN位為0時,AD0C子系統(tǒng)處于低功耗關(guān)斷方式。
圖54ADC0子系統(tǒng)功能框圖
從ADC0的功能框圖可以看出,ADC0的運行主要與圖上標的10個SFR有關(guān)。8個外部輸入的模擬量可以通過配置寄存器AMX0CF設(shè)定為單端輸入或雙端輸入; 8個外部輸入的模擬量和一個內(nèi)部溫度傳感器量通過通道選擇寄存器AMX0SL設(shè)定在某一時刻通過多路選擇器; 從多路選擇器出來的模擬量通過配置寄存器ADC0CF設(shè)定ADC轉(zhuǎn)換速度和對模擬量的放大倍數(shù); 由控制寄存器ADC0CN對ADC進行模擬量轉(zhuǎn)換的啟動、啟動方式、采樣保持、轉(zhuǎn)換結(jié)束、數(shù)字量格式等進行設(shè)定; 12位的轉(zhuǎn)換好的數(shù)字量存放在數(shù)據(jù)字寄存器ADC0H、ADC0L中; ADC0中提供了可編程窗口檢測器,通過上下限寄存器ADC0GTH、ADC0GTL、ADC0LTH、ADC0LTL設(shè)定所需要的比較極限值。
在進行模擬量轉(zhuǎn)換前設(shè)定好以上SFR,CPU就按設(shè)定好的模式在模擬量轉(zhuǎn)換好時用指令讀出數(shù)據(jù)寄存器中的數(shù)字量或在中斷服務(wù)程序中讀取數(shù)字量,然后再進行下一次的轉(zhuǎn)換。ADC0的電氣特性見附錄C。
5.1.3模擬多路選擇器和PGA
模擬多路選擇器AMUX(Analog Multiplexer)中的8個通道用于外部測量,而第九通道在內(nèi)部被接到片內(nèi)溫度傳感器。這9個模擬通道通過通道選擇寄存器AMX0SL和配置寄存器AMX0CF進行選擇和配置,可以將AMUX輸入對編程為工作在差分或單端方式。這就允許用戶對每個通道選擇*佳的測量技術(shù),甚至可以在測量過程中改變方式。在系統(tǒng)復(fù)位后AMUX的默認方式為單端輸入。表51給出了每種配置下各通道的功能。
配置寄存器AMX0CF的格式如下:
其中,各位的含義如下:
位7~4——未使用。讀= 0000b; 寫=忽略。
位3(AIN67IC)——AIN6、AIN7輸入對配置位。
0: AIN6和AIN7為獨立的單端輸入。
1: AIN6和AIN7為(分別為)+、-差分輸入對。
位2(AIN45IC)——AIN4、AIN5輸入對配置位。
0: AIN4和AIN5為獨立的單端輸入。
1: AIN4、AIN5為(分別為)+、-差分輸入對。
位1(AIN23IC)——AIN2、AIN3輸入對配置位。
0: AIN2和AIN3為獨立的單端輸入。
1: AIN2、AIN3為(分別為)+、-差分輸入對。
位0(AIN01IC)——AIN0、AIN1輸入對配置位。
0: AIN0和AIN1為獨立的單端輸入。
1: AIN0、AIN1為(分別為)+、-差分輸入對。
注: 對于被配置成差分輸入的通道,ADC0數(shù)據(jù)字格式為2的補碼。
通道選擇寄存器AMX0SL的格式如下:
其中,各位的含義如下:
位7~4——未使用。讀= 0000b; 寫=忽略。
位3~0(AMX0AD3~0)——AMUX0地址位。
0000~1111,根據(jù)表51選擇ADC輸入的通道。
表51模擬通道配置
AMX0AD30
000000010010001101000101011001111xxx
AMX0CF
位3~0
0000AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7溫度傳感器
0001+ (AIN0)
- (AIN1)AIN2AIN3AIN4AIN5AIN6AIN7溫度傳感器
0010AIN0AIN1+ (AIN2)
- (AIN3)AIN4AIN5AIN6AIN7溫度傳感器
0011+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)
AIN4AIN5AIN6AIN7溫度傳感器
0100AIN0AIN1AIN2AIN3+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0101+ (AIN0)
- (AIN1)AIN2AIN3+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0110AIN0AIN1+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
0111+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)AIN6AIN7溫度傳感器
1000AIN0AIN1AIN2AIN3AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1001+ (AIN0)
- (AIN1)AIN2AIN3AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1010AIN0AIN1+ (AIN2)
- (AIN3)AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1011+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)AIN4AIN5+ (AIN6)
- (AIN7)溫度傳感器
1100AIN0AIN1AIN2AIN3+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1101+ (AIN0)
- (AIN1)AIN2AIN3+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1110AIN0AIN1+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
1111+ (AIN0)
- (AIN1)+ (AIN2)
- (AIN3)+ (AIN4)
- (AIN5)+ (AIN6)
- (AIN7)溫度傳感器
在表51中可看出,從多路選擇器出來的哪一個通道和單端或差分輸入由通道選擇寄存器AMX0SL和配置寄存器AMX0CF進行選擇和配置,表左邊的垂直方向表示配置寄存器AMX0CF低4位值,指出各通道的單端還是差分輸入,表上邊的水平方向表示通道選擇寄存器AMX0SL的低4位,選擇9路輸入的中的某一路。
PGA(Programmable Gain Amplifier)即可編程增益放大器,它對AMUX輸出信號的放大倍數(shù)由ADC0配置寄存器ADC0CF中的AMP0GN2~0確定。PGA增益可以用軟件編程為0.5、1、2、4、8或16,復(fù)位后的默認增益為1。注意,PGA0的增益對溫度傳感器也起作用。
配置寄存器ADC0CF的格式如下:
其中,各位的含義如下:
位7~3 (AD0SC4~0)——ADC0 SAR轉(zhuǎn)換時鐘周期控制位。
SAR轉(zhuǎn)換時鐘來源于系統(tǒng)時鐘,由下面的方程給出
AD0SC=SYSCLKCLKSAR0-1
其中AD0SC表示AD0SC4~0中保持的數(shù)值,CLKSAR0表示所需要的ADC0 SAR時鐘(注: ADC0 SAR時鐘應(yīng)小于或等于2.5MHz)。
位2~0 (AMP0GN2~0)——ADC0內(nèi)部放大器增益(PGA)。
000: 增益= 1
001: 增益= 2
010: 增益= 4
011: 增益= 8
10x: 增益= 16
11x: 增益= 0.5
5.1.4ADC的工作方式
1. 轉(zhuǎn)換過程
ADC0的轉(zhuǎn)換過程由控制寄存器ADC0CN來設(shè)置和控制的。
控制寄存器ADC0CN的格式如下:
其中,各位的含義如下:
位7 (AD0EN)——ADC0使能位。
0: ADC0禁止。ADC0處于低耗停機狀態(tài)。
1: ADC0使能。ADC0處于活動狀態(tài),并準備轉(zhuǎn)換數(shù)據(jù)。
位6 (AD0TM)——ADC跟蹤方式位。
0: 當ADC被使能時,除了轉(zhuǎn)換期間之外一直處于跟蹤方式。
1: 由AD0CM1~0定義跟蹤方式。
位5 (AD0INT)——ADC0轉(zhuǎn)換結(jié)束中斷標志。該標志必須用軟件清0。
0: 從*后一次將該位清0后,ADC0還沒有完成一次數(shù)據(jù)轉(zhuǎn)換。
1: ADC完成了一次數(shù)據(jù)轉(zhuǎn)換。
位4 (AD0BUSY)——ADC0忙標志位。
讀:
0: ADC0轉(zhuǎn)換結(jié)束或當前沒有正在進行的數(shù)據(jù)轉(zhuǎn)換。AD0INT在AD0BUSY的下降沿被置1。
1: ADC0正在進行轉(zhuǎn)換。
……
你還可能感興趣
我要評論
|