单片机课程设计报告
题目名称:简易数字电压表的设计
姓
名:冷庚明、梁嘉辉
班级学号:AP090417、AP0904619专业:电气工程及其自动化
指导教师:黄险峰副教授
2011年12月12日
f一、题目要求:
1、能够显示稳定的电压值2、以MCS51系列单片机为核心器件,组成一个简单的直流数字电压表。3、采用1路模拟量输入,能够测量05V之间的直流电压值。4、电压显示用4位一体的LED数码管显示,能够显示三位小数。5、尽量使用较少的元器件。
二、分工说明:三、硬件电路说明
图1简易数字电压表电路图该电路主要由三个模块组成:AD转换模块,数据处理模块及显示模块。AD转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外它还控制着ADC0808芯片工作。四、软件流程设计说明
2
f1、程序设计总方案根据模块的划分原则,将该程序划分初始化模块,AD转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图2所示。
开始
初始化
调用AD转换子程序
调用显示子程序
结束
图2数字式直流电压表主程序框图2、系统子程序设计
初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。AD转换子程序AD转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图2所示。
3
f开始
启动转换
AD转换结束?
输出转换结果
数值转换
显示
结束
图3AD转换流程图
显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时给模数转换器件提供时钟,通过软件延时程序实现5ms的延时来达到动态显示。五、调试过程出现的问题和解决的办法本次课程设计过程中主要出现了一下几方面的问题:问题一程序能编译成功但仿真时数码管总是没有显示;解决方案:改变程序r