- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七 直流数字电压表设计
【实验目的】
掌握LED动态显示和A/D转换接口设计方法。
【实验原理】
实验电路原理图如下图所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5KHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制数形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。
【实验内容】
学习使用Proteus软件,掌握原理图绘图方法;
学习使用Keil C软件,掌握C51程序编写与调试方法;
理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。
【实验步骤】
在Proteus中绘制电路原理图,按照下表将元件添加到编辑环境中。
在Keil中编写C51程序,并使之编译通过。
在Proteus中加载程序,观察仿真结果。
【实验要求】
提交的实验报告中应包括电路原理图,含注释内容的源程序及实验结果分析。
【实验原理图】
【运行结果】
【实验程序及注释】
#include reg51.h
sbit _st = P2^5; //定义AD启动位,_st
sbit _eoc = P2^6; //定义AD结束位,_eoc
sbit _oe = P2^7; //定义AD使能位,_oe
sbit led0 = P2^3; //定义数码管最低位,led0
sbit led1 = P2^2; //定义数码管第二位,led1
sbit led2 = P2^1; //定义数码管第三位,led2
unsigned char ad_result=0; //定义AD转换结果变量,ad_result
unsigned char table[] = {0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义十进制显示字模数组,table[]
void delay(unsigned int time) //延时函数
{
unsigned int j = 0;
for(;time0;time--)
for(j=0;j125;j++);
}
void disp(void) //显示函数
{ led3=0; //第四位位码清0
P0=table[ad_result/1000]; //输出第三位的字模
delay(10); //延时10ms
led3=1; //第三位位码置1
//动态显示函数
led2=0; //第三位位码清0
P0=table[ad_result/100]; //输出第三位的字模
delay(10); //延时10ms
led2=1; //第三位位码置1
led1=0; //第二位位码清0
P0=table[(ad_result/10)%10]; //输出第二位的字模
delay(10); //延时10ms
led1=1; //第二位位码置1
led0=0; //最低位位码清0
P0=table[ad_result%10]; //输出最低位的字模
delay(10); //延时10ms
led0=1; //最低位位码置1
}
void main(void)
{ while(1)
{
_st=0;_st=1;_st=0; //模拟启动时序,发出启动AD转换脉冲
while(!_eoc); //查询EOC标志,若EOC=0,原地等待
_oe=1; //若EOC=1,使能OE置1
ad_result=P1; //读取AD转换结果
_oe=0; //使能OE置0
disp(); //动态显示函数调用
}
}
【注】
本人辛苦编译加注过,请用修改后再纳为己有。
程序中少了一条很简单的语句,为本人故意所留。稍懂单片机者均可改正。
祝你实验成功
您可能关注的文档
最近下载
- 深基坑工程土方开挖节点验收记录.doc VIP
- 我和我的祖国原版正谱钢琴谱五线谱乐谱.pdf VIP
- 2025年全国大学生职业生涯规划大赛获奖作品鉴赏 .pdf VIP
- 新时代好少年先进主要事迹【7篇】.docx VIP
- 《gkh》教学实录与反思.pptx
- 第2单元第2课《花鸟为伴》第二课时课件-2025-2026学年人美版(2024)美术新教材八年级上册.pptx VIP
- 2024年10月自考14445小学教育管理试题及答案.docx
- 中软国际有限公员工手册内部公开.PDF VIP
- 第2单元第2课《花鸟为伴》第一课时课件-人美版美术新教材八年级上册.pptx VIP
- 店铺押金退还协议.doc VIP
原创力文档


文档评论(0)