您的位置:網(wǎng)站首頁(yè) > 電器維修資料網(wǎng) > 正文 >
PIC單片機(jī)A/D轉(zhuǎn)換知識(shí)
來(lái)源: 日期:2013-11-20 18:38:17 人氣:標(biāo)簽:
adcon1的第6、5、4位,在a/d轉(zhuǎn)換中未派上用場(chǎng),讀作“0”。adcon1的第3、2、1、0位(bit3、bit2、bitl和bit0),是管理pic16f87x引腳功能(a或d)的選擇,例如在下文c程序中,設(shè)adconl=ox8a時(shí),選擇pic16f873a的ano(rao.)、an1(ral)ra4(an4)、ra5(an5)為模擬量輸入、(an6、an7為數(shù)字量輸入),an3、an2參考電壓設(shè)置端(+、-)。
(2)a/d轉(zhuǎn)換結(jié)果寄存器adresh、adresl。因pic16f87x的a/d轉(zhuǎn)換值是10位的二進(jìn)制數(shù)(代碼),而a/d轉(zhuǎn)換的結(jié)果是存放在指定的結(jié)果寄存器中,因結(jié)果寄存器是8位的,所以a/d轉(zhuǎn)換結(jié)果的10位數(shù),利用adresh存放a/d的高字節(jié);利用adresl存放a/d的低字節(jié)。存放方法是利用前述的adcon1的第7位(bit)adfm進(jìn)行選擇,當(dāng)令adfm=1時(shí),a/d轉(zhuǎn)換結(jié)果的低8位存放在adrel中;高兩位存放在adresh中;當(dāng)令adfm=o時(shí),a/d轉(zhuǎn)換結(jié)果的低兩位存放在adresl中,余下的高8位存放在adresh中,這由c語(yǔ)言設(shè)計(jì)者自由選擇。若對(duì)a/d轉(zhuǎn)換代碼的分辨率要求不高(如實(shí)驗(yàn)程序),可取a/d轉(zhuǎn)換的高8位而舍去低2位,以使c程序簡(jiǎn)化。
(3)a/d轉(zhuǎn)換控制寄存器adcono。
adcono的功能是用于控制a/d轉(zhuǎn)換的操作,其相關(guān)位的功能如下圖所示。
圖中adcono的第0位(bit0),adon是a/d轉(zhuǎn)換允許位(俗稱(chēng)打開(kāi)a/d轉(zhuǎn)換),當(dāng)令adon=1時(shí),打開(kāi)的a/d轉(zhuǎn)換;adon=o時(shí),關(guān)閉a/d轉(zhuǎn)換。adcono的第1位,未使用讀作o。
adcono的第2位go/done的反也是重要的功能位:在adon=1時(shí),若令go/done的反=1,啟動(dòng)a/d轉(zhuǎn)換;若令go/done的反=0,a/d轉(zhuǎn)換完成。
adcono的5~3位(bit5、bit4和bit3)chs2、chs1、chso是a/d轉(zhuǎn)換模擬通道的選擇,對(duì)pic16f873a芯片,有下述關(guān)系:
adcono的第7、6位即adcs1和adcso,是a/d轉(zhuǎn)換時(shí)鐘選擇位,有以下關(guān)系:
此外,在a/d轉(zhuǎn)換時(shí),還會(huì)用到外圍接口中斷標(biāo)志寄存器pir1的標(biāo)志位adif(bit6)和外圍接口中斷使能寄存器pie1的使能位adie。
當(dāng)令adif=1時(shí),代表a/d轉(zhuǎn)換已完成;adif=o時(shí),a/d轉(zhuǎn)換未完成。
當(dāng)令adie=1時(shí),打開(kāi)a/d轉(zhuǎn)換中斷;adie=o時(shí),關(guān)閉a/d轉(zhuǎn)換中斷。
【看看這篇文章在百度的收錄情況】