单片机实验7讲课教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机实验7

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

姓名:田坤学号:200912512 专业:电子信息科学与技术

1.实验目的:

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

2.实验原理:

实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。

图A.94 实验7的电路原理图

3.实验内容:

(1)、学习使用Proteus软件,掌握原理图绘图方法;

(2)、学习使用Keil C软件,掌握C51程序编写与调试方法;

(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。

4.实验步骤:

(1)、在Proteus中绘制电路原理图,按照表A.9将元件添加到编辑环境中;

(2)、在Keil中编写C51程序,并使之编译通过;(3)、在Proteus中加载程序,观察仿真结果。

5.实验要求:

提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。

表A.9 实验7的元器件清单

1)源程序如下:

#include // 头文件

#include

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(;time>0;time--)

for(j=0;j<125;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)仿真结果:

3)实验结果分析:

本实验是使用A/D转换器将模拟信号(电位器输出电压)转换为数字信号, A/D转换器与80C51接在一起,转换结果通过80C51以十进制形式动态显示在四个共阴极数码管上,通过改变模拟信号大小可以显示0~255之间任意数据。其中A/D转换器启动信号由软件模拟产生,时钟信号由Proteus 的DClock信号发生器产生。

6.实验小结:

这次实验掌握了数码管动态显示程序的编写,熟练了Proteus软件的使用

相关文档
最新文档