- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Proteus仿真单片机数字电压表定时器给时钟频率.
单片机课程设计报告
设计题目: 数字电压表
专 业
班 级
学 号
学生姓名
指导教师
设计时间
教师评分
2015年 6 月 26 日
目录
1.概述 1
1.1目的 1
1.2课程设计的组成部分 1
2. 数字电压表设计的内容 2
2.1软件仿真电路设计 2
2.1.1设计思路 2
2.1.2仿真电路图 2
2.1.3设计过程 3
3..2设计课题软件系统程序清单 3
3.总结 12
3.1课程设计进行过程及步骤 12
3.2所遇到的问题,你是怎样解决这些问题的 15
3.3体会收获及建议 15
3.4参考资料(书、论文、网络资料) 15
4.教师评语 16
5.成绩 16
1.概述
1.1目的
设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符作者信息, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在液晶显示器上。按退出键完成电压表的测量。
1.2课程设计的组成部分
本电压表主要由单片机、4*4行列式键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:
AT89C51
图1.1 总体设计方案图
本电压表的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。行列式键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字电压表效果,再利用液晶显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
2. 数字电压表设计的内容
2.1软件仿真电路设计
2.1.1设计思路
多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0809的CLK直接由外部电源提供为500kHz的方波。由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0?,我们的目的就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。
2.1.2仿真电路图
用Protues软件仿真设计的电路如图3-1所示。
图3-1 仿真电路
2.1.3设计过程
系统结构框图
系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过按键选择八路通道中的一路,将该路电压送入ADC0809相应通道,单片机软件设置ADC0809开始A/D转换,转换结束ADC0809的EOC端口产生高电平,同时将ADC0809的EO端口置为高电平,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
3..2设计课题软件系统程序清单
#includereg52.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sbit CLOCK=P1^4;
sbit START=P1^5;
sbit EOC=P1^6;
sbit OE=P1^7;
sbit data0=P1^0;
sbit data1=P1^1;
sbit data2=P1^2;
sbit data3=P1^3;
uint A1,A2,A3,A4,adval;
uint a;
uchar code table[
文档评论(0)