汇编语言课程设计报告模拟电压采集电路及程序设计.docx

上传人:b****5 文档编号:7824720 上传时间:2023-01-26 格式:DOCX 页数:11 大小:106.31KB
下载 相关 举报
汇编语言课程设计报告模拟电压采集电路及程序设计.docx_第1页
第1页 / 共11页
汇编语言课程设计报告模拟电压采集电路及程序设计.docx_第2页
第2页 / 共11页
汇编语言课程设计报告模拟电压采集电路及程序设计.docx_第3页
第3页 / 共11页
汇编语言课程设计报告模拟电压采集电路及程序设计.docx_第4页
第4页 / 共11页
汇编语言课程设计报告模拟电压采集电路及程序设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

汇编语言课程设计报告模拟电压采集电路及程序设计.docx

《汇编语言课程设计报告模拟电压采集电路及程序设计.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计报告模拟电压采集电路及程序设计.docx(11页珍藏版)》请在冰豆网上搜索。

汇编语言课程设计报告模拟电压采集电路及程序设计.docx

汇编语言课程设计报告模拟电压采集电路及程序设计

汇编语言课程设计报告--模拟电压采集电路及程序设计

 

微型计算机技术

课程设计

 

指导教师:

白凯赵立辉

学生班级:

计科11003

学生姓名:

唐阿彪

学号:

201003711

班内序号:

19

课设日期:

2012年12月17日~2012年12月28日

 

一.课设任务·······························1

二.课设目的·······························1

三.设计内容·······························1

四.设计思路·······························2

五.设计步骤·······························2

六.试验流程·······························3

七.源代码·································4

八.实验结果·······························10

九.实验总结·······························12

 

一、课程设计任务:

模拟电压采集电路及程序设计 

利用《汇编语言与微型计算机技术》课程中所学的主要可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或IRQ10端引入)设计一个模拟电压采集电路及程序。

二、设计目的

1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》课程以及其它电子类课程的内容,为以后从事计算机硬件开发工作奠定一定的基础。

2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。

3.学会用汇编语言编写一个较完整的实用程序。

4.掌握微型计算机技术应用开发的全过程:

分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。

三、设计内容

1.功能要求

采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量一路送至发光二极管显示,一路送至计算机显示到屏幕上,每行显示5个数据,采集完100个数据后停止采集过程,采集过程中按下ESC键也可中断采集过程。

2.设计所需器材与工具

1一块实验面包板(内含时钟电路)。

2可编程芯片8253、8255A、ADC0809和译码器芯片74LS138、74LS245各一片。

74LS06两片,发光二极管8个。

3可调电位器4.7KΩ一个。

4导线若干。

5示波器、万用表、常用工具等共用(从实验室现借现还)。

8255的自检测

这部分要求我们初始化8255,为了能够正确的看出8255已经初始化,当8255初始化后向B口送数据0FH到发光二管上显示,如果能够正确显示就说明8255已经被初始化。

8253的自检测

这部分要求我们初始化8253,8253初始化后可以通过示波器观察输出的波形是否满足要求。

进行A/D转换。

这部分是本次课设的关键部分,在做此之前,必须保证8255和8253都被正确的初始化,通过8255的C口控制ADC0809对模拟数据的采集,然后从A口读取转换后的数据,一路送发光二极管显示,一路送显示器上显示,这里模拟量由电位器得到。

退出系统

想结束程序的时候,从菜单上选择Esc键就可以退出程序。

四、设计思路

1.4.7KΩ电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,该电压接至ADC0809的某一通道输入端(如IN0),ADC0809的时钟为500KHz,由8253对面包板上时钟1MHz或2MHz分频后得到,8253的端口地址:

300H~303H。

2.编程启动ADC0809转换(ADC0809完成一次转换的时间大约为120μs),将ADC0809的EOC引脚信号作为中断信号,若转换结束则进入中断服务程序。

在中断服务程序中读入模数转换结果,一路送至发光二极管显示,一路送至计算机显示到屏幕上。

3.8255A用做CPU和ADC0809间的接口芯片,ADC0809的控制信号(如OE、ALE、START等)可由8255A的PC口提供,模数转换后的数字量可经8255A的PA口读入,经8255A的PB口输出到发光二极管。

8255A端口地址:

304H~307H。

4.译码电路由74LS138提供。

74LS245用于总线和8255A之间的双向传输和隔离。

5.硬件珠城际工作原理

五、设计步骤

1.设计出正确的接口电路原理图,要求用专业绘图软件绘制电路图,并注明器件的名称和管脚。

2.根据要求用74LS138设计出正确的I/O译码电路。

3.正确运用所给器件布线,搭接硬件电路。

4.选用汇编语言编写主程序以及各芯片调试子程序,要求:

1具有操作界面、使用方便;

2实现功能要求;

3功能模块应有详细注释。

5.调试并排错,包括硬件电路和软件编程部分的错误。

6.按照下图连接电路

六、实验流程

1、ADC主程序编写

2、ADC中断服务程序的编写

 

七、源代码

DATASEGMENT

MESG1DB'1sinvokeinterruptonetime,andtolightoneofLEDs',0ah,0dh

DB'ExitwithEsc',0ah,0dh,'$'

INT0A_OFFDW(?

INT0A_SEGDW(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

DELAYPROC

PUSHCX

PUSHBX

MOVBX,0FFFH

LOOP2:

MOVCX,0FFFFH

LOOP1:

LOOPLOOP1

DECBX

JNZLOOP2

POPBX

POPCX

RET

DELAYENDP

DISPPROC

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

RET

DISPENDP

 

START:

MOVAX,DATA

MOVDS,AX

MOVAH,09H

MOVDX,OFFSETMESG1

INT21h;显示提示信息

MOVDX,303H;初始化8255

MOVAL,80H

OUTDX,AL

MOVAX,3572H;获取原中断向量

INT21H

MOVINT0A_OFF,BX;保存原中断向量

MOVBX,ES

MOVINT0A_SEG,BX

CLI;关中断

MOVAX,2572H

MOVDX,SEGLEDLIGHT;设置新的中断向量

PUSHDS

MOVDS,DX

MOVDX,OFFSETLEDLIGHT

INT21H

POPDS

STI;开中断

INAL,0A1H;打开IRQ10

ANDAL,0FBH

OUT0A1H,AL

INAL,21H;打开IRQ2

ANDAL,0FBH

OUT21H,AL

MOVDX,307H;8253定时1S

MOVAL,01110110B

OUTDX,AL

MOVDX,305H

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVDX,307H

MOVAL,10110110B

OUTDX,AL

MOVDX,306H

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

L1:

MOVAH,0BH;检查是否有Esc键按下

INT21H

INCAL

JNZNEXT0;若无键按下,则程序往下执行

MOVAH,08H;如有Esc键按下,则程序退出

INT21H

CMPAL,27

JZEXIT

NEXT0:

CALLDELAY

JMPL1

LEDLIGHTPROCFAR;中断服务程序

PUSHSI

PUSHAX

PUSHDX

CLI;关中断

movdx,303h;初始化8255状态字,A口输出

moval,80h

outdx,al

movdx,300h;送通道号至A口

moval,0

outdx,al

movdx,303h

moval,3h;00000011,使PC1为1

outdx,al;PC1置1进行地址锁存

;movdx,303h

;moval,90h

;outdx,al;重写8255方式字,A口输入,B口输出,C口低四位输出

movdx,303h;使PC0置高发启动信号

moval,1h;00000001,先使PC0为1

outdx,al

movcx,0f00h;delay

;lop1:

looplop1

movdx,303h

moval,0h;00000000,延时后使PC0为0发启动信号

outdx,al

nop

nop

movdx,303h

moval,5h

;00000101,使PC2为高,发出OE

outdx,al

movdx,300h;从A口读数据

inal,dx

MOVDX,301H;从B口向LED输出数据

OUTDX,AL

CALLDISP;向屏幕输出数据

MOVAL,62H;发中断结束命令

MOVDX,0A0H

OUTDX,AL;向从片8259发EOI命令

OUT020H,AL;向主片8259发EOI命令

STI;开中断

POPDX

POPAX

POPSI

IRET

LEDLIGHTENDP

EXIT:

MOVAX,2572H;恢复中断向量

MOVDX,INT0A_SEG

PUSHDS

MOVDS,DX

MOVDX,INT0A_OFF

INT21H

POPDS

INAL,0A1H;屏蔽IRQ10

ORAL,04H

OUT0A1H,AL

INAL,21H;屏蔽IRQ2

ORAL,04H

OUT21H,AL

MOVAX,4C00H;程序退出

INT21H

CODEENDS

ENDSTART

八、实验结果(如下图)

1、键入单选项“1”

进入主菜单后选择1进行8255的初始化自检,这时候会发现在实验板上的一半灯亮,一半灭。

界面和实验箱效果如下图所示:

2、键入菜单项“2”

8255初始化完成后键入“2”,程序将采集数据,一路送往电脑显示,一路送往二极管显示,调节电位器,采集不同的数据

 

 

八、实验总结

个人觉得这次实验主要考验的是学习态度和细心。

实验用到的芯片基本都学习过,实验原理、程序代码及电路图老师都有讲解,就是看平时学习时认真与否。

做实验时得细心和有耐心才能事半功倍。

对于我来说,这次实验由于之前上机做单个芯片测试的实验时不是很认真,加上对汇编语言不能熟练使用导致实验完成起来比较吃力,但得到老师和同学点拨后编程还是比较顺利的。

由于线路较多,实验在连线上耗费了过多的时间,连接线路时没有考虑到走线的合理性和美观性,线路接地毫无条理,导致实验出现问题时检查线路非常困难。

从每根线路检查起,到更换芯片、电位器等原件实验都毫无起色,最后发现检查线路花的时间比连接线路花费的时间都长,于是拆掉所有导线重新连接。

经过两三次的拆掉所有线路从零开始和无数次的全盘检测,历时9天左右,得到的实验结果终于和理论一致。

这次课程设计让我明白了平时学习认真和态度端正的重要性,也让我几次失落和几近绝望,但实验最终还是成功了,成功的喜悦让我觉得之前付出的一切都是值得的!

正如白老师所说的那样,这次课程设计是硬件软件结合、计科独一无二的一次课设,是个不错的经历!

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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