基于STC12C5A60S2单片机的无极档位直流电压表的设计

2026/4/24 13:30:38

基于STC12C5A60S2的无极档位直流电压表的设计

3.1.1 STC12C5A60S2系列单片机主要性能

1)高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快6~12倍。 2)宽电压:5.5~3.3V,2.2~3.6V(STC12LE5A60S2系列)。

3)增加第二复位功能脚/P4.6(高可靠复位,可调整复位门槛电压,频率<12MHz时,无需此功能)。

4)增加外部掉电检测电路/P4.6,可在掉电时,及时将数据保存进EEPROM,正常工作时无需操作EEPROM。

5)低功耗设计:空闲模式(可由任意一个中断唤醒)。

6)低功耗设计:掉电模式(可由外部中断唤醒),可支持下降沿/上升沿和远程唤醒。 7)支持掉电唤醒的管脚: INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0, CCP0/P1.3(或P4.2),CCP1/P1.4(或P4.3),EX_LVD/P4.6。

8) 工作频率:0~35MHz,相当于普通8051:0~420MHz。

9) 时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置。 10) 8/16/20/32/40/48/52/56/60/62K字节片内Flash程序存储器,擦写次数10万次以上。

11) 1280字节片内RAM数据存储器。

12) 芯片内EEPROM功能,擦写次数10万次以上。

13) ISP / IAP,在系统可编程/在应用可编程,无需编程器/仿真器。 14) 8通道,10位高速ADC,速度可达25万次/秒,2路PWM还可当2路D/A使用。 15) 2通道捕获/比较单元(PWM/PCA/CCP),也可用来再实现2个定时器或2个外部中断(支持上升沿/下降沿中断)。

16) 4个16位定时器,兼容普通8051的定时器T0/T1,2路PCA实现2个定时器。 17) 可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟。

18) 硬件看门狗(WDT)。 19) 高速SPI串行通信端口。

20) 全双工异步串行口(UART),兼容普通8051的串口。

4

基于STC12C5A60S2的无极档位直流电压表的设计

21) 通用I/O口(36/40/44个),复位后为: 准双向口/弱上拉(普通8051传统I/O口)。可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏。每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过120mA。

3.1.2 STC12C5A60S2系列单片机的A/D转换器的结构

STC12C5A60S2系列单片机的A/D转换口在P1口(P1.7-P1.0),有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测、电源电压检测、按键扫描、频谱检测等。上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的I/O口可以继续作为I/O口使用。

STC12C5A60S2系列单片机ADC的结构如下图所示

图3.1.1 STC12C5A60S2系列单片机ADC的结构

图3.1.2 当AUXR.1/ADRJ=0时,A/D转换结果寄存器格式

5

基于STC12C5A60S2的无极档位直流电压表的设计

图3.1.3 当AUXR.1/ADRJ=1时,A/D转换结果寄存器格式

STC12C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10位ADC转换寄结果存器(ADC_RES和ADC_RESL)以及ADC_CONTR构成。

STC12C5A60S2系列单片机的ADC是逐次比较型ADC,逐次比较型ADC由一个比较D/A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出比较,经过多次比较,使转换所得的数字量逐次比逼近输入模拟量对应值。逐次比较型A/D转换器具有速度高,功耗低等特点。

从上图可以看出,通过模拟多路开关,将通过ADC0-ADC7的模拟量输入送给比较器。用数/模转换器(DAC)转换的模拟量与本次输入的模拟量通过比较器进行比较,将比较结果保存到逐次比较器,并通过逐次比较寄存器输出转换结果。A/D转换结束后,最终的转换结果保存到ADC转换结果寄存器ADC_RES和ADC_RESL,同时,置位ADC控制寄存器ADC_CONTR中的A/D转换结束标志位ADC_FLAG,以供程序查询或发出中断申请。模拟通道的选择控制由ADC控制寄存器ADC_CONTR中的CHS2~CHS0确定。ADC的转换速度由ADC控制寄存器中的SPEED1和SPEED0确定。在使用ADC之前,应先给ADC上电,也就是置位ADC控制寄存器中的ADC_POWER位。

当ADRJ=0时,如果取10位结果,则按下面公式计算:

10-bitA/D Conversion Result:(ADC_RES[7:0],ADC_RESL[1:0])=1023*Vin/Vcc 当ADRJ=0时,如果取8位结果,则按下面公式计算:

8-bitA/D Conversion Result:(ADC_RES[7:0])=255*Vin/Vcc 当ADRJ=1时,如果取10位结果,则按下面公式计算:

10-bitA/D Conversion Result:( ADC_RESL[1:0] ,ADC_RES[7:0])=1023*Vin/Vcc 当ADRJ=1时,如果取8位结果,则按下面公式计算:

8-bitA/D Conversion Result:( ADC_RESL[1:0] ,ADC_RES[7:2])=255*Vin/Vcc 式中,Vin为模拟输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。

6

基于STC12C5A60S2的无极档位直流电压表的设计

3.1.3 与A/D 转换相关的寄存器及说明

与STC12C5A60S2系列单片机A/D转换相关的寄存器

表3.1.1 A/D转换相关的寄存器

1.P1口模拟功能控制寄存器P1ASF

STC12C5A60S2系列单片机的A/D转换通道与P1(P1.7-P1.0)复用,上电复位后P1为弱上拉型I/O口,用户可以通过将8路中的如何一路设置为A/D转换,不需作为A/D使用的P1口可继续作为I/O口使用(建议只作为输入)。需作为A/D使用的口需要先将P1ASF特殊功能寄存器中的相应位置为“1”,将相应的口设置为模拟功能。P1ASF寄存器的格式如下:

P1ASF:P1口模拟功能控制寄存器(只读)

表3.1.2 P1ASF寄存器

当P1口中的相应位作为A/D使用时,要将P1ASF中的相应位置“1”

7


基于STC12C5A60S2单片机的无极档位直流电压表的设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于STC12C5A60S2单片机的无极档位直流电压表的设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219