《单片机实验7(4页).doc》由会员分享,可在线阅读,更多相关《单片机实验7(4页).doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-实验七 直流数字电压表设计姓名:田坤 学号:200912512 专业:电子信息科学与技术1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。2.实验原理: 实验电路原理图如图A.94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。图A.94 实验7的电路原理图3.实验内容: (1)、学习使用Proteus软件,掌握原理图绘图方法
2、; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法; (3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与 显示程序的编写与调试。4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过; (3)、在Proteus中加载程序,观察仿真结果。5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。表A.9 实验7的元器件清单CategoryReferenceValueMicroprocessor ICsU180C51Data ConverterU3ADC
3、0808MiscellaneousX1CRYSTALCapacitorsC1、C2CAPCapacitors C3CAP-ELECResistorsR1R8RESResistorsR9RESResistorsRV1POT-HGOptoelectronics7SEG-MPX4-BLUE1)源程序如下:#include / 头文件#include unsigned int tmp; /定义一个整形中间变量sbit START=P25; /定义ADC0808启动位sbit ad_busy=P26; /定义ADC0808转换结束标志位sbit OE=P27; /定义ADC0808输出使能标志位sbit
4、 P2_0=P20; /定义四个数码管sbit P2_1=P21;sbit P2_2=P22;sbit P2_3=P23;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
5、i; delay(10); / 显示千位 P2_0=1; P2_1=0; j=tmp/100;i=j%100;P0=led_modi;delay(10); / 显示百位 P2_1=1; P2_2=0; j=tmp/10;i=j%10;P0=led_modi; delay(10); / 显示十位 P2_2=1; P2_3=0; i=tmp%10; P0=led_modi; 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)仿真结果:3)实验结果分析: 本实验是使用A/D转换器将模拟信号(电位器输出电压)转换为数字信号, A/D转换器与80C51接在一起,转换结果通过80C51以十进制形式动态显示在四个共阴极数码管上,通过改变模拟信号大小可以显示0255之间任意数据。其中A/D转换器启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生。 6. 实验小结: 这次实验掌握了数码管动态显示程序的编写,熟练了Proteus软件的使用-第 4 页-
限制150内