单片机课设:数字电压表设计_第1页
单片机课设:数字电压表设计_第2页
单片机课设:数字电压表设计_第3页
单片机课设:数字电压表设计_第4页
单片机课设:数字电压表设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录1 摘要22设计方案32.1设计要求32.2设计思路32.3设计方案 .33硬件电路设计43.1控制器单片机43.2电源设计53.3 LED显示电路63.4键盘电路设计.83.5晶振电路83.6复位电路93.7报警电路104系统软件程序的设计114.1主流序程图114.2显示电路流程图124.3报警电路流程图125总结136参考文献14附录1 源程序15附录2 电气原理图251 摘要随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(Dig

2、ital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。本文是以数字电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,采用STC12C5A32AD对输入的模拟信号进行转换和转换的结果进行运算处理9,最后驱动输出装置LED显示数字电压信号。关键词

3、: 电压测量, STC12C5A32AD , AD转换, 模拟信号, HD72792设计方案2.1设计要求1.对2路05v的模拟电压进行循环采集,每路连续采集三次,取平均值,采集的数存入内存并显示。2测量的范围为05v,小数点后保留两位,误差0.02v以内。3LCD液晶显示或用4位LED数码管进行循环显示,其中最高位显示通道提示符AB,低3位显示实际电压值,每秒切换一个通道轮流显示。4.键盘控制,可查询指定通道的电压值 。 5.将1.25v和2.5v作为两路输入的报警值,当AD转换结果超过报警值时,指示灯闪烁和蜂鸣器发声,以示警告。2.2设计思路采用内置AD转换器单片机(如STC12C5A32

4、AD, C8051F310)为核心控制器件。采用LED专用显示驱动芯片(如:MAX7219,HD7279A,CH451等)实现LED的驱动。2.3设计方案硬件电路设计由6个部分组成:内置A/D转换的STC12C5A32AD单片机系统,LED显示系统、晶振电路、复位电路,键盘电路以及测量电压输入电路10。硬件电路设计框图如图1所示。 晶振电路 复位电路测量电压输入显示系统STC12C5A32AD键盘电路报警电路图1 数字电压表系统硬件设计框图3硬件电路设计3.1控制器单片机STC12C5A32AD单片机是单时钟/ 机器周期(1T)的单片机,是高速/ 低功耗/超强抗干扰的新一代8051 单片机,指

5、令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810 专用复位电路,2路PWM,8路高速10位A/D转换(240K/S)。图2 STC12C5A32AD单片机引脚图STC12C5A32AD引脚及功能1VCC:电源52. Gnd:地3.P0 口:P0口是一个具有内部上拉电阻的8位双向I/O 口。P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。4. P1 口:P1口是一个具有内部上拉电阻的8位双向I/O 口,同时也是模拟量输入口,可以对8路模拟量进行模数转换。5. P2 口:P2口是一个具有内部上拉电阻的8位双向I/O 口。

6、在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。6. P3 口:P3口是一个具有内部上拉电阻的8位双向I/O 口。P3口亦作为特殊功能(第二功能)使用。表1 STC12C5A32AD P3口第二功能定义引脚第二功能说明P3.0RXD串行输入P3.1TXD串行输出P3.2INT0外部中断0P3.3INT1外部中断1P3.4T0/CLKOUT0定时器0外部计数输入/定时器0时钟频率输出P3.5T1/CLKOUT0定时器1外部计数输入/定时器1时钟频率输出P3.6WR外部数据存储器写选通输出P3.7RD外部数据存储器读选通输出7. RST

7、: 复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。8ALE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。9. PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。10. NA/P4.4:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,NA必须接GND。为了执行内部程序指令,NA应该接VCC。11. XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。12. XTAL2:振荡器反相放大器的输出端。3.2电源设计该电路通过整流桥整流,各级的电容滤波(滤去交流高频信号),再通过采用CW7

8、805三端稳压片即可满足要求,该电源提供的电能可靠,可以满足实验要求。图3 +5V电源3.3 LED显示电路采用LED专用显示驱动芯片HD7279实现LED的驱动4。图4 HD7279引脚图表2 HD7279引脚及功能引脚名称说明1,2VDD正电源(+5V)3,5NC悬空4VSS地6CS片选信号,低电平有效7CLK同步时钟输入端8DATA串行数据写入/读出端9KEY按键信号输出端10-16SG-SALED的g-a段驱动输出17DP小数点输出端18-25DIG0-DIG7LED位驱动输出端26CLKO振荡输出端27RCRC振荡器连接端28RESET复位端,低电平有效图5 LED显示电路3.4键盘

9、电路设计由于采用两路进行采集,并且要进行查看指定通道的电压值。所以采用独立式键盘。用两个按键进行查看其电压值,一键一线,各键相互独立,每个键各连一条I/O口线,通过检测输入线的电平状态就可以判断那个键被按下8。图6 键盘电路3.5晶振电路单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个12MHZ晶振和 2个30PF电容即可。晶振电路的两端分别接于单片机的XTAL1、XTAL

10、2两个端口11。图7 晶振电路3.6复位电路单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。图8 复位电路按键手动电平复位是通过RST端经电阻与电源VCC接通来实现的,当按键没有按下时,C3起到隔断直流电源的作用,使RST处于低电平状态。当S3按下,将C3短路,使电路导通,RST端为高电平,当时间长到单片机的两个机器周期后,单片机就会复位。复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试

11、,复位电路采用按键复位方式。3.7报警电路利用三极管进行放大驱动LED或蜂鸣器进行工作,将1.25V和2.5V作为两路输入的报警值,当结果超过报警值时,指示灯闪烁和蜂鸣器发声,以示警告。在数字电路中,是以脉冲信号驱动蜂鸣器以产生声音,若要以C51产生声音,可利用程序产生频率,送到IO口,再从该点连接到蜂鸣器的驱动电路,即可驱动蜂鸣器,这里采用的是以PNP晶体管放大电路。数字微处理电路输出高电位时,由Ic内部流出的电流很小。虽然我们可以利用高增益晶体管,在连接上拉电阻,以提供较大的驱动电流,以驱动蜂鸣器或其他负载。而数字微处理电路输出低电位时,Ic可吸入较大电路,连接PNP晶体管构成的简单放大电

12、路,即可提供足够的驱动能力。图9 报警电路4.系统软件设计4.1主流序程图 1对两路05V模拟电压进行循环采集,每路采集3次,取平均值,采集的数存入内存并显示。对其扫描的过程进行了概括和分析。4.2显示电路流程图键盘控制,可查看制定通道的电压值。显示中,其中最高位显示通道提示符A-B,低三位显示实际的电压。4.3 报警电路流程图将1.25V和2.5V作为两路输入的报警值,当结果超过报警值时,指示灯闪烁和蜂鸣器发声,以示警告。5总结经过两周的努力终于设计完成。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。以前在学单片机课程时只是对其理论知识有了初步的理解

13、。通过这次设计,对它的工作原理有了更深的理解。本设计参考了教材上有关A/D转换,LED显示,键盘电路等部分,实验指导书上关于A/D转换,键盘电路部分。通过查询大量资料文献,对STC12C5A32AD工作方式有了初步了解。并通过网上查询,初步掌握PROTEL 99SE应用。在这两周的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高,而且在与老师和同学的交流过程中,互动学习,将知识融会贯通。更重要的是我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会

14、的挑战,只有不断的学习、实践,再学习、再实践。不管怎样,这些都是一种锻炼,一种知识的积完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。参考文献1 刘伟,赵俊逸,黄勇.一种基予C8051F单片机的SOC型数据采录器的设计与实现A.天津市计算机学会单片机分会编. 2003年全国单片机及嵌如入式系统学术年会论文集(下册)C .北京:北京航空航天大学出版社,2003 .790-794.2吴鹏,夏田Linux操作系

15、统实时化改造的分析J现代计算机,2006,(7):6971.3赵春红等基于PC的开放式数控系统研究J机械科学与技术,2005,(9):11081112.4 徐爱钧.智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004:145-178.5应明仁,壬化成单片机原理及应用M广州:华南理工大学出版 ,2005.(7): 200-240. 6 高峰,单片微型计算机与接口技术M.北京:科学出版社,2003:202-232.7李齐雄,郑颜雄,蔡盂吕11012IEK Iri'48系列单片机原理及应用实例M.北京:北京航空航天大学出版社,2005,(5):309-333.8解

16、永勃电压量程自动转换电路J电子世界,2003 (7):52539程宇红基于EPROM的高精度数字电压表设计J自动化与仪器仪表,2001(5):525410苗红霞单片机实现数字电压表的软硬件设计J河海大学常州分校学报,2002(3):7479.11 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M.北京:清华大学出版社,2002:67-88.附录1 源程序*系统初始化* ORG 0000H AJMP START ORG 0003H AJMP SAMPLE ORG 0013H AJMP EOCSTART: MOV TMOD,#01H MOV TH0, #3CH MOV TL0, #0B0H MO

17、V 30H, #00H SETB IT0 SETR IT1 SETB EX0 SETB ET0 SETB EA SETB TR0 HERE: AJMP HERE*工作内存定义*BITST DATA 20HTIMEISOK BIT BITST.1TEMPONEOK BIT BITST.2TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H*常数定义*TMEL EQU 0E0H ;20ms,定时器0时间常数TMEH EQU 0B1HTMEPHEAD EQU 36H*中断向量区*ORG 000HLJMP START ORG 00BH L

18、JMP T0IT*定时器0中断服务程序*T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R7,#32H,T0ITI MOV R7,#00H SETB TIMEISOKTOIT1: POP PSW RETI* 主程序*MAIN: LCALL CLK ;初始化MOV R4,#8MOV LED_3,R4START1:MOV DPTR,#7FF0H ;指向0通道 MOVX DPTR,A ;读取转换数值 JB P3.4,AAA1 LCALL DELAY ;调用延时程序 JB P3.4,AAA1 ;判断是否按下按钮

19、并开始转换数值 SETB P3.2 ;P3.2给高电平锁存地址 INC R4 CJNE R4,#9,AAA2 MOV R4,#1 AAA2: MOV LED_3,R4 ;显示所选通道 INC R5 INC DPTR ;指向下一通道 MOV B,R5 ;显示通道并重新锁存地址 MOV P0,B CLR P3.2 JNB P3.4,$ AAA1: CLR P2.4 SETB P2.4 CLR P2.4 JNB P2.5,$ SETB P2.6 MOVX A,DPTR ;读取转换数据开始转化为工程量 MOV ADC,A CLR P2.6 LCALL CONV ;调用转换子程序 LCALL DISP

20、;调用显示子程序 LCALL DELAY ;调用延时程序 LJMP START1 *子程序区*数据采样子程序* SAMPLE: SETB 00H MOV DPTR, #0F00H MOV R6, #08H MOV R7, #05H MOV R0, #40H TRANS: MOVX DPTR,A WAIT: JB 00H,WAIT SETB 00H INC DPTR INC R0 DINZ R6,#TRAN_S MOV DPTR,#0F00H INC R0 DJNZ R7,TRAN_S RETI* 数模转换子程序 *CONV: MOV A,ADC ;数模转换子程序 MOV B,#51 DIV A

21、B MOV LED_2,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP1 ADD A,#5LOOP1:MOV LED_1,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5LOOP2:MOV LED_0,A RETI* 处理电压BCD码子程序*CONVTEAMP: MOV A,TEMPHANL A,#80HJZ TEMPC1CLR CMOV A,

22、TEMPLCPL AADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AMOV TEMPHC,#0BHSJMP TEMPCHTEMPC1: MOV TEMPHC,#0AHTEMPC11: MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FHMOV DPTR,#TEMPDOTTABMOVC A,A+DPTRMOV TEMPLC,AMOV A,TEMPLANL A,#0F0HSWAP AMOV TEMPL,AMOV A,TEMPHANL A,#0FHSWAP AORL A,TEMPL

23、LCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHCMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP AORL A,TEMPLCMOV TEMPLC,AMOV A,R7JZ TEMPC12ANL A,#0FHSWAP AMOV R7,AMOV A,TEMPHCANL A,#0FHORL A,R7MOV TEMPHC,ATEMPC12: RET*小数部分码表*TEMPDOTTAB: DB 00H, 01H, 01H, 02H, 03H, 03H, 04H,04H,05H,06HDB 06H,07H,08H,09H,09H*显示区BCD码电压值刷新子程序*DISPBCD: MOV A,TEMPLCANL A,#0FHMOV 70H,AMOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,AMOV A,TEMPHCANL

温馨提示

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

评论

0/150

提交评论