用单片机实现电压采集课程Word格式.docx

上传人:b****3 文档编号:7563844 上传时间:2023-05-08 格式:DOCX 页数:25 大小:1.05MB
下载 相关 举报
用单片机实现电压采集课程Word格式.docx_第1页
第1页 / 共25页
用单片机实现电压采集课程Word格式.docx_第2页
第2页 / 共25页
用单片机实现电压采集课程Word格式.docx_第3页
第3页 / 共25页
用单片机实现电压采集课程Word格式.docx_第4页
第4页 / 共25页
用单片机实现电压采集课程Word格式.docx_第5页
第5页 / 共25页
用单片机实现电压采集课程Word格式.docx_第6页
第6页 / 共25页
用单片机实现电压采集课程Word格式.docx_第7页
第7页 / 共25页
用单片机实现电压采集课程Word格式.docx_第8页
第8页 / 共25页
用单片机实现电压采集课程Word格式.docx_第9页
第9页 / 共25页
用单片机实现电压采集课程Word格式.docx_第10页
第10页 / 共25页
用单片机实现电压采集课程Word格式.docx_第11页
第11页 / 共25页
用单片机实现电压采集课程Word格式.docx_第12页
第12页 / 共25页
用单片机实现电压采集课程Word格式.docx_第13页
第13页 / 共25页
用单片机实现电压采集课程Word格式.docx_第14页
第14页 / 共25页
用单片机实现电压采集课程Word格式.docx_第15页
第15页 / 共25页
用单片机实现电压采集课程Word格式.docx_第16页
第16页 / 共25页
用单片机实现电压采集课程Word格式.docx_第17页
第17页 / 共25页
用单片机实现电压采集课程Word格式.docx_第18页
第18页 / 共25页
用单片机实现电压采集课程Word格式.docx_第19页
第19页 / 共25页
用单片机实现电压采集课程Word格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

用单片机实现电压采集课程Word格式.docx

《用单片机实现电压采集课程Word格式.docx》由会员分享,可在线阅读,更多相关《用单片机实现电压采集课程Word格式.docx(25页珍藏版)》请在冰点文库上搜索。

用单片机实现电压采集课程Word格式.docx

二、扩展要求

(1)指定通道采集默认采集通道为0,按2:

通道+1,按3:

通道-1,按1:

进入下一模式。

(2)循环采集显示,默认每通道显示2秒钟。

按1:

(3)报警设置报警上限默认为4.0V,警下限默认为0.0V

按2进行上限设置,按3进行下限设置,按1:

进入制定通道选择。

指导教师签字:

摘 要

随着电子科技的不断进步,电压测量成为广大电子领域中必须掌握的过程,并且对测量的精度和采集功能的要求越来越高,而电压的测量与显示系统甚为重要。

本文介绍的重点是电压数据采集与显示系统,数据采集与通信控制采用了模块化设计,数据采集与通信控制采用了单片机52来实现,硬件部分是以单片机为核心,还包括模-数转换模块,显示模块,和串行接口部分,还有一些简单的外围电路。

8路被测电压通过通用ADC0809模-数转换,实现对采集到的数据进行模拟量到数字量的转换,由单片机对数据进行处理,用数码管显示模块来显示所采集的结果,由相关控制器完成数据接收和显示。

本系统主要包括四大模块:

数据采集、控制模块、显示模块、A/D转换模块。

绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。

在软件编程上,采用了C语言进行编程,开发环境使用相关集成开发环境。

开发了显示模块程序、通道切换程序、A/D转换程序。

关键词:

单片机ADC0809A/D转换模块显示电压测量

目 录

一绪论

1.1系统概述

1.1.1设计性质、目的、任务

《单片机系统设计》是在学习《模拟电子技术》、《数字电子技术》、《单片机原理及应用》等相关理论课程之后,所设置的重要的综合性实践教学环节,课程的任务是通过选题的设计、安装和调试,巩固已学的理论知识,综合应用所学知识,进行电子系统的设计,从而培养工程实践能力、创新能力,培养严肃认真的工作作风和科学态度。

通过查阅资料、选定方案、设计电路、安装调试、写报告等过程,得到一次科学研究工作的启蒙训练,也为以后利用单片机开发电子产品奠定坚实的基础。

1.2系统设计方案

本次实验要求设计电压采集装置,课程设计分设计、制作和调试三个部分。

设计选题以单片机为核心,基本内容应包括单片机最小系统、键盘和LED显示电路,以及设计系统涉及的其他电路。

系统硬件电路由标准电路和自制电路两部分组成。

标准电路包括单片机学习板,这部分电路已制成电路板,可根据设计需要进行配置选用。

自制电路需自行设计焊接,包含标准电路不具备的其他电路。

设计中采用了模数转换器,利用AD0809型8位MOS型A/D转换器。

可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,实现模拟信号到数字信号的转换。

控制部分采用单片机AT89C52来完成。

显示部分利用LED数码管显示模块,来显示采集到的电压分量。

1.2.1系统设计原理框图

二硬件电路设计

标准电路包括单片机最小系统、8个LED数码管电路和键盘电路,这部分电路已制成电路板,可根据设计需要进行配置选用。

2.1主要芯片介绍

2.1.1AT89S52

AT89S52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89S52单片机在电子行业中有着广泛的应用。

兼容MCS51指令系统;

8k可反复擦写(大于1000次)FlashROM;

32个双向I/O口;

 

256x8bit内部RAM;

3个16位可编程定时/计数器中断;

时钟频率0-24MHz;

2个串行中断,可编程UART串行通道;

2个外部中断源,共8个中断源;

2个读写中断口线,3级加密位;

2.1.2A/D0809

共28脚,双列直插式封装。

主要引脚功能如下:

(1)IN0~IN7:

8路模拟信号输入端。

(2)D0~D7:

8位数字量输出端。

(3)C、B、A:

控制8路模拟通道的切换,C、B、A=

000~111分别对应IN0~IN7通道。

(4)OE、START、CLK:

控制信号端,OE为输出允许端,

START为启动信号输入端,CLK为时钟信号输入端。

(5)VR(+)和VR(-):

参考电压输入端。

2.2单片机电路

2.1.1单片机电路板

单片机电路板电路框图如图2;

原理图见附录3;

PROTEL绘制的电路排版图见附录4。

2.2.2单片机最小系统

上图为CPU原理图。

该原理图包含单片机以及外部连接译码,锁存电路端口,其中的ALE,REST为高电平时用来启动ADC0809.P0、P2口控制数码输出显示,P1口的低四位控制按键,P1.3~P1.6控制通道选择。

晶振采用12MHZ,该频率有利于提高串口的通信可靠性,同时又保证单片机有较高的运行速度。

2.2.3单片机的复位电路

当开关断开的时候,VCC对电容充电,RESET端为低电平;

在开关闭合时电容放电,RESET端为高电平。

2.2.4开关电路

4位脉冲按键,共用端口。

--按下:

输入高电平

2.2.5显示译码电路

显示电路采用6位共阴极LED动态扫描显示,输出所需字形,74LS273选择字位。

在动态方式中,逐个地循环地点亮各位显示器。

如图所示:

74LS273芯片是用来控制显示时候的字位的,由于单片机的管脚是有限的通过使用273芯片可以避免少使用些单片机的管脚,两片273一个控制字形选择,一个控制字位选择,选择方式为总线地址结构。

2.2.6蜂鸣器和继电器电路

2.3A/D转换

2.3.1ADC0809内部结构

ADC0809由8路模拟开关、地址锁存与译码器、比较器、256电阻阶梯、树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。

2.3.2ADC0809转换原理

图11:

ADC0809转换工作时序

工作原理:

当单片机端的P3.3接低电平时,可以使两个非门打开

(1)当模拟量送至某一输入通道后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADDA引脚上。

(2)地址锁存允许ALE锁存地址信号,启动命令START启动A/D转换。

(3)转换开始,EOC变低电平,转换结束,EOC变为高电平。

EOC可作为中断请求信号。

(4)转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB,一次A/D转换便完成。

2.3.3电路设计

硬件资源分配

数码管显示电路:

用总线结构,字型码地址为efff;

字位码地址为dfff;

键盘电路:

4个键--P3.2,P3.3,P3.4,P3.5

蜂鸣器p1.0

继电器p1.6

ADC0809电压转换电路控制信号:

/wr==p3.6/rd==p3.7

eoc==p3.2Cs==p3.3(可以不要,使0809常选通)

AD总线地址为7fff,p1.1,p1.2,p1.3控制通道选择。

2.3.4采集数据和对应电压的转换

一个8位二进制的AD采集数据转换为5位10进制显示数据。

对应关系:

00H~FFH---0.000V~5.000V;

AD分辨率为:

5/255=19.6mV;

算法:

Y=X×

19.6=X×

196/10

具体步骤:

1、求Y=X×

196,结果为双字节二进制数

2、将Y转换为十进制数,最大是一个5位的十进制数

3、去掉十进制数的最低位,相当于除10

三软件设计

3.1设计任务

3.1.1基本任务进行电压采集并显示

3.1.2扩展任务

1、指定通道采集

2、循环采集显示,默认每通道显示2秒钟,并具有锁定通道功能。

3、报警设置报警上限默认为4.0V

报警下限默认为0.0V

3.2程序代码

3.2.1C语言实现基本功能

#include<

reg52.h>

Unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsignedcharxdatazixin_at_0xefff;

unsignedcharxdataziwei_at_0xdfff;

unsignedcharxdataad_at_0x7fff;

unsignedchargetdata;

unsignedchara,b,c,d,e,f,g,gt;

unsignedintget;

unsignedintn,q,z=0,j,p,sx,xx;

sbitK1=P3^5;

sbitK2=P3^4;

sbitK3=P3^3;

sbitBE=P1^0;

sbitJD=P1^6;

unsignedcharchannel=0x0f1;

unsignedchari=0;

voiddelay(unsignedintcnt)

{

cnt--;

}

voidint0(void)interrupt0

getdata=ad;

get=getdata*196;

a=get/10000;

b=get%10000/1000;

c=get%10000/1000/100;

d=get%10000/1000/100/10;

sx=a*10+b;

xx=p*10+q;

zixin=dispcode[i];

ziwei=1;

delay(200);

ziwei=0;

zixin=dispcode[a]|0x80;

ziwei=16;

delay(200);

zixin=dispcode[b];

ziwei=32;

zixin=dispcode[c];

ziwei=64;

zixin=dispcode[d];

ziwei=128;

if(a>

=4&

&

b>

=j)

{

BE=0;

JD=0;

delay(2000);

zixin=dispcode[4]|0x80;

ziwei=4;

delay(100);

zixin=dispcode[j];

ziwei=8;

}

elseif(sx<

xx)

zixin=dispcode[p]|0x80;

ziwei=4;

delay(100);

ziwei=0;

zixin=dispcode[q];

ziwei=8;

}

else

BE=1;

JD=1;

ad=0;

}

voidt0(void)interrupt1

q++;

if(q>

=40)

q=0;

TR0=0;

TH0=0x3C;

TL0=0x0b0;

channel=channel+2;

i++;

if(i==8)

{

channel=0x0f1;

i=0;

}

P1=channel;

zixin=dispcode[i];

ziwei=1;

{

TH0=0x3C;

TL0=0x0B0;

TR0=1;

}

voidmain(void)

TMOD|=0x01;

IT0=1;

EX0=1;

EA=1;

TH0=0x3c;

TL0=0xbb;

ET0=1;

while

(1)

if(!

K1)

{

z++;

if(z>

2)

{

z=0;

}

if(z==0)

{TR0=0;

if(z==1)

{TR0=~TR0;

if(z==2)

while(!

for(n=0;

n<

100;

n++);

if(z==2)

TR0=0;

if(!

K2)

{

j++;

if(j>

9)

{j=0;

while(!

K2);

delay(2000);

K3)

q++;

if(q>

{

q=0;

p++;

;

if(p>

1)

{p=0;

}

if(p==1&

q>

5)

p=0;

K3);

if(z==0)

TR0=0;

for(n=0;

channel=channel+2;

i++;

if(i==8)

channel=0xf1;

i=0;

K2);

for(n=0;

if(!

1000;

channel=channel-2;

if(i==0)

i=1;

i--;

}

3.2.2主程序框图

四系统调试

系统调试是设计的最后一部分,此部分用于检查硬件和软件错误。

硬件上此次实验主要焊接了扩展板上的A/D转换部分,电路简单,容易检查,软件上编程是分段进行,按模块编写。

4.1硬件部分

扩展板上主要难度在于芯片之间的连接,由于是手工布线,不可避免的会出现虚焊等情况,由于粗心,把两个焊点连接了起来,调试的过程出了一点问题,不过还好,借助万用表成功找出了问题。

4.2软件部分

软件程序设计是花费时间最多的地方,在同学的指导下,程序的编写循序渐进,先实现比较简单的功能,再在此基础上扩展功能。

由于单片机知识当时学的不牢固,现在用到了得现场去书上查,一边学习一边编程。

困难出现在最后的上下限处理,手动设置上下限上出现了困难,最后在同学的共同讨论和老师的指导下,终于实现了功能。

中间进行调试程序使用到了仿真器,掌握了用仿真器调程序的技巧。

五总结

本次课程设计的内容是基于51单片机的直流电压采集与显示系统的设计,核心部分是模数转换及电压显示,这一知识点在本学期的教学过程中已经广泛使用,对模数转换芯片ADC0809有进一步了解,故我将此次设计的重点放在了功能的扩展部分的实现方法及显示的改变上。

大四学期教学实验中,通过网上资料及课本信息,我了解了简单编程和设计最重要的是排版效果,此次,我之前基础上,扩展了模数转换的通道,增添了量程选择功能,在数码管显示上,采用了动态扫描的方法,并且编程由由汇编转变为C语言。

在这些过程中我获益匪浅,加深了对穆数转换的了解,能对其功能进行多元化的应用,数码管的显示技术上,我在以前所存静态显示的基础上,又掌握了动态扫描方法,有利于简化硬件设施。

通过这次综合课程设计,我对单片机的开发和应用产生了浓厚的兴趣,课外也在进行一些探究,希望能熟练地掌握它。

在此基础上,我发现学习好它的一个有效方法就是动脑动手进行一些开发和设计,在开发和设计的过程中去思考和学习,边学边用,则能真正的理解原理和过程,达到掌握相关知识点的目的。

当前机遇单片机的应用非常广泛,其强大的控制功能在各个领域都得到广泛的应用。

所以,今后我将会在老师的指导下,更深入的去理解与探究这块领域。

参考文献:

1、胡汉才,《单片机原理及其接口技术》(2版),清华大学出版社

2、张迎新,《单片机中级教程》,北京航空航天大学出版社

3、丁元杰,《单片机原理与应用》,机械工业出版社

4、孙育才,《MCS-51系列单片微型计算机及其应用》,东南大学出版社

5、曹巧媛,《单片机原理及应用——教学、实践、设计指导》,电子工业出版社

6、单片机实验指导书

附录一A/D转换板原理图

附录二A/D转换板PCB图

附录三单片机板电路原理图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2