【正文】
ADC_RESL=0。 nop。 //Set all P1 as analog input port 0xff=1111 1111B 即P1全部用作AD,使用時(shí)根據(jù)實(shí)際情況賦值A(chǔ)DC_RES = 0。程序預(yù)編譯include include //使用_nop_()。相信大家對(duì)這個(gè)寄存器一定非常熟悉,在傳統(tǒng)51中第7位為EA,第6位沒有使用,12C單片機(jī)的6位就是AD中斷允許位。置“1”AD轉(zhuǎn)換啟動(dòng)。開在初始化時(shí)直接將其置“1”,但考慮到能耗的因素,最好在使用時(shí)開啟,使用結(jié)束后關(guān)閉。本文以STC12C5A60S2系列單片機(jī)芯片手冊(cè)為母本編寫。ADC_CONTR 寄存器ADC控制寄存器,地址BCH,復(fù)位值:00H。當(dāng)AD轉(zhuǎn)換結(jié)束時(shí),自動(dòng)拉高,標(biāo)志轉(zhuǎn)換結(jié)束。當(dāng)ADRJ 為1時(shí),AD轉(zhuǎn)換結(jié)果的高2位存放在ADC_RES的低2位中,低8位存放在ADC_RESL中??晌粚ぶ返募拇嫫鳎▋H指上面提到的寄存器)包括IE和IP,其他均不可位尋址,也就是說(shuō)只有傳統(tǒng)51有的寄存器才可以位尋址,但是在使用C編寫程序是,由于我們調(diào)用的是reg51的頭文件,并且在預(yù)編譯階段只使用srf語(yǔ)句定義了寄存器,沒有使用sbit語(yǔ)句定義位,所以程序的位操作,均使用“|”和“amp。 //P1 secondary function control register/*由于12C單片機(jī)不支持AD相關(guān)寄存器的位尋址,需使用“|”對(duì)寄存器執(zhí)行位,故定義一下內(nèi)容*/ /*“|”說(shuō)明,之后不再提