微机原理课程设计模拟医院报警系统.docx

上传人:b****7 文档编号:26113321 上传时间:2023-06-17 格式:DOCX 页数:53 大小:456.20KB
下载 相关 举报
微机原理课程设计模拟医院报警系统.docx_第1页
第1页 / 共53页
微机原理课程设计模拟医院报警系统.docx_第2页
第2页 / 共53页
微机原理课程设计模拟医院报警系统.docx_第3页
第3页 / 共53页
微机原理课程设计模拟医院报警系统.docx_第4页
第4页 / 共53页
微机原理课程设计模拟医院报警系统.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

微机原理课程设计模拟医院报警系统.docx

《微机原理课程设计模拟医院报警系统.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计模拟医院报警系统.docx(53页珍藏版)》请在冰豆网上搜索。

微机原理课程设计模拟医院报警系统.docx

微机原理课程设计模拟医院报警系统

|

 

微机原理与接口技术

课程设计

 

课程设计科目

模拟医院报警系统设计

学生姓名

学号

班级

指导教师

 

一.题意分析与解决方案

需求分析

采用7个开关为7个病房的开关,其中有两个是高危病房,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。

当有高危病房的按键按下之后,立马将他的病房号调到第一个数码管显示并且相应的数码管显示,警报由一个扬声器发出。

设置一个警报清除按键,清除所有报警情况。

:

算法及思路

(1)硬件部分

针对需求中的分析,作如下解决:

1)LED灯作为刺激信号;

2)用按键的高低电平信号作为用户的回馈信号;

3)采用0832来控制蜂鸣器发出声音;

4)为了显示出病房号,选择了7段数码管作为显示工具,用8255和8279来控制数码管;

(2)软件部分

首先,根据硬件需求采用8255A,8279A和0832,为实现对数码管、键盘、LED灯和蜂鸣器的控制,采用汇编语言,分别对8255A和0832进行初始化设置,然后采用继承函数从数据库里对8279相关功能进行调用。

然后,程序查询8255A的PA口输入的开关信号,决定8255A何时向外部设备发送的刺激信号,即低电平信号(LED灯点亮),通过相关的代码用8279对数码管进行位选和段选。

最后,程序查询8255A的PB端口接收缓冲区内回馈电信号,根据所得到的信号(低电平有效),调用相应模式子程序,并且在数码管上显示病房号,蜂鸣器发出声音。

二.硬件设计

芯片8255

1)芯片8255在本设计中的作用

芯片8255在本实验中主要用于控制按键的开关、数码管以及LED灯。

2)!

3)芯片8255的功能分析

图2-18255内部结构图

8255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。

三个端口都可以作为输入端口或输出端口。

A口有三种工作方式:

即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。

8255的工作只有当片选CS效时才能进行。

而控制逻辑端口实现对其他端口的控制。

使用8255芯片的C口,将其设置为基本输出工作方式,通过PC0输出线连接到芯片8253的GATE2口,使其计数器2正常工作,通过PC0输出线连接到D1区的CTRL口,控制蜂鸣器的开关。

读/写控制逻辑,它负责管理8255的数据传输过程。

它接收CS及RD、WR、RESET,还有来自系统地址总线的口地址选择信号A0和A1。

将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。

`

3)8255的技术参数

表2-18255技术参数

参数名称

符号

测试条件

最大规范值

最小规范值

输入低电平电压

VIL

输入高电平电压

VIH

Vcc

'

输入低电平电压(数据总线)

VOL

IOL=

输入低电平电压(外部端口)

VOL

IOL=

输入高电平电压(数据总线)

VOH

IOH=-400MA

`

输入高电平电压(外部端口)

VOH

IOH=-200MA

达林顿驱动电流

IDAR

REXT=750VEXT=

~

电源电流

ICC

120MA

输入负载电流

`

IIL

I=Vcc—0V

+10MA

-10MA

输出浮动电流

IOFL

Vout=Vcc--0

+10MA

%

-10MA

<

芯片8279

1)芯片8279在本设计中的作用

芯片8279在本实验中主要用于控制数码管。

2)芯片8279的功能分析

 

本图片为8279引脚图

%

8279采用单±5V电源供电,40脚封装。

 

  DB0~DB7:

双向数据总线,用来传送8279与CPU之间的数据和命令。

 

  CLK:

时钟输入线,用以产生内部定时的时钟周期。

 

  RESET:

复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序 

  时钟前置分频器被置为31,RESET信号高电平有效。

 

  CS:

片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。

 

  A0:

缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。

 

  RD:

读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。

 

  WR:

写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。

 

  RL2--140--VCC 

IRQ:

中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时, 

  此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM 

  中还有信息,则此线重又变为高电平。

在传感器工作方式中,每当探测到传感器信号变 

  化时,中断线就变为高电平。

 

  SL0~SL3:

扫描线,用来扫描按键开关,传感器阵列和显示数字,这些可被编程或被译码。

 

  RL0~RL7:

回送线,经过按键或传感器开关与扫描线联接,这些回送线内部设置有上拉电 

  路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时, 

  均保持高电平。

 

  SHIFT:

换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保 

  持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。

 

  CNTL/STB:

当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入 

  方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来, 

  在选通输入方式中,作选通用,把数据存入FIFORAM中。

 

  OUTA3~OUTA0及OUTB3~OUTB0:

显示输出A口及B口,这两个口是16×4切换的数字显示。

这 

  两个端口可被独立控制,也可看成一个8位端口。

 

  BD:

空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示 

  空格字符。

 

  VCC:

+5V电源输入线。

 

  VSS:

地线输入线。

 

  ☆8279的编程方法 

  可按其功能分为:

键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括 

  控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作. 

  :

:

控制和定时寄存器:

用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作 

  方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR 

  上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能. 

  :

:

定时和控制:

它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器, 

  分频系数可由程序预置,使内部频率为100KHz,从而能给出键盘扫描时间和反 

  跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以 

  及显示器扫描次数. 

  :

:

扫描计数器:

扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数, 

  通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式 

  时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译 

  码扫描. 

  :

:

键盘功能块包括:

返回缓冲器,键盘反跳及控制,8x8FIFO传感器RAM,FIFO/传感器RAM状态. 

  2.返回缓冲器与键盘反跳及控制 

  8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合 

  的键,如果反跳电路测知某键闭合,则它等待,然后重核此键是否仍然闭合,如果仍闭合, 

  那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFORAM中 

  的数据格式如下:

 

  D7D6D5D4D3D2D1D0 

  CNTLSHIFTSCANRETURN 

  数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器, 

  扫描线计数器和回扫线计数器的值分别反映出被按下键的行.列的值,如果在传感器阵列中, 

  返回线上的数据直接进入传感器RAM中相应于阵列中正被扫中的那行,这样每个开关位置就直 

  接反映为一个传感器RAM的位置. 

芯片DAC0832的技术参数

图2-2DAC0832

DAC0832芯片采用CMOS工艺,四象限乘法型DAC与微机兼容,数据输入能与双缓冲,单缓冲或直接缓冲通过三种方式工作。

1、单缓冲方式。

单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。

此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。

2、双缓冲方式。

双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。

此方式适用于多个D/A转换同步输出的情节。

3、直通方式。

直通方式是资料不经两级锁存器锁存,即CS*,XFER*,WR1*,WR2*均接地,ILE接高电平。

此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。

结构:

D0~D7:

8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);

ILE:

数据锁存允许控制信号输入线,高电平有效;

CS:

片选信号输入线(选通数据锁存器),低电平有效;

WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

XFER:

数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;

WR2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

IOUT1:

电流输出端1,其值随DAC寄存器的内容线性变化;

IOUT2:

电流输出端2,其值与IOUT1值之和为一常数;

Rfb:

反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;

Vcc:

电源输入端,Vcc的范围为+5V~+15V;

VREF:

基准电压输入线,VREF的范围为-10V~+10V;

AGND:

模拟信号地;

DGND:

数字信号地。

&

主要参数为:

表2-2DAC0832主要技术参数

转换时间

1us

分辨率

8位

功耗

20mW

}

单一工作电源

+5V~+15V

电流建立时间

1

线性度

8,9或10位

增益温度系数

%usFS/℃

在此实验箱中的DAC0832芯片中包含有运算放大器,用来将电流信号转换成电压信号量,并且能够放大信号量。

本实验是通过0832来控制蜂鸣器。

选择器件蜂鸣器

1)蜂鸣器在本设计中的作用

在本实验中,蜂鸣器是用做报警处理。

图2-3蜂鸣器电路图

2)蜂鸣器的功能分析

<

扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。

当输入端输入一定频率的方波时,在RC震荡电路的作用下,蜂鸣器会发出一定频率的声音。

3)蜂鸣器的技术参数

它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。

本实验只关心应用电压,其为5V。

选择数码管

图2-4数码管电路图

.

图2-5数码管

(1)数码管在本设计中的作用

在本设计中,数码管的作用不容小觑,主要用于显示病房号。

(2)数码管的技术参数分析

使用数码管时,应该区分数码管时共阴还是共阳,在本设计中,所有的数码管都是共阴的。

只要段选输入高电平即可点亮不同位置的数码管进而显示数据。

表2-3共阳极LED显示管段选码编码表

数字

Dp

.

g

f

e

d

c

b

a

二进制编码

0

1

1

0

0

0

0

0

0

C0H

1

1

1

1

1

1

@

0

0

1

F9H

2

1

0

1

0

0

1

0

0

A4H

3

1

0

1

1

0

0

0

0

B0H

~

4

1

0

0

1

1

0

0

1

99H

5

1

0

0

1

0

~

0

1

0

92H

6

1

0

0

\

0

0

0

1

0

82H

7

1

-

1

1

1

1

0

0

0

F8H

8

1

0

0

0

0

0

0

0

80H

9

1

0

0

0

0

/

1

1

0

90H

LED灯

图2-6LED原理图

(1)LED灯在本设计中的作用

&

在本设计中,LED灯的作用是作为病房信号,按下按键时,led发光。

(2)LED灯的功能分析

通过LED灯的亮、灭作为一个刺激信号。

(3)LED灯的技术参数分析

LED灯的功能较为简单,为一个发光二极管,当该二极管导通时闪亮,截止时不闪亮。

按键

#

图2-7微型按钮

(1)按键在本设计中的作用

在本设计中,键盘主要的作用是启动系统。

(2)按键的功能分析

按键的功能比较单一,按键或不按键,该端口将输出不同的电平信号。

(3)按键的技术参数分析

按键一段接芯片输入端口,另一端接VCC,当按键时,开关闭合,电平强制被拉低,通过低电平的信号输入即可知道是否有按键的输入啦。

|

硬件总逻辑图及其说明

硬件原理图:

图2-8-1硬件原理图

硬件原理图说明:

表2-4连线图

A3区

A0、A1、CS1

·

B4区

A0、A1、CS

A3区

CS3

F3区

CS

B4区

A、C

@

G6区

按键、LED

B4区

B

G5区

B

G5区

JP41

C1区

开关

D1区

CTRL

F3区

OUT

E5区

CLK

"

B2

2M

E5

A0

A3

A0

 

 

软件仿真图

图2-8-2软件总体仿真图

图2-8-3左半部分图

图2-8-4软件右半部分图

三.控制程序设计

控制程序设计思路说明

本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。

具体而言,控制程序主要有:

主程序块,初始化8255A,调用8279函数,初始化DAC0832子模块,延时子模块及其他一些初始化程序。

程序流程图

 

!

Y

Y

 

~

 

 

=

^

 

 

图模拟医院报警系统流程图

 

~

图3-2延时子程序

图3-3点亮LED

控制程序

.MODELTINY

!

IOYEQU0F000H;对应端口CS1

A_8255EQUIOY+00H;控制按键

B_8255EQUIOY+01H;控制数码管

C_8255EQUIOY+02H;控制LED

CON_8255EQUIOY+03H

ADDR_0832EQU0D000H;ADC0832,CS2

EXTRNDisplay8:

NEAR

.STACK300

.DATA

BUFFERDB8DUP(0)

SHOW_BUFFERDB8DUP(10H)

LED_FLAGDB8DUP(0);表示灯1的状态,0表示灭,1为亮

KEY_COUNTDB0;表示总共多少病房

}

SHAN_TIMEDW0

SHAN_BUFDB2DUP(0)

KEY_VALUEDB

KEY_VDB0FFH;保存灯的状态,最开始时二极管全灭,每当按一个按键使一个灯亮

.CODE

MAIN:

MOVDX,CON_8255

\

MOVAL,B;方式0,A口输入,B口、C口输出

OUTDX,AL

MOVDX,C_8255

MOVAL,0FFH;C口输出高电平,LED全灭

OUTDX,AL

MOVDX,ADDR_0832

MOVAL,0FFH

^

OUTDX,AL;蜂鸣器初始状态,不响

CALLCLEAR_SEGMENT;清数码管显示

KEY_SCAN:

CALLSHANSHUO

MOVDX,A_8255

INAL,DX;读键值

CMPAL,0FFH

?

JZKEY_SCAN

CALLDL500ms

MOVKEY_VALUE,AL

CLEAR_KEY:

;消抖

INAL,DX;读键值

CMPAL,0FFH

JNZCLEAR_KEY

MOVAL,KEY_VALUE

;CALLSHOW+

CALLFIND_KEY;找出按键位置

JMPKEY_SCAN

CLEAR_SEGMENTPROCNEAR

PUSHDI

PUSHCX

PUSHAX

LEADI,BUFFER

MOVAL,10H

MOVCX,8

LOOPCLEAR:

STOSB

LOOPLOOPCLEAR

~

LEASI,BUFFER

CALLDisplay8

CALLFMQ_OFF

POPAX

POPCX

POPDI

|

RET

CLEAR_SEGMENTENDP

FIND_KEYPROCNEAR

PUSHAX

PUSHCX

PUSHBX

MOVAL,KEY_VALUE

MOVCX,8

MOVBL,B

FIND1:

CMPAL,BL

ROLBL,1

LOOPNZFIND1

JCXZFIND_8

FIND_IT:

?

CALLCHANGE_LED

JMPFIND_RET

FIND_8:

CALLCLEAR_ALL

FIND_RET:

POPBX

POPCX

POPAX

"

RET

FIND_KEYENDP

CHANGE_LEDPROCNEAR

PUSHAX

PUSHSI

PUSHDI

MOVDX,CON_8255

>

CHANGE1:

LEASI,LED_FLAG

ADDSI,CX

DECSI

LODSB

CMPAL,1

JNZSET1

{

SET0:

MOVAL,CL

ROLAL,1

ORAL,00H

OUTDX,AL

LEADI,LED_FLAG;如果该位已经按过,表示该灭灯

ADDDI,CX

DECDI

MOVAL,0

STOSB

;CALLDELETE_ONE;删除一个,

JMPCHANGE_RET

SET1:

MOVAL,CL

ROLAL,1

ANDAL,0FFH

~

OUTDX,AL

LEADI,LED_FLAG

ADDDI,CX

DECDI

MOVAL,1

STOSB

`

;CALLADD_ONE;增加一个

CHANGE_RET:

POPDI

POPSI

POPAX

RET

CHANGE_LEDENDP

ADD_ONEPROCNEAR

PUSHAX

PUSHCX

PUSHBX

XORAX,AX

MOVAL,KEY_COUNT;放到show_data数组之后添加

;将按下的键值换为数存入show_buf中

MOVBH,8

SUBBH,CL

;判断是否=67

CMPBH,6

JBADDIT

ADDFIRST:

LEASI,SHOW_BUFFER

LEADI,SHOW_BUFFER

ADDSI,AX

ADDDI,AX

DECSI

XORCH,CH

MOVCL,KEY_COUNT

STD;DF=1,减量操作

REPMOVSB

CLD

XORAX,AX

ADDIT:

LEADI,SHOW_BUFFER

ADDDI,AX

MOVAL,BH

STOSB

MOVAL,KEY_COUNT

INCAL

MOVKEY_COUNT,AL

LEASI,SHOW_BUFFER

LEADI,BUFFER

MOVCX,8

?

REPMOVSB

LEASI,BUFFER

CALLDisplay8

CALLFMQ_ON

POPBX

POPCX

|

POPAX

RET

ADD_ONEENDP

DELETE_ONEPROCNEAR

PUSHAX

PUSHSI

PUSHDI

&

XORAX,AX

MOVAH,8

SUBAH,CL

;MOVAL,KEY_COUNT

;DECAL

LEASI,SHOW_BUFFER

MOVCL,KEY_COUNT

#

FINDNUM:

LODSB

CMPAL,AH

LOOPNZFINDNUM

;JCXZDELETE_RET

DELETE_IT:

LEADI,SHOW_BUFFER

LEASI,SHOW_BUFFER

#

MOVAL,CL

MOVCH,KEY_COUNT

SUBCH,CL

MOVCL,CH

XORCH,CH

/

ADDSI,CX

ADDDI,CX

DECDI

MOVCL,AL

INCCL

;DECCL

REPMOVSB

LEASI,SHOW_BUFFER

LEADI,BUFFER

MOVCX,8

REPMOVSB

LEASI,BUFFER

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1