实验七 直流数字电压表设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生姓名:学号:班级:时间:
课程名称:单片机原理及应用总学时:48 教师成绩:
实验名称:实验七——直流数字电压表设计
实验目的:掌握LED动态显示和A/D转换接口设计方法。
实验内容:
根据如下电路原理图,编程实现查询法A/D转换和转换结果的十进制动态显示功能。
编程原理:
LED显示器和ADC0808均采用通用IO口方式与单片机接口。
LED动态显示编程原理:将待显示数据拆解为3位十进制数,并分时地将其在相应LED位上进行显示。1次完整的输出过程为:最低位位码清零→最低位数据送P0口→最低位位码置1→软件延时→中间位位码清零→中间位数据送P0口→中间位位码置1→软件延时→最高位位码清零→最高位数据送P0口→最高位位码置1→软件延时。如此无限循环可实现动态显示。
ADC0808编程原理:被测模拟量由0#通道输入(ADDA,ADDB,ADDC均接地可选通0通道);转换启动信号(START和ALE)可由软件方式产生P2.5正脉冲;转换结束信号(EOC)可通过查询P2.6的电平变化获得;输出使能信号(OE)可由软件方式产生P2.7正脉冲。
实验要求:
1、虚拟时钟信号发生器用法可参阅P262阅读材料,C51程序编写可参考以下程序模板;
————————————————
#include
______________ //定义ADC启动位变量,_st
______________ //定义ADC结束位变量,_eoc
______________ //定义ADC锁存位变量,_oe
______________ //定义数码管最低位位变量,led0
______________ //定义数码管第二位位变量,led1
______________ //定义数码管第三位位变量,led2
______________ //定义AD转换结果存放变量,ad_result
______________ //定义显示字模数组并赋初值,table
//0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
void delay(unsigned int time){ //延时函数
unsigned int j = 0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
void disp(void){ //动态显示函数
___________________ // led0清0
P0= _______________ //输出最低位数据的字模
___________________ //延时10ms
___________________ // led0置1
___________________ // led1清0
P0= _______________ //输出中间位数据的字模
___________________ //延时10ms
___________________ // led1置1
___________________ // led2清0
P0= _______________ //输出最高位数据的字模
___________________ //延时10ms
___________________ // led2置1
}
void main(void){
while(1){
___________ //模仿_st正脉冲(低_高_低)
___________
___________
___________ //查询_eoc,若_eoc =0,原地循环
___________ //若_eoc =1,_oe置1
___________ //读取AD转换结果
___________ //_oe清0
___________ //动态显示函数调用
}
}
2、提交实验报告:包括电路原理图,虚拟时钟信号发生器设置、C51源程序,运行效果图、讨论软件延时长短对动态显示效果的影响、实验小结。