PIC16F873A的A/D轉(zhuǎn)換電路
下圖是一種利用PIC16F873A(28引腳)和LCD(液晶顯示模塊1602)組成的A/D轉(zhuǎn)換液晶顯示的主要電路。該電路的功能是先對(duì)柔性薄膜壓力傳感器的模擬信號(hào)進(jìn)行A/D轉(zhuǎn)換,然后按所需功能進(jìn)行處理,最后由LCD顯示其物理量的功能。當(dāng)然,所述過(guò)程都是由C語(yǔ)言程序完成的。
LCD按其顯示方式,可分為段位式(又稱筆段式)、字符式和點(diǎn)陣式等。段位式LCD類似于數(shù)碼管LED的功能,只能顯示0~9的數(shù)字和簡(jiǎn)單的字符。字符式LCD不僅可顯示數(shù)字而且可顯示多種字符(字符庫(kù))。點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可顯示多種圖形、曲線及漢字,實(shí)現(xiàn)屏幕的動(dòng)畫。下圖中的LCD是字符型的,常用的型號(hào)是1602,即16字×2行的。讀者在電子市場(chǎng)購(gòu)買1602模塊時(shí),定向商家索取該模塊的詳細(xì)使用說(shuō)明書。
柔性薄膜壓力傳感器是一種超薄性(僅0.1mm厚)壓力傳感器,常用于醫(yī)學(xué)上,該傳感器受壓時(shí),其輸出的模擬信號(hào)很小,所以都應(yīng)加運(yùn)算放大器進(jìn)行放大處理后,才能送到單片機(jī)的A/D轉(zhuǎn)換輸入端,如下圖中的RAO/AN1或RAl/AN2端。
下圖的Pic16F873A的硬件電路,是一種常規(guī)的A/D轉(zhuǎn)換和LCD顯示電路,其中Pic16F873A的①腳外接常規(guī)的Pic單片機(jī)復(fù)位電路;(9)、⑩腳外接晶振XT和C1、C2的單片機(jī)時(shí)鐘電路;Pic16F873A的B口,其位RB4、RB3和RB2分別與1602LCD的E、EW和RS的控制端相連,以便Pic單片機(jī)控制1602LCD的基本操作。
Pic16F873A的C口,其位RCO~RC7與1602LCD的數(shù)據(jù)引腳DO~D7分別相連,以便Pic單片機(jī)控制1602LCD的指令和數(shù)據(jù)的讀寫操作。LCD(1602)的③腳VL為L(zhǎng)CD對(duì)比度調(diào)整端,接正電源時(shí),對(duì)比度最低,接地時(shí)對(duì)比度最高,使用時(shí)通過(guò)外接10KQ電位器,調(diào)整所需的對(duì)比度。
該電路是為某醫(yī)院燒傷科設(shè)計(jì)的治療儀部分主要電路,在這里取其A/D轉(zhuǎn)換的C程序部分,以說(shuō)明Pic單片機(jī)的專用寄存器:ADCON1、ADRESH、ADRESL、ADCONO、PIR1和PIE1等,在A/D轉(zhuǎn)換時(shí)的使用方法和操作步驟。
以下是Pic16F873A的A/D轉(zhuǎn)換的操作步驟和相關(guān)的程序。
A/D轉(zhuǎn)換的初始化,如下圖所示。
對(duì)于A/D轉(zhuǎn)換程序的初始化一般要經(jīng)過(guò)下圖的幾個(gè)步驟。
A/D轉(zhuǎn)換初始化函數(shù)代碼如下:
以上流程圖和代碼是采用中斷服務(wù)程序來(lái)讀取A/D轉(zhuǎn)換數(shù)值的,雖然通過(guò)查詢標(biāo)志位方式也可以達(dá)到同樣的效果,但是在實(shí)際應(yīng)用中,中斷服務(wù)方式因方便、可靠、節(jié)省芯片運(yùn)行時(shí)間而成為常用的編程結(jié)構(gòu)。對(duì)于中斷服務(wù)程序,越簡(jiǎn)單越好,因PIC單片機(jī)特殊的堆棧結(jié)構(gòu),不宜在中斷服務(wù)程序內(nèi)作數(shù)據(jù)運(yùn)算和太多調(diào)用函數(shù)的操作,原則是取出值后立即退出中斷,以保證其它的任務(wù)能及時(shí)被響應(yīng)。下圖是中斷服務(wù)流程圖。
AD中斷C語(yǔ)言的基本寫法: