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

下载本文档

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

文档简介

word文档可自由复制编辑word文档可自由复制编辑课程设计课程名称单片机原理与应用课题名称简易数字电压表等级:等级:班级学号姓名指导教师1课程设计任务书课程名称:单片机原理与应用题目:简易数字电压表专业班级:电气工程及其自动化学生姓名:学号:指导老师:审批:任务书下达日期2014年5月12日设计完成日期2014年5月23日设设计内容与设计要求设计内容:1)简易数字电压表可以测量0~51V的输入电压值,经过A/D转换,经过单片机处理后,在LED数码管上显示。2)如测试端输入4.0V,则应显示4.0,测试精度为0.2V。设计要求:1)系统设计方案正确、合理;2)进行系统的硬件设计;3)完成必要元器件选择;4)完成应用程序设计与仿真调试;*5)进行应用程序的调试;主主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件;3、Proteus软件4、实验室调试说明书格式1.封面2.课程设计任务书3.目录4.系统总体方案设计5.系统硬件设计6.软件设计(包括流程图)7.系统的安装调试说明8、总结9、参考文献10、附录11、课程设计成绩评分表。进进度安排第一周星期一、上午:布置课题任务,课题介绍及讲课。下午:借阅有关资料,总体方案讨论。星期二、确定总体方案,学习与设计相关内容。星期三、各部分方案设计。星期四、各部分设计。星期五、设计及上机调试。第二周星期一:设计及上机调试。星期二:调试,中期检查。星期三:调试、写说明书。星期四--星期五上午:写说明书、完成电子版并打印成稿。星期五下午:答辩。参考文献参考文献1、《单片机原理与应用》王迎旭等编机械工业出版社2、《51系列单片机设计实例》楼然苗等编北京航空航天大学出版社3、《计算机硬件技术基础实验教程》黄勤等编重庆大学出版社4、《微型计算机接口技术及应用》刘乐善主编华中科技大学出版社5、《单片微型计算机原理及接口技术》陈光东等编华中科技大学出版社word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑目录目录word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑2总体方案设计2.1设计要求⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。⑷尽量使用较少的元器件。2.2设计思路⑴根据设计要求,选择AT89C51单片机为核心控制器件。⑵A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。⑶电压显示采用4位一体的LED数码管。⑷LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。⑸独立键盘:按键传送输入信息;由于本次设计有4个按键故直接使用4个I/O口来对应4个按键。2.3设计方案硬件电路设计由7个部分组成;A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路、按键控制电路以及测量电压输入电路。硬件电路设计框图如图2.1所示。如图2.13硬件电路设计3.1芯片的选择本次课程设计选用AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。外形及引脚排列如图3.1所示。XTAL2XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51图3.1AT89C51芯片模型3.1.2主要功能特性4K字节可编程闪烁存储器。32个双向I/O口;128×8位内部RAM。2个16位可编程定时/计数器中断,时钟频率0-24MHz。可编程串行通道。5个中断源。2个读写中断口线。低功耗的闲置和掉电模式。片内振荡器和时钟电路。3.2时钟电路设计单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可,如图3.1所示。图3.23.3复位电路设计单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可,如图3.2所示。图3.33.4按键电路设计独立键盘:按键传送输入信息;由于本次设计有4个按键故直接使用4个I/O口来对应4个按键,如图3.3所示图3.43.5显示电路设计在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。LED数码管模型如图3-6所示。AABCDEFGDPQ1Q2Q3Q0图3.5.1图3.5.2图3.5.23.5.1LED数码管的接口简介LED的段码端口A~G分别接至AT89C51的P1.0~P1.7口,位选端1~4分别接至P3.5、P3.4、P3.1、P3.0,如图3-7所示。3.6A/D转换模块设计ADC0808采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。片内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。ADC0809完成一次转换需100μs左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。通过适当的外接电路,ADC0808可对0~5V的模拟信号进行转换。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。其原理框图如图3.4.1所示。图3.6.13.6.2ADC0808的外部引脚特征ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3.6.2所示。图3.6.2下面说明各个引脚功能:IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。地址输入控制(4条):ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。ADDA,ADDB,ADDC:3 位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表3.4.3所示:ADC0808通道选择表表3.6.3START:START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。EOC:EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。D1-D8:数字量输出端,D1为高位。OE:OE为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。Vcc、GND:Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起.CLK:时钟输入端。3.7总体电路图图3.74软件设计多路数字电压表系统软件程序主要有主程序、A/D转换子程序和中断显示程序组成。4.1主程序主程序包含初始化部分、调用A/D转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路、循环按键控制。流程图如图4.1所示。开始显示子程序A/D转换子程序初始化图4.1主程序流程图4.2A/D转换子程序A/D转换子程序用于对ADC0808的4路输入模拟电压进行A/D转换,并将转换的数值存入4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,如图4.2所示。判断是否为0进行十六进制调整开始A/D转换调用延时存转换后的十六进制数数据指针加一入栈保护4路转换次数减一显示电压值NY图4.2转换子程序流程图4.3中断显示程序当系统设置好后,一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。LED数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程序和单路显示程序,多路循环显示程序把4个存储单元的数值依次取出送到4个数码管上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示时需经过转换变成十进制BCD码,放于4个数码管显示缓冲区中。单路或多路循环显示通过标志位00H控制。数字量送P1口取段码地址P3.1=1?调用循环显示程序调用单路显示程序显示的是第4路重新调用显示程序NYNY图4-3中断显示程序流程图5电路仿真图图6.1为4路通道用模拟电压表测得的理论值。图6.1模拟电压表测量结果图6.2为进行模拟仿真时的电路图 图6.2仿真时的电路图word文档可自由复制编辑word文档可自由复制编辑word文档可自由复制编辑6总结经过两周的努力终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。由于仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成功。本设计参考了教材上第十一章89C51与ADC0809转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时四个数码管根本不显示,后来发现用的是共阳极的数码管,而设计是共阴极的,更换后数码管终于显示,但问题又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示,经过仔细地检查电路和修改程序,采用中断的方法,产生一次外部中断0,程序转移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一,如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功。在此再次向带领我们这次课程设计的李晓秀老师说声:谢谢!参考文献蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间:2005年1月第2次印刷8051实验指导书电子电气综合实训系统.出版社:北京精仪达盛科技有限公司徐爱钧.智能化测量控制仪表原理与设计(第二版)[M].北京:北京航空航天大学出版社,2004吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2002[5]张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].电子技术应用.1993.第一期高峰.单片微型计算机与接口技术[M].北京科学出版社,2003.刘伟,赵俊逸,黄勇.一种基予C8051F单片机的SOC型数据采录器的设计与实现[8]《新型AT89S52系列单片机及其应用》孙育才北京:清华大学出版社2005-5[9]《MCS-51系列单片机系统及其应用》蔡美琴高等教育出版[10]《过程控制与仪表》陈乐中国计量学院出版社,2007-3附录1源程序ORG0000HSJMPMAINORG0003HLJMPPINT0MAIN:MOV50H,#19HMOV54H,#78HMOVDPTR,#7FF8HMOV51H,DPHMOV52H,DPLMOVR0,#04HMOV53H,#00HMOVR7,#00HSETBEASETBIT0SETBEX0L4:MOVR1,#00H;R1存放十六进制转换成十进制后的低两位MOVR2,#00H;R2存放十六进制转换成十进制后的高两位MOVR3,#0FFH;循环显示十进制数MOVR4,#00H;存放A/D转换后的十六进制数MOVR5,#00H;存放0.5相加后的数MOVX@DPTR,A ;开始A/D转换LCALLDELAY;调用延时大于A/D转换的时间MOVXA,@DPTR ;取A/D转换后的十六进制数INCDPTR;A/D转换芯片的地址加一PUSHDPL;压入堆栈PUSHDPHDECR0;4路转换的次数减一JZSB2;判断是否是0VMOVR4,AL1:MOVA,R1;进行十六进制到十进制的调整ADDA,50H;每次加19DAAMOVR1,AJCL2;如果溢出则跳转到L2MOVA,R5;进行0.5V相加ADDA,54HDAAMOVR5,AJCL3;如果溢出则跳转到L3SB1:DJNZR4,L1;判断十六进制数是否转换完成,如果没有则循环MOVA,R5SWAPAANLA,#0FHMOVB,R1ADDA,BDAAMOVR1,ASB2:LCALLDISPLCALLDJWDJNZR3,SB2POPDPHPOPDPLMOVA,53HINCAMOV53H,ACJNER0,#00H,L4LJMPMAINL2:CLRCMOVA,R2ADDA,#01HDAAMOVR2,ALJMPSB1L3:CLRC;0.5V相加溢出后进位MOVA,R1ADDA,#01HDAAMOVR1,ALJMPSB1DISP:MOVA,R1;显示电压子程序SWAPAANLA,#0FHMOVDPTR,#TAB1MOVCA,@A+DPTRCLRP3.0MOVP1,ALCALLDELAYSETBP3.0MOVA,R2ANLA,#0FHMOVDPTR,#TAB1MOVCA,@A+DPTRCLRP3.1MOVP1,ALCALLDELAYSETBP3.1MOVA,R2SWAPAANLA,#0FHMOVDPTR,#TAB2MOVCA,@A+DPTRCLRP3.4MOVP1,ALCALLDELAYSETBP3.4RETDJW:MOVA,53H;显示第几路转换电压子程序MOVDPTR,#TAB1MOVCA,@A+DPTRCLRP3.5MOVP1,ALCALLDELAYSETBP3.5RETINTV:PUSHACC;只显示其中一路中断PUSH53HMOV53H,#00HCX2:MOVR1,#00HMOVR2,#00HMOVR3,#0FFHMOVR4,#00HMOVDPH,51HMOVDPL,52HMOVX@DPTR,ALCALLDELAYMOVXA,@DPTRMOVR4,AJZSB22L11:MOVA,R1ADDA,50HDAAMOVR1,AJCL22MOVA,R5;进行0.5V相加ADDA,54HDAAMOVR5,AJCL33SB11:DJNZR4,L11MOVA,R5SWAPAANLA,#0FHMOVB,R1ADDA,BDAAMOVR1,ASB22:LCALLDISPLCALLDJWJNBP3.3,EXITDJNZR3,SB22JNBP3.2,CX1LJMPCX2L22:CLRCMOVA,R2ADDA,#01HDAAMOVR2,ALJMPSB11L33:CLRCMOVA,R1ADDA,#01HDAAMOVR1,ALJMPSB11CX1:INCR7MOVA,53HINCAMOV

温馨提示

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

评论

0/150

提交评论