失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 单片机原理及应用 实验七 直流数字电压表设计

单片机原理及应用 实验七 直流数字电压表设计

时间:2021-10-03 14:03:48

相关推荐

单片机原理及应用 实验七 直流数字电压表设计

单片机原理及应用(C51版)

实验目的及要求:

1.掌握LED动态显示和A/D转换接口设计方法;

2.按照教材图A.94 .绘制实验7基本电路原理图;

3.采用L ED动态显示原理和查询法AD转换编程;

4.实现如下功能:程序运行时以十进制数形式实时显示电位器的输出电压。

步骤:

1.根据实验要求绘制电路图:

2.编写和编译C51程序,并导出:

源代码如下:

#include <reg51.h>unsigned char ad_result=0; //定义AD转换结果变量,ad_result unsigned char table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定义0-9显示字模sbit _st = P2^5; //定义AD启动位,_stsbit _eoc = P2^6; //定义AD结束位,_eocsbit _oe = P2^7; //定义AD使能位,_oesbit led0 = P2^3;//定义数码管最低位,led0sbit led1 = P2^2;//定义数码管第二位,led1sbit led2 = P2^1;//定义数码管第三位,led2sbit CLK = P2^4;//定义时钟端void delay(void){ //延时函数unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<50;j++);}void disp(void){//动态显示函数P0=table[ad_result/100];//输出第三位的字模led2=0;//第三位位码清0delay();//延时10msled2=1;//第三位位码置1P0=table[(ad_result/10)%10]; //输出第二位的字模led1=0;//第二位位码清0delay(); //延时10msled1=1; //第二位位码置1P0=table[ad_result%10]; //输出最低位的字模led0=0;//最低位位码清0delay();//延时10msled0=1;//最低位位码置1}_ad_clock() interrupt 1 {CLK = ~CLK;}void main(void){TMOD = 0x02;TH0 = TL0 = 0xA0;ET0 = EA = 1;TR0 = 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();///动态显示函数调用}}

3.在电路图进行仿真:

最近时间比较紧,实验内容和之前比会简洁一些,第一个电路图是老师给的范例,与第二张的仿真电路图有些区别,但基本原理是一样的,供大家参考。

如果觉得《单片机原理及应用 实验七 直流数字电压表设计》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。