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

上传人:b****1 文档编号:767681 上传时间:2022-10-12 格式:DOCX 页数:16 大小:49.96KB
下载 相关 举报
扬大微机课设报告记录数据采集.docx_第1页
第1页 / 共16页
扬大微机课设报告记录数据采集.docx_第2页
第2页 / 共16页
扬大微机课设报告记录数据采集.docx_第3页
第3页 / 共16页
扬大微机课设报告记录数据采集.docx_第4页
第4页 / 共16页
扬大微机课设报告记录数据采集.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

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

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

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

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

作者:

日期:

扬州大学

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

题目

班级

学号

姓名

同组成员

指导教师

成绩

2015.07.10

一、课程设计的任务2

二、总体设计方案2

三、部分电路设计2

四、硬件接线图3

五、软件设计流程图4

六、程序段功能汇总7

七、程序清单9

八、实验结果及分析13

九、课程设计体会和总结13

一、课程设计的任务

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

2•进一步了解ADC0809勺性能及编程方法。

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

二、总体设计方案

通过电位器RW输出0〜5V直流电压,送入ADC0809勺通道O(INo)。

1•实验要求

(1)编程采集IN。

输入的电压,并把转换后的数据以十六进制的形式在七段数码管上显示,范围00〜FFH

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

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

2•实验原理

(1)如图1.1、图1.2所示,8255A的PA〜PA分别与七段数码管的段码驱动输入端a〜g相连,8255A的PB0、PB、PB2与位码驱动输入端X、茨、%相连,控制数码管的选通。

(2)ADC0809的转换结束信号EOC与8255A的PC相连,通过查询方式判断ADC080啲通道0(IN。

)是否转换结束。

 

三、部分电路设计

LED显示单元的接线:

8255连接LED

PA0A

PA1B

PA2C

PA3D

PA4E

PA5F

PA6G

PA7DP

串行单元的接线:

8255连接80386

D0~D7XD0~XD7

PB0~PB5X1~X6

CSIOY3

A0~A1XA1~XA2

WRIOW#

A/D转换单元:

ADC0809连接880386及输入电压

D0~D7XD0~XD7

A、B、CGND

IN0ADJ(0~5V)

WRIOW#

RDIOR#

CSIOY1

CLKCLK

喇叭报警器:

8254连接80386,ADC0809

D0~D7XD8~XD15

A0~A1XA1~XA2

CSIOY2

CLKOCLK

WRWR

 

RDIOR#

RDRD

GATEO+5V

OUT0SPK

四、硬件接线图

+5V12

ADC0809

CLK

ADJ

VCC

(MSB)D7

VREF(+)

D6

VREF(」

D5

GND

D4

D3

D2

CLOCK

D1

(LSB)d0

IN7

ADDC

IN6

ADDB

IN5

ADDA

IN4

IN3

EOC

IN2

ALE

IN1IN0

START

OE

11

13

16

10

17

23

7

22

6

26

9

20

19

18

8

15

14

24

25

21

D7

D6

D5

D4

D3

D2

D1

Do

+5V

RW

图1ADC0809连线图

S255A

1

>1

CS

6

>1

5

2

3-PC7

3

IOW

640H〜

IOR

74LS02

Do-D*

恥PA:

P挖PA*PAj%

«00H-606H

PC-

GATE:

.

EOC

图28255A连线图

-3-

 

 

CLKof

1MHZ

8254GATEo

11

680H~686^21,

CS

OUTo

PC3

10

图38254连线图

 

 

五、软件设计流程图

1.

A/D转换子程序、显示

4所示

根据功能需求,系统主程序主要包括初始化程序、

子程、BCD专换子程序和报警子程序。

主程序流程图见图

开始

 

初始化

图四:

主程序流程图

 

 

2.A/D转换子程序用来控制对ADC080对电压数据的采样和模拟输入电压的

转换,并将对应的数值存放到相应的数据段BCD字节单元,供CPU取出显示到LED单元。

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

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

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

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

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

测量所得的

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

由于ADC0809是将模拟信号转换为数字信号,所以要将数字信号转换为对应的电压值,公式为V=DATA/51转换时取一位整数和两位小数,再将数据转换为显示码就可以输出显示了。

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

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

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

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

 

 

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

4•报警子程序

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

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

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

初始化8254

调用延时J

F

"结

图8报警子程序流程图

六、程序段功能汇总

(1)ADC080啲IN。

端口地址为:

640H8255A的端口地址为:

A口:

6C0HB口:

6C2HC口:

6C4H、控制口:

6C6H

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

;A/D转换子程序

GET:

MOVBX,0

MOVCX,5

LOOP1:

MOVDX,0640H

OUTDX,AL

CALLDALLY

;AD转换器的端口地址;启动AD转换器

;等待延迟

-7-

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;求bed码送入对应BCD单元

INCSI

MOVAL,AH

XORAH,AH

MOVDL,10

MULDL

LOOPLOOP2;精确到小数点后两位

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

(5)数据显示完毕之后,判断缓冲中采集数据是否大于[(4.5/5)*255]=229(用数字0~255的范围来模拟电压0~5V的范围,4.5V相当于十进制数的229),如果是则将PC置位高电平,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

;8254的端口初始化,

;00110110B计数器0,读写高低位,采用方式

OUTDX,AL

MOVAX,2000

;计数器0送初值

MOVDX,0680H

OUTDX,AL

MOVAL,AH

OUTDX,AL

CALLDALLY

NEXT3:

POPAX

POPCX

RET

七、程序清单

SSTACKSEGMENTSTACK

DW64DUP⑺

SSTACKENDS

PUBLICBCD

DATA

SEGMENT

TABLE1

DB

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

;对应

012345数码管共阴极

BCD

DB

0,0,0

AVERAGEDB

0

DATA

ENDS

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;求bed码送入对应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:

MOV

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1