微机原理项目汇报 - 图文
更新时间:2024-05-12 03:39:01 阅读量: 综合文库 文档下载
- 微机原理项目报告推荐度:
- 相关推荐
机械设备启动的计算机控制技术的实现
班 学 姓 课 程指 导级:09机设2班
号:
名:
名 称:16/32位微机原理
教 师: 史艳国 2012年5月
机械设备的启动是工业生产中一个很常见的现象,而设备的启动往往不是按下按钮说开始就可以
了,很多的大型设备的启动是需要在很多其他设备等条件具备的情况下才可以进行的,比如很多的安全防护是否到位,一些压力值是否正常。如果这些无法保证就启动设备则很容易就造成安全事故,小则损坏设备,大则造成大的经济损失甚至人身伤害伤亡等,其后果不堪设想!因此在启动设备前,我们需要利用一些检测设备对这些需要保证的项进行检测,然后把这些检测结果送到启动设备中,判断是否具备启动条件!而这就需要一个好的启动控制程序,对检测结果进行判断,控制设备的启动。同时若有检测异常项目要能显示出异常项目,并报警,提醒工程人员进行检测!另外,在异常情况下,要能实现设备的停车。本项目就是针对机械设备的启动控制,进行硬件模拟,并实现软件的控制。
前言
目录
1.
项目题目概述及要求 ....................................................................... 错误!未定义书签。 1.1 题目概述 ............................................................................... 错误!未定义书签。 1.2 题目要求 ............................................................................... 错误!未定义书签。 2. 工程背景及解决问题 ....................................................................... 错误!未定义书签。 3. 项目的模拟方案 ............................................................................... 错误!未定义书签。
3.1 启动控制的方案 ................................................................... 错误!未定义书签。 3.2 模拟方案使用的芯片及模块 ............................................... 错误!未定义书签。 3.3 实验接线说明 ....................................................................... 错误!未定义书签。 3.4 实验线路连接图 ................................................................... 错误!未定义书签。 4. 控制程序 ........................................................................................... 错误!未定义书签。
4.1 实验流程图 ........................................................................... 错误!未定义书签。 4.2 启动控制的实验程序代码 ................................................... 错误!未定义书签。 5. 程序调试情况及运行结果分析 ....................................................... 错误!未定义书签。 6. 项目的结论 ....................................................................................... 错误!未定义书签。 感言 ........................................................................................................... 错误!未定义书签。 参考文献 ................................................................................................................................... 33
机械设备启动的计算机控制技术的实现
余凯
(燕山大学 机械工程学院)
摘要:在一种大型机械加工设备的启动时,需要检测气源设备、液压设备、安全阀门和安全装备是否正常。如果四项检测项目均显示正常,则设备正常启动;如果四项检测项目中至少一项不正常,则设备不启动,通过显示屏显示故障所在,并进行警报。利用微机芯片8086,并行接口芯片8255以及显示屏模拟实现上述功能。
关键词:启动控制 显示正异常 汇编语言
1. 项目题目概述及要求
1.1. 项目题目
某大型机械加工设备,启动过程需要检测以下装置:1、给设备供气的气源压力是否正常;2、液压系统的压力是否正常;3、安全门是否关闭;4、安全的装备中的光电传感器工作是否正常。全部正常后气动设备的主电机开始工作。要求用显示器显示各个环节的检测信息,以方便用户查找设备无法正常启动的原因
1.2. 项目要求
能够用检测到的信息控制设备的启动并显示正异常检测项
2. 工程背景及需要解决的问题
随着世界工业水平的发展,工业生产越来越走向自动化、智能化、集成化,各种集成的全自动机械设备随处可见。而机械设备的启动控制则是任何机械设备中一个必经的阶段,则控制程序的优劣关系到生产的效率及安全!很多的大型设备的启动是需要在很多其他设备等条件具备的情况下才可以进行的,比如很多的安全防护是否到位,一些压力值是否正常。如果这些无法保证就启动设备则很容易就造成安全事故,小则损坏设备,大则造成大的经济损失甚至人身伤害伤亡等,其后果不堪设想!因此在启动设备前,我们需要利用一些检测设备对这些需要保证的项进行检测,然后把这些检测结果送到启动设备中,判断是否具备启动条件!这就需要控制程序能够对检测设备输出进行判断,并以此控制机械设备的启动,同时要能显示正异常,能在存在异常项时及时报警,并及时停车。
3. 项目的模拟方案
3.1 启动控制的方案
1用8255作为总的调度,用5个开关分别代表总开关和四个检测项目,用液晶屏和5个LED灯分
别显示出总开关及4个检测项的检测情况!
2若总开关未开启,则灯全不亮!电机不转,蜂鸣器不响。
3总开关开启,检测项正常,则对应的灯亮,液晶屏显示对应项正常,否则对应灯灭,液晶屏显示
对应项异常。全正常则电机启动!
4只要存在检测项不正常,则电机停,蜂鸣器报警!
5循环检测
6用8155及数码管显示日期
3.2 模拟方案使用的芯片及模块
8255芯片、8155芯片 、12864J液晶显示屏 、段数码管 、直流电机、蜂鸣器 、开关、LED灯
3.3实验接线说明
12864J的片选端连接CS1(0F000H); RW连接A0;RS连接A1;CS1/2连接A2;
8255的片选端接CS2(0E000H); PA0--PA4分别连接开关1—5;PC0—PC4分别连接LED灯1—5;同时PC5连接蜂鸣器,PC6接步进电机;
8155的片选端接CS3(0D000H),IO/M接A8,A口接数码管位选B,B口接数码管段选C
液晶显示屏12864J的接线图
8255芯片、LED灯、开关以及蜂鸣器接线图
3.4实验线路连接图
4. 控制程序
4.1 实验流程图
4.2启动控制的实验程序代码
.MODEL TINY WR_COM_AD_L
EQU 0F004H
;写左半屏指令地址
WR_COM_AD_R EQU 0F000H ;写右半屏指令地址 WR_DATA_AD_L EQU 0F006H ;写左半屏数据地址 WR_DATA_AD_R EQU 0F002H ;写右半屏数据地址 RD_BUSY_AD EQU 0F001H ;查忙地址 RD_DATA_AD EQU 0F003H ;读数据地址 X EQU 0B8H ;起始显示行基址
Y EQU 040H
;起始显示列基址
;起始显示行
FirstLine EQU 0C0H .STACK 100 .DATA yu db 5
ledtb db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;数码管换码
;机
yukai1_1 db 10h, 10h,0D0h,0FFh, 90h, 10h, 00h,0FCh
db db db
04h, 04h, 04h,0FEh, 04h, 00h, 00h, 00h 04h, 03h, 00h,0FFh, 80h, 41h, 20h, 1Fh 00h, 00h, 00h, 3Fh, 40h, 40h, 70h, 00h
;械
yukai1_2 db 10h, 10h,0D0h,0FFh, 90h, 18h,0E8h, 08h
db db db
0E8h, 08h,0FFh, 08h, 0Ah, 8Ch, 08h, 00h 04h, 03h, 00h,0FFh, 20h, 11h, 8Fh, 81h 5Fh, 21h, 17h, 38h, 46h, 81h,0E0h, 00h
;设
yukai1_3 db 40h, 40h, 42h,0CCh, 00h, 40h,0A0h, 9Fh
db db db
81h, 81h, 81h, 9Fh,0A0h, 20h, 20h, 00h 00h, 00h, 00h, 7Fh,0A0h, 90h, 40h, 43h 2Ch, 10h, 28h, 26h, 41h,0C0h, 40h, 00h
;计
yukai1_4 db 40h, 40h, 42h,0CCh, 00h, 40h, 40h, 40h
db db db
40h,0FFh, 40h, 40h, 40h, 60h, 40h, 00h 00h, 00h, 00h, 7Fh, 20h, 10h, 08h, 00h 00h,0FFh, 00h, 00h, 00h, 00h, 00h, 00h
;余
yukai2_1 db 80h, 80h, 40h, 20h, 50h, 48h, 44h,0C3h
db db db
44h, 48h, 50h, 20h, 40h,0C0h, 40h, 00h 00h, 40h, 22h, 12h, 1Ah, 42h, 82h, 7Fh 02h, 02h, 0Ah, 13h, 32h, 60h, 00h, 00h
;凯
yukai2_2 db 40h, 5Eh, 50h, 50h, 5Fh, 50h,0F0h, 5Eh
db db db
00h,0FEh, 02h, 02h,0FFh, 02h, 00h, 00h 00h, 7Eh, 42h, 22h, 22h, 12h, 97h, 40h 30h, 0Fh, 00h, 00h, 3Fh, 40h, 70h, 00h db 40h, 20h, 58h, 47h, 54h, 54h, 54h, 54h 54h, 54h,0D4h, 14h, 06h, 04h, 00h, 00h 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
;气
Yu11_1
db db
db 00h, 00h, 1Fh, 20h, 40h, 80h, 70h, 00h db 10h, 22h, 64h, 0Ch, 80h,0FEh, 02h,0E2h 0A2h,0B2h,0AEh,0A2h,0A2h,0F3h, 22h, 00h 04h, 04h,0FEh, 41h, 30h, 0Fh, 20h, 13h 5Ah, 82h, 7Eh, 02h, 0Ah, 13h, 30h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 10h, 10h, 10h, 10h, 10h,0FFh, 10h 10h, 10h, 10h, 10h,0F8h, 10h, 00h, 00h 00h, 80h, 80h, 80h, 60h, 18h, 07h, 00h 20h, 40h, 80h, 40h, 3Fh, 00h, 00h, 00h db 00h, 02h, 02h,0C2h, 02h, 02h, 02h,0FEh 82h, 82h, 82h,0C2h, 83h, 02h, 00h, 00h 40h, 40h, 40h, 7Fh, 40h, 40h, 40h, 7Fh 40h, 40h, 40h, 40h, 40h, 60h, 40h, 00h
db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;源
Yu11_2
db db db
;压
Yu11_3
db db db
;力
Yu11_4
db db db
;正
Yu11_5
db db db
;常
Yu11_6
db db db
;气
Yu12_1 db 40h, 20h, 58h, 47h, 54h, 54h, 54h, 54h
db db db
54h, 54h,0D4h, 14h, 06h, 04h, 00h, 00h 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h 00h, 00h, 1Fh, 20h, 40h, 80h, 70h, 00h db 10h, 22h, 64h, 0Ch, 80h,0FEh, 02h,0E2h 0A2h,0B2h,0AEh,0A2h,0A2h,0F3h, 22h, 00h 04h, 04h,0FEh, 41h, 30h, 0Fh, 20h, 13h 5Ah, 82h, 7Eh, 02h, 0Ah, 13h, 30h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h
;源
Yu12_2
db db db
;压
Yu12_3
db db
db 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 10h, 10h, 10h, 10h, 10h,0FFh, 10h 10h, 10h, 10h, 10h,0F8h, 10h, 00h, 00h 00h, 80h, 80h, 80h, 60h, 18h, 07h, 00h 20h, 40h, 80h, 40h, 3Fh, 00h, 00h, 00h db 00h, 00h, 7Eh, 92h, 92h, 92h, 92h, 92h 92h, 92h, 92h, 9Fh, 82h,0E0h, 00h, 00h 04h, 04h, 84h, 44h, 3Fh, 04h, 04h, 04h 04h, 04h,0FFh, 04h, 04h, 06h, 04h, 00h db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h db 10h, 22h, 64h, 0Ch, 80h, 04h,0C4h, 34h 05h,0C6h,0BCh, 24h, 24h,0E6h, 04h, 00h 04h, 04h,0FEh, 01h, 02h, 01h,0FFh, 42h 21h, 16h, 08h, 15h, 23h, 60h, 20h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 10h, 10h, 10h, 10h, 10h,0FFh, 10h 10h, 10h, 10h, 10h,0F8h, 10h, 00h, 00h 00h, 80h, 80h, 80h, 60h, 18h, 07h, 00h 20h, 40h, 80h, 40h, 3Fh, 00h, 00h, 00h db 00h, 02h, 02h,0C2h, 02h, 02h, 02h,0FEh 82h, 82h, 82h,0C2h, 83h, 02h, 00h, 00h 40h, 40h, 40h, 7Fh, 40h, 40h, 40h, 7Fh
;力
Yu12_4
db db db
;异
Yu12_5
db db db
;常
Yu12_6
db db db
;液
Yu21_1
db db db
;压
Yu21_2
db db db
;压
Yu21_3
db db db
;力
Yu21_4
db db db
;正
Yu21_5
db db
db 40h, 40h, 40h, 40h, 40h, 60h, 40h, 00h
db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h db 10h, 22h, 64h, 0Ch, 80h, 04h,0C4h, 34h 05h,0C6h,0BCh, 24h, 24h,0E6h, 04h, 00h 04h, 04h,0FEh, 01h, 02h, 01h,0FFh, 42h 21h, 16h, 08h, 15h, 23h, 60h, 20h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 00h,0FEh, 02h, 82h, 82h, 82h, 82h 0FEh, 82h, 82h, 82h,0C3h, 82h, 00h, 00h 40h, 30h, 0Fh, 40h, 40h, 40h, 40h, 40h 7Fh, 40h, 42h, 44h, 4Ch, 60h, 40h, 00h db 00h, 10h, 10h, 10h, 10h, 10h,0FFh, 10h 10h, 10h, 10h, 10h,0F8h, 10h, 00h, 00h 00h, 80h, 80h, 80h, 60h, 18h, 07h, 00h 20h, 40h, 80h, 40h, 3Fh, 00h, 00h, 00h db 00h, 00h, 7Eh, 92h, 92h, 92h, 92h, 92h 92h, 92h, 92h, 9Fh, 82h,0E0h, 00h, 00h 04h, 04h, 84h, 44h, 3Fh, 04h, 04h, 04h 04h, 04h,0FFh, 04h, 04h, 06h, 04h, 00h
db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;常
Yu21_6
db db db
;液
Yu22_1
db db db
;压
Yu22_2
db db db
;压
Yu22_3
db db db
;力
Yu22_4
db db db
;异
Yu22_5
db db db
;常
Yu22_6
db db db
;安
Yu31_1 db 90h, 8Ch, 84h, 84h, 84h, 84h,0F5h, 86h
db db
84h, 84h, 84h, 84h, 84h,0D4h, 8Ch, 00h 00h, 00h, 80h, 84h, 46h, 49h, 28h, 10h
db 10h, 28h, 47h,0C0h, 00h, 00h, 00h, 00h db 80h, 80h, 40h, 20h, 50h, 48h, 44h,0C3h 44h, 68h, 50h, 20h, 40h,0C0h, 40h, 00h 00h, 40h, 40h, 40h, 44h, 44h, 44h, 7Fh 44h, 46h, 44h, 40h, 60h, 40h, 00h, 00h db 00h,0F8h, 01h, 86h,0E0h, 9Ah, 82h,0FAh 42h, 4Ah, 52h, 42h, 02h,0FFh, 02h, 00h 00h,0FFh, 01h, 00h, 7Fh, 00h, 10h, 09h 06h, 1Ah, 21h, 30h, 80h,0FFh, 00h, 00h db 00h,0FCh, 01h, 02h, 06h, 00h, 02h, 02h 02h, 02h, 02h, 02h, 02h,0FFh, 02h, 00h 00h,0FFh, 00h, 00h, 00h, 00h, 00h, 00h 00h, 00h, 00h, 40h, 80h, 7Fh, 00h, 00h db 00h, 02h, 02h,0C2h, 02h, 02h, 02h,0FEh 82h, 82h, 82h,0C2h, 83h, 02h, 00h, 00h 40h, 40h, 40h, 7Fh, 40h, 40h, 40h, 7Fh 40h, 40h, 40h, 40h, 40h, 60h, 40h, 00h
db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;全
Yu31_2
db db db
;阀
Yu31_3
db db db
;门
Yu31_4
db db db
;正
Yu31_5
db db db
;常
Yu31_6
db db db
;安
Yu32_1 db 90h, 8Ch, 84h, 84h, 84h, 84h,0F5h, 86h
db db db
84h, 84h, 84h, 84h, 84h,0D4h, 8Ch, 00h 00h, 00h, 80h, 84h, 46h, 49h, 28h, 10h 10h, 28h, 47h,0C0h, 00h, 00h, 00h, 00h db 80h, 80h, 40h, 20h, 50h, 48h, 44h,0C3h 44h, 68h, 50h, 20h, 40h,0C0h, 40h, 00h 00h, 40h, 40h, 40h, 44h, 44h, 44h, 7Fh 44h, 46h, 44h, 40h, 60h, 40h, 00h, 00h db 00h,0F8h, 01h, 86h,0E0h, 9Ah, 82h,0FAh 42h, 4Ah, 52h, 42h, 02h,0FFh, 02h, 00h 00h,0FFh, 01h, 00h, 7Fh, 00h, 10h, 09h
;全
Yu32_2
db db db
;阀
Yu32_3
db db
db 06h, 1Ah, 21h, 30h, 80h,0FFh, 00h, 00h db 00h,0FCh, 01h, 02h, 06h, 00h, 02h, 02h 02h, 02h, 02h, 02h, 02h,0FFh, 02h, 00h 00h,0FFh, 00h, 00h, 00h, 00h, 00h, 00h 00h, 00h, 00h, 40h, 80h, 7Fh, 00h, 00h db 00h, 00h, 7Eh, 92h, 92h, 92h, 92h, 92h 92h, 92h, 92h, 9Fh, 82h,0E0h, 00h, 00h 04h, 04h, 84h, 44h, 3Fh, 04h, 04h, 04h 04h, 04h,0FFh, 04h, 04h, 06h, 04h, 00h db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;门
Yu32_4
db db db
;异
Yu32_5
db db db
;常
Yu32_6
db db db
;机
Yu41_1 db 10h, 10h,0D0h,0FFh, 90h, 10h, 00h,0FCh
db db db
04h, 04h, 04h,0FEh, 04h, 00h, 00h, 00h 04h, 03h, 00h,0FFh, 80h, 41h, 20h, 1Fh 00h, 00h, 00h, 3Fh, 40h, 40h, 70h, 00h db 10h, 10h,0D0h,0FFh, 90h, 18h,0E8h, 08h 0E8h, 08h,0FFh, 08h, 0Ah, 8Ch, 08h, 00h 04h, 03h, 00h,0FFh, 20h, 11h, 8Fh, 81h 5Fh, 21h, 17h, 38h, 46h, 81h,0E0h, 00h db 00h, 42h, 24h, 10h,0FFh, 00h, 44h,0A4h 24h, 3Fh, 24h, 34h, 26h, 84h, 00h, 00h 01h, 21h, 21h, 11h, 09h,0FDh, 43h, 21h 0Dh, 11h, 29h, 25h, 43h,0C1h, 41h, 00h db 00h, 00h, 90h, 88h, 44h, 4Bh, 32h, 12h 32h, 4Ah, 46h, 82h, 80h, 80h, 80h, 00h 01h, 01h, 00h,0FFh, 49h, 49h, 49h, 7Fh 49h, 49h, 49h,0FFh, 00h, 01h, 00h, 00h db 00h, 02h, 02h,0C2h, 02h, 02h, 02h,0FEh 82h, 82h, 82h,0C2h, 83h, 02h, 00h, 00h 40h, 40h, 40h, 7Fh, 40h, 40h, 40h, 7Fh
;械
Yu41_2
db db db
;装
Yu41_3
db db db
;备
Yu41_4
db db db
;正
Yu41_5
db db
db 40h, 40h, 40h, 40h, 40h, 60h, 40h, 00h
db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;常
Yu41_6
db db db
;机
Yu42_1 db 10h, 10h,0D0h,0FFh, 90h, 10h, 00h,0FCh
db db db
04h, 04h, 04h,0FEh, 04h, 00h, 00h, 00h 04h, 03h, 00h,0FFh, 80h, 41h, 20h, 1Fh 00h, 00h, 00h, 3Fh, 40h, 40h, 70h, 00h db 10h, 10h,0D0h,0FFh, 90h, 18h,0E8h, 08h 0E8h, 08h,0FFh, 08h, 0Ah, 8Ch, 08h, 00h 04h, 03h, 00h,0FFh, 20h, 11h, 8Fh, 81h 5Fh, 21h, 17h, 38h, 46h, 81h,0E0h, 00h db 00h, 42h, 24h, 10h,0FFh, 00h, 44h,0A4h 24h, 3Fh, 24h, 34h, 26h, 84h, 00h, 00h 01h, 21h, 21h, 11h, 09h,0FDh, 43h, 21h 0Dh, 11h, 29h, 25h, 43h,0C1h, 41h, 00h db 00h, 00h, 90h, 88h, 44h, 4Bh, 32h, 12h 32h, 4Ah, 46h, 82h, 80h, 80h, 80h, 00h 01h, 01h, 00h,0FFh, 49h, 49h, 49h, 7Fh 49h, 49h, 49h,0FFh, 00h, 01h, 00h, 00h db 00h, 00h, 7Eh, 92h, 92h, 92h, 92h, 92h 92h, 92h, 92h, 9Fh, 82h,0E0h, 00h, 00h 04h, 04h, 84h, 44h, 3Fh, 04h, 04h, 04h 04h, 04h,0FFh, 04h, 04h, 06h, 04h, 00h db 20h, 18h, 08h, 0Ah,0ECh,0A8h,0A8h,0AFh 0A8h,0A8h,0ECh, 0Ah, 08h, 28h, 18h, 00h 00h, 00h, 00h, 3Eh, 02h, 02h, 02h,0FFh 02h, 22h, 42h, 3Fh, 02h, 00h, 00h, 00h
;械
Yu42_2
db db db
;装
Yu42_3
db db db
;备
Yu42_4
db db db
;异
Yu42_5
db db db
;常
Yu42_6
db db db
.code
start:mov ax,@data mov dx,ax NOP
;显示专业姓名,闪烁五次
chushi:call lcd_init call delaytime call yukai1 call delaytime call yukai2 call delaytime dec yu jnz chushi
;写入8255方式控制字,A口输入,C口输出 mov dx,0e003h
mov al,10010000b
out dx,al
;进行初始化,液晶屏清屏,电机停 call lcd_init
call delaytime mov al,0fdh mov dx,0e002h out dx,al call delaytime
begin:call riqi ;显示日期 call clear
call lcd_init ;清屏
mov dx,0e000h
in al,dx ;由开关输入A口的状态
test al,01h
jz ting ;判断总开关是否开启,未开启则循环判断
jmp start1
ting:mov al,10111111b
mov dx,0e002h out dx,al
jmp begin ;总开关未开启,使电机停,灯全灭! start1:mov al,00000000b mov dx,0e003h
out dx,al ;使第一个灯亮
j11:mov dx,0e000h
in al,dx test al,01h
jz ting ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的程
序
test al,02h
jz j12 ;判断气源压力是否正常 call yu11 ;显示“气源压力正常” call delaytime mov dx,0e003h mov al,00000010b
out dx,al ;使第二个灯亮 jmp j21
j12:call yu12 ;显示“气源压力异常” call delaytime mov dx,0e003h mov al,00000011b
out dx,al ;使第二个灯灭 j21:mov dx,0e000h in al,dx test al,01h
jz ting ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的程
序
test al,04h
jz j22 ;判断液压压力是否正常 call yu21 ;显示液压压力正常 call delaytime mov dx,0e003h mov al,00000100b
out dx,al ;使第三个灯亮 jmp j31
j22:call yu22 ;显示液压压力正常 call delaytime mov dx,0e003h mov al,00000101b
out dx,al ;使第三个灯灭 j31:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
test al,08h
jz j32 ;判断安全门是否关闭 call yu31 ;显示安全阀门正常 call delaytime
mov dx,0e003h mov al,00000110b
out dx,al ;使第四个灯亮 jmp j41
j32:call yu32 ;显示安全阀门异常 call delaytime mov dx,0e003h mov al,00000111b
out dx,al ;使第四个灯灭 j41:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
test al,10h
jz j42 ;判断机械装备是否正常 call yu41 ;显示机械装备正常 call delaytime mov dx,0e003h mov al,00001000b
out dx,al ;使第五个灯亮 jmp j51
j42:call yu42 ;显示机械装备异常 call delaytime mov dx,0e003h mov al,00001001b
out dx,al ;使第五个灯灭 j51:mov dx,0e000h in al,dx test al,01h
jz j61 ;读入A口状态,再次判断总开关是否开启,未开启则跳到不工作的
程序
and al,00011110b cmp al,00011110b
jnz j62 ;判断所有检测项是否均正常 mov dx,0e003h mov al,00001101b
out dx,al ;所有检测项均正常后,电机启动 mov dx,0e003h mov al,00001011b
out dx,al ;蜂鸣器不响 jmp begin j61:mov al,10111111b mov dx,0e002h
out dx,al ;总开关未开启,使灯全灭,电机不转,蜂鸣器不响 jmp begin j62:mov al,00001010b mov dx,0e003h
out dx,al ;存在检测项不正常,使蜂鸣器报警 mov al,00001100b mov dx,0e003h
out dx,al ;电机停 jmp begin mov ax,4c00h int 21h
;显示日期的子程序
riqi proc push ax push cx push dx push bx
;8155设置,A端口输出,B端口输出
mov dx,0D100h mov al,03h out dx,al mov cx,02ffh shuma:push cx
mov bx,offset LEDtb mov al,2 xlat
mov dx,0d102h out dx,al mov al,01111111b mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al
mov al,10111111b mov dx,0d101h out dx,al call delaytime4 mov al,1 xlat
mov dx,0d102h out dx,al mov al,11011111b mov dx,0d101h out dx,al call delaytime4 mov al,2 xlat
mov dx,0d102h out dx,al mov al,11101111b mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al mov al,11110111b mov dx,0d101h out dx,al call delaytime4 jmp shuma5 shuma1: jmp shuma pop cx dec cx push cx shuma5: mov al,5 xlat
mov dx,0d102h out dx,al mov al,11111011b
mov dx,0d101h out dx,al call delaytime4 mov al,0 xlat
mov dx,0d102h out dx,al mov al,11111101b mov dx,0d101h out dx,al call delaytime4 mov al,6 xlat
mov dx,0d102h out dx,al mov al,11111110b mov dx,0d101h out dx,al call delaytime4 call clear pop cx loop shuma1 pop bx pop dx pop cx pop ax ret riqi endp
;清除数码管位选子程序
clear proc push ax push dx mov dx,0d101h mov al,11111111b out dx,al pop dx pop ax ret clear endp
;延时程序
delaytime4 proc push cx mov cx,20 loop $ pop cx ret delaytime4 endp
;延时程序
DelayTime PROC
MOV LOOP LOOP RET
CX,1000
$ $ NEAR
DelayTime ENDP
;显示“机械设计”
yukai1 proc
lea si,yukai1_1 mov al,2 mov ah,32 call WordDISL lea si,yukai1_2 mov al,2 mov ah,48 call WordDISL lea si,yukai1_3 mov al,2 mov ah,0 call WordDISR lea si,yukai1_4 mov al,2 mov ah,16 call WordDISR ret yukai1 endp
;显示“余凯”
yukai2 proc
lea si,yukai2_1 mov al,4 mov ah,48
call WordDISL lea si,yukai2_2 mov al,4 mov ah,0 call WordDISR ret yukai2 endp
;显示“气源压力正常”子程序
yu11 proc lea si,yu11_1 mov al,0 mov ah,16 call WordDISL lea si,yu11_2 mov al,0 mov ah,32 call WordDISL lea si,yu11_3 mov al,0 mov ah,48 call WordDISL lea si,yu11_4 mov al,0 mov ah,0 call WordDISR lea si,yu11_5 mov al,0 mov ah,16 call WordDISR lea si,yu11_6 mov al,0 mov ah,32 call WordDISR ret yu11 endp
;显示“气源压力异常”子程序
yu12 proc lea si,yu12_1 mov al,0 mov ah,16
call WordDISL lea si,yu12_2 mov al,0 mov ah,32 call WordDISL lea si,yu12_3 mov al,0 mov ah,48 call WordDISL lea si,yu12_4 mov al,0 mov ah,0 call WordDISR lea si,yu12_5 mov al,0 mov ah,16 call WordDISR lea si,yu12_6 mov al,0 mov ah,32 call WordDISR ret yu12 endp
;显示“液压压力正常”子程序
yu21 proc lea si,yu21_1 mov al,2 mov ah,16 call WordDISL lea si,yu21_2 mov al,2 mov ah,32 call WordDISL lea si,yu21_3 mov al,2 mov ah,48 call WordDISL lea si,yu21_4 mov al,2 mov ah,0
call WordDISR lea si,yu21_5 mov al,2 mov ah,16 call WordDISR lea si,yu21_6 mov al,2 mov ah,32 call WordDISR ret yu21 endp
;显示“液压压力异常”子程序
yu22 proc lea si,yu22_1 mov al,2 mov ah,16 call WordDISL lea si,yu22_2 mov al,2 mov ah,32 call WordDISL lea si,yu22_3 mov al,2 mov ah,48 call WordDISL lea si,yu22_4 mov al,2 mov ah,0 call WordDISR lea si,yu22_5 mov al,2 mov ah,16 call WordDISR lea si,yu22_6 mov al,2 mov ah,32 call WordDISR ret yu22 endp
;显示“安全阀门正常”子程序
yu31 proc lea si,yu31_1 mov al,4 mov ah,16 call WordDISL lea si,yu31_2 mov al,4 mov ah,32 call WordDISL lea si,yu31_3 mov al,4 mov ah,48 call WordDISL lea si,yu31_4 mov al,4 mov ah,0 call WordDISR lea si,yu31_5 mov al,4 mov ah,16 call WordDISR lea si,yu31_6 mov al,4 mov ah,32 call WordDISR ret yu31 endp
;显示“安全阀门异常”子程序
yu32 proc lea si,yu32_1 mov al,4 mov ah,16 call WordDISL lea si,yu32_2 mov al,4 mov ah,32 call WordDISL lea si,yu32_3 mov al,4 mov ah,48
call WordDISL lea si,yu32_4 mov al,4 mov ah,0 call WordDISR lea si,yu32_5 mov al,4 mov ah,16 call WordDISR lea si,yu32_6 mov al,4 mov ah,32 call WordDISR ret yu32 endp
;显示“机械装备正常”子程序
yu41 proc lea si,yu41_1 mov al,6 mov ah,16 call WordDISL lea si,yu41_2 mov al,6 mov ah,32 call WordDISL lea si,yu41_3 mov al,6 mov ah,48 call WordDISL lea si,yu41_4 mov al,6 mov ah,0 call WordDISR lea si,yu41_5 mov al,6 mov ah,16 call WordDISR lea si,yu41_6 mov al,6 mov ah,32
call WordDISR ret yu41 endp
;显示“机械装备异常”子程序
yu42 proc lea si,yu42_1 mov al,6 mov ah,16 call WordDISL lea si,yu42_2 mov al,6 mov ah,32 call WordDISL lea si,yu42_3 mov al,6 mov ah,48 call WordDISL lea si,yu42_4 mov al,6 mov ah,0 call WordDISR lea si,yu42_5 mov al,6 mov ah,16 call WordDISR lea si,yu42_6 mov al,6 mov ah,32 call WordDISR ret yu42 endp
;液晶初始化
LCD_INIT PROC NEAR
MOV AL,3EH
CALL WRComL MOV AL,FirstLine CALL WRComL MOV AL,3EH
CALL WRComR
MOV
AL,FirstLine
;初始化左半屏,关显示
;写指令子程序 ;设置起始显示行,第0行;初始化右半屏,关显示
;写指令子程序 ;设置起始显示行,第0行
CALL CALL MOV CALL MOV CALL RET
WRComR
LCDClear ;清屏 AL,3FH AL,3FH
;开显示 ;开显示
WRComL WRComR
LCD_INIT ENDP
;清屏
LCDClear PROC
NEAR
;清左半屏
MOV AL,0 ;起始行,第0行 MOV AH, 0 ;起始列,第0列
MOV CALL CALL LOOP
CX,64
LCDClearL1:PUSH AX
SETXYL ;设置起始显示行列地址
AL,0
WRDATAL LCDClearL2
LCDClearL2:MOV
POP AX INC AX
CMP AL,8 JNZ LCDClearL1 MOV MOV MOV CALL CALL LOOP
;清右半屏
AL,0 ;起始行,第0行 AH,0 ;起始列,第0列 PUSH CX,64
AX
LCDClearR1:
SETXYR ;设置起始显示行列地址 XOR AL,AL WRDATAR LCDClearR2
LCDClearR2:
POP AX INC AL CMP AL,8;共8行 JNZ LCDClearR1 RET
LCDClear ENDP
;显示字体,显示一个数据要占用X行两行位置
;左半屏显示一个字节/字:AL-起始显示行序数X(0-7);AH-起始显示列序数
Y(0-63) ;SI-显示字数据首地址 ByteDisL PROC
MOV CALL RET
NEAR
CX,8 ;显示8个字节数据,用于显示一个英文/号 DispL
NEAR
ByteDisL ENDP WordDisL PROC
MOV CALL RET
CX,16 ;显示16字节数据,用于显示一个汉字 DispL
NEAR
WordDisL ENDP DispL
PROC PUSH PUSH CALL CALL
AX CX
SETXYL ;设置起始显示行列地址 DisplayL ;显示上半行数据
POP CX POP AX INC AL CALL CALL RET
SETXYL ;设置起始显示行列地址 DisplayL ;显示下半行数据
DispL ENDP
;右半屏显示一个字节/字:AL-起始显示行序数X(0-7);AH-起始显示列序数Y(0-63) ;SI-显示字数据首地址 ByteDisR PROC ENAR
MOV CALL RET
CX,8 ;显示8个字节数据,用于显示一个英文/符号 DispR
NEAR
ByteDisR ENDP WordDisR PROC
MOV CALL RET
CX,16 ;显示16字节数据,用于显示一个汉字 DispR
NEAR
WordDisR ENDP DispR
PROC PUSH PUSH CALL CALL
AX CX
SETXYR ;设置起始显示行列地址 DisplayR ;显示上半行数据
POP CX POP AX INC AL CALL CALL RET
SETXYR ;设置起始显示行列地址 DisplayR ;显示下半行数据
DispR ENDP
;显示图形
;显示左半屏一行图形,AL-X起始行序数(0-7),AH-Y起始列地址序数(0-63)
LineDisL PROC
MOV CALL CALL RET
NEAR
CX,64
SETXYL ;设置起始显示行列 DisplayL ;显示数据
LineDisL ENDP LineDisR PROC
MOV CALL CALL RET
;显示右半屏一行图形,AL-X起始行地址序数(0-7),AH-Y起始列地址序数(0-63)
NEAR
CX,64
SETXYR ;设置起始显示行列 DisplayR ;显示数据
LineDisR ENDP
;基本控制
;显示左半屏数据,R7-显示数据个数
DisplayL PROC
LODSB CALL LOOP RET
NEAR
WRDataL ;写左半屏数据 DisplayL
DisplayL ENDP DisplayR PROC
LODSB CALL LOOP RET
NEAR
;显示右半屏数据,R7-显示数据个数
WRDataR ;写左半屏数据 DisplayR
DisplayR ENDP SETXYL PROC
;设置左半屏起始显示行列地址,AL-X起始行序数(0-7),AH-Y起始列序数(0-63)
NEAR
OR AL,X ;行地址=行序数+行基址
CALL MOV CALL RET
WRComL AL,AH
OR AL,Y ;列地址=列序数+列基址
WRComL
SETXYL ENDP SETXYR PROC
CALL MOV CALL RET
;设置右半屏起始显示行列地址,AL-X起始行序数(0-7),AH-Y起始列序数(0-63)
NEAR
OR AL,X ;行地址=行序数+行基址
WRComR AL,AH
OR AL,Y ;列地址=列序数+列基址
WRComR
SETXYR ENDP WRComL PROC
MOV OUT DX,AL IN
AL,DX
;写左半屏控制指令,A-写入指令
NEAR
DX,RD_BUSY_AD
;检查液晶显示是否处于忙状态
DX,WR_COM_AD_L
WRComL1:MOV
TEST RET
AL,80H
JNZ WRComL1
WRComL ENDP WRComR
MOV
NEAR
;写右半屏控制指令,A-写入指令
PROC
DX,RD_BUSY_AD
;检查液晶显示是否处于忙状态
DX,WR_COM_AD_R
OUT DX,AL IN
AL,DX
WRComR1:MOV
TEST RET
AL,80H
JNZ WRComR1
WRComR ENDP WRDataL PROC
MOV OUT DX,AL
;写左半屏数据,A-写入数据
NEAR
DX,WR_DATA_AD_L
WRDataL1:MOV DX,RD_BUSY_AD
IN AL,DX
;检查液晶显示是否处于忙状态
TEST RET
AL,80H
JNZ WRDataL1
WRDataL ENDP WRDataR PROC
MOV OUT DX,AL IN
AL,DX
;写右半屏数据,A-写入数据
NEAR
DX,WR_DATA_AD_R MOV
WRDataR1:
TEST RET
DX,RD_BUSY_AD
AL,80H ;检查液晶显示是否处于忙状态
JNZ WRDataR1
WRDataR ENDP
END START
5. 程序调试情况及运行结果分析
在程序调试过程中,遇到如下的几个问题:
1.在调试过程中,多次出现指针超出范围的问题。
解决:对各个子程序进行检查,先是检查了PUSH、POP语句是否规范,发现没有问题,后来发现在子程序结尾ret语句丢失,添加后运行正常。 2.在调试过程中出现range out的现象
解决:问题在于有条件跳转语句只能在短范围内跳转,不能跳转的范围太大,后来通过在跳转的范围中添加了一些中转站使问题得到解决。 3.在数码管显示,数码管始终无法显示
解决:起初以为问题出在实验箱,换了很多实验箱后问题仍然存在。最后发现是8155方式控制字的问题,其方式控制字与8255不同。
6. 项目的结论
项目的问题最终得到全部解决,通过改变输入,即利用开关控制输入检测项的正异常,程序能够判断检测项的正异常,并可正确显示出正异常项目,直流电机及蜂鸣器均能按照设想工作,数码管正常显示日期。
感言
通过这次项目,最大的感受就是累并快乐着,刚开始做的时候基本是一头雾水,首先对硬件根本不了解,对用软件控制硬件更是无从谈起!因为之前的微机原理实验时,课上的知识还没有学,所以实验本来要达到的熟悉硬件及了解软硬件的结合的目的没有达到!如是,项目开始的时候首先还是先做了下
实验,参照别人的程序,去了解如何用程序控制硬件!但书上对于硬件这一块的介绍还是偏少,软硬件的结合还是在调试过程中慢慢体会到的!之后开始构思整个项目,针对每一块功能进行设计,分块设计程序,分块进行调试。这一过程中,自学了8155,数码管,液晶屏!调试的过程很艰辛,因为程序比较大,加之很多自学的东西也不是特别了解,以及实验箱本身存在的问题,确实花了不少心血,跟着其他班去了很多次机房!做项目的过程中,老师对自己帮助很大,很多东西都是与老师和同学讨论出来的,团队合作能力得到锻炼。同时,查了很多资料,自学的能力也得到提高。这次项目我注意运用了这样一个科学的项目步骤“项目的优化与延伸,可行性可靠性分析,项目的执行,项目的评估”,深有体会,在答辩的时候也跟大家分享了一下!总之,花了不少时间,也学到了不少东西,成果还是不错的。
参考文献
[1] 钱晓捷. 《16/32位微机原理、汇编语言及接口技术》. 第二版,北京:机械工业出版社,2011
年10月.
正在阅读:
微机原理项目汇报 - 图文05-12
2020年巡视动员会主持词及表态发言稿09-07
2015年09月人民时评12-25
XML试题二11-30
核电阀门安装培训教材12-22
08高职药品营销教案首页11-09
解得错中“结”,探得有效“行”论文05-16
2021届高三化学第五次百校联考化学试卷(Word可编辑版)07-21
公务员政审证明材料02-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 微机
- 汇报
- 原理
- 图文
- 项目
- 变流技术试题
- 电气专业毕业设计范文
- 家乡乡镇企业发展情况调查报告
- 吉大11春学期《机械设计基础》主观模拟题页码标注
- 童话的特点及教学策略(新提纲)
- 搞定2014河南选调生行测数字推理靠一拆二连三构造
- 工程测量 地形图矢量化 毕业设计(v1.0.3版 更新版式优化)
- 计算机教师招聘考试多选题
- 高中快速作文素材整合
- 述职述廉报告保安大队大队长XXXdoc
- 200体验磨练8年高考作文题展示
- 小学三年级语文古诗汇总
- 2017年中国和服市场专项调研分析报告目录
- 2017年上海市普通高中学业水平考试信息科技考试(第01场)
- 操作系统分章习题
- Draco2门禁考勤系统使用手册 - 图文
- 6月13日稿江西省交通建设工程安全生产监督检查工作实施细则(1
- 有关愚人节的英语文章
- 甲级单位编制齿轮变速传动装项目可行性报告(立项可研+贷款+用地
- 基于eda的课程设计 自动售货机控制设计