微机原理课程设计--模拟医院报警系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程设计题目:模拟医院报警系统设计
起止日期:2012年6月4日起——至 2012 年 6月 8 日止
课程设计任务书课程设计题目:模拟医院报警系统设计
一、设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据
查阅可编程并行芯片8255、中断控制等其他相关资料。
用简单的输入输出端口等硬件,结合开关状态实现报警灯亮灭控制。
三、设计的主要内容及要求
内容:利用微机原理实验箱,采用一组发光二极管来模拟报警灯。
要求:
1.采用8个开关为8个病房的开关,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。
2.警报有8254控制一个扬声器发出。
3.设置一个警报清除按键,通过8259中断进入,清除所有报警情况。
四、对设计说明书撰写内容、格式、字数的要求
1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用
黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;
提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线
图、设计的程序及必要注释等。
六、时间进度安排;
七、主要参考资料(文献)
[1]王惠中. 微机原理及应用.武汉:武汉大学出版社,2011
[2] 邹逢兴. 微型计算机原理与接口技术实验指导. 北京:清华大学出版社,2009
[3] 赵全利,吕建平,邹雪艳.微型计算机原理及接口技术.北京:机械工业出版社,2009
[4] 何宏.微型计算机原理与接口技术.陕西:西安电子科技大学出版社,2009
[5] 丁新民微机原理及其应用.上海;高等教育出版社,2009
沈阳工程学院
微机原理及应用课程设计成绩评定表系(部):电气工程系班级:供电本094 学生姓名:李天祥
目录
第一章绪论.......................................................... - 1 -1.1设计要求............................................................ - 1 -1.2设计目的............................................................ - 1 -第二章硬件设计 ....................................................... - 2 -2.1硬件原理............................................................ - 2 -
2.1.1 8255芯片简介 .............................................. - 2 -
2.1.2 8254计数器/定时器芯片.................................... - 3 -
2.1.1 8259中断控制芯片.......................................... - 5 -2.2 硬件流程图......................................................... - 7 -2.3 实际连接图......................................................... - 8 -第三章程序设计 ...................................................... - 10 -第四章系统实现 ...................................................... - 14 -第五章结论........................................................... - 15 -
第一章绪论
1.1 设计要求
内容
利用微机原理实验箱,采用一组发光二极管来模拟报警灯。
要求
1.采用8个开关为8个病房的开关,当有人按下时立即在8个发光二级管上显
示出来,并且该位置闪动,同时发出警报,病房号通过一个数码管显示出来。
2.警报由8254控制一个扬声器发出。
3.设置一个警报清除按键,通过8259中断进入,清除所有报警情况。
4.设置7号与8号病房为高危病房,当有人按下这两个病房的开关时,数码管
的数字将闪动8次,以示警告,之后与正常病房反应相同
1.2设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
第二章硬件设计
2.1硬件原理
2.1.1 8255芯片简介
8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
图2.1 8255芯片的内部结构图
(1)输入/输出端口A、B、C 。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
(2)A组和B组控制电路。
这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。
A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。
(3)读/写控制逻辑,它负责管理8255的数据传输过程。
它接收CS及RD、WR、RESET,还有来自系统地址总线的口地址选择信号A0和A1。
将这些信号组
合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。
1 D6 D5 D4 D3 D
2 D1 D0
方式选择控制字的标志位A组方式选择
00-方式0
01-方式1
1X-方式2通道A:
00-输入
11-输出
P C3~P C0:1-输入
0-输出
通道B:1-输入
0-输出
B组方式选择:0-方式0
1-方式1
P C7~P C4:1-输入
0-输出
(4)数据总缓冲器,它是8位的双向的三态缓冲器。
作为8255与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255传送的工作状态等信息,都是通过它来传输的。
8255芯片的控制字
8255控制字有两类。
一类用于定义各端口的工作方式,称为方式选择控制字;另一类用于对PC口的任一位进行置位或者复位操作,称为置位或复位控制字。
对8255进行编程时这两种控制字多被写入控制寄存器中。
但方式选择控制字D7位总是“1”,而置位或复位控制字的D7位总是“0”。
1、工作方式选择控制字
它可以使8255的三个端口工作于不同的工作方式(方式0:基本输入/出方式,方式1:选通输入/出方式,方式2:双向选通工作方式)。
图 2.2 方式选择控制字格式
本次课设中8255芯片只用到了工作方式0,控制字为90H(A口输入,B口、C 口输出)。
2.1.28254计数器/定时器芯片
1.8254计数器/定时器芯片简介
8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。
8254芯片内部具有三个独立的16位计数器,它可用程序设置成多种工作方式,按十进制计数或者按二进制计数,最高计数速率可达10MHz。
2.8254定时器\计数器的主要特性
每个计数器可按二进制或十进制(BCD)计数;每个计数器可编程工作于6 种不同工作方式;每个计数器允许的最高计数频率为10MHz;
8254 有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为n=fCLKi ÷fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
3.8254芯片内部结构
8254的内部结构如图2.3所示,它主要包括以下几个主要部分:
图 2.3 8254芯片的内部结构
(1)数据总线缓冲器
数据总线缓冲器是一个三态、双向8位寄存器主要作用是与CPU进行数据交换,8位数据线D7~D0与CPU的系统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。
(2)读/写逻辑
读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。
读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。
(3)控制字寄存器
控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。
(4)计数器
8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每个计数器有六种工作方式,各自可按照编程设定的方式工作。
2.1.3 8259中断控制芯片
8259芯片内部结构和引脚
图2.4 8259芯片内部结构
8259的内部控制字:
8259工作之前必须通过CPU来命令它。
CPU命令分为两大类:一类是初始化命令字(ICW),主要是为了让8259处于初始化状态;另一类是操作命令字(OCW),使初始化的 8259去执行具体的某种操作方式。
(1) 初始化命令字
①初始化命令字ICW1
图2.5 初始化命令字ICW1
②初始化命令字ICW2
8086/88模式下,仅用ICW2提供不同中断源的中断向量码。
当中断响应时,根据中断向量表得到入口地址。
图2.6 初始化命令字ICW2
④初始化命令字ICW4
图2.7 初始化命令字ICW4
(2) 操作命令字OCW
对8259初始化之后,该芯片就进入工作状态,准备好接收IR端进入的中断请求。
①操作命令字OCW1
它用于设置对8259中断的屏蔽操作。
该八位的操作字的某一位为1时,它就屏蔽相对应的IR输入。
②操作命令字OCW2
该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。
2.2 硬件流程图
=
图2.8 模拟医院报警系统流程图
2.3 实际连接图
器
2.9
第三章程序设计
IOY3 EQU 06C0H
IOY1 EQU 0640H
MY8254_COUNT0 EQU IOY3+00H ;8254计数器0端口地址
MY8254_COUNT1 EQU IOY3+02H ;8254计数器1端口地址
MY8254_COUNT2 EQU IOY3+04H ;8254计数器2端口地址
MY8254_MODE EQU IOY3+06H ;8254控制寄存器端口地址
MY8255_COUNT0 EQU IOY1+00H ;8255 A端口地址
MY8255_COUNT1 EQU IOY1+02H ;8255 B端口地址
MY8255_COUNT2 EQU IOY1+04H ;8255 C端口地址
MY8255_MODE EQU IOY1+06H ;8255控制寄存器端口地址
STACK1 SEGMENT STACK
BUF DB 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
TAB2 DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,3FH
TIME DD 100000
LEDS EQU MY8255_COUNT2
FREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表
DW 495,495,624,742,833,833,833,742,624
TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表 DB 6, 2, 4, 4, 12, 1, 3, 6, 2
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA ;以下初始化8254 MOV BL,00H
MOV DS,AX
MOV DX,MY8254_MODE
MOV AL,36H
OUT DX,AL
MOV DX, MY8255_MODE ;以下初始化8255
MOV AL, 90H
OUT DX, AL
XIE: MOV DX, MY8255_COUNT0 ;端口A输入IN AL, DX
MOV DX, MY8255_COUNT1 ;端口B输出
OUT DX, AL
CALL DALLY
MOV DX,MY8255_COUNT2 ;端口C输出
OUT DX,AL
MOV DI,OFFSET TAB2
MOV CX,8
CMP AL,01H ;判断1号病房是否报警
JE OK1
CMP AL,02H ;判断2号病房是否报警
JE OK2
CMP AL,04H ;判断3号病房是否报警
JE OK3
CMP AL,08H ;判断4号病房是否报警
JE OK4
CMP AL,10H ;判断5号病房是否报警
JE OK5
CMP AL,20H ;判断6号病房是否报警
JE OK6
CMP AL,40H ;判断7号病房是否报警
JE OK7
CMP AL,80H ;判断1号病房是否报警
JE OK8
JMP XIE ;循环等待病房报警
OK1: MOV AL,[DI] ;设置1号病房普通病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
JMP BEGIN ;扬声器报警
OK2: MOV AL,[DI+1] ;设置2号病房普通病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
JMP BEGIN
OK3: MOV AL,[DI+2] ;设置3号病房高危病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号JMP BEGIN
OK4: MOV AL,[DI+3] ;设置4号病房高危病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
JMP BEGIN
OK5: MOV AL,[DI+4] ;设置5号病房普通病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
JMP BEGIN
OK6: MOV AL,[DI+5] ;设置6号病房普通病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
JMP BEGIN
OK7: MOV AL,[DI+6] ;设置7号病房高危病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
CALL DALLY
MOV AL,00H ;数码管熄灭
MOV DX,LEDS
OUT DX,AL
CALL DALLY
LOOP OK7 ;循环闪烁
JMP BEGIN
OK8: MOV AL,[DI+7] ;设置8号病房高危病房 MOV DX,LEDS
OUT DX,AL ;数码管显示病房号
CALL DALLY
MOV AL,00H ;数码管熄灭
MOV DX,LEDS
OUT DX,AL
CALL DALLY
LOOP OK8 ;循环闪烁
JMP BEGIN
BEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始地PLAY: MOV DX,0FH ;入时钟为1MHz,1M = 0F4240H MOV AX,4240H
DIV WORD PTR [SI] ;出频率值计算计数初值,0F4240H / 输出频率
MOV DX,MY8254_COUNT0
OUT DX,AL ;入计数初值
MOV AL,AH
OUT DX,AL
MOV DL,[DI] ;取出演奏相对时间,调用延时子程序
CALL DALLY
ADD SI,2
INC DI
CMP WORD PTR [SI],0 ;断是否到曲末?
JE BEGIN
BB1: PUSH DS
MOV AX, 0000H
MOV DS, AX
MOV AX, OFFSET MIR7 ;取中断入口地址
MOV SI, 003CH ;中断矢量地址
MOV [SI], AX ;IRQ7的偏移矢量
MOV AX, CS
MOV SI, 003EH ;段地址
MOV [SI], AX ;填IRQ7的段地址矢量
CLI
POP DS ;初始化主片8259
MOV AL, 11H
OUT 20H, AL ;ICW1
MOV AL, 08H
OUT 21H, AL ;ICW2
MOV AL, 04H
OUT 21H, AL ;ICW3
MOV AL, 01H
OUT 21H, AL ;ICW4
MOV AL, 6FH
OUT 21H, AL ;OCW1
STI
AA1: NOP ;循环等待中断信号JMP BEGIN
MIR7: STI ;开中断
CALL DALLY
MOV AX, 00H
MOV DX,0642H ;B口输出
OUT DX,AX
MOV DX,0644H ;C口输出
MOV AX,[DI+8]
OUT DX,AX
MOV AL, 20H ;断结束 OCW2为20H OUT 20H, AL
JMP START
IRET ;关中断
DALLY: PUSH CX ;延时子程序
MOV CX,0F00H
AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
第四章系统实现
实现功能:采用8个开关为8个病房的开关,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。
设置7号与8号病房为高危病房,当有人按下这两个病房的开关时,数码管的数字将闪动8次,以示警告,之后与正常病房反应相同。
图4.1 医院报警系统实现图
第五章结论
一周的课程设计过去了,使我感受颇深。
在整个过程中,我真正的感受到了集体的力量。
刚开始做一个题目时,我感到很困难,但是在2位老师以及同学们的帮助下,每次的任务都能按照老师的要求完成。
在这里向老师及同学表示感谢。
在这期间,通过实践使我对微机这门课有了新的认识,感受到了微机这门课对我们的重要性。
所以自己也下决心要通过这次实训掌握更多的微机知识。
我们小组在设计中,针对实训题目、设计的具体情况进行了细致的分工。
每个人负责一块任务,其他人协助设计。
设计的每个阶段都是紧密相连的,所以需要大家互相协调工作。
然而在实验中我们组也遇到了不少的问题,但是我们并没有放弃,通过大家一起讨论,以及老师和同学们的热心帮助,才使我们最后完成了老师交给的任务。
在这次的实验中使我了解到了微机实践的重要性。
这使我在以后的学习工作中能更好更快的去了解理论知识,做一个理论和实践相结合的人才。
这次实训给我们提供了一个很好的实践平台,在学习理论的同时,通过实践使我们更好地理解课堂上所学到的知识,也为今后走到工作岗位奠定了很好的基础。
使我在以后在找工作的竞争中多了一个制胜的筹码。
总而言之,这次课程设计不仅使我们巩固了所学的理论知识、锻炼了大家动手能,更重要的是通过设计使我们认识了自己在实践设计方面的缺点与不足,在以后的学习中有针对性地加强自己的设计能力,打下良好、扎实的基础,给将来的工作与学习带来更多的帮助。
资料仅供参考!!!。