您好,欢迎访问三七文档
1成绩□优□良□中□及格□不及格课程设计课程名称单片机原理与应用课程设计课题名称数字电压表设计专业电子信息工程班级学号姓名指导老师2015年6月19日0电气信息学院课程设计任务书课题名称数字电压表设计姓名专业电子信息工程班级学号指导老师课程设计时间2015年6月8日-2015年6月19日一、任务及要求设计任务:本课题要求以MCS-51系列单片机为核心,设计一个数字电压表。(1)能对多路电压信号进行采样并使用LED或者液晶显示器进行显示;(2)具有轮流显示功能(3)*能够通过键盘对采样通道进行选择(4)*其它功能设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4)应用系统的硬件和软件的调试。二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考资料1、王迎旭等.单片机原理及及应用[M].2版.机械工业出版社,20122、胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,20103、戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,20101目录第1章总体方案设计........................................................11.1设计任务及要求..........................................................11.2总体设计及系统原理......................................................1第2章硬件电路设计.........................................................22.1A/D转换模块............................................................22.2时钟电路和复位电路......................................................22.4电压输入电路............................................................3第3章软件设计.............................................................53.1主程序设计..............................................................53.2A/D转换程序............................................................5第4章调试结果.............................................................7第5章总结................................................................8附录.......................................................................9附录A整机原理图..........................................................9附录B程序清单...........................................................101第1章总体方案设计1.1设计任务及要求设计任务:本课题要求以MCS-51系列单片机为核心,设计一个数字电压表。(1)能对多路电压信号进行采样并使用LED或者液晶显示器进行显示;(2)具有轮流显示功能(3)*能够通过键盘对采样通道进行选择(4)*其它功能设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成应用程序设计;(4)应用系统的硬件和软件的调试。1.2总体设计及系统原理总体设计电路有由下几部分组成:AT89C51单片机、A/D转换电路、LCD显示电路、时钟电路、复位电路、测量电压输入电路。先通过ADC0808芯片将外侧电压信号转换成数字信号,再通过由AT89C51组成的电路处理转换成相应的实际电压,再通过LCD显示电路显示出来。总体硬件设计框图如图1所示:图1复位电路时钟电路单片机LED显示电路A/D转换测量电压输入电路2第2章硬件电路设计2.1A/D转换模块A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。其引脚及连接电路如图2所示:STARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8IN3ADDAADDBADDCIN0ALEIN2IN1OEOUT121ADDB24ADDA25ADDC23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC0808+88.8Volts图22.2时钟电路和复位电路单片机89C51芯片中有一个内部时钟,其中引脚18为输入端,19为输出端引脚,这两个引脚连接一个12MHz的晶振,同时再连接两个瓷片电容,这样便提供片内相移的条件。复位信号高电平有效,并且其有效时间应该延续出现2个机器周期以上即可确保系统复位,复位操作完成后,RST端一直保持高电平,那么单片机就始终处于复位状态,当RST恢复低电平后单片机才能进入其他操作。时钟电路和复位电路分别如图3、4所示:C11nFC21nFX1CRYSTALC31uFC21nFC31uFR110kR210k3图3时钟电路图4复位电路2.3LCD1602显示电路本次设计中采用LCD1602作为显示器,模块的引脚及连接电路如图5所示:p00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07RSRWED714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L234567891RP1RESPACK-8图5显示电路其中D0~D7数据接收端口与单片机P0口相连。E端为使能端,当它由0变为1,LCD1602才能进行读写操作,它和单片机P2.5相连,并由其输出控制信号。RS、RW是1602的读写控制端,它们分别与单片机的P2.3、P2.4相对应,这样使用LCD显示时可由单片机的程序完成控制。VDD、VSS为液晶屏的电源端口,VEE端电压信号的大小可以改变液晶屏的亮度。由于P0口作为输出口时,它没有高电平的状态所以仿真电路时需要加上拉电阻RP1,这样P0口就有高电平状态。2.4电压输入电路输入电路如图6所示:IN1IN0R31KR49K64%RV01k+88.8Volts10%RV11k4图6当要测试的电压为0~5V时,选择IN0输入,在仿真中运用滑动变阻器分压的原理产生0-5V的电压来代表实际电压。而当超过5V时则选择IN1输入,由于实际的电压变允许适当的超量程,所以图中R3和R,4的电阻值分别为1k、9k,这样就把电压衰减为原来电压值的1/10。这样本电压表就有两个量程即0~5V和0V~10V。需要变换量程时,由中断开关相互切换。5第3章软件设计3.1主程序设计图7主程序主要负责各个模块的初始化工作:启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图7所示。3.2A/D转换程序6图8A/D转换程序的功能是采集数据,将模拟信号转换为数字信号。当系统设置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图8所示。7第4章调试结果1.当输入电压为2.10V时,显示结果如图9所示,实际电压为2.09V。图9输入电压为2.10V时,LCD显示结果2.当输入电压为8.61V时,显示结果如图10所示,实际电压为8.62V。图10输入电压为8.62V时,LCD显示结果调试结果:基本满足设计需求,误差在可接受范围内。8第5章总结时光荏苒,转眼间两个星期过去了,在这两个星期里,我们终于完成了数字电压表的课程设计。这两周,是精彩的两周,它让我收获颇丰,也让我感慨良多。首先我们要做的是焊电路板,在同组伙伴的配合下,我们花了一个下午终于焊好了电路板,并且能成功运行下载。第二天我们就开始查关于数字电压表的课程设计资料,网络、书本等等,能帮到我的一点也不能放过。设计中用到了Protues和keil两款软件,我们在嵌入式实验中用过,但不是很熟悉,所以找元器件时费了不少时间,特别是LED显示器。最后好不容易把线路接完,然后就开始仿真。课设中遇到的最难的就是C程序不知道怎样编写,经过多方查找资料,同时也向老师和同学们请教,才解决了问题。最终磕磕绊绊还是把课程设计完成了,可能它并不完美,但是也是自己亲手设计的,多少有点成就感。9附录附录A整机原理图p00p01p02p03p04p05p06p07p00p01p02p03p04p05p06p07STARTEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8IN3ADDAADDBADDCp00p01p02p03p04p05p06p07ADDAADDBADDCRSRWERSRWEALESTARTEOCOUT8OUT7OUT6OUT5OUT4OUT3OUT2OUT1IN0IN0ALEOEIN2IN1OED714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LXTAL218XTAL119ALE30EA31PSEN29RST9P0.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/A1427U1AT89C51C11nFC21nFX1CRYSTALC31uFR110kR210k234567891RP1RESPACK-8OUT121ADDB24ADDA25ADDC23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC0808R31KR49K64%RV01k+88.8Volts+88.8VoltsRV0(2)10%RV11kRV1(2)10附录B程序清单LCD1602.c#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitrs=P2^3;sbitrw=P2^4;sbiten=P2^5;ucharcodet1[]={DCVoltmeter:IN};ucharcodet2[]={(0~V):.V};voiddelay(uintms){uinti,j;for(i=ms;i0;i--)for(j
本文标题:数字电压表
链接地址:https://www.777doc.com/doc-4024977 .html