STC15W系列模數轉換器暫存器
與ADC相關的暫存器有以下:
P1ASF為P1口模擬功能控制暫存器(該暫存器是隻寫暫存器,讀無效)
PS:只寫暫存器就是可以寫但是讀不出來,或者讀出來的值是不對的,隨機的.
P1ASF格式如上:其功能是P1.0~P1.7八個埠對應是否作為模擬功能A/D使用。比如:P1ASF=0xff; //將P1口作為模擬功能A/D使用
ADC控制暫存器ADC_CONTR
格式如下:
ADC_POWER:ADC電源控制位(0關1開)
SPEED1、SPEED0是模數速度轉換控制位
ADC_FLAG:模數轉換器轉換結束標誌。(A/D轉換完成後,ADC_FLAG=1,一定要用軟體清零)
ADC_START:模數轉換器(ADC)轉換啟動控制位(1開始轉換;0轉換結束)
CHS2、CHS1、CHS0作為模擬輸入通道選擇,比如:000 即P1.0作為A/D輸入來源;010 即P1.2作為A/D輸入來源;111即P1.7作為A/D輸入來源...
故ADC_CONTR=0x8b; //也就是10001011 ADC_POWER=1開啟A/D轉換器電源;ADC_START=1啟動模擬轉換器ADC;CHS=011選擇P1^3作為A/D輸入使用
A/D轉換結果暫存器ADC_RES、ADC_RESL
特殊功能暫存器ADC_RES(A/D轉換結果暫存器高)和ADC_RESL(A/D轉換結果暫存器低)暫存器用於儲存A/D轉換結果。
CKKO_DIV(PCON2)暫存器
格式如下:
其中ADRJ位是A/D轉換結果暫存器(ADC_RES,ADC_RESL)的資料格式調整控制位。
當ADRJ=0時,ADC_RES【7:0】存放高8位結果,ADC_RESL【1:0】存放低2位ADC結果。
當ADRJ=1時,ADC_RES【1:0】存放高2位結果,ADC_RESL【7:0】存放低8位ADC結果。
Tx_Rx是串列埠1中斷廣播方式設定位,MCLKO_2為0則是P5.4對外輸出時鐘,為1則是P1.6
CLKS2、CLKS1、CLKS0:
如:CLK_DIV=0x20; //即0010 0000 ADRJ=1——ADC_RES[1:0]存放高2位ADC結果,ADC_RESL[7:0]存放低8位ADC結果,CPU工作時鐘就是系統時鐘(未分頻)。
CLK_DIV = 0X00; //即0000 0000 ADRJ = 0 ADC_RES存放高八位結果
中斷允許暫存器IE
EA:開放或禁止所有中斷。
ELVD:LVD中斷允許控制位。
EADC:ADC中斷允許控制位。
ES:開放或禁止序列通道中斷。
ET1:開放或禁止定時器1溢位中斷。
EX1:開放或禁止外部中斷源1。
ET0:開放或禁止定時器0溢位中斷。
EX0:開放或禁止外部中斷源0。
1允許,0禁止(所以中斷暫存器各位的意義應該都明白了)
中斷優先順序控制暫存器IP
PADC:A/D轉換中斷優先順序控制位。
當PADC = 0時,A/D轉換中斷為最低優先順序中斷(優先順序0)
當PADC = 1時,A/D轉換中斷為最高優先順序中斷(優先順序1)
(1)PPCA:PCA中斷優先順序控制位。
1:PCA中斷為高優先順序;0:PCA中斷為低優先順序。
(2)PLVD:低電壓檢測中斷優先順序控制位。
1:低電壓檢測中斷為高優先順序;0:低電壓檢測中斷為低優先順序。
(3)PADC:ADC中斷優先順序控制位。
1:ADC中斷為高優先順序;0:ADC中斷為低優先順序。
(4)PS:決定序列通道中斷優先順序。PS=1,則程式設計為高優先順序。
PT1:決定定時器1中斷優先順序。PT1=1,則程式設計為高優先順序。PX1:決定外中斷1優先順序。PX1=1,則程式設計為高優先順序。
PTO:決定定時器0中斷優先順序。PTO=1,則程式設計為高優先順序。PXO:決定外中斷0優先順序。PX0=1,則程式設計為高優先順序。