- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计报告
设计题目: 数字电压表
专 业
班 级
学 号
学生姓名
指导教师
设计时间
教师评分
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 总体设计方案图
本电压表的所有的软件、参数均存放在89S52的Flash ROM和内部RAM中,减少了芯片的数量整机的电流。键盘采用动态扫描方式。
图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[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}; //gong yin
void delayms(uint xms)
{
uint i,j;
for(i=xms;i0;i--)
for(j=110;j0;j--);
}
void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
P0=0xff;
data0=0;
P0=table[qian];
delayms(5);
data0=1;
data1=0;
P0=table[bai];
delayms(5);
data1=1;
data2=0;
P0=table[shi];
delayms(5);
data2=1;
data3=0;
P0=table[ge];
delayms(5);
data3=1;
}
void init()
{
TMOD=0x20;
TH0=(65536-2)/256;
TL0=(65536-2)%256;
EA=1;
ET0=1;
TR0=1;
}
void A
文档评论(0)