实验七直流数字电压表设计..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七直流数字电压表设计.

实验七 直流数字电压表设计 实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图A.94 实验7的电路原理图 三、实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法; (3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 四、实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过; (3)、在Proteus中加载程序,观察仿真结果。 五、实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表A.9 实验7的元器件清单 Category Reference Value Microprocessor ICs U1 80C51 Data Converter U3 ADC0808 Miscellaneous X1 CRYSTAL Capacitors C1、C2 CAP Capacitors C3 CAP-ELEC Resistors R1~R8 RES Resistors R9 RES Resistors RV1 POT-HG Optoelectronics 7SEG-MPX4-BLUE (1)、源程序如下: #include reg51.h // 头文件 #include absacc.h unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位 sbit P2_0=P2^0; //定义四个数码管 sbit P2_1=P2^1; sbit P2_2=P2^2; sbit P2_3=P2^3; char led_mod[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED字模 void delay( unsigned int time) //延时函数 { unsigned int j=0; for(;time0;time--) for(j=0;j125;j++) ; } void show () // 数码管动态显示函数 { unsigned i,j; P2_0=0; j=tmp/1000;i=j%1000;P0=led_mod[i]; delay(10); // 显示千位 P2_0=1; P2_1=0; j=tmp/100;i=j%100;P0=led_mod[i]; delay(10); // 显示百位 P2_1=1; P2_2=0; j=tmp/10;i=j%10;P0=led_mod[i]; delay(10); // 显示十位 P2_2=1; P2_3=0; i=tmp%10; P0=led_mod[i]; delay(10); // 显示个位 P2_3=1; } void main() // 主函数 { while(1){ START=0; START=1; // 启动A/D转换 START=0; while(ad_busy==1); //等待A/D转换结束 OE=1; // 转换结果输出 tmp=P1; // 转换结果赋给中间变量 OE=0; show(); // 输出转换数据 } } (2)、仿真结果: 实验结果分析:本实验是使用A/D转换器将模拟信号(电位器输出电压)转换为数字信号, A/D转换器与80C51接在一起,转换结果通过80C51以十进制形式动态显示在四个共阴极数码管上,通过改变模拟信号大小可以显示0~255之间任意数据。其中A/D转换器启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生。 六、

文档评论(0)

sfkl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档