汇编语言课程设计报告模拟电压采集电路及程序设计Word下载.docx
《汇编语言课程设计报告模拟电压采集电路及程序设计Word下载.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计报告模拟电压采集电路及程序设计Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
八.实验结果·
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位
jahex1
jmpnext1
hex1:
next1:
int21h
movdl,13;
向屏幕送回车符
movdl,10;
向屏幕送换行符
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
POPDS
STI;
开中断
INAL,0A1H;
打开IRQ10
ANDAL,0FBH
OUT0A1H,AL
INAL,21H;
打开IRQ2
OUT21H,AL
MOVDX,307H;
8253定时1S
MOVAL,01110110B
OUTDX,AL
MOVDX,305H
MOVAL,0E8H
MOVAL,03H
MOVDX,307H
MOVAL,10110110B
MOVDX,306H
L1:
MOVAH,0BH;
检查是否有Esc键按下
INCAL
JNZNEXT0;
若无键按下,则程序往下执行
MOVAH,08H;
如有Esc键按下,则程序退出
CMPAL,27
JZEXIT
NEXT0:
CALLDELAY
JMPL1
LEDLIGHTPROCFAR;
中断服务程序
PUSHSI
PUSHAX
PUSHDX
movdx,303h;
初始化8255状态字,A口输出
moval,80h
outdx,al
movdx,300h;
送通道号至A口
moval,0
movdx,303h
moval,3h;
00000011,使PC1为1
outdx,al;
PC1置1进行地址锁存
;
moval,90h
outdx,al;
重写8255方式字,A口输入,B口输出,C口低四位输出
使PC0置高发启动信号
moval,1h;
00000001,先使PC0为1
movcx,0f00h;
delay
;
lop1:
looplop1
moval,0h;
00000000,延时后使PC0为0发启动信号
nop
moval,5h
;
00000101,使PC2为高,发出OE
从A口读数据
inal,dx
MOVDX,301H;
从B口向LED输出数据
CALLDISP;
向屏幕输出数据
MOVAL,62H;
发中断结束命令
MOVDX,0A0H
OUTDX,AL;
向从片8259发EOI命令
OUT020H,AL;
向主片8259发EOI命令
POPDX
POPAX
POPSI
IRET
LEDLIGHTENDP
EXIT:
MOVAX,2572H;
恢复中断向量
MOVDX,INT0A_SEG
MOVDX,INT0A_OFF
屏蔽IRQ10
ORAL,04H
屏蔽IRQ2
MOVAX,4C00H;
程序退出
INT21H
CODEENDS
ENDSTART
八、实验结果(如下图)
1、键入单选项“1”
进入主菜单后选择1进行8255的初始化自检,这时候会发现在实验板上的一半灯亮,一半灭。
界面和实验箱效果如下图所示:
2、键入菜单项“2”
8255初始化完成后键入“2”,程序将采集数据,一路送往电脑显示,一路送往二极管显示,调节电位器,采集不同的数据
八、实验总结
个人觉得这次实验主要考验的是学习态度和细心。
实验用到的芯片基本都学习过,实验原理、程序代码及电路图老师都有讲解,就是看平时学习时认真与否。
做实验时得细心和有耐心才能事半功倍。
对于我来说,这次实验由于之前上机做单个芯片测试的实验时不是很认真,加上对汇编语言不能熟练使用导致实验完成起来比较吃力,但得到老师和同学点拨后编程还是比较顺利的。
由于线路较多,实验在连线上耗费了过多的时间,连接线路时没有考虑到走线的合理性和美观性,线路接地毫无条理,导致实验出现问题时检查线路非常困难。
从每根线路检查起,到更换芯片、电位器等原件实验都毫无起色,最后发现检查线路花的时间比连接线路花费的时间都长,于是拆掉所有导线重新连接。
经过两三次的拆掉所有线路从零开始和无数次的全盘检测,历时9天左右,得到的实验结果终于和理论一致。
这次课程设计让我明白了平时学习认真和态度端正的重要性,也让我几次失落和几近绝望,但实验最终还是成功了,成功的喜悦让我觉得之前付出的一切都是值得的!
正如白老师所说的那样,这次课程设计是硬件软件结合、计科独一无二的一次课设,是个不错的经历!