微机数据采集系统设计第四组Word文档下载推荐.docx
《微机数据采集系统设计第四组Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机数据采集系统设计第四组Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
![微机数据采集系统设计第四组Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/31/edd8681f-f75d-419e-9927-abfbf5b26245/edd8681f-f75d-419e-9927-abfbf5b262451.gif)
课程设计目的
通过微机数据采集系统设计实验,熟悉数据采集设计与程序控制方法。
课程设计环境
1.PC机
2.Windows2000
3.MFID多功能微机实验平台(含PCI总线驱动板)
4.MF2KI集成开发环境
5.VC++6.0
6.MASM
课程设计要求
1.掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统,结合一个实际的接口技术问题在实验台上编程模拟实现。
2.单通道采集数据并显示。
3.多通道循环采集数据并显示。
4.掌握基本接口电路的综合应用。
5.微机接口技术及接口芯片的综合应用。
课程
设计
工作
进度
计划
日期
工作内容
2012.6.10
搜集相关的设计资料,确定选题;
2012.6.11-6.12
搜集并熟悉相关课题资料,整理出设计思路;
2012.6.13
将整体思路模块化,并对本组成员进行工作分组;
2012.6.14-6.18
整理思路,画出工作流程图和设计原理图
2012.6.19-2012.6.22
着重编写和调试运行程序
2012.6.23
结合硬件配置系统环境,并进行系统验证
2012.6.24
整理所有资料撰写电子文档
一、课程设计题目
第4题:
二、课程设计平台环境
MF软件采用系统集成技术,把实验程序的开发工具,故障诊断程序和外设模块演示程序集成在一个环境中,构成一个用户程序集成开发环境IDE(IntegratedDevelopmentEnvironment)。
用户程序的编辑、编译、连接、运行和修改的全过程都在一个集成的环境中完成,大大提高了编程的效率。
这个环境目前已有4个版本,每个版本提供了内容丰富的汇编语言和C/C++语言开发软件包,并以全屏幕窗口环境的形式供用户使用。
三、任务分配
1.资料收集,文档整理(刘振辉,胡雨婷)
2.原理图,PCB图,流程图(韩毅)
3.程序编写(张鹏,伍佳)
四、设计与实现
1.设计思想
首先,根据实验要求,设计A/D数据采集电路,然后,按照电路原理,选用一些元器件,在面包板上分别搭建电路模块。
由于实验中要用到MFID多功能微机实验平台板上的8255A作接口控制信号,所以要用两头带插针的软导线,通过26芯电缆的插孔将8255A的输出信号接入面包板,这样整个的组成了A/D数据采集系统的硬件。
然后,编写A/D数据采集系统的控制程序,并进行调试。
最后,加入软件控制程序,对接口进行驱动,组成了A/D数据采集系统。
A/D数据采集模块、平台板、微机组成的数据采集系统框图
如图1所示。
2.分析
要实现上述设计要求,至少需要考虑:
被控对象ADC0809的特性、接口电路结构形式。
ADC0809的外部特性:
ADC的外部引脚如图1,从图中
可以看出,ADC0809有八个模拟
量输入端(IN0-IN7),相应设
置3根模拟量通道地址线(ADDA
-ADDC),用以编码来选择8个
模拟量输入通道。
并且还设置1
根地址锁存允许信号ALE,高电
平有效。
当ALE变高,锁存由ADDa
-ADDc编码所选中的通道号,将
该通道的模拟量接入A/D转换
器。
ADC0809的分辨率为8位,有8
根数字量输出线(D0-D7),带有三态输出锁存器。
并设置了1根输出允许信号OE,高电平有效。
当读数据时,要使OE置高,打开三态输出锁存器,把转换的数字量送到数据线上。
ADC0809的转换启动信号是START,高电平有效。
转换结束信号EOC,转换过程中为低电平,转换完毕变为高电平,可利用EOC的上升沿申请中断,或作查询之用。
3.设计
1.A/D数据采集模块电路
本外设模块采用8855A作为接口电路,其中,PA0-PA7接数据线,其低三位与通道地址线ADDA-ADDC相连,即将通道号写入A口。
另外,转换后的数据从A口读入CPU。
PC0连接START和ALE信号,高电平有效,表示启动转换。
PC1连接输出允许信号OE。
当查询方式时,PC4连接EOC信号,转换过程中,PC4为0,当转换完毕时,PC4为1。
2.设计方法及其原理:
通过ADC0809数模转换器将由电位器转动所产生的模拟信号转换为数字信号,然后通过8255A并行接口送入内存并显示在窗口中。
4.原理图、PCB图、流程图
(1)原理图如下:
(2)PCB图如下:
(3)程序流程图
5.软件设计程序
C语言
#include<
dos.h>
stdio.h>
conio.h>
intchoose_channel();
/*选择通道函数*/
voidmain(void)
{
intch,n,pa,i,pc4;
clrscr();
printf("
Pleaseinputthea/dchannelNO(0--7):
"
);
ch=choose_channel();
Duringtheprocess,pressanykeytoexit!
\n"
do{
outportb(0x303,0x88);
/*初始化8255状态字,A口输出*/
outportb(0x300,ch);
/*送通道号至A口*/
outportb(0x303,0x01);
/*使PC0置高发启动信号*/
outportb(0x303,0x03);
/*pc1置1进行地址锁存*/
delay(100);
outportb(0x303,0x02);
/*pc1=0*/
outportb(0x303,0x98);
/*重写8255方式字,*/
/*A口输入,C口低四位输出,C口高四位输入*/
outportb(0x303,0x04);
/*pc2=0*/
pc4=inportb(0x302)&
0x10;
}while(pc4==0);
/*查询PC4的状态,直至为高电位,即,转换完成*/
outportb(0x303,0x05);
/*pc2=1,允许读转换结果*/
pa=inportb(0x300)*(0x77)/(0xff);
/*读转换结果*/
printf("
\nTempretureis%ddegree\n"
pa);
/*显示转换结果*/
}while(!
kbhit());
/*有任意键按下即退出转换*/
}
intchoose_channel()
intc;
c=getchar();
/*输入通道号*/
c=c-48;
/*输入通道号*/
if(c<
0||c>
7)
\nTheadchannelNOiswrong!
\nBesureitisbetween0and7!
\nPleaseinputtheNOagain!
:
/*通道号有误时,显示出错信息,并要求再次输入正确的通道号*/
elsebreak;
/*通道号正确时,跳出循环*/
}while
(1);
return(c);
/*返回正确的通道号*/
}
汇编语言:
ssegsegmentparastack'
stack'
dw200dup(?
)
ssegends
dsegsegmentparapublic'
data'
messagedb'
IfyouwanttoquitA/Dconvert,pleasepress'
'
ESC'
db0dh,0ah,'
$'
input_messagedb'
inputnumberofA/Dchannel'
error_messagedb'
inputincorrectA/Dchannel!
0dh,0ah
db'
pleaseinputnumberofA/Dchannelagain:
tempdb(?
dsegends
csegsegmentparapublic'
code'
assumess:
sseg,cs:
cseg,ds:
dseg
a_dpoprocfar
start:
movax,sseg
movss,ax
movax,dseg
movds,ax
movah,9;
显示提示信息
movdx,segmessage
movds,dx
movdx,offsetmessage
int21h
提示输入通道号
movdx,seginput_message
movdx,offsetinput_message
input:
movah,8;
检查输入通道号是否有错
cmpal,'
0'
jberror
7'
jaerror
subal,30h
movtemp,al;
若无错,则保存通道号
jmpbegin
error:
显示出错信息
movdx,segerror_message
movdx,offseterror_message
jmpinput
begin:
movdx,303h;
初始化8255状态字,A口输出
moval,88h
outdx,al
movdx,300h;
送通道号至A口
moval,temp
outdx,al
movdx,303h
moval,3h
outdx,al;
PC1置1进行地址锁存
moval,98h
outdx,al;
重写8255方式字,A口输入,C口低四位输出,C口高四位输入
lop:
使PC0置高发启动信号
moval,1h
movcx,0f00h;
delay
lop1:
looplop1
moval,0h
lopsub:
movdx,302
inal,dx
andal,10h
jzlopsub
moval,5h
movdx,300h
pushax
show:
andal,0f0h;
显示高4位
shral,4
cmpal,9
jahex
addal,30h
jmpnext
hex:
addal,37h
next:
movdl,al
movah,2
int21H
popax
andal,0fh;
显示低4位
jahex1
jmpnext1
hex1:
next1:
movdl,13;
向屏幕送回车符
movdl,10;
向屏幕送换行符
movah,0bh;
检测是否有ESC键按下
incal
jnzlop;
若无键按下,则继续采集
quit:
movax,4c00h;
程序退出
a_dpoendp
csegends
endstart
6.设计计算结果
预设通道号为3,计算结果为:
0-100
7.调试与操作说明
硬件连接:
将面包板上的一根导线接在实验平台+12伏的电源上,然后将ADC0809转换器上CLK引脚的一根导线接在实验平台TP3上的CLK处。
软件:
在MF2KI中打开程序Caex.cpp,进行编译及运行,在DOS窗口中显示调试结果。
通过输入预设通道号3显示采集的数据,然后转动电位器,在屏幕上显示采集到的数据在变化,当最大时结果为100,最小时结果为0。
与程序计算结果吻合,调试成功。
五、感想体会
1、通过该课程设计,我们进一步了解了数据采集程序设计原理和方法,了解了一些电子元件的特性和用法,更重要的是了解了在实际应用中解决一些问题的基本方法和思想。
2、对以前所学的知识又重新有了认识,把整个分散的知识结合在了一起,不仅对这个实验有进一步的了解,也让我对计算机硬件方面有了更大的兴趣,于是又顺便问了有关单片机的一些问题。
3、总的来说,这次实验让我们知道计算机的应用很广泛,单片机的应用也同样广泛,只是我们能否运用所学的知识做出很有价值的东西。
这次课程设计就给了我们一个动脑、动手的机会。
六、参考文献
[1]刘乐善,微机接口技术原理及应用,华工大出版社
[2]沈美明,IBM-PC汇编语言程序设计,清华大学出版社
[3]李振格,DOS功能调用详解,北京航空航天大学出版社
[4]刘乐善等编,MF多功能微机接口实验与开发平台技术说明与实验指导,华工大计算机系
[5]protel印制版设计软件使用手册,北京科海培训中心
[6]谭浩强编,程序设计,清华大学出版社
课程设计任务书及成绩评定
课题名称:
微机数据采集系统设计
完成者:
刘振辉胡雨婷韩毅张鹏伍佳
1、设计的目的与要求
目的:
掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统,结合一个实际的接口技术问题在实验台上编程模拟实现;
掌握基本接口电路的综合应用以及微机接口技术及接口芯片的综合应用。
要求:
单通道采集数据并显示;
多通道循环采集数据并显示。
2、设计进度及完成情况
日期
内容
3、成绩评定
学号
姓名
设计成绩(老师填写)
09408217
刘振辉
09408218
胡雨婷
09408219
韩毅
09408220
张鹏
09408221
伍佳
评定老师:
(签字)
二0一二年月日