PIC單片機(jī)模/數(shù)轉(zhuǎn)換器ADC模塊的設(shè)計(jì)思路及電路設(shè)計(jì)
ADCON1、TRISA和TRISE寄存器控制A/D端口引腳的操作。這個作為模擬輸入的端口引腳必須有它們的相應(yīng)位TRIS置1(輸入)。如果TRIS位清0(輸出),數(shù)字輸出電平(VOH或VOL)將被轉(zhuǎn)換。A/D操作是獨(dú)立于(CHS(2∶0))位和TRIS位的狀態(tài)之外的。
在睡眠期間A/D模塊可以工作,這種A/D時鐘要求對RC置1,(ARCS(1:0)=11), 當(dāng)選擇RC時鐘源時,A/D模塊在開始轉(zhuǎn)換之前等待一個指令周期。這種允許執(zhí)行的睡眠指令,可以消除在轉(zhuǎn)換中產(chǎn)生的所有數(shù)字開關(guān)噪聲。
當(dāng)轉(zhuǎn)換完成時,GO/DONE位將被清0,和轉(zhuǎn)換結(jié)果一塊裝入ADRES寄存器,如果A/D中斷使能,單片機(jī)將從睡眠中喚醒,如果A/D中斷不使能,盡管ADON位仍保持置1,A/D模塊仍將被關(guān)閉。
如果A/D時鐘源是另一種時針選擇(不是RC),盡管ADIN位仍保持1,睡眠指令將導(dǎo)致目前的轉(zhuǎn)換中斷和A/D模塊被關(guān)閉。關(guān)閉A/D,把A/D模塊放到它的最低電流消耗狀態(tài)。
單片機(jī)復(fù)位強(qiáng)制所有寄存器復(fù)位到它們的復(fù)位狀態(tài),強(qiáng)制關(guān)閉A/D轉(zhuǎn)換模塊和進(jìn)行的轉(zhuǎn)換。在ADRESH、ADRESL寄存器的值在上電復(fù)位時不變,ADRESH、ADRESL寄存器在上電復(fù)位之后將包含未知數(shù)據(jù)。
1. 設(shè)計(jì)思路
將RA2引腳作為模擬電壓輸入,模擬量為連接在RA2引腳上的微調(diào)電阻提供,借此可以提供一個連續(xù)變化的模擬電壓。端口D連接8個LED作為數(shù)據(jù)輸出顯示,并設(shè)置一個報(bào)警值。
本程序中將報(bào)警值設(shè)為2.5V,經(jīng)A/D轉(zhuǎn)換后對應(yīng)十六進(jìn)制數(shù)值為0x200H,當(dāng)A/D轉(zhuǎn)換的值未達(dá)到警戒值(0x200H)時,點(diǎn)亮8個發(fā)光二極管的低4個,表明系統(tǒng)運(yùn)行正常;當(dāng)A/D轉(zhuǎn)換的值達(dá)到或超過警戒值(0x200H)時,發(fā)出報(bào)警信號,點(diǎn)亮與D口相連的LED顯示報(bào)警信息。
2. 電路設(shè)計(jì)
單片機(jī)與LED的接口原理如圖3所示。
圖3 PIC16F877與LED的接線
評論