芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

单片机解密STC15F2K60S2单片机内部自带AD转换

单片机解密STC15F2K60S2单片机内含8路10位高速AD转换器,速度可达30万次/秒。单片机P1口既可作为普通I/O口,也可作为AD转换器模拟电压输入口。AD转换器相关的寄存器如表1所示。

表1  ADC转换相关寄存器

P1ASF

P17ASF

P16ASF

P15ASF

P14ASF

P13ASF

P12ASF

P11ASF

P10ASF

ADC_CONTR

ADC_POWER

SPEED1

SPEED0

ADC_FLAG

ADC_START

CHS2

CHS1

CHS0

ADC_RES









ADC_RESL









CLK_DIV

PCON2

MCKO_S1

MCKO_S0

ADRJ

Tx_Rx

Tx2_Rx2

CLKS2

CLKS1

CLKS0

IE

EA

ELVD

EADC

ES

ET1

EX1

ET0

EX0

IP

PPCA

PLVD

PADC

PS

PT1

PX1

PT0

PX0


①单片机解密P1口控制寄存器P1ASF

P1ASF某一位为“1”,P1口对应的引脚设为模拟功能。某一位为“0”,对应的引脚设为普通I/O。

②单片机解密ADC控制寄存器ADC_CONTR

              ADC_POWER=1,打开AD转换器电源(关闭电源可降低功耗,ADC初次上电需适当延时,再启动AD转换)。

              SPEED1、SPEED0选择AD转换速度。            

SPEED1

SPEED0

AD转换时间

1

1

90个时钟周期

1

0

180个时钟周期

0

1

360个时钟周期

0

0

540个时钟周期


              ADC_FLAG:AD转换结束标志,需由软件清0。

              ADC_START:AD转换启动控制。

              CHS2、CHS1、CHS0:选择模拟输入通道P1.0~P1.7。

转换结果存放在ADC_RES和ADC_RESL寄存器中,当CLK_DIV.5/ADRJ=0时,ADC_RES为结果的高8位,ADC_RESL为结果的低2位(如表2所示)。当CLK_DIV.5/ADRJ=1时,ADC_RES为结果的高2位,ADC_RESL为结果的低8位(如表3所示)。

表2  ADRJ=0时ADC转换结果寄存器格式

ADC_RES

RES9

RES8

RES7

RES6

RES5

RES4

RES3

RES2

ADC_RESL

-

-

-

-

-

-

RES1

RES0


表3  ADRJ=1时ADC转换结果寄存器格式

ADC_RES







RES9

RES8

ADC_RESL

RES7

RES6

RES5

RES4

RES3

RES2

RES1

RES0


STC15F2K60S2的AD转换器以Vcc为参考电压,当ADRJ=0时,10位转换结果与输入模拟电压的关系由式(1)计算:

…………...……………………(1)

如果只取高8位,则由式(2)计算:

……………………………………...…………………(2)

当ADRJ=1时,10位转换结果与输入模拟电压的关系由式(3)计算:

…………………………………(3)

如果单片机Vcc电压不稳,会引起AD转换误差,在实际应用中,可用一路AD采样外部的基准电压(如用TL431基准电源),另一路AD采样被测电压,按式(4)计算:

………………………………..…………………..(4)

三、实验环境

Windows XP;

Keil μ Vision 4;

STC-ISP-6.28。

四、实验内容

1.实验连线

分别用两根8芯杜邦线将单片机P2口与J61、单片机P0口与J62连接起来,P0口用于数码管的位选择,P2口输出数码管的显示码。用跳线帽短接JP8、JP9,模拟输入经过RC滤波(如图1所示)。用杜邦线连接连接J35和P1.3,单片机通道3采样模拟输入电压。

图1  ADC模拟输入滤波电路

2.程序设计

Keil汇编或C语言头文件REG51.H不包含STC单片机ADC寄存器定义,而编程时需要用到ADC_CONTR、ADC_RES等特殊功能寄存器,STC-ISP软件提供各种STC单片机的寄存器定义头文件。在STC-ISP软件界面,选择头文件选项卡,选择好单片机系列,该系列的寄存定义出现在文本框中,可以复制头文件内容,也可以保存头文件(如图8-2所示)。本实验可以将头文件命名为STC15F2K.H,保存到\Keil\C51\INC文件夹中,以后编程时直接用该头文件替换REG51.H。

AD转换可以用中断的方式,也可以用查询的方式。每次转换结束,将ADC_RES寄存器和ADC_RESL寄存器内容存入整型变量result。当ADRJ=0时:

int  result;

    result=(ADC_RES<<2)|(ADC_RESL&3);

    vin=result*Vcc/1024;              //Vcc单位为毫伏



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信