课程设计任务书实验报告.docx

上传人:b****3 文档编号:10337063 上传时间:2023-05-25 格式:DOCX 页数:13 大小:120.49KB
下载 相关 举报
课程设计任务书实验报告.docx_第1页
第1页 / 共13页
课程设计任务书实验报告.docx_第2页
第2页 / 共13页
课程设计任务书实验报告.docx_第3页
第3页 / 共13页
课程设计任务书实验报告.docx_第4页
第4页 / 共13页
课程设计任务书实验报告.docx_第5页
第5页 / 共13页
课程设计任务书实验报告.docx_第6页
第6页 / 共13页
课程设计任务书实验报告.docx_第7页
第7页 / 共13页
课程设计任务书实验报告.docx_第8页
第8页 / 共13页
课程设计任务书实验报告.docx_第9页
第9页 / 共13页
课程设计任务书实验报告.docx_第10页
第10页 / 共13页
课程设计任务书实验报告.docx_第11页
第11页 / 共13页
课程设计任务书实验报告.docx_第12页
第12页 / 共13页
课程设计任务书实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课程设计任务书实验报告.docx

《课程设计任务书实验报告.docx》由会员分享,可在线阅读,更多相关《课程设计任务书实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

课程设计任务书实验报告.docx

课程设计任务书实验报告

 

班级:

姓名:

座号:

试验时间:

 

一、试验题目:

数据采集系统

二、设计目的:

1、掌握数据采集系统的设计、实现基本方法,提高软、硬件综合设计、调试与应用能力;提高分析问题、解决问题的能力。

2、掌握I/O接口地址译码的原理。

3、掌握并行可编程接口芯片8255A、可编程定时/计数器芯片8253、中断控制器8259和模数转换器ADC0809的应用方法。

三、设计内容

1、采用定时中断和软件控制的方法,实现每隔N秒(N可设置)实现对模拟量的采集。

2、根据预先设置的数值和采集的模拟量决定控制输出。

如假设控制中心值为3.0V,当输入值超过3.0±0.3(V)时,控制步进电机转:

正偏差时反转,负偏差时正转;当输入值超过3.0±0.8(V)时,进行上、下限报警。

3、对采集的值应进行数字滤波,如可一次采集10个值,去掉最大值、最小值,然后取平均值。

4、使用循环队列保存近期(如100个数据)数据值,并将其数据用波形的形式显示出来。

5、实现多路采集,不同路的中心值及上、下项等参数可灵活设置。

注:

其中1~3为基本要求,4~5可根据自己的能力选择实现。

四、课程设计书

1、概述:

说明设计的背景、意义、功能及实现方法。

1)背景:

专周实验;

2)意义:

1)、掌握数据采集系统的设计、实现基本方法,提高软、硬件综合设计、调试与应用能力;提高分析问题、解决问题的能力。

2)、掌握I/O接口地址译码的原理。

3)、掌握并行可编程接口芯片8255A、可编程定时/计数器芯片8253、中断控制器8259和模数转换器ADC0809的应用方法。

3)功能:

每隔1s模拟量转化成数字量。

4)实现方法:

1)用8253芯片做定时,用2计数器计数,每隔1s(假定1s)输出一个脉冲给8255芯片;

2)8255芯片设置成C口输入,A、B口输出;

3)当8253输进8255一个脉冲周期后,0809模数转换器采集一个数据,通过EOC反汇给8255芯片;并且循环10次;

4)8255判断是转动进步机还是报警。

2、系统的硬件组成及原理。

3、软件组成、框图及原理。

4、调试过程说明。

原先地址译码器这一块一直弄不懂,经过试验,明白了地址是各个端口的地址,

例如本实验中8055控制字写入地址为20bh那么C、B、A地址分别为20ah、209h、

208h。

5、系统使用说明。

接通电源后,旋转模拟量采集器(0~5v)旋钮,旋转结束采集。

6、设计体会。

通过本次专周试验,我进一步了解了8253芯片、8255芯片、0809芯片,并掌握了他们的一些应用。

当然在实验中又遇到很多困难,期间请教了不少同学老师,最后终于完成实验。

而对于各个芯片的端口地址,实验前一直不明白是从哪里来的,但经过试验我明白了,很有成就感。

7、带有较详细注释的软件清单。

codesegment

assumecs:

code

start:

movax,8000h

movds,ax

movcx,10

movbh,00h

movdx,20Bh;对8255写入控制字

moval,10000001b

outdx,al

;时钟初始化

moval,01110110b;计数器1为方式3,采用二进制计数,

;先低后高写入计数值

Movdx,213h

outdx,al;写入方式控制字

movax,20000;计数值为20000

movdx,211h

outdx,al

moval,ah;写入低字节计数值

outdx,al

moval,00110110b;计数器0为方式3,采用二进制计数,

;先低后高写入计数值

Movdx,213h

outdx,al;写入方式控制字

movax,50;计数值为50

movdx,210h

outdx,al;写入低字节计数值

moval,ah

outdx,al

movsi,2000h

movdi,1000h

movbyteptr[di],0

again1:

movdx,20Ah;从C口输入时钟脉冲

wait0:

;低电平等待

inal,dx

testal,02

jzwait0

wait1:

;高电平等待

inal,dx

testal,02

jnzwait1

;一个时钟周期结束,采样进行数模转换

movdx,20bh;C口检查数模转换是否完成的输入口复位

moval,00000000b

outdx,al

MOVAL,00H

MOVDX,200H

OUTDX,AL

aa:

;检查AD转换是否完成,未完成持续等待

movdx,20Ah

inal,dx

testal,01h

jzaa

MOVDX,200H

INal,DX

movbl,al

cmpcx,0;当已经存入10个数时不再存入buff数组中

Jzpa

movbyteptr[si],bl

addwordptr[di],bx

INCSI

DECCX;存入一个数CX减1

cmpcx,1;存入最后一个数的时候进行滤波

jnzpa;采集不是第十个数的时候跳转不进行滤波

subax,ax

movsi,2000h

movcx,10

sort:

;寻找采集量中的最大值最小值最大值存放在AH中最小值存放在AL中

cmpbyteptr[si],ah;[si]大于ah将[si]中值存入ah中不大于跳转

jbda

movah,[si]

da:

cmpbyteptr[si],al;[si]小于al将[si]中值存入al中不小于跳转

jbda

jaxiao

moval,[si]

xiao:

INCsi;si+1

loopsort

movdl,ah

movah,00h

subwordptr[di],ax;减去最大数

moval,dl

subwordptr[di],ax;减去最小数

movax,[di];[di]值存入ax中

movdl,08h

divdl

movwordptr[di],ax;除8结果存在8000:

2000单元中

pa:

cmpbl,143;电压是否大于2.8V大于报警

jcbb

movdx,209h

moval,0feh

outdx,al

jmpagain1

bb:

cmpbl,61;电压是否小于1.2V小于报警

jnccc

movdx,209h

moval,7fh

outdx,al

jmpagain1

cc:

moval,0ffh;B口报警控制端复位

movdx,209h

outdx,al

;安全范围内按指定参数控制步进机转动

cmpbl,117

jcxx;小于2.3V跳转

;大于控制步进机正传

movdx,208h

moval,00001000b

outdx,al

movcx,0

delay1:

nop

loopdelay1

moval,00001100b

outdx,al

movcx,0

delay2:

nop

loopdelay2

moval,00000100b

outdx,al

movcx,0

delay3:

nop

loopdelay3

moval,00000110b

outdx,al

movcx,0

delay4:

nop

loopdelay4

moval,00000010b

outdx,al

movcx,0

delay5:

nop

loopdelay5

moval,00000011b

outdx,al

movcx,0

delay6:

nop

loopdelay6

moval,00000001b

outdx,al

movcx,0

delay7:

nop

loopdelay7

moval,00001001b

outdx,al

movcx,0

delay8:

nop

loopdelay8

xx:

cmpbl,87;大于1.7V跳转

jncyy;小于控制步进机反转

movdx,208h

moval,00001001b

outdx,al

movcx,0

delay12:

nop

loopdelay12

moval,00000001b

outdx,al

movcx,0

delay22:

nop

loopdelay22

moval,00000011b

outdx,al

movcx,0

delay32:

nop

loopdelay32

moval,00000010b

outdx,al

movcx,0

delay42:

nop

loopdelay42

moval,00000110b

outdx,al

movcx,0

delay52:

nop

loopdelay52

moval,00000100b

outdx,al

movcx,0

delay62:

nop

loopdelay62

moval,00001100b

outdx,al

movcx,0

delay72:

nop

loopdelay72

moval,00001000b

outdx,al

movcx,0

delay82:

nop

loopdelay82

yy:

jmpagain1

movah,4ch

int21h

codeends

endstart

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

当前位置:首页 > 解决方案 > 学习计划

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

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