51单片机数字电压表实验报告

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

微控制器技术创新设计实验报告

姓名:学号:班级:

一、项目背景

使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为5V;显示精度0.001伏。

二、项目整体方案设计

ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计

四、软件设计

#include

#include"intrins.h"

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7;

sbit EOC=P2^6;

sbit START=P2^5;

sbit CLK=P2^4;

sbit CS0=P2^0;

sbit CS1=P2^1;

sbit CS2=P2^2;

sbit CS3=P2^3;

uint adval,volt;

uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms)

{

uchar j;

while(ms --)

{

for(j=0;j<120;j++);

}

}

void ADC_read()

{

START=0;

START=1;

START=0;

while(EOC==0);

OE=1;

adval=P1;

OE=0;

}

void volt_result()

{

volt=adval*1.96;

}

void disp_volt(uint date) {

CS0=1;CS1=0;CS2=0;CS3=0; P0=~((~tab[date/100])|0x80); delayms(1);

P0=0xFF;

CS0=0;CS1=1;CS2=0;CS3=0; P0=tab[date%100/10]; delayms(1);

P0=0xFF;

CS0=0;CS1=0;CS2=1;CS3=0; P0=tab[date%10];

delayms(1);

P0=0xFF;

CS0=0;CS1=0;CS2=0;CS3=1; P0=tab[date%100]; delayms(1);

P0=0xFF;

}

void t0() interrupt 1

{

CLK=~CLK;

}

void t0_init()

{

TMOD=0x02;

TH0=0x14;

TL0=0x00;

TR0=1;

ET0=1;

EA=1;

}

void main(void)

{

t0_init();

while(1)

{

ADC_read();

volt_result();

disp_volt(volt); }

}

五、实验结果

六、项目总结

通过这次实验设计,锻炼我们综合运用知识,提出问题,分析问题,及解决问题的能力。我感慨颇多,在着手设计的这段日子里,我又学到了很多东西。特别是理论联系实际。我认为掌握单片机的应用及开发技术是最基本的也是必要的。单片机是以后从事相关嵌入式研发最为基本的入门芯片。所以学好单片机是我们电子类的必要任务。通过这次单片机课程设计的顺利完成,离不开付老师指导,也离不开班上同学的耐心帮助。在此,我对所有帮助过我的老师和同学表示我真挚的感谢!

相关文档
最新文档