




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称:单片机原理及应用 设计题目: 简易数字电压表设计 系 别: 专 业: 班 级: 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日摘 要本文介绍了一种基于单片机STC89C52的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量然后传送到数据处理模块。数据处理则由芯片AT89C52来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码并通过8255芯片送到数码管进行显示;此外,它还控制着ADC0809芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5V的4路模拟直流输入电压值,并通过共阳极7段数码管显示出来。 关键词:STC89C52;ADC0809;8255;电压表;单片机目 录设计要求11、前言12、方案选择与论证22.1方案一22.2方案二32.3方案对比与选择43 单元电路设计53.1单片机系统53.2时钟电路63.3电源电路63.4复位电路73.5A/D 转换电路73.6 显示电路设计83.7 总体电路设计104、程序设计与调试114.1 程序设计总方案114.2程序调试115、结果显示及误差分析125.1 结果显示125.2误差分析156、设计总结167、主要芯片资料177.1 STC89C52177.2ADC0809187.38255A198、参考文献209、致谢2110、附 录22简易数字电压表设计设计要求设计要求:1) 能用数码管显示电压值2) 可以测量05V范围内的4路输入电压值3) 其测量最小分辨率为0.02V4) 在4位LED数码管上轮流显示或者单路显示1、 前言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成运算部件、控制部件、数据存储器、程序存储器、定时器/计数器中断系统,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(Digtal Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本文重点介绍基于单片机的简易数字电压表。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力量。本设计是基于STC89C52单片机的一种电压测量电路,该电路采用ADC0809进行A/D转换电路,测量范围为直流 05V 的4路输入电压值,并在四位LED数码管上显示,测量最小分辨率为0.019V,测量误差约为正负0.02V。2、方案选择与论证2.1方案一A/D转换器采用ICL7107型三位半显示的芯片,输入信号,流经取样电路取样后送到ICL7107型三位半A/D转换器,只需要很少的简单外围元件,就可组成数字电流表模块,直接驱动三位半LED显示器显示,最后输入电流在显示部分显示。此方案的方框图如图2-2-1所示。待 测电 压转 换数 码 显 示小数点驱动电路模 拟电 压通 道数据 电压 通道图2-2-1 方案一系统方框图2.2方案二STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用STC公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2个数据指针,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。方案二的方框图如图2-2-1所示:数 据显 示模 块时钟电路电 源 电 路A/D转换模块电 压 采 集图 2-2-1系统方框图复 位 电路2.3方案对比与选择方案一: ICL7107做的LED数字表,能直接驱动共阳极的LED显示器,不须另加驱动硬件,缺点就是数字乱跳不稳定,特别最后一位。并且本人对此电路不是很熟悉,我们平时学的都是STC89C52,也有相应的单片机板子。方案二:采用单片机作为系统的控制单元,通过A/D转换将被测值转换为数字量送入单片机中,再由单片机来送显。此方案各类功能易于实现,成本低、功耗低,显示稳定。通过比较,我选择方案二。3 单元电路设计设计方案 硬件电路设计由7个部分组成; A/D转换电路,STC89C52单片机系统,数码管显示系统、时钟电路、电源电路,、复位电路以及测量电压输入电路。3.1单片机系统本次课程设计选择的单片机是STC89C52,之所以选择这块芯片,是因为该芯片的各项功能均符合本次课程设计的指标要求,并且该芯片有很多成熟的资料供我们学习,使用起来很方便,也有专门的下载程序平台,方便现场调试。本实验所用的单片机板子原理图如图3-1-1所示。图3-1-1 单片机系统总原理图3.2时钟电路单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可。 图 3-2-1时钟电路3.3电源电路如图3-3-1:通过数据线的USB接口与电源相接,给单片机供电。图3-3-1 电源电路3.4复位电路复位电路工作原理如图3-4-1所示,VCC上电时,C充电,在电阻上出现电压,使得单片机复位;几个毫秒后,C充满,电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下摁键放电,松手,C又充电,在电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。图3-4-1 复位电路3.5 A/D 转换电路原理图如图3-5-1所示,本设计用的ADC0809是8位A/D转换器,每采集一次一般需。本设计采用中断方式读入A/D转换结果,在中断方式下,A/D转换结束后会自动产生EOC信号,本设计中该信号与CPU的外部中断0相接。 图 3-5-1 A/D 转换原理图3.6 显示电路设计LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。在单片机中使用最多的是七段数码显示器。本次采用的是共阳极7端数码管,并且采用软件译码的方式,既简化了硬件电路又增加了程序编写的灵活性。其电路原理图如图3-6-1所示。 图 3-6-1显示电路原理图本课程设计利用8255可编程并行口芯片,实现数据从STC89C52输入,用8255PA和PB口做输出,其中用PA口控制数码管的位选信号,表3-6-1为PA口控制位选信号的编码;用PB口控制数码管的段选信号,表3-6-2为共阳极数码管的段码表。表3-6-1 数码管的位选码控制的数码管(从右边开始)位选码1DFH2EFH3F7H4FBH5FDH6FEH表3-6-2 共阳极数码管的段码表显示字符共阳极字段码0A0H1BBH262H32AH439H52CH624H7BAH820H928H3.7 总体电路设计此电路的工作原理是:+5V模拟电压信号通过变阻器分压后由ADC0809的通道进入(本设计用到IN0、IN1、IN2、IN3四个通道),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给STC89C52芯片的P0口,STC89C52和8255负责把接收到的数字量经过数据处理并产生正确的7段数码管的显示段码传送给四位LED,8255的PA口产生位选信号控制数码管的亮灭。此外,STC89C52还控制ADC0809的工作:START与单片机的P27相连;CLK与单片机的P20相连;EOC与单片机的P34相连;OE与单片机的P23相连;数据输出端与P0口相连。工作是先将START置为低电平,再置为高电平,产生一个上升沿从而清除内部寄存器;然后再将其置为低电平,产生下降沿,从而启动控制电路开始A/D 转换。转换结束后EOC输出一个宽为8个CLK周期的正脉冲,通过检测该信号把OE置为1,即允许数据输出,暂存转换结果后再关闭输出。把暂存的数据取出并把其换算为十进制数字,通过数码管显示出电压值。4路电压值轮流显示的原理:硬件上把ADC0809的ADDA与P10相连,ADC0809的ADDB与P11相连,所以会伴随有LED亮灭现象。其通道选择与对应的LED亮灭现象如表3-7-1所示,同时通过数码管显示通道“0”“1”“2”“3”。表3-7-1 通道选择与对应的LED亮灭现象地址码模拟通道号LED现象ADDA(与P10相连)ADDB(与P11相连)00IN0D4亮D5亮01IN1D4亮D5灭10IN2D4灭 D5亮11IN3D4灭 D5灭简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。4、程序设计与调试4.1 程序设计总方案本程序利用KEIL软件进行程序编写,根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图4-1-1所示。开始初始化调用A/D转换子程序调用显示子程序结束图4-1-1 数字式直流电压表主程序框图4.2 程序调试软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。编好程序后,在KEIL平台下对程序进行调试,本课程设计的程序是用C语言编写的,由于程序代码不多,因此调试也较为顺利,但还是遇到一些问题,因此也学到了不少东西,积累了一些调试经验。5、结果显示及误差分析5.1 结果显示(1)IN0口输入电压值为3.93V时,显示结果如图5-1-1所示,测量结果为3.95V,误差为0.02V。前一位为通道数,后三位为实际电压值。图5-1-1 图5-1-1(2)当IN1输入电压值为3.57V时,显示结果如图5-1-2所示。测量误差为0.01 V。 图5-1-2(3)当IN2口输入电压值为2.77V时,显示结果如图5-1-3。测量误差为0.00V。图5-1-3 图5-1-3(4)当IN3输入电压值为1.50V时,显示结果如图5-1-4所示。测量误差为0.01 V。图5-1-45.2 误差分析通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表5.2.1所示:表5.2.1 简易数字电压表与“标准”数字电压表对比测试表标准电压值/V简易电压表测量值/V绝对误差/V0.000.000.000.140.120.020.250.230.020.480.460.021.000.990.012.001.990.012.502.480.023.503.490.014.003.990.014.504.480.02由于单片机STC89C52为8位处理器,当输入电压为5.00V时,ADC0804输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏小0-0.01V,这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用数据线的USB接口接上电源作为测量电压,且数据线上有电压损耗,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。6、设计总结 通过本学期对单片机原理及应用这门课程的学习完成这次课程设计让我们对此门课程有了更深的认识,为期两个星期的课程设计不仅巩固了我们的理论知识而且也培养了我们的动手能力,同时也让我们认识到理论与实践的差距,让我们受益匪浅。首先在课题的设计过程中,不仅要运用到课堂学到的知识,还需要查阅不少单片机相关的资料,对我们学习用的单片机板子的原理图进行详细地了解。经过一段时间的努力,基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。在这过程中,我对电路设计,单片机的使用等都有了进一步地认识。通过这次设计我加深了对Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。通过本次设计,提高了自己的能力,无论是在硬件连接方面还是在软件编程方面。本次设计采用了STC89C52单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0809,以前在学单片机课程时只是对其理论知识有了初步的理解,做实验时也很少自己去编写程序,只是在原有的程序下了解然后做一些小的修改完成老师要求的扩展实验。通过这次设计,对编程有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。同时在课程设计的自主设计、学习和研究过程中,通过写课程设计的总结报告,初步训练我们的书面表达能力。组织逻辑能力,这些技能应用性强,对我们的将来就业和进一步发展帮助较大。同时也加强了我们对课本知识的理解,使我们做到理论和与实际的联系,收获很大。并且我们也深深地体会到自己所学知识的不足,激发了我们的自学能力和应对挑战的能力。为今后学习打下了良好的基础,培养了我们严谨务实,戒骄戒躁的作风,为我们的未来做了很好的铺垫。7、主要芯片资料7.1 STC89C52其引脚图如图7-1-1所示:图7-1-1 MCS-51引脚图部分引脚功能说明:Vcc(40脚):接+5V电源正极;Vss(20脚):接+5V电源地;XTAL1(19脚):接外部晶体的一个引脚;XTAL2(18脚):接外部晶体的另一端,在单片机内部接至反相放大器的输出端。RST/VPD(9脚):当振荡器运行时,在此引脚加上两个周期以上的高电平将使单片机复位(RST);P0口(P0.0P0.7):为双向8位三态I /O口,当作为I /O口使用时,连接外部I /O设备由于输出的驱动电路工作于开漏状态,因此需要外接上拉电阻。P0口还是地址总线低8位及数据总线分时复用口,可驱动8个TTL负载;图7-1-1 MCS-51引脚图P1口(P1.0P1.7):为8位准双向I /O口,它的每一位都可以分别定义为输入线或输出线,可驱动4个TTL负载;P2口(P2.0P2.7):为8位准双向I /O口,当作为I /O口使用时,可直接连接外部I /O设备。它是与地址总线高8位复用,可驱动4个TTL负载;P3口(P3.0P3.7):为8位准双向I /O口,是双功能复用口,可驱动4个TTL负载。7.2 ADC0809ADC0809是一种8路模拟量输入、8位逐次逼近法 A/D,转换时间在典型时钟频率下约为100 微秒,适用于多路数据采集。ADC0809的引脚图如图7-2-1所示:图7-2-1 ADC0809引脚图ADC0809的引脚功率如下:IN0IN7:8路模拟量输入线;2-12-8 :8位三态数据输入线,常用D7D0表示;A、B、C:模拟通道选择输入线;ALE:通道锁存控制信号输入线,ALE电平正跳变时可以锁存A、B、C上的地址信息,经译码后控制IN0IN7中哪一路模拟电压送入比较器;CLOCK:转换时钟输入线,CLOCK的频率范围为101200kHz,一般取640 kHz(此时转换速度为100微秒);START:启动转换信号控制信号输入线,该信号的上升沿清除内部寄存器,下降沿启动控制电路开始A/D转换;EOC:转换结束信号输出线,转换结束后EOC输出一个宽为8个CLK周期的正脉冲; OE:输出允许控制信号输出线,OE为高电平时把转换结果送数据线2-12-8,OE为低电平时2-12-8为浮空态;Vcc:主电源+5V;GND:数字地;VREF+:参考电压输入线,VREF+Vcc;VREF-:参考电压输入线,VREF+GND,应保证VREF+ VREF-= Vcc。7.3 8255A8255A是Intel公司生产的可编程并行接口芯片,它具有3个8位的并行I /O口,分别称为 PA、PB、PC口,其中PC口又分为高四位和低四位口,它们都可以通过软件编程来改变其I /O口的输入输出工作方式。8255A在单片机应用系统中被广泛用作可编程外部I /O扩展接口。8255A的引脚图及其内部结构图如图7-3-1所示:图7-3-1 8255A的引脚图及其内部结构图8、参考文献1 杨恢先,黄辉先,等.单片机原理及应用M. 湘潭:湘潭大学出版社,2013.1. 2 于殿泓,王新年.单片机原理与程序设计实验教程M.西安:西安电子科技大学出版社,2007.5.3 周兴华.手把手教你学单片机C程序设计 M.北京:北京航空航天大学出版社,2007.4 马忠梅,等.单片机的C语言应用程序设计(第4版)M. 北京:北京航空航天大学出版社,2007.5李光飞,楼然苗,胡佳文,等.单片机课程设计实例指导M. 北京:北京航空航天大学出版社,2004.6 李光飞,李良儿,楼然苗,等.单片机C程序设计实例指导M. 北京:北京航空航天大学出版社,2005. 9、致谢 此次的课程设计能顺利完成,首先要感谢学院提供我们这个宝贵的平台,让我们有这个机会去锻炼自己,发展自己。还要感谢老师们和学长的细心指导,是你们的指导使我们一步一步走向成功。课程设计中到充满了欢笑和泪水,我们为了一小块的成功而高兴,为了一时的困难而沮丧,但是整个过程让我们收获了不少,动手和动脑能力得到了加强,学到了许多书本上学不到的知识。总之,我们在课程设计中学到了许多,真是一言难尽。在这里我们谢谢老师和同学们的帮助,真诚地谢谢大家!10、附 录附录 C语言源程序单路显示:#include#include #include #define A8255_PA XBYTE0xD1FF /*PA口地址*/#define A8255_PB XBYTE0xD2FF /*PB口地址*/#define A8255_CON XBYTE0xD7FF /*控制字地址*/sbit start=P27;sbit oe=P23;sbit eoc=P34;sbit clock=P20;code unsigned char dispdata10= 0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/0123456789 code unsigned char dispdatad10= 0x80,0x9B,0x42,0x0A,0x19,0x0C,0x04,0x9A,0x00,0x08;/ 带小数点的数字显示code unsigned char wei3=0xDF,0xEF,0xF7,;/ 右边第一个数码管,第二个数码unsigned char getdata,num3,count=20;void init() TMOD=0x01; TH0=0x3C;/50ms TL0=0xB0; TR0=1; EA=1; ET0=1; A8255_CON=0x80; A8255_PB=0xFF; A8255_PA=0xFF;void delay(int x) int y; for(;x0;x-) for(y=100;y0;y-);void display() unsigned char i; for(i=0;i3;i+) A8255_PA=weii; if(i=2)A8255_PB=dispdatadnumi; else A8255_PB=dispdatanumi; delay(5); void xch() float temp; unsigned int buf=0; temp =(float)getdata ; buf =(unsigned int)temp*19.53; num2 = buf/1000; /个位 num1 = buf/100%10; /小数点后第一位 num0 = buf/10%10; /小数点后第二位void main() init(); while(1) if(count=20) count=0; start=0; start=1; start=0; while(eoc=0) clock=clock ; oe=1; getdata=P0; delay(10); oe=0; xch(); display(); void int0() interrupt 1 using 0 TH0=0x3C; TL0=0xB0; count+; 多路显示:#include #include #include #define A8255_PA XBYTE0xD1FF /*PA口地址*/#define A8255_PB XBYTE0xD2FF /*PB口地址*/#define A8255_CON XBYTE0xD7FF /*控制字地址*/sbit start=P27;sbit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级英语单词表英译汉
- 河北省怀安县2025年上半年公开招聘村务工作者试题含答案分析
- 河北省馆陶县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年北京二手房买卖合同样本:房屋权属核实
- 2025版货物运输保险合同范本汇编
- 2025版大型购物中心设施维护保养服务合同范本
- 2025版医疗设备维修保养及备件供应合同范本
- 2025版环保产业投资入股合同样本
- 2025版知识产权风险评估与防控联盟协议
- 2025年新能源发电项目电线电缆供应合同范本
- DL∕T 1664-2016 电能计量装置现场检验规程
- DL∕T 1455-2015 电力系统控制类软件安全性及其测评技术要求
- 临床护理“三基”应知应会汇编
- 家委会给老师的感谢信
- OpenStack私有云基础架构与运维(openEuler版)全套教学课件
- 眼鼻美容造型艺术设计
- 安徽省旅游服务合同44629
- 起诉闲鱼起诉书
- 《电力行业企业培训师能力标准与评价规范》
- 《甲状腺危象》课件
- 食管胃底静脉曲张及其破裂出血演示课件
评论
0/150
提交评论