单路数据采集系统课程设计报告 本文关键词:路数,课程设计,采集系统,报告
单路数据采集系统课程设计报告 本文简介:《单路数据采集系统》课程设计报告专业:电子科学与技术班级:物理系0902姓名:惺惺惜惺惺xx指导教师:xxxxx二0一二年十月十八日目录1、设计任务.22、设计思路.23、设计目的.24、设计元器件清单.35、电路所用芯片的介绍.36、绘制的原理图和PCB图.87、电路板的制作.98、实验调试.99
单路数据采集系统课程设计报告 本文内容:
《单路数据采集系统》
课程设计报告
专
业:
电子科学与技术
班
级:
物理系0902
姓
名:
惺惺惜惺惺xx
指导教师:
xxxxx
二0一二年十月十八日
目
录
1、
设计任务.2
2、
设计思路.2
3、
设计目的.2
4、
设计元器件清单.3
5、
电路所用芯片的介绍.3
6、
绘制的原理图和PCB图.8
7、
电路板的制作.9
8、
实验调试.9
9、
调试好的成品图12
10、
心得体会12
11、
参考文献13
1、
设计任务
用C51写出程序,采用AT89S52单片机对p2.0输入的模拟信号进行采样,通过外部信号CNVSTR启动A/D转换,将采样数据通过UARTO发送出去,通过PC机终端观察结果。
注意:1、A/D转换器的模拟输入电压采用电位器产生。
2、通过串口调试软件观察A/D转换结果。
二、设计思路
由于51单片机和
A/D转换器组成的电路使用方便,51单片机种类多,价格便宜,我们对51系列单片机比较了解,适用范围广,更加适合数据采集与处理系统的应用,而且实物图连接电路简单,故本设计采用A/D转换器与AT89S52单片机组成数据采集系统。
(1)电路设计:在电路设计上以单片机为控制核心,用单片机I/O口直接定义ADC0808的模拟通道选择信号ADDA、ADDB、ADDC为IN0通道、地址锁存允许(ALE)和转换启动信号(START)、输出允许信号(OE)、查询转换结束状态信号(EOC)和产生时钟信号(CLK)。
打开Proteus的ISIS窗口,通过对象选择器按钮,从元件库中选择如下元器件:AT89S52、RES、ADC0809、7805、max232、74LS00、74LS32等元器件。放置元器件、电源和地,连线得到该设计的原理图。
(2)编程思路:利用伪指令定义单片机与ADC0809的控制与数据传输线,首先把
ALE和
START连接在一起,用P2.1控制地址锁存允许和转换启动信号,然后利用P2.0产生时钟信号,之后通过查询转换结束后就允许输出,最后通过max232借助电脑直观的看输出结果。
三、设计目的
这次设计对于我们来说是一次能力的提升,知识的升华。
一方面,让我们巩固已经学过的知识,并且利用这些知识进行设计。还有让我们对于C51单片机、ADC0809模数转换器等芯片有更进一步的了解。
另一方面,要提高我们的动手能力,由于此次电路图教复杂,因此要求有很好的动手能力,并且可以更好的掌握焊接电路板的流程以及小细节。
最后,对于C51的编程,让我们也有更进一步的熟悉和掌握。
四、设计元器件清单
电阻:
阻值
瓦数
误差
5K
×1
0.125W
5%
10K×1
0.125W
5%
330×2
0.125W
5%
510×2
0.125W
5%
2K
×1
0.125W
5%
滑动变阻器:1K
×1
电容:10u×11、104×7、30P×2
集成芯片:ADC0809×1、7805×1、max232×1、74LS00×1、74LS32×1、
其他:导线、面包板、晶振一个、一个四脚的开关、三个发光二级管、
5、
电路所用芯片的介绍
5.1芯片ADC0809的介绍
ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接联通8个单端模拟信号中的任意一个。
(1)ADC0809的引脚图:
图5-1-1ADC0809管脚图
(2)ADC0809模数转换器的引脚功能:
IN0~IN7:8路模拟量输入。
A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。
ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。
START:启动信号输入端,START为正脉冲,其上升沿清除ADC0809的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
CLK:时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。
(3)ADC0809的接线图
此电路图主要接线将八路输入模拟信号转换为数字信号,为数据处理及监控模块提供输入信号。
ADC0809与51单片机的接口方法:
ADC0809与51单片机的接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。
由于ADC0809无片内时钟,时钟信号时可由单片机的ALE信号经D触发器二分频后获得。ALE引脚得脉冲频率是8051时钟频率的1/6.该题目中单片机时钟频率采用6MHz,则ALE输出的频率是1MHz,二分频后为500Hz,符合ADC0809对频率的要求。
由于ADC0809内部没有地址锁存器,所以通道地址有P0口的低3位直接与ADS0809的A,B,C相连。通道基本地址为0000H~0007H。
控制信号:将P2.7作为片选信号,在启动A/D转换时。由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。
在读取转换结果时,用单片机的读信号和P2.7引脚经或非门后,产生正脉冲作为OE信号用一打开三态输出锁存器。
5.2芯片AT89S52的介绍
(1)实物图
(2)
芯片引脚图以及各引脚的功能
AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可按照常规方法进行编程,亦可在线编程
P0口——8位漏极开路之双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。访问外部程序和数据存储器时,P0口亦被作为低8位地址/数据复用。
P1口——有内部上拉电阻的8位双向I/O
口,p1
输出缓冲器能驱动4
个
TTL
逻辑电平。对P1
端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口用。此外各引脚还有第二功能。详见下表一:
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口——有内部上拉电阻的8
位双向I/O口,P2输出缓冲器能驱动4个TTL
逻辑电平。对P2
端口写“1”时,内部上拉电阻把端口拉高,此时可作输入口。
P3口——有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL
逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可用作输入口。
各个引脚第二功能见下表二:
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INTO(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
RST——复位输入。
ALE/PROG——访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
PSEN——程序储存允许(PSEN)输出是外部程序存储器之读选通信号。
EA/VPP——外部访问允许,要CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端须保持低电平(接地)。
XTAL1——振荡器反相放大器及内部时钟发生电路之输入端。
XTAL2——振荡器反相放大器之输出端。
5.3芯片max232的介绍
(1)芯片引脚图及各引脚的介绍
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能
是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两
个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)
为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数
据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送
到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMO
S数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚GND、16脚VCC(+5v)。
5.4芯片74LS32的介绍
引脚排列图管脚功能:左下1--1A,2--1B,
3--1Y;4--2A,5--2B,6--2Y;7--GND;
右起:右上8--3Y,9--3A,10--3B;11--4Y,12--4A,
13--4B;14--VCC
其中A,B为输入端,Y为输出端,GND为电源负极,VCC为电源正极。
6、
绘制的原理图和PCB图
原理图
PCB图
7、
电路板的制作
在PCB图画好之后,接着就是电路板的制作和元器件的焊接了。这一部分,虽说没有设计那么困难,然而却是最容易出错的地方,得需要操作人很强的动手能力。尤其是在焊接中,一定要小心虚焊、漏焊等小细节。还有,芯片不要插在插槽上进行焊接,防止芯片烧坏,在插二极管和极性电容的时候应该注意其极性,在焊接电路板时,有的焊点很近,焊接时要特别小心,如果不注意很容易导致线路短路的。
切记:防止烫伤自己和他人!
8、
实验调试
利用下面写好的程序,通过串口输出和计算机调试。
#include
#include
#define
uchar
unsigned
char
sbit
ST=P3^6;
sbit
EOC=P3^2;
sbit
OE=P3^7;
sbit
CLK=P3^3;
sbit
RR=P1^0;
void
delay(uchar
i)
{
uchar
j;
while(i--)
{
for(j=125;j>0;j--);
}
}
void
init_t0()
{
TMOD=0x1;
//T0,工作方式1
TH0=0xFF;
//20ms定时
TL0=0xFE;
TR0=1;
//开启T0定时器
ET0=1;
//允许T0定时器中断
EA=1;
RR=0;
/*
EA
=
1;
TMOD
=
0x02;
TH0=216;
TL0=216;
TR0=1;
ET0=1;
ST=1;
OE=1;
RR=0;/
}
void
cl(void)
interrupt
1
using
0
{
TH0=0xFF;
//20ms定时
TL0=0xFE;
CLK=~CLK;
}
void
AD()
{
//TR0=1;
//RR=0;
OE=0;
ST=1;
delay(1);
ST=0;
delay(1);
ST=1;
//
while(EOC==1);
while(EOC!=0){;}
//TR0=0;
OE=0;
SBUF=P0;
delay(1);
SBUF=0XAA;
delay(10);
OE=1;
TR0=1;
}
void
intcom_INT()
{
SCON=0x50;//SCON:serailmode1,8-bitUART,enableucvr
TMOD|=0x20;//TMOD:timer1,mode2,8-bitreload
PCON|=0x00;//SMOD=0;
TH1=0xFd;//Baud:4800fosc=11.0592MHz
TL1=0xfd;
IE|=0x90;//EnableSerialInterrupt
TR1=1;//timer1run
}
void
intcom()
interrupt
4
{
if(TI==1)
{
TI=0;
}
if(RI==1)
{
RI=0;
}
}
void
main()
{
init_t0();
intcom_INT();
while(1)
{
AD();
}
}
TI=0;
}
if(RI==1)
{
RI=0;
}
}
void
main()
{
init();
while(1)
{
AD();
}
}
9、
调试好的成品图
10、
心得体会
持续六周的课程设计转眼就要结束了,在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。其实生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过此次实践,我才真正领略到“艰苦奋斗”这一词的真正含义。
看着这个充满心酸的成品设计,在这里,我想说说自己的一些亲身感受。设计的确是能力和知识的结合体,而我也感觉到自己在知识掌握的不扎实也不全面,需要在以后的日子里在这方面加一把力。同时,焊接虽说是个技术活,但确需要很好耐心以及细心,在这次焊接中,我就犯了一个很大的错误,差点导致此次努力付诸东流。
最后,我想说我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实践成功的一项非常重要的保证。然而在这次设计中,虽说我们这组很团结,但我发现有些组的成员就是为了应付,而这种思想在这样的一个设计中是要不得的。
对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实践必将成为我人生旅途上一个非常美好的回忆!同时也会给我下学期的毕业设计带来很大的帮助。
十一、参考文献
[1]
贾立新,王勇,《电子系统设计与实践》,浙江,清华大学出版社,2010年
[2]
唐颖,《单片机原理与应用》,北京大学出版社。2011年
14