微机接口技术大型实验基于电压的过压报警系统.docx
- 文档编号:15662094
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:12
- 大小:2.05MB
微机接口技术大型实验基于电压的过压报警系统.docx
《微机接口技术大型实验基于电压的过压报警系统.docx》由会员分享,可在线阅读,更多相关《微机接口技术大型实验基于电压的过压报警系统.docx(12页珍藏版)》请在冰点文库上搜索。
微机接口技术大型实验基于电压的过压报警系统
浙江工业大学计算机学院
实验报告
实验名称基于电压的过压报警系统
姓名
学号
班级计科1401
教师
日期2017年1月9日
一、实验内容与要求
1.1实验内容
利用实验箱制作一个可以实时监控电压的电压设备,将电压实时显示在数码管上,并在超出规定范围时发出报警声音
1.2实验要求
(1)一人一题;
(2)尽可能多的用到所学模块;
(3)自由发挥设计。
二、设计思路分析
2.1实验方案设计
根据8255,8254,A/D转换器,功能分析,通过A/D转换器先将模拟信号量转换为数字信号量,将数据通过总线传输到寄存器,寄存器分析该值大小,并将该值进行转换,从16进制数转换为10进制数,并通过处理转换成电压的实时值,精确到小数点后两位,显示在数码管上面,同时,若发现电压超过我们设定的安全电压值,通过8254输出方波信号,驱动蜂鸣器发出警报声音
图1:
硬件设计图
2.2硬件电路分析与设计
图2:
通过Proteus画的电路图(工程文件在实验报告目录下)
图3:
实际连线图
2.3软件设计
图4:
电压报警程序运行流程图
三、实验过程及结果
3.1实验步骤
(1)按图2连线;
(2)编辑程序;
(3)装入程序,并进行调试,修改错误。
3.2软硬联调
将写好的实验程序经编译,链接,装载到实验箱中,查看显示现象和结果。
第一次装载到实验箱中,蜂鸣器及数码管,以及AD转换单元并不能正常工作
仔细检查一遍连线,并分析原因发现是因为IOY片选端口地址发生错误,更改端口地址好后正常发出声音。
在调试时发现,数码管显示范围是0-250,非常不利于阅读,更改算法后,将其调整为实际电压值,即电压为多少就显示多少如3.28V显示为328。
3.3程序清单
IOY0EQU0600H
IOY1EQU0640H
IOY2EQU0680H
AD0809EQUIOY0+00H*4
MY8254_0EQUIOY1+00H*4
MY8254_MODEEQUIOY1+03H*4
MY8255_AEQUIOY2+00H*4
MY8255_BEQUIOY2+01H*4
MY8255_MODEEQUIOY2+03H*4
;=========================================
DATASEGMENT
STRDB'TheVolateis:
DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H
DATAENDS
;=========================================
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
;===================初始化阶段=======================
MOVAX,DATA
MOVDS,AX
MOVDX,MY8255_MODE
MOVAL,80H;初始化8255端口A方式2端口B输出方式0
OUTDX,AL
MOVDX,MY8254_MODE
MOVAL,36H;初始化8254计数器0,方式3BCD计数方式
OUTDX,AL
PUSHDS
MOVAX,0000H
MOVDS,AX
MOVAX,OFFSETMIR7;取中断入口地址
MOVSI,003CH;中断矢量地址
MOV[SI],AX;填IRQ7的偏移矢量
MOVAX,CS;段地址
MOVSI,003EH
MOV[SI],AX;填IRQ7的段地址矢量
CLI
POPDS
;初始化主片8259
MOVAL,11H
OUT20H,AL;ICW1
MOVAL,08H
OUT21H,AL;ICW2
MOVAL,04H
OUT21H,AL;ICW3
MOVAL,01H
OUT21H,AL;ICW4
MOVAL,6FH;OCW101101111开放4号中断串口用,7号中断实验用
OUT21H,AL
;======================判定阶段========================
LOOP1:
MOVDX,AD0809
OUTDX,AL;启动0809
MOVDX,AD0809
INAL,DX;将AD0809转换结果数据送到寄存器
MOVCL,AL
CMPAX,00CFH;判断是否小于50H(令电压值的一半为标准电压)
JBLOOP2
;=======================报警阶段====================
MOVDX,MY8254_0
MOVAL,25H
OUTDX,AL
MOVAX,10H
OUTDX,AL
CALLDELAY1
MOVDX,MY8254_0
MOVAL,01H
OUTDX,AL
MOVAL,00H
OUTDX,AL
CALLDELAY1
;==================显示节阶段============================
LOOP2:
MOVAL,0FDH;选中对应的数码管
MOVDX,MY8255_A;取8255端口地址
OUTDX,AL
MOVAH,00H
MOVAL,CL
MOVBL,32H
DIVBL;除100取百位
MOVCH,AH
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,[BX]
MOVDX,MY8255_B;送入8255b口输出显示百位数字
OUTDX,AL
CALLDELAY
MOVAL,0FBH;选中对应的数码管
MOVDX,MY8255_A;取8255端口地址
OUTDX,AL
MOVAL,CH
ADDAL,CH
MOVAH,00H;除10取十位数字
MOVBL,0AH
DIVBL
MOVCH,AH
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,[BX]
MOVDX,MY8255_B;送入8255b口输出显示个位数字
OUTDX,AL
CALLDELAY
MOVAL,0F7H;选中对应的数码管
MOVDX,MY8255_A;取8255端口地址
OUTDX,AL
MOVAL,CH
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,[BX]
MOVDX,MY8255_B
OUTDX,AL
CALLDELAY
JMPLOOP1
DELAYPROCNEAR;延时子程序
PUSHCX
PUSHAX
MOVCX,500H
A5:
MOVAX,001H
A6:
DECAX
JNZA6
LOOPA5
POPAX
POPCX
RET
DELAYENDP
DELAY1PROCNEAR;延时子程序
PUSHCX
PUSHAX
MOVCX,100H
A51:
MOVAX,200H
A61:
DECAX
JNZA61
LOOPA51
POPAX
POPCX
RET
DELAY1ENDP
MIR7:
STI
CALLDELAY
MOVDX,OFFSETSTR
MOVAH,9
INT21H
MOVAL,20H
OUT20H,AL;中断结束命令
IRET
CODEENDS
ENDSTART
3.4实验结果
最终结果:
运行后,数码管实时显示电压值,当电压超过报警值后,蜂鸣器发出报警声音,数码管开始闪烁。
用万用表测量电压值,精准度比较高,附视频于文件夹
图5:
精确度对比1
图6:
精确度对比2
四、程序调试说明和实验感想
4.1调试说明
进行连线时,尤其要对准位置,不要错位,实验中数码管显示异常,不在所预期的位中,将线左移一位,数据不改变也可以成功
遇到一个错误是因为IOY地址出现问题,小细节引起的大错误,失之毫厘差之千里要仔细检查地址和接线
4.2实验感想与体会
调试过程中总会遇到应该出现有现象,如数码个显示,蜂鸣器发声,和A/D转换值改变却并没有出现变化,却并没有反应的现象,这时不应该盲目去更改,实验代码,进行单步调试和设置断点,逐步排查,确定错误原因,切不可急功冒进,盲目更改代码,错乱更改接线。
导致更多错误发生。
4.3实验特色
看到有的同学做了个游戏,游戏中中断用的更加明显,我的实验中定时器和串口通信用的更多一些。
各有千秋
4.4展望
说明如果有充裕的时间,我还可以实现定时报警,并提供风扇启动进行降温,可以人工调整风扇和温度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 技术 大型 实验 基于 电压 报警 系统