微机原理与接口技术课程设计报告.docx
- 文档编号:17711843
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:14
- 大小:77.66KB
微机原理与接口技术课程设计报告.docx
《微机原理与接口技术课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计报告.docx(14页珍藏版)》请在冰点文库上搜索。
微机原理与接口技术课程设计报告
微机原理与接口技术课程设计报告
微机原理与接口技术课程设计
——数据采集
班级网络10
学号31006100
姓名YHD
指导老师马学文
二零一三年一月八号
一、任务要求
对一路温度、一路压力信号进行巡回数据采集,并把A/D转换后的结果在实验机的数码管上显示出来。
采集到的数据超过规定的限值时,使发光二极管发光报警。
二、硬件连线
本程序实现两路数据采集:
一路采集温度信号,一路采集压力信号。
对每一路信号要连续采集8次,然后把8次A/D转化后的平均值显示在数码管上。
左边三位显示压力值,右边三位显示温度值。
(1)拨码开关:
将拨码开关SW2拨上。
表示将GAL20V8的地址输入A-5接至系统地址线A5;A-6接至地址线A6;A-7接至地址线A7。
(2)压力实验模块的“压力输出”端接至ADC0809的输入端IN0,温度实验模块的“温度输出”端接至ADC0809的输入端IN1。
(3)0809的EOC的输出端与8259的IRQ0端相连,0809的CS连CS8(3E0H)。
(4)8259的片选CS-1连地址输出CS6(3A0H),8259的INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V。
(5)8253的片选CS连地址输出端CS1(300H),8253的A0、A1分别连地址总线的A2、A3,8253的GATE0连+5V,8253的CLK0连74LS393分频输出的47K输出端,8253的OUT0连到任一发光二极管上;8253的GATE1连+5V,8253的CLK1连74LS393分频输出的47K输出端,8253的OUT1连到温度实验模块的“占空比输入”端。
(6)8255并行模块下方的4个片选信号CS-1、CS-2、CS-3和CS-4分别与地址译码输出模块的对应引脚(实验箱中部的CS-1、CS-2、CS-3和CS-4)连接。
(7)74系列模块中开放的3根输出信号和4根输入信号对键盘进行控制。
键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0和开放的输出信号P0相连,片选信号CS2接CS4(360H)。
如按上述连线,则8255的A口、B口、C口和控制口地址分别是200H、204H、208H、20CH;8259的奇地址是3A8H,偶地址是3A0H。
三、流程图
主程序模块:
中断服务程序模块:
四、代码实现
1、8255模块:
显示温度值、压力值;
2、8253模块:
(1)输出负脉冲控制LED灯亮,即报警;
(2)8253的OUT1作为“占空比输入”。
3、8259模块:
实现中断服务程序,即进行压力和温度的数据采集。
4、74系列模块:
实现数据采集的停止;
5、A/D转换模块:
实现温度、压力模拟信号向数字信号的转换。
源代码如下:
.486p
datasegmentuse16at0
org1000h
alarmflagdb?
maxdb?
pbaidb?
pshidb?
pgedb?
tbaidb?
tshidb?
tgedb?
pbufferdb8dup(?
)
tbufferdb8dup(?
)
timesdb?
chudb?
countdb?
stackpequ1100h
dataends
codesegmentuse16
assumecs:
code,ds:
data,ss:
data
org1500h
beg:
jmpstart
sevencoddb0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
db80H,90H,88H,83H,0C6H,0A1H,86H,8EH
start:
moveax,60000000h
movcr0,eax
movax,data
movds,ax
movtimes,8
movchu,10
movmax,200
cli
movalarmflag,0
movcount,0
moveax,80808080h
movdx,20ch
outdx,eax;初始化8255
moveax,0ffffffffh
movdx,200h
outdx,eax;a口全灭
movdx,204h
outdx,eax;b口全灭
;初始化8259
movdx,3a0h
moval,13h
outdx,al;icw1
movdx,3a8h
moval,08h
outdx,al;icw2
moval,03h
outdx,al;icw4
movdx,30ch
moval,56h
outdx,al
moval,128
movdx,304h
outdx,al;占空比
movax,offsetpic
movbx,20h
mov[bx],ax
movax,segpic
mov[bx+2],ax;中断向量表
movdx,3a8h
movdx,0feh
outdx,al;ocw1,开放irq0
sti
leabx,pbuffer
re:
movdx,3e0h
outdx,al
calldelayint
cmpcount,7
jbere
cli;采集压力值
leabx,pbuffer
movcx,8
xorax,ax
count0:
addal,[bx]
adcah,0
incbx
loopcount0
divtimes
movah,0
divchu
movpge,ah
movah,0
divchu
movpshi,ah
movah,0
divchu
movpbai,ah
moval,pbai
leabx,sevencod
xlat
movpbai,al
moval,pshi
xlat
movpshi,al
moval,pge
xlat
movpge,al
movdx,200h
moval,pbai
outdx,al
movdx,204h
moval,pshi
outdx,al
movdx,201h
moval,pge
outdx,al;转换
calldelayint
sti
movcount,0
leabx,tbuffer
re1:
movdx,3e4h
outdx,al
calldelayint
cmpcount,7
jbere1
cli;采集温度值
leabx,tbuffer
movcx,8
xorax,ax
count1:
addal,[bx]
adcah,0
incbx
loopcount1
divtimes
movah,0
divchu
movtge,ah
movah,0
divchu
movtshi,ah
movah,0
divchu
movtbai,ah
moval,tbai
leabx,sevencod
xlat
movtbai,al
moval,tshi
xlat
movtshi,al
moval,tge
xlat
movtge,al
movdx,205h
moval,tbai
outdx,al
movdx,202h
moval,tshi
outdx,al
movdx,206h
moval,tge
outdx,al;转换
exit:
cli
movdx,3a8h
moval,00h
outdx,al;恢复屏蔽寄存器
calldelayint
jmpstart
hlt
delayintproc
pushdx
pushax
pushcx
movcx,1024
loop$
popcx
popax
popdx
ret
delayintendp
picprocfar
cli
pushdx
pushax
pushcx
inal,dx
cmpal,max
jaexit2
mov[bx],al
incbx
inccount
jmpexit1
exit2:
movdx,30ch
moval,10h
outdx,al
movax,128
movdx,300h
outdx,al;报警
exit1:
movdx,3a0h
moval,20h
outdx,al;关中断
moval,0feh
movdx,360h
outdx,al
nop
nop
inal,dx
andal,0fh
cmpal,0fh
jenext
hlt
next:
popcx
popax
popdx
sti
iret
picendp
codeends
endbeg
五、调试运行
在调试运行过程中,我遇到了以下几个问题:
1、当压力、温度超过限值时,LED灯不能报警;
2、单步调试时,停止键有用,全速运行时就不起作用;
3、刚全速运行时,温度值、压力值的显示亮度不一样,压力值较亮,温度值较暗。
经过多次单步调试及I/O检测,终于发现了症结所在,原因及解决办法如下:
1、针对第一个问题,我的想法是可以采用8253的定时计数功能,使得OUT0口定时输出负脉冲,将OUT0与LED灯连接,即可以报警。
由于我采用了方式2,输出的负脉冲只持续很短的时间,所以肉眼几乎看不到LED灯在闪烁。
于是,我改用了方式3。
2、针对第二个问题,每一轮采样中,我都初始化一遍8253,使得按键无效。
所以,我将初始化8253的计数器1改放在了整个程序的初始化部分。
3、针对第三个问题,我询问了老师和同学,但是还是没有解决亮度的问题,这是这次课设的一个未解症状之一。
六、总结
这次课程设计让我充分认识到了我思考问题不周到全面。
比如,在报警方面,我没有考虑到8253工作在方式2时输出的负脉冲只持续很短暂的时间,我也没有认识到进入中断服务程序时保护现场的重要性。
这些都是在以后的学习、工作中需要注意的问题。
同时,通过这次课程设计,我对自己更加充满了信心。
在老师的帮助下,在与同学的讨论中,我认识到了自己的问题,并加以改正,独立完成了这次课程设计。
看到自己努力之后的成果,我感到很开心、很有成就感。
我认为,只要坚持一件事不放弃,并保持着那份热情,不断追求完美,最后一定会有巨大的收获,不只是物质上的,更多的是精神层面的。
它会对你今后的工作、学习有巨大的鼓励作用,让你做每件事时都充满热情与信心。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课程设计 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)