扬大微机课设报告 数据采集.docx

上传人:b****1 文档编号:3062650 上传时间:2023-05-05 格式:DOCX 页数:17 大小:123.55KB
下载 相关 举报
扬大微机课设报告 数据采集.docx_第1页
第1页 / 共17页
扬大微机课设报告 数据采集.docx_第2页
第2页 / 共17页
扬大微机课设报告 数据采集.docx_第3页
第3页 / 共17页
扬大微机课设报告 数据采集.docx_第4页
第4页 / 共17页
扬大微机课设报告 数据采集.docx_第5页
第5页 / 共17页
扬大微机课设报告 数据采集.docx_第6页
第6页 / 共17页
扬大微机课设报告 数据采集.docx_第7页
第7页 / 共17页
扬大微机课设报告 数据采集.docx_第8页
第8页 / 共17页
扬大微机课设报告 数据采集.docx_第9页
第9页 / 共17页
扬大微机课设报告 数据采集.docx_第10页
第10页 / 共17页
扬大微机课设报告 数据采集.docx_第11页
第11页 / 共17页
扬大微机课设报告 数据采集.docx_第12页
第12页 / 共17页
扬大微机课设报告 数据采集.docx_第13页
第13页 / 共17页
扬大微机课设报告 数据采集.docx_第14页
第14页 / 共17页
扬大微机课设报告 数据采集.docx_第15页
第15页 / 共17页
扬大微机课设报告 数据采集.docx_第16页
第16页 / 共17页
扬大微机课设报告 数据采集.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

扬大微机课设报告 数据采集.docx

《扬大微机课设报告 数据采集.docx》由会员分享,可在线阅读,更多相关《扬大微机课设报告 数据采集.docx(17页珍藏版)》请在冰点文库上搜索。

扬大微机课设报告 数据采集.docx

扬大微机课设报告数据采集

扬州大学

微机原理及应用课程设计报告

题目数据采集

班级

学号

姓名

同组成员

指导教师

成绩

 

2015.07.10

 

一、课程设计的任务

1.掌握8255A的工作原理及使用方法

2.进一步了解ADC0809的性能及编程方法。

3.进一步掌握七段数码管显示数字的原理及编程方法。

二、总体设计方案

通过电位器RW1输出0~5V直流电压,送入ADC0809的通道0(IN0)。

1.实验要求

(1)编程采集IN0输入的电压,并把转换后的数据以十六进制的形式在七段数码管上显示,范围00~FFH。

(2)把转换后的数据以十进制的形式在七段数码管上显示,范围0.0~5.0V。

(3)当采集到的电压值超过4.5V时,喇叭发声报警。

2.实验原理

(1)如图1.1、图1.2所示,8255A的PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,8255A的PB0、PB1、PB2与位码驱动输入端X1、X2、X3相连,控制数码管的选通。

(2)ADC0809的转换结束信号EOC与8255A的PC7相连,通过查询方式判断ADC0809的通道0(IN0)是否转换结束。

三、部分电路设计

LED显示单元的接线:

A/D转换单元:

8255连接LEDADC0809连接880386及输入电压

PA0-----------AD0~D7---------------XD0~XD7

PA1------------BA、B、C--------------GND

PA2------------CIN0---------------ADJ(0~5V)

PA3------------DWR---------------IOW#

PA4------------ERD-----------------IOR#

PA5------------FCS---------------IOY1

PA6------------GCLK---------------CLK

PA7------------DP

串行单元的接线:

喇叭报警器:

8255连接803868254连接80386,ADC0809

D0~D7-------------XD0~XD7D0~D7------------------XD8~XD15

PB0~PB5---------X1~X6A0~A1------------------XA1~XA2

CS-----------------IOY3CS-----------------------IOY2

A0~A1-----------XA1~XA2CLKO-------------------CLK

WR---------------IOW#WR----------------------WR

RD----------------IOR#RD----------------------RD

GATE0----------------+5V

OUT0--------------------SPK

四、硬件接线图

图1ADC0809连线图

图28255A连线图

图38254连线图

 

五、软件设计流程图

1.根据功能需求,系统主程序主要包括初始化程序、A/D转换子程序、显示子程、BCD转换子程序和报警子程序。

主程序流程图见图4所示

图四:

主程序流程图

2.A/D转换子程序用来控制对ADC0809对电压数据的采样和模拟输入电压的转换,并将对应的数值存放到相应的数据段BCD字节单元,供CPU取出显示到LED单元。

数据的读取方式可以采用延时等待的方式,ADC0809的转换控制如下:

选择通道并启动转换等待中断读取转换结果。

A/D转换子程序的程序流程图如图5所示。

图5:

AD转换

3.显示子程序跟BCD码转换子程序

显示子程序采用动态扫描法实现三位数码管的数值显示。

测量所得的A/D转换数据放在数据段BCD字节存储单元,测量数据在显示时需要转换为十进制BCD码放在TABLE1表中。

由于ADC0809是将模拟信号转换为数字信号,所以要将数字信号转换为对应的电压值,公式为V=DATA/51。

转换时取一位整数和两位小数,再将数据转换为显示码就可以输出显示了。

三位数据显示程序流程图如图6所示。

显示子程序中调用了BCD码转换子程序,BCD码转换程序是将数据转换为BCD码值。

显示子程序是将数据一次性输出,主要是将对应的段码和位码输出,注意小数点的处理。

延时子程序利用8254计时,用8255来查询计时是否完成。

BCD码转换子程序流程图见图7所示。

 

Y

N

 

N

Y

Y图7BCD转换子程序流图

N

图6三位数据显示程序流程图

4.报警子程序

报警子程序是接受8254的信号来发出警告的。

当采样的平均值超过4.5V时,8254将会发一路信号给SPK喇叭,喇叭发出声响警告。

报警子程序流程图如图8所示。

N

Y

 

图8报警子程序流程图

 

六、程序段功能汇总

(1)ADC0809的IN0端口地址为:

640H,8255A的端口地址为:

A口:

6C0H、B口:

6C2H、C口:

6C4H、控制口:

6C6H。

(2)首先启动一次A/D转换,将转换结束后将采集数据保存到存储器中。

;A/D转换子程序

GET:

MOVBX,0

MOVCX,5

LOOP1:

MOVDX,0640H;AD转换器的端口地址

OUTDX,AL;启动AD转换器

CALLDALLY;等待延迟

INAL,DX;从AD转换器的端口地址读出数据

XORAH,AH;AX高八位AH清0

ADDBX,AX;将读出的数据进行累加

LOOPLOOP1;读5次数据进行累加

MOVAX,BX

MOVDL,5;为了数据精确求取5次的平均值

DIVDL

MOVAVERAGE,AL;送入变量单元内

LEASI,AVERAGE

(3)将采集到的数据转换为十进制数,转换好的三位十进制数据分别保存于存储器的显示缓冲区中。

;BCD转换子程序

CHBCD:

LEABX,TABLE1

LEASI,BCD

MOVCX,3;实现三位数码管的数值显示,依次送个位和小数点后的两位

MOVAL,AVERAGE

XORAH,AH

LOOP2:

MOVDL,51;(X/5)256=得到的二进制电压值,变成十进制数的话是逆过程,256/5=51,所以除以51得到十进制电压

DIVDL;平均值除以51

XLAT

MOV[SI],AL;求bcd码送入对应BCD单元

INCSI

MOVAL,AH

XORAH,AH

MOVDL,10

MULDL

LOOPLOOP2;精确到小数点后两位

(4)8254初始化,8254的端口地址设为680H~686H,通道0的工作方式设定为方式3,初值为1000,8255A的PC3初始电平设为低电平。

(5)数据显示完毕之后,判断缓冲中采集数据是否大于[(4.5/5)*255]=229(用数字0~255的范围来模拟电压0~5V的范围,4.5V相当于十进制数的229),如果是则将PC3置位高电平,8254输出方波驱动扬声器发声报警。

;报警程序段

JUG:

PUSHCX

PUSHAX

MOVAL,AVERAGE;取出之前存入的平均值,放进AL

CMPAL,0E5H;4.5V占比重0.9,256*0.9=226用16进制表示为0E5H

JNBNEXT2;超过4.5V的警戒值,启动报警

MOVDX,0686H

MOVAL,36H

OUTDX,AL

MOVAL,0

OUTDX,AL

JMPNEXT3

NEXT2:

MOVDX,0686H;8254的端口初始化,

MOVAL,36H;00110110B计数器0,读写高低位,采用方式3二进制计数

OUTDX,AL

MOVAX,2000

MOVDX,0680H;计数器0送初值

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDALLY

NEXT3:

POPAX

POPCX

RET

七、程序清单

SSTACKSEGMENTSTACK

DW64DUP(?

SSTACKENDS

PUBLICBCD

DATASEGMENT

TABLE1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数码管表

;对应012345数码管共阴极

BCDDB0,0,0

AVERAGEDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

CALLGET

CALLJUG;判断是否大于4.5

CALLCHBCD

CallPRT1

CALLPRT;调用显示子程序

JMPSTART

;BCD转换子程序

CHBCD:

LEABX,TABLE1

LEASI,BCD

MOVCX,3;实现三位数码管的数值显示,依次送个位和小数点后的两位

MOVAL,AVERAGE

XORAH,AH

LOOP2:

MOVDL,51;(X/5)256=得到的二进制电压值,变成十进制数的话是逆过程,256/5=51,所以除以51得到十进制电压

DIVDL;平均值除以51

XLAT

MOV[SI],AL;求bcd码送入对应BCD单元

INCSI

MOVAL,AH

XORAH,AH

MOVDL,10

MULDL

LOOPLOOP2;精确到小数点后两位

;A/D转换子程序

GET:

MOVBX,0

MOVCX,5

LOOP1:

MOVDX,0640H;AD转换器的端口地址

OUTDX,AL;启动AD转换器

CALLDALLY;等待延迟

INAL,DX;从AD转换器的端口地址读出数据

XORAH,AH;AX高八位AH清0

ADDBX,AX;将读出的数据进行累加

LOOPLOOP1;读5次数据进行累加

MOVAX,BX

MOVDL,5;为了数据精确求取5次的平均值

DIVDL

MOVAVERAGE,AL;送入变量单元内

LEASI,AVERAGE

MOVBL,[SI]

;源程序,显示程序段

PRT:

MOVDX,06C6H;初始化8255

MOVAL,80H;10000000BABC输出方式

OUTDX,AL

MOVCX,100H

LOOP3:

LEASI,BCD

MOVAH,0FEH;置位码

LOOP4:

MOVAL,AH

MOVDX,06C2H;初始化B口

OUTDX,AL

MOVAL,[SI]

CMPAH,0FEH

JNZNEXT1

ORAL,80H;最高位置1小数点点亮

NEXT1:

MOVDX,06C0H;初始化A口

OUTDX,AL

CALLDALLY

ROLAH,1

INCSI

CMPAH,0F7H

JNZLOOP4

LOOPLOOP3

RET

DALLY:

PUSHCX;延时程序

PUSHAX

MOVCX,10H

A77:

MOVAX,10H

A88:

DECAX

JNZA88

LOOPA77

POPAX

POPCX

RET

;报警程序段

JUG:

PUSHCX

PUSHAX

MOVAL,AVERAGE;取出之前存入的平均值,放进AL

CMPAL,0E5H;4.5V占比重0.9,256*0.9=226用16进制表示为0E5H

JNBNEXT2;超过4.5V的警戒值,启动报警

MOVDX,0686H

MOVAL,36H

OUTDX,AL

MOVAL,0

OUTDX,AL

JMPNEXT3

NEXT2:

MOVDX,0686H;8254的端口初始化,

MOVAL,36H;00110110B计数器0,读写高低位,采用方式3二进制计数

OUTDX,AL

MOVAX,2000

MOVDX,0680H;计数器0送初值

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDALLY

NEXT3:

POPAX

POPCX

RET

CODEENDS

ENDSTART

 

八、实验结果及分析

实验是通过转动ADJ单元上的旋钮调节输入的电压的,旋钮输出的电压经过AD转换器后转换成具体的数值。

当输入的电压平均值在4.5v以下时喇叭没有警告的声音发出。

当转动旋钮使电压超过4.5v时,喇叭有报警的声音发出。

报警声音的音调跟送入的频率有关,频率越高音调越高。

实验成功。

九、课程设计体会和总结

此次的微机原理课程设计,在学期基础实验的基础上提高了我们对于微机原理的实际应用要求,在不断的深入理解理论知识的基础上,我们这组同学通过不断的修改和调试最终成功的运行了我们的程序,达到了老师对于此次课程设计的要求。

通过这一个星期的课程设计,我对于微机原理这门课程的掌握程度以及实际的应用能力都有了一定程度上的提高。

组员之间的共同合作,不同的分工,我们各司其职,默契配合,共同解决面临的难题,共同分享成功的喜悦。

在实践的检验中,我们学到的知识得到了有效的巩固,动手的能力,独立思考的能力,团队合作的能力都得到了有效的锻炼。

在设计的过程当中我们也遇到了很多的问题。

一开始的时候我们的接线遇到了问题,碰到LED的显示的时候并不知道怎么办才好。

经过学习之后懂得了LED灯的原理终于有所突破。

至于8255A芯片和8254我们都很熟悉根本不算什么难的问题。

接线图完成之后就开始进行编程。

汇编的东西我们又重新的温习了一边。

在编程的过程当中我发现单独的模块来说我们都可以很好地完成但是涉及到系统性的东西就很不容易,后来想了想原因就是我们很少写完整的程序都是写的具体的某一个功能的程序片段。

这次涉及到完整的程序我们的进度显然是慢了些。

但是后来经过数次的调整终于没有了大的问题。

就在即将验收的时候我们忽略了一个重要的问题,就是我们没有将十六进制的采集到的电压在LED灯上显示,只是显示了转换成BCD码的数值,后来又经过一番的调整终于完成了。

我们大家都很高兴。

尽管这次的设计过程很简单,但是我们每个人心中都是很开心的。

这次课程设计培养了我们的动手能力,系统的运用了我们之前学过的知识,加深了我们对于微机原理的理解。

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

当前位置:首页 > 小学教育 > 语文

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

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