微机数据采集系统设计.docx
《微机数据采集系统设计.docx》由会员分享,可在线阅读,更多相关《微机数据采集系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
微机数据采集系统设计
黄冈师范学院
课程设计报告
课程名称:
微机原理与接口技术课程设计
设计题目:
微机数据采集系统设计
院系:
计算机科学与技术学院
专业:
计算机科学与技术
组别:
同组成员姓名:
日期:
08年6月2日~08年6月9日
指导教师:
成绩:
目录
第一章需求分析1
1.本课程设计题目1
2.本课程设计要求及任务1
3.课程设计思想1
4.软硬件开发环境2
5.开发工具2
第二章概要设计3
1.分析3
2.设计4
第三章详细设计5
1.原理图及PCB图5
2.程序流程图7
3.软件设计程序8
4.设计计算结果12
第四章调试与操作说明12
第五章课程设计总结与体会12
第六章致谢14
第七章参考文献14
第一章需求分析
1.本课程设计题目
微机数据采集系统设计
2.本课程设计要求及任务
要求:
单通道采集数据并显示;
多通道循环采集数据并显示。
任务:
进行微机数据采集系统电路硬件设计,画出电路原理图PCB图或元器件布线图;安装或焊接元器件;进行数据采集系统控制程序设计(采用ASM或CPP语言);系统联调,提交一个满足上述二种要求之一的微机数据采集系统设计。
3.课程设计思想
首先,根据实验要求,设计A/D数据采集电路,然后,按照电路原理,选用一些元器件,在面包板上分别搭建电路模块。
由于实验中要用到MFID多功能微机实验平台板上的8255A作接口控制信号,所以要用两头带插针的软导线,通过26芯电缆的插孔将8255A的输出信号接入面包板,这样整个的组成了A/D数据采集系统的硬件。
然后,编写A/D数据采集系统的控制程序,并进行调试。
最后,加入软件控制程序,对接口进行驱动,组成了A/D数据采集系统。
A/D数据采集模块、平台板、微机组成的数据采集系统框图
如图3.1所示。
图3.1A/D数据采集系统图示r意图
4.软硬件开发环境
MF软件采用系统集成技术,把实验程序的开发工具,故障诊断程序和外设模块演示程序集成在一个环境中,构成一个用户程序集成开发环境IDE(IntegratedDevelopmentEnvironment)。
用户程序的编辑、编译、连接、运行和修改的全过程都在一个集成的环境中完成,大大提高了编程的效率。
这个环境目前已有4个版本,每个版本提供了内容丰富的汇编语言和C/C++语言开发软件包,并以全屏幕窗口环境的形式供用户使用。
5.开发工具
实验程序的开发工具包括编辑器、编译系统、连接程序和调试程序。
1:
编辑器采用全屏幕多窗口编辑器,复制,粘贴,裁减十分方便。
:
2:
编译系统MF软件包括了C/C++语言和汇编语言两个编译系统,用户可根据自己所熟悉的语言,任选一个来编写程序,并在集成环境中进行程序的编译(汇编)、连接、运行与调试。
3:
连接程序采用TLINK。
4:
调试程序采用TDEBUGGER全屏幕调试程序,直观全面,使用方便。
以上应用程序(实验程序)开发工具,集成在集成开发环境(IDE)中,用户只需在集成开发环境全屏幕窗口中,点击主菜单的相应菜单项,即可随时启用。
第二章概要设计
1.分析
要实现上述设计要求,至少需要考虑:
被控对象ADC0809的特性、接口电路结构形式。
ADC0809的外部特性:
ADC的外部引脚如图4.7,从图中
可以看出,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的上升沿申请中断,或作查询之用。
2.设计
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并行接口送入内存并显示在窗口中。
第三章详细设计
1.原理图及PCB图
原理图如下:
PCB图如下:
2.程序流程图
3.软件设计程序
C语言
#include
#include
#include
intchoose_channel();/*选择通道函数*/
voidmain(void)
{
intch,n,pa,i,pc4;
clrscr();
printf("Pleaseinputthea/dchannelNO(0--7):
");
ch=choose_channel();
printf("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*/
do{
pc4=inportb(0x302)&0x10;
}while(pc4==0);/*查询PC4的状态,直至为高电位,即,转换完成*/
outportb(0x303,0x05);/*pc2=1,允许读转换结果*/
pa=inportb(0x300)*(0x77)/(0xff);/*读转换结果*/
printf("\nTempretureis%ddegree\n",pa);/*显示转换结果*/
delay(100);
}while(!
kbhit());/*有任意键按下即退出转换*/
}
intchoose_channel()
{
intc;
do{
c=getchar();/*输入通道号*/
c=c-48;/*输入通道号*/
if(c<0||c>7)
printf("\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'
db0dh,0ah,'$'
error_messagedb'inputincorrectA/Dchannel!
',0dh,0ah
db'pleaseinputnumberofA/Dchannelagain:
'
db'$'
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
movah,9;提示输入通道号
movdx,seginput_message
movds,dx
movdx,offsetinput_message
int21h
input:
movah,8;检查输入通道号是否有错
int21h
cmpal,'0'
jberror
cmpal,'7'
jaerror
subal,30h
movtemp,al;若无错,则保存通道号
jmpbegin
error:
movah,9;显示出错信息
movdx,segerror_message
movds,dx
movdx,offseterror_message
int21h
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进行地址锁存
movdx,303h
moval,98h
outdx,al;重写8255方式字,A口输入,C口低四位输出,C口高四位输入
lop:
movdx,303h;使PC0置高发启动信号
moval,1h
outdx,al
movcx,0f00h;delay
lop1:
looplop1
movdx,303h
moval,0h
outdx,al
lopsub:
movdx,302
inal,dx
andal,10h
jzlopsub
movdx,303h
moval,5h
outdx,al
movdx,300h
inal,dx
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位
cmpal,9
jahex1
addal,30h
jmpnext1
hex1:
addal,37h
next1:
movdl,al
movah,2
int21h
movdl,13;向屏幕送回车符
movah,2
int21h
movdl,10;向屏幕送换行符
movah,2
int21h
movah,0bh;检测是否有ESC键按下
int21h
incal
jnzlop;若无键按下,则继续采集
quit:
movax,4c00h;程序退出
int21h
a_dpoendp
csegends
endstart
4.设计计算结果
预设通道号为3,计算结果为:
0-100
第四章调试与操作说明
硬件连接:
将面包板上的一根导线接在实验平台+12伏的电源上,然后将ADC0809转换器上CLK引脚的一根导线接在实验平台TP3上的CLK处。
软件:
在MF2KI中打开程序Caex.cpp,进行编译及运行,在DOS窗口中显示调试结果。
通过输入预设通道号3显示采集的数据,然后转动电位器,在屏幕上显示采集到的数据在变化,当最大时结果为100,最小时结果为0。
与程序计算结果吻合,调试成功。
第五章课程设计总结与体会
通过该课程设计,我进一步了解了数据采集程序设计原理和方法,了解了一些电子元件的特性和用法,更重要的是了解了在实际应用中解决一些问题的基本方法和思想。
当选到这个课程设计的时候,我就想要把这个做好还有点难度。
因为我对数据采集这个概念不是很了解,我的头脑中也没有一个比较清晰的轮廓,不知道如何下手。
6月5号,我领取了实验器材,其中面包板的用法、三极管和电位器的接法我不是很清楚,我决定查看相关的资料。
对于这个课程设计的原理和方法我也不大了解,还没来得及看课本,就事先问了刘小俊老师。
他对实验原理的解说中,我大致弄懂了实验的基本原理以及实验的过程,对于其中一些细节问题,比如可编程并行接口芯片8255的特性、工作方式,ADC0809的针脚、以及时序图,我还需要看课本。
接下来的几天,我是先把这个实验的原理和过程先弄清楚,然后和组员一起动手做实验,把硬件平台搭建起来。
在刘小俊老师的帮助下,用参考程序进行运行,顺利通过,硬件方面的设计就到此了。
然后我们认真解读老师给的汇编参考程序,由于我们对汇编语言不是很熟,所以看起来还花了点时间,终于明白了个大概。
于是自己动手参考有关资料编写C语言程序,改了很多次都没有改正确,后来在刘小俊老师和孙老师的指导下,才明白自己编写时没有按照ADC0809的时序来,所以每次都出错,这个时候终于明白了刘小俊老师经常说的时序问题很重要,以前都忽略了这一点。
实验到这一步就差不多了,但我进一步问了刘小俊老师整个实验从数据采集到结果显示的过程。
让我对以前所学的知识又重新有了认识,把整个分散的知识结合在了一起,不仅对这个实验有进一步的了解,也让我对计算机硬件方面有了更大的兴趣,于是又顺便问了有关单片机的一些问题。
因为我想数据采集这个实验能够让采集得来的模拟信息转换成数字信息并显示出来,那么现实中就有很地方就是用到这种系统的,我联想到了交通情况的控制就是一个数据采集和一个远程控制的问题,还有温度变化的显示、甚至有些大型的电站的电压控制都是此类问题,只是原理和过程比现在的要复杂的多。
总的来说,这次实验让我知道计算机的应用很广泛,单片机的应用也同样广泛,只是我们能否运用所学的知识做出很有价值的东西。
这次课程设计就给了我们一个动脑、动手的机会。
第六章致谢
感谢老师和老师的指导!
感谢师兄讲解Protel软件!
感谢辛苦工作,使我们这一组能够顺利完成设计!
第七章参考文献
1.刘乐善微机接口技术原理及应用华工大出版社
2.沈美明IBM-PC汇编语言程序设计清华大学出版社
3.李振格DOS功能调用详解北京航空航天大学出版社
4.刘乐善等编MF多功能微机接口实验与开发平台技术说明与实验指导华工大计算机系
5.protel印制版设计软件使用手册北京科海培训中心
6.谭浩强编程序设计清华大学出版社
问题:
1、“目录”二字要居中
2、正文的内容用5号宋体就行了,
3、图都应有图示说明
4、你具体复杂的是哪一部分