基于STC12C5A60S2单片机数字电压表的设计_第1页
基于STC12C5A60S2单片机数字电压表的设计_第2页
基于STC12C5A60S2单片机数字电压表的设计_第3页
基于STC12C5A60S2单片机数字电压表的设计_第4页
基于STC12C5A60S2单片机数字电压表的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文库 数字电压表的设计 第1章引言 在电量的测量中,电压、电流和频率是最基本的三个被测量, 其中电压量的 测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压, 所 以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM它是采用 数字化测量技术,把连续的模拟量转换成不连续、 离散的数字形式并加以显示的 仪表。由于数字式仪器具有读数准确方便、精度高、 误差小、测量速度快等特而 23 得到广泛应用。 传统的指针式刻度电压表功能单一,精度低, 容易引起视差和视觉疲劳,因 而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直 流电压转换成不连续的离散的数字形

2、式并加以显示,从而精度高、抗干扰能力强, 可扩展性强、集成方便,还可与 PC实时通信。数字电压表是诸多数字化仪表的 核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪 表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电 压表作全面深入的了解是很有必要的。 目前,数字电压表的内部核心部件是 A/D转换器,转换的精度很大程度上影 响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成 本这两个方面。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模 块: 转换模块、数据处理模块及显示模块。 第2章系统总体方案设计选择与说明

3、2.1 设计要求 、增强型MCS-5係列单片机STC12C5A60S为核心器件,组成一个简单的 直流数字电压表。 2、采用1路模拟量输入,能够测量0-10V之间的直流电压值。 3、电压显示采用LCD1602显示。 4、尽量使用较少的元器件。 2.2设计思路 1根据设计要求,选择 STC12C5A60S单片机为核心控制器件。 2、A/D转换采用 STC12C5A60S内部自带A/D实现。 3、电压显示采用 LCD1602显示。 2.3设计方案 硬件电路设计由 7个部分组成:STC12C5A60S单片机系统,数码管显示系 统、时钟电路、复位电路档位调节电路以及测量电压输入电路。 硬件电路设计框 图

4、如图1所示。 时钟电路 复位电路 图2.1数字电压表系统硬件设计框图 第3章硬件电路设计 3.1 STC12C5A60S2单片机 CLtOt/r AlJCtuPI .D 趣-叩I RiDC?.ECLADC;frl 3 151131 CmAX;l/Pl I SiCPTI ADC1 PJ 4 Xflg卫匚6 pl 6 iC-UirADCZPl. Pl XZ 阿 MPA Q gp* I rfrtPi j LLMJUTlTVTTlPi .3 Tntpit 屉円I XTAlJ XTALI l 40 证 JS 冷 53 IU ?e ?6 冷 25 Z3 Vll nno npoi j? J 二 RM 二,

5、二PO晶 二JEXLVDPI STL疋 二1啦玉说:! MAW 二 PJ AJU, bAH P?乐刚二 n 町 Ml* ZZtP? ? A|0 巴匚31? ! Aj ?1 L STC12C5A60S单片机引脚图及实物图 3.2 STC12C5A60S系列单片机主要性能 1) 高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快612倍。 2) 宽电压:5.53.3V,2.23.6V(STC12LE5A60S系列)。 3) 增加第二复位功能脚/P4.6(高可靠复位,可调整复位门槛电压,频率 V12MH时,无需此功能)。 4)增加外部掉电检测电路/P4.6,可在掉电时,及时将数据保存

6、进 EEPRQM 正常工作时无需操作 EEPROM 5)低功耗设计: 空闲模式 6)低功耗设计: 掉电模式 (可由任意一个中断唤醒)。 (可由外部中断唤醒),可支持下降沿/上升沿和远 程唤醒。 7)支持掉电唤醒的管脚: INT0/P3.2 ,INT1/P3.3,T0/P3.4,T1/P3.5, RxD/P3.0, CCP0/P 1.3(或P4.2),CCP 1/P1.4(或 P4.3),EX_LVD/P46 8)工作频率:035MHz相当于普通8051: 0420MHz 9)时钟:外部晶体或内部RCS荡器可选,在ISP下载编程用户程序时设置。 10)8/16/20/32/40/48/52/56

7、/60/62K 字节片内Flash程序存储器,擦写次数 10万次以上。 11)1280字节片内RA数据存储器。 12)芯片内EEPROM能 ,擦写次数10万次以上。 13)ISP / IAP ,在系统可编程/在应用可编程,无需编程器/仿真器。 14)8通道,10位高速ADC速度可达25万次/秒,2路PW还可当2路D/A使用。 15)2通道捕获/比较单元(PWM/PCA/CCP)也可用来再实现2个定时器或2个 外部中断(支持上升沿/下降沿中断)0 16) 4个16位定时器,兼容普通8051的定时器T0/T1 , 2路 PC实现2个定时器。 17)可编程时钟输出功能,T0在P3.4输出时钟,T1在

8、P3.5输出时钟,BRT在 P1.0输出时钟。 18) 硬件看门狗(WDT。 19) 高速SPI串行通信端口。 20) 全双工异步串行口(UART),兼容普通8051的串口。 21) 通用I/O 口(36/40/44个),复位后为: 准双向口 /弱上拉(普通8051传统 I/O 口)。可设置成四种模式:准双向口 /弱上拉,推挽/强上拉,仅为输入/高阻, 开漏。每个I/O 口驱动能力均可达到20mA但整个芯片最大不得超过120mA 3.3 STC12C5A60S系列单片机的A/D转换器的结构 STC12C5A60SS列单片机的A/D转换口在P1 口(P 1.7-P1.0),有8路10位高速 A/

9、D转换器,速度可达到250KHz(25万次/秒).8路电压输入型A/D,可做温度检 测、电源电压检测、按键扫描、频谱检测等。上电复位后 P1 口为弱上拉型I/O 口, 用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的 I/O 口可以继续作为I/O 口使用。 STC12C5A60SS列单片机ADC勺结构如下图所示 ADC_CONTR Register ADC PO 试in 1 SPEED 1 SPEEDO 1 ADC FI.AG 貞心TAET CHS2 CHSl 1 CHSO 模ffl输入信号增道选择 ADC RESandADC RESL ADCZPLi ADCbPl

10、.l ADCWl.Q ADC7fPl 7 I_0 O AMS,Pl 5 Io ADC4?P14o ADC5 P13 -J_O o 逼次比较 idtf- -JtJ KLU 寄存器 lO-bitDAC 图3.2 STC12C5A60S系列单片机ADCI勺结构 ADC_RES7;0 I ADC BSIADC E a | ADC B; | ADC Bfl ADC 廉 | ADC冲 | AIX: | ADC BI | |adc_b】|adc_bo ADC_RESL1 :O 图3.3当AUXR.1/ADRJ=I0,A/D转换结果寄存器格式 AlX._RhSlL0| I = ADC-B9ADcjr| 丄升心

11、:_閲心_出|心_34|収心卫 |adc_3i|md(:_bq| adc_ri:辽 L? :oj 图3.4 当AUXR.1/ADRJ=ae, A/D转换结果寄存器格式 STC12C5A60SS列单片机ADC由多路选择开关、比较器、逐次比较寄存器、 10位ADC专换寄结果存器(ADC_REISADC_RESL以及ADC_CON构成。 STC12C5A60SS列单片机的AD是逐次比较型ADC逐次比较型ADC由一个比 较D/A转换器构成,通过逐次比较逻辑,从最高位(MSB开始,顺序地对每一输 入电压与内置D/A转换器输出比较,经过多次比较,使转换所得的数字量逐次比 逼近输入模拟量对应值。逐次比较型

12、A/D转换器具有速度高,功耗低等特点。 从上图可以看出,通过模拟多路开关,将通过ADC0-ADC的模拟量输入送给 比较器。用数/模转换器(DAC转换的模拟量与本次输入的模拟量通过比较器进 行比较,将比较结果保存到逐次比较器,并通过逐次比较寄存器输出转换结果。 A/D转换结束后,最终的转换结果保存到ADC专换结果寄存器ADC_RE和ADC_RESL同时,置位AD(控制寄存器ADC_CONT的A/D转换结束标志位ADC_FLAG以供程 序查询或发出中断申请。模拟通道的选择控制由AD(控制寄存器ADC_CONTR勺 CHS2CH确定。ADC勺转换速度由AD(控制寄存器中的SPEED和SPEED确定。

13、在 使用AD(之前,应先给ADCt电,也就是置位AD(控制寄存器中的ADC_POW位R 当ADRJ=0e,如果取10位结果,则按下面公式计算: 10-bitA/D Conv ersi on Result:(ADC RES7:0,ADC RESL1:0)=1023*Vin/Vcc 当ADRJ=0e,如果取8位结果,则按下面公式计算: 8-bitA/D Con version Result:(ADC RES7:0)=255*Vi n/Vcc 当ADRJ=S,如果取10位结果,则按下面公式计算: 10-bitA/D Conv ersi on Result:( ADC RESL1:0 ,ADC RES

14、7:0)=1023*Vi n/Vcc 当ADRJ=S,如果取8位结果,则按下面公式计算: 8-bitA/D Conv ersi on Result:( ADC RESL1:0 ,ADC RES7:2)=255*Vi n/Vcc 式中,Vin为模拟输入电压,Vcc为单片机实际工作电压,用单片机工作电压 作为模拟参考电压。 3.4与A/D转换相关的寄存器及说明 与STC12C5A60S系列单片机A/D转换相关的寄存器 符号 描述 雎址 MSB 恆炖址及执符号 LSB Pl ASF Pl Analog FuikLIqu Configure registei 9DH P 门 A5F F16ASF PU

15、ASF P11A5F PH ASF P12ASF P11A5F PIOAST OOQOOQOOB ArK_CnKTR ADC Contifll Rrgiirt BCH AJC POTIR SPED百PEIM ADC TLW ADC 57AET CHS; CHSl CEfSO oooooonoR ADCRES ADC Result high BDH OOOOOOOOB ADf RESL ADf Result low BEH 00()0 AUXRl Auxiliary1 AJll -PCA P4| 漏I P4 S2 P4| GF2 | ADRJ - DRi xOOO OOxOD EE Intenu

16、pt Enable ASH E見1 mT) EADC| ES 1 ETl ETD EXO OOOOOOOOB EP Iu(ciTupt Priuiiiy Low B8K PPCA PLVD EADC PS PTl PXl PTO PXO OOOOOOOOB IPH Interrupt Pnutity High B7H PPCAH PIATFH EADCH P$H PTIH EKIH 1 PTOH PMH OOOOOOOOB 表3.1 A/D转换相关的寄存器 1. P1 口模拟功能控制寄存器P1ASF STC12C5A60S系列单片机的A/D转换通道与P1(P 1.7-P 1.0)复用,上电复位

17、 后P1为弱上拉型I/O 口,用户可以通过将8路中的如何一路设置为 A/D转换, 不需作为A/D使用的P1 口可继续作为I/O 口使用(建议只作为输入)。需作为 A/D使用的口需要先将P1ASF特殊功能寄存器中的相应位置为“ 1”,将相应的口 设置为模拟功能。P1ASF寄存器的格式如下: P1ASF: P1 口模拟功能控制寄存器(只读) SFR nnme b卄 R7 B6 R% R4 RS R2 R1 BO PIASF 9DH name P HASP 146ASF PliJASF P llAbF PIJASF P12ASF PllASf PIOASJ- 表3.2 P1ASF寄存器 当P1 口中

18、的相应位作为A/D使用时,要将P1ASF中的相应位置“ 1” PIASFP:O Fl.昭的功能 英中FIASF寄存器地址淘 9DHH不鹿够进讦位寻址 PlASkO = 1 PL OU作为模拟功能仙史用 PIASF 1 - 1 FL为模拟功能A/D便用 PIASF.2= 1 P1. 2门作为模jlU力能WD使用 PIASE3= 1 PL 3口徉为模拟功艇A/D便用 PlASF.t = 1 Fl.in作为模楸功胸使用 P 1AS1.5= 1 Pl.sn作为模拟功臥如使用 P 1ASF6=1 Fi.Gn作為模拟功鈕畑使用 P IMF 7 = 1 F1+T 口件为模拟功鼬史用 表3.3 P1ASF寄存

19、器设置 2. ADC控制寄存器ADC_CONTR ADC_CONTR存器的格式如下: ADC CONRTR:A控制寄存器 SFR name Address bit R7 R6 R5 B4 R3 R2 Rll BO ADC_COKTR SCH uaiLie ADCJWVZR SPEED 1 SPEEDO ADCJTAG ADC_START CHS2 CttS CHSO 表3.4 ADC控制寄存器 对ADC_CONTR存器进行操作,建议直接用MOV武值语句,不要用“与”和“或” 语句。 ADC _PO WER:A电源控制位。 0:关闭A/D转换电源; 1:打开A/D转换电源; 建议进入控模式前,将

20、ADC电源关闭,即ADC_POWER启动A/D转换前一定 要确认A/D电源已打开,A/D转换结束后关闭A/D电源可决定功耗,也可以不关 闭。初次打开内部A/D转换模拟电源,需适当延时,等内部模拟电源稳定后,再 启动A/D转换。 建议启动A/D转换后,在A/D转换结束之前,不要改变任何I/O 口的状态, 有利于高精度A/D转换,若能将定时器/串行口 /中断系统关闭更好。 SPEED1 SPEED0模数转换速度控制位 SP EED1 SPEEDO WD转换所需时间 1 1 90个时钟周期转换一次,CPU工作频率21MH2时, A/D转换速度约250KHZ 1 0 180个时钟周期转换一次 0 1

21、360个时钟周期转换一次 0 0 540个时钟周期转换一次 表3.5模数转换速度控制位设置 STC12C5A60S系列单片机的A/D转换模块所使用的时钟时内部(或外部石英晶 体)所产生的系统时钟,不使用时钟分频寄存器CLK_DIV寸系统分频后所产生的 供给CPU工作的时钟。(好处:这样可以让ADC用较高频率工作,提高 A/D的转 换速度。让CPU工作工作在较低频率,降低系统功耗)。 ADC_FLAG:模数转换结束标志位,当 A/D转换完成后,ADC_FLAG=1要由软件 清零。 不管是A/D转换完成后由该位申请中断,还是由软件查询该标志A/D转换 是否结束,当A/D转换完成后,ADC_FLAG

22、 = 1, 一定要软件清零。 ADC_START莫数转换器(ADC转换启动控制位,设置为“ 1”时,开始转换, 转换结束 后 ADC_START = 1; CHS2/CHS1/CHS0模拟输入通道选择 CHS2 CHS1 CHSO Analog Channel Select (模拟输入通道选择) 0 0 0 选择FLO作为A/D输入来用 0 0 1 选择PL 1作为A/D输入来用 0 1 0 选择P 1.2作为A/D输入来用 0 1 1 选择P1. 3作为A/D输入来用 1 0 0 选择PL 4作为A/D输入来用 1 0 1 选择P 1.5作为A/D输入来用 1 1 0 选择P1.6作为A/D

23、输入来用 1 1 1 选择P1. 7作为A/D输入来用 表3.6模拟输入通道选择 设置ADC_CONTR制寄存器后,要加4个空操作延时后才能正确度到 ADC_CONTR 寄存器的值。原因是设置 ADC_CONTR制寄存器的语句执行后,要经过 4个CPU 时钟的延时,其值才能够保证被设置进 ADC_CO NTR制寄存器。 MOV ADC_CONTR,#DATA NOP NOP NOP NOP MOV A,ADC_CONRT 3、A/D转换结果寄存器 ADC_RESADC_RESL 特殊功能寄存器ADC_RE和ADC_RES寄存器用于存放A/D转换结果,其格 式如下: Miiftnoiuf Add

24、 Name 36 B5 B4 U DI iW Anc_KES BDh A/D转换鰭 果寄存器高 AIXJ.KLSL BEh 阳D转ft給 采寄存器低 ALXRl A2H Auxiliary rcgitcrl * PCA_P4 SPJM S2_IM OF; ADRJ DPS II 表3.7用于存放A/D转换结果寄存器ADC_RE、ADC_RESL AUX寄存器的ADRJ 位是A/D转换结果寄存器的数据格式调整控制位。 Muemooic Add Name B7 B5 Bl B3 B2 EL BO ADC RES BDh A/D转换宣占卑 寄存器高8位1 ADC EZS9 ABC RESS ADC

25、ADC ELESti ADC RES5 ADC SZS4 ADC RZS3 ADC KES2 ADC_RESL BEli A/D转换黠果1 寻Tf器低2位 - - - - - - ADCJtESl ADCEESO AUXRl A?H 1 Auxiliary ref loiter 1 ADRJ = t)| 表3.8当ADRJ = 0时,10位A/D转换结果的高8位存放在ADC_RE中,低2 位存放在ADC_RES的低2位中。 Mrvinonif Aad B7 B6 Q5 B4 D.t B2 HI im ADC-RE 场 BDh* A巾辕换纳果 奇冇器高2位 卜 - - - - - ADC_E9

26、ADC RS3 ADC_RESL BEhl dS挽姑果 1寄存器低 EADC = 0,屏蔽A/D中断。 IPH:中断优先级控制寄存器高(不可位寻址) SFR name Address bit B7 Bfi B? R4 B3 B2 Bl Bfl I?H B7H name P PCAH PLVDH PADCH PSH PTIH P XIH PTOH PXOH 表3.11中断优先级控制寄存器高 IP:中断优先级控制寄存器低(可以位寻址) SFR Address bh B7 B6 B5 B彳 B3 B2 Bl BO TP BSH nqnie PPCA PLVD PAHC PS PTl PXl PTO

27、PXO 表3.12中断优先级控制寄存器低 P ADCH, PADC:ADC换优先级控制位。 5、ADC初始化程序 /* 初始化ADC */ void In itADC(void) P1ASF = 0 x58; / 设置 P1 口为 AD口 0100 0111 0101 1000 ADC_RES = 0; / 清除结果寄存器 ADC_CONTR = ADC _PO WER | ADC_S PEEDLL; Delay(50); /ADC 上电并延时 6、ADC卖子函数 /* 发送ADC结果至U PC */ void ShowResult(BYTE ch) float value; cha nge_

28、lo ng_data_to_array(disadch,2,ch); value=GetADCResult(ch); value=value/255*4.8; cha nge_data_to_array(disadcval,5,1,value); /* 读取ADCS果 */ BYTE GetADCResult(BYTE ch) ADC_CONTR = ADC _P0 WER | ADC_S PEEDLL | ch | ADC_START; _nop_(); / 等待4个NOP _nop_(); _nop_(); _nop_(); _nop_(); / 等待4个NOP _nop_(); _nop

29、_(); _nop_(); _nop_(); / 等待4个NOP _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR / 等待 ADC转换完成 ADC_CONTR /Close ADC return ADC_RES; / 返回ADC吉果 3.5系统电路设计、说明 3.5.1系统电路总原理图 CON; IDS U1 GlD P:6 P: r piornn F: p:: Pl J P4 Pl J 1: iT 1: It cc; Ht iOP OC2 T Ml CRTyTAL li RST K CXD: PSJIT匹 P 汀(INTll PSJ(TD0 F;诫

30、: :hTTAl XTALI GND JK52 jO? GND XC ?WJdN5i PftlADj roJUDJ) Pftfi F5EN FZ-SfAlJ; P上畑打 P ;4CMIZ FJJfAin pgs 肥.M阳) +jV g氏 37 PJ; 苑 PC, 33 PX4 j.6 _ Ti E ?护 K 话 26 图3.5系统原理图 VET J LCD ISO; 15 Te LCDIW: 3.5.2晶振电路简介 时钟信号的振荡器提供正常工作稳定的供应链接管理。 晶振也被称为晶振谐 振器,是一种机电设备,是需要精密磨削的石英晶体镀上电极焊上导线制成。这 种晶体有一个很关键的特性-压电效应,给

31、它导电,产生机械振荡,反之,给 它机械力,便会产生电。它的形状,材质,切割方向影响到振荡的频率。根据 石英晶体等效为一个谐振回路,它的机电效应是机-电-机-电.的不断转换,由 电感和电容组成的谐振回路是电场-磁场的不断转换。 AT89S52的反相放大器,振荡器,时钟信号可以由单片机产生周期性功能是 机械指令驱动芯片实现。这个放大器与石英晶体或陶瓷谐振器一起可构成一个自 激振荡器,外接石英晶体或陶瓷谐振器以及电容 C8和C10组成并联谐振电路,接 在放大器的反馈回路中。一个外部电容 C8和C10的值虽然没有严格的要求,但 会影响许多电容振荡器的频率稳定度、 振荡器、起振圈内部振荡的接法的快速及 时性和温度稳定性。 AT89S52芯片里面有一个反相高

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论