|
你的程序有缺陷,給你改了一下,你試試。
- #include <STC12C5A60S2.H>
- #include <intrins.h>
- typedef unsigned char uchar;
- typedef unsigned int uint;
- sbit LED=P0^4;
- void main ()
- {
- uint i;
- P1M1 = 0xFF; P1M0 = 0x00; //設(shè)置P1端口全部為高阻
- P0=0XFF;
- LED=0;
- P1ASF=0Xff; //所有通道設(shè)為模擬輸入
- ADC_RES = 0; //AD數(shù)據(jù)寄存器高8位清空
- ADC_RESL= 0; //AD數(shù)據(jù)寄存器低2位清空
- ADC_CONTR=0X81; //打開電源, 設(shè)置頻道
- for(i=0;i<20000;i++); //延時(shí)
- CLK_DIV=0X00; //用來配置CPU主頻,默認(rèn)值為0x00,不分頻 //這句沒有設(shè)置作用
- ADC_CONTR=0X89; //打開電源, 設(shè)置頻道P1.1 //啟動ad轉(zhuǎn)換,置1為起動,轉(zhuǎn)換結(jié)束后自動置0
- AUXR1|=0x04; //AUXR1/ ADRJ=1 時(shí) ADC_RESL是低位,高2位在ADC_RES上,
- EADC=1; //開ADC中斷。
- EA=1; //開總中斷。
- while(1);
- }
- void adc_zd() interrupt 5
- {
- ADC_CONTR=0X81;
- P3=~((ADC_RES&0x03)<<6);
- P2=~ADC_RESL;
- ADC_CONTR=0X89;
- }
復(fù)制代碼 |
|