- 17
- 0
- 约2.42千字
- 约 8页
- 2016-03-09 发布于安徽
- 举报
课程设计报告
设计课题:模拟信号采集下位机
专业班级:
学生姓名
指导教师
设计时间
模拟信号采集下位机
课程设计目的:模拟信号采集下位机。
二、课程设计题目(问题)描述和要求:对ADC0809的IN7输入信号进行采集,然后将所采集的数据经过232串行通信传送的上位机PC机上,应用串口助手显示所传送的数据,要求数据按照帧格式显示。
三、系统分析与设计
1: 系统总体设计-确定系统功能模块划分及说明;
实验中用到的器件有以下图所示:
C51是在一块芯片中集成了CPU,RAM,ROM,定时器/计数器和多功能的I/O口等一台计算机所需要的基本功能部件,本实验它是主要控制AD0809采样控制。
地址锁存器,当/OE有效,使能端LE为高电平时,输出跟随输入变化,当LE 端由高电平变低时,输出端8位信息被锁存,直到LE端再次有效。
可编程逻辑器件GAL16V8
F0=/EOC
F1=A15*/A14*/A13*/A12*/A11*A10*/P37
F2=A15*/A14*/A13*/A12*/A11*A10*/P36
F3=/A15+A14+A13+A12+A11+A10
F4=A15
F5=P36
F6=A13*A14*A15*/P37+A13*A14*A15*/P36
F7=A11
ADC0809用于实现模拟量向数字量的转换,带8个模拟量输入通道,有通道地址译码锁存器,输入带三态数据锁存器。
将所接受的信号发送出去。
本系统主要有两大模块:采样模块和发送模块。
采样主要有ADC0908完成。发送是由98C52和MAX3232CSA完成。
???? 2: 系统详细设计-在总体设计基础上设计系统总体框架、系统流程图;
系统总体框架图
、
系统流程图
???? 3: 源程序清单(每条指令都要加注释,说明其功能,入口参数,返回参数)
#includeabsacc.h
#includeintrins.h
#includereg51.h
#define LEDLen 6
#define MODE 0x03
#define CS0809 XBYTE[0xfbff]
//sbit eoc=P3^2;
unsigned char Read0809()
{
unsigned char i;
unsigned char a;
CS0809 = 0; /* 起动 A/D */
for (i=0; i0x20; i++) ;
/* for (i=0; i1; i++) ;
{
for(i=0;i10;i++) ;
} */
//while(eoc==1) continue;
a=CS0809; /* 延时 100us */
return(a); /* 读入结果 */
}
main()
{
float temp;
TMOD=0x20;
TR1=0;
TH1=0xfd;
TL1=0xfd;
PCON=0x00;
SCON=0x40;
EA=1;
TR1=1;
TI=0;
for(;;)
{
temp=Read0809();
temp=0xc7;//当前电压3.9V
temp=temp*5.0/255;
SBUF=temp;
while(TI==0);
TI=0;
}
// for(;;);
}
四. 系统调试过程中出现的主要问题
ADC0809的7脚地址错误。
忽略了ADC0809的EOC端与89C51端口的连接。
ADC0809采样数据后,在发送数据连接时出现问题。
五. 系统运行报告与结论
我的实验系统是为了采集变化的电压产生的变化信号,然后对采集的数据经过232串行通信传送的上位机PC机上,应用串口助手显示所传送的数据。此实验的问题是只做了传出的系统,并无接收,不能将所发送的数据进行接受比较,因而使编程简单了许多,可以再编一个接受系统,接受发出的数据。、
六. 总结
1、设计中遇到的问题及解决过程?:
遇到问题:ADC0809的7脚地址错误。
忽略了ADC0809的EOC端与89C51端口的连接。
ADC0809采样数据后,在发送数据连接时出现问题。
解决过程: ADC0809的EOC的7脚地址错误是有老师指出之后,经重新分析改过来的。
ADC0809的EOC端与89C51端的连接起初是把实验例程里的原封COPY过来,可在运行时不好使之后检查才发现的。
起初只能发送一些乱码,不能正确得到所采样来的数据,经老师指点,知道是因为串口发送程序中的地址与ADC0809采样来的数据地址不是一个。
2、设计中产生的错误及原因分析?
原创力文档

文档评论(0)