直流数字电压表设计实验报告.docx
精选优质文档-倾情为你奉上洛阳理工学院实验报告系部计算机系班级B学号B姓名韩亚辉课程名称单片机原理及应用实验日期2016/6/1实验名称直流数字电压表设计成绩实验目的:掌握LED 动态显示和A/D转换接口设计方法。实验条件:装有Keil u Vision3编译软件和ISIS 7Professional仿真软件的电脑。一、实验要求:(1) 数码管动态显示编程;(2) A/D转换查询法编程;(3) 考察延时量对动态显示效果的影响。二、实验步骤:(1) 提前阅读与实验7相关的阅读材料;(2) 参照实验原理图,在ISIS中完成电路原理图的绘制;(3) 采用uVision3进行C51动态显示和A/D转换的编程及调试;三、运行结果:仿真运行截图如下图所示:四、实验程序代码:#include <reg51.h> sbit _clk=P24;sbit ALE=P25; sbit _st = P25; /定义AD启动位,_st sbit _eoc = P26; /定义AD结束位,_eoc sbit _oe = P27; /定义AD使能位,_oe sbit led0 = P23; /定义数码管最低位,led0 sbit led1 = P22;/定义数码管第二位,led1 sbit led2 = P21;/定义数码管第三位,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(;time>0;time-)for(j=0;j<125;j+); void disp(void)/显示函数 led2=0;/第三位位码清0P0=tablead_result/100; /输出第三位的字模delay(10); /延时10ms led2=1; /第三位位码置1led1=0; /第二位位码清0P0=table(ad_result/10)%10; /输出第二位的字模delay(10);/延时10ms led1=1; /第二位位码置1led0=0; /最低位位码清0P0=tablead_result%10; /输出最低位的字模delay(10); /延时10ms led0=1; /最低位位码置1 void main(void) TMOD = 0x02; TH0 = 206; TL0 = 206; TR0=1; EA=1; ET0=1; ALE=0; ALE=1; while(1) _st=0;_st=1;_st=0; /模拟启动时序,发出启动AD转换脉冲while(!_eoc);/查询EOC标志,若EOC=0,原地等待_oe=1; /若EOC=1,使能OE置1ad_result=P1; /读取AD转换结果_oe=0; /使能OE置0disp();/动态显示函数调用void Timer0_INT() interrupt 1 _clk = !_clk; 实验总结:这次实验中间遇到了一些困难,刚开始无法程序无法运行,自己没有找到错误,后来通过向同学请教才找到了错误。之后在里边加入了中断才能顺利仿真。通过这次实验自己对于单片机的了解更加深了一步,同时也了解到了自己的短处,感觉收获很大。专心-专注-专业