ImageVerifierCode 换一换
格式:DOCX , 页数:46 ,大小:315.18KB ,
资源ID:9809650      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9809650.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计 模拟医院报警系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、微机原理课程设计 模拟医院报警系统微机原理与接口技术课程设计课程设计科目模拟医院报警系统设计学生姓名学号班级 指导教师 一.题意分析与解决方案1.1需求分析采用7个开关为7个病房的开关,其中有两个是高危病房,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。当有高危病房的按键按下之后,立马将他的病房号调到第一个数码管显示并且相应的数码管显示,警报由一个扬声器发出。设置一个警报清除按键,清除所有报警情况。1.2算法及思路(1)硬件部分针对需求中的分析,作如下解决:1)LED灯作为刺激信号;2)用按键的高低电平信号作为用户的回馈信号;3)采用083

2、2来控制蜂鸣器发出声音;4)为了显示出病房号,选择了7段数码管作为显示工具,用8255和8279来控制数码管;(2)软件部分首先,根据硬件需求采用8255A,8279A和0832,为实现对数码管、键盘、LED灯和蜂鸣器的控制,采用汇编语言,分别对8255A和0832进行初始化设置,然后采用继承函数从数据库里对8279相关功能进行调用。然后,程序查询8255A的PA口输入的开关信号,决定8255A何时向外部设备发送的刺激信号,即低电平信号(LED灯点亮),通过相关的代码用8279对数码管进行位选和段选。最后,程序查询8255A的PB端口接收缓冲区内回馈电信号,根据所得到的信号(低电平有效),调用

3、相应模式子程序,并且在数码管上显示病房号,蜂鸣器发出声音。二.硬件设计2.1芯片82551)芯片8255在本设计中的作用芯片8255在本实验中主要用于控制按键的开关、数码管以及LED灯。2)芯片8255的功能分析图2-1 8255内部结构图8255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。三个端口都可以作为输入端口或输出端口。A口有三种工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。8255的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。使用8255芯片的C口,将其设置为基本输出工作方式,通过

4、PC0输出线连接到芯片8253的GATE2口,使其计数器2正常工作,通过PC0输出线连接到D1区的CTRL口,控制蜂鸣器的开关。读/写控制逻辑,它负责管理8255的数据传输过程。它接收CS及RD、WR、RESET,还有来自系统地址总线的口地址选择信号A0和A1。将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。3)8255的技术参数表2-1 8255技术参数参数名称符号测试条件最大规范值最小规范值输入低电平电压VIL0.8V-0.5V输入高电平电压VIHVcc2.0V输入低电平电压(数据总线)VOLIOL=2.5MA0

5、.45V输入低电平电压(外部端口)VOLIOL=1.7MA0.45V输入高电平电压(数据总线)VOHIOH=-400MA2.4V输入高电平电压(外部端口)VOHIOH=-200MA2.4V达林顿驱动电流IDARREXT=750 VEXT=1.5V-0.4MA1.0MA电源电流ICC120MA输入负载电流IILI=Vcc0V+10MA-10MA输出浮动电流IOFLVout=Vcc-0+10MA-10MA 2.2 芯片82791)芯片8279在本设计中的作用芯片8279在本实验中主要用于控制数码管。2)芯片8279的功能分析本图片为8279引脚图8279采用单5V电源供电,40脚封装。DB0DB7

6、:双向数据总线,用来传送8279与CPU之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟周期。RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号高电平有效。CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。RL2- 1 40

7、 -VCCIRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变化时,中断线就变为高电平。SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。SHIFT:换位功能,当有开关闭合时被拉为低

8、电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是164切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。VC

9、C:+5V电源输入线。VSS:地线输入线。8279的编程方法1.8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.:控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能.:定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,

10、使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以及显示器扫描次数.:扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描.:键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO传感器RAM,FIFO/传感器RAM状态.2.返回缓冲器与键盘反跳及控制8条返回线被返回缓冲器缓

11、冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合的键,如果反跳电路测知某键闭合,则它等待10.3ms,然后重核此键是否仍然闭合,如果仍闭合,那么该键在矩阵中的行列地址以及SHIFT和CNTL的状态一起被送到FIFORAM中,其在FIFO RAM中的数据格式如下:D7 D6 D5 D4 D3 D2 D1 D0CNTL SHIFT SCAN RET URN数据格式中,最高位CNTL,次高位为SHIFT状态,D5-D3来自扫描计数器,D2-D0来自返回计数器,扫描线计数器和回扫线计数器的值分别反映出被按下键的行.列的值,如果在传感器阵列中,返回线上的数据直接进入传感器RAM中相应于阵列中

12、正被扫中的那行,这样每个开关位置就直接反映为一个传感器RAM的位置.2.3芯片DAC0832的技术参数图2-2 DAC0832DAC0832芯片采用CMOS工艺,四象限乘法型DAC与微机兼容,数据输入能与双缓冲,单缓冲或直接缓冲通过三种方式工作。1、单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。2、双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。3、直通方式。直通方式

13、是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。结构:D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将

14、输入数据锁存;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:基准电压输入线,VRE

15、F的范围为-10V+10V;AGND:模拟信号地;DGND:数字信号地。主要参数为:表2-2 DAC0832主要技术参数转换时间1us分辨率8位功耗20mW单一工作电源+5V+15V电流建立时间1线性度8,9或10位增益温度系数0.0002%usFS/在此实验箱中的DAC0832芯片中包含有运算放大器,用来将电流信号转换成电压信号量,并且能够放大信号量。本实验是通过0832来控制蜂鸣器。2.4选择器件蜂鸣器1)蜂鸣器在本设计中的作用在本实验中,蜂鸣器是用做报警处理。图2-3 蜂鸣器电路图2)蜂鸣器的功能分析扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。当输入端输入一定频率

16、的方波时,在RC震荡电路的作用下,蜂鸣器会发出一定频率的声音。3)蜂鸣器的技术参数它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。本实验只关心应用电压,其为5V。2.5选择数码管图2-4 数码管电路图图2-5 数码管(1)数码管在本设计中的作用 在本设计中,数码管的作用不容小觑,主要用于显示病房号。(2)数码管的技术参数分析 使用数码管时,应该区分数码管时共阴还是共阳,在本设计中,所有的数码管都是共阴的。只要段选输入高电平即可点亮不同位置的数码管进而显示数据。表2-3共阳极LED显示管段选码编码表数字Dpgfedcba二进制编码011000000C0H111111

17、001F9H 210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91000011090H2.6 LED灯图2-6 LED原理图(1)LED灯在本设计中的作用 在本设计中,LED灯的作用是作为病房信号,按下按键时,led发光。 (2)LED灯的功能分析 通过LED灯的亮、灭作为一个刺激信号。(3)LED灯的技术参数分析 LED灯的功能较为简单,为一个发光二极管,当该二极管导通时闪亮,截止时不闪亮。2.7按键图2-7微型按钮(1)按键在本设计中的作用 在本设计中,键盘主要的作用是启

18、动系统。(2)按键的功能分析 按键的功能比较单一,按键或不按键,该端口将输出不同的电平信号。(3)按键的技术参数分析 按键一段接芯片输入端口,另一端接VCC,当按键时,开关闭合,电平强制被拉低,通过低电平的信号输入即可知道是否有按键的输入啦。2.8硬件总逻辑图及其说明硬件原理图:图2-8-1 硬件原理图硬件原理图说明:表2-4 连线图A3区A0、A1、CS1B4区A0、A1、CSA3区CS3F3区CSB4区A、CG6区按键、LEDB4区BG5区BG5区JP41C1区开关D1区CTRLF3区OUTE5区CLKB22ME5A0A3A0软件仿真图图 2-8-2软件总体仿真图图2-8-3左半部分图图

19、2-8-4软件右半部分图三.控制程序设计3.1控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。具体而言,控制程序主要有:主程序块,初始化8255A,调用8279函数,初始化DAC0832子模块,延时子模块及其他一些初始化程序。3.2程序流程图YY=图3.1 模拟医院报警系统流程图图3-2 延时子程序图3-3 点亮LED3.3控制程序.MODEL TINYIOY EQU 0F000H ; 对应端口CS1A_8255 EQU IOY+00H ; 控制按键B_8255 EQU IOY+01H ; 控制数码管C_8255 EQU IOY+02H

20、 ; 控制LEDCON_8255 EQU IOY+03H ADDR_0832 EQU 0D000H ; ADC0832,CS2EXTRN Display8:NEAR.STACK 300.DATABUFFER DB 8 DUP(0)SHOW_BUFFER DB 8 DUP(10H)LED_FLAG DB 8 DUP(0) ;表示灯1的状态,0表示灭,1为亮KEY_COUNT DB 0 ;表示总共多少病房SHAN_TIME DW 0SHAN_BUF DB 2 DUP(0)KEY_VALUE DB ?KEY_V DB 0FFH ;保存灯的状态,最开始时二极管全灭,每当按一个按键使一个灯亮.CODEM

21、AIN: MOV DX,CON_8255 MOV AL,10010000B ; 方式0,A口输入,B口、C口输出 OUT DX,AL MOV DX,C_8255 MOV AL,0FFH ; C口输出高电平,LED全灭 OUT DX,AL MOV DX,ADDR_0832 MOV AL,0FFH OUT DX,AL ; 蜂鸣器初始状态,不响 CALL CLEAR_SEGMENT ;清数码管显示KEY_SCAN: CALL SHANSHUO MOV DX,A_8255 IN AL,DX ; 读键值 CMP AL,0FFH JZ KEY_SCAN CALL DL500ms MOV KEY_VALUE

22、,ALCLEAR_KEY: ;消抖 IN AL,DX ; 读键值 CMP AL,0FFH JNZ CLEAR_KEY MOV AL,KEY_VALUE ;CALL SHOW+ CALL FIND_KEY ;找出按键位置 JMP KEY_SCANCLEAR_SEGMENT PROC NEAR PUSH DI PUSH CX PUSH AX LEA DI,BUFFER MOV AL,10H MOV CX,8LOOPCLEAR: STOSB LOOP LOOPCLEAR LEA SI,BUFFER CALL Display8 CALL FMQ_OFF POP AX POP CX POP DI RET

23、CLEAR_SEGMENT ENDPFIND_KEY PROC NEAR PUSH AX PUSH CX PUSH BX MOV AL,KEY_VALUE MOV CX,8 MOV BL,11111110BFIND1: CMP AL,BL ROL BL,1 LOOPNZ FIND1 JCXZ FIND_8FIND_IT: CALL CHANGE_LED JMP FIND_RETFIND_8: CALL CLEAR_ALLFIND_RET: POP BX POP CX POP AX RETFIND_KEY ENDPCHANGE_LED PROC NEAR PUSH AX PUSH SI PUSH

24、 DI MOV DX,CON_8255CHANGE1: LEA SI,LED_FLAG ADD SI,CX DEC SI LODSB CMP AL,1 JNZ SET1SET0: MOV AL,CL ROL AL,1 OR AL,00H OUT DX,AL LEA DI,LED_FLAG ;如果该位已经按过,表示该灭灯 ADD DI,CX DEC DI MOV AL,0 STOSB ;CALL DELETE_ONE ;删除一个, JMP CHANGE_RETSET1: MOV AL,CL ROL AL,1 AND AL,0FFH OUT DX,AL LEA DI,LED_FLAG ADD DI

25、,CX DEC DI MOV AL,1 STOSB ;CALL ADD_ONE ;增加一个 CHANGE_RET: POP DI POP SI POP AX RETCHANGE_LED ENDP ADD_ONE PROC NEAR PUSH AX PUSH CX PUSH BX XOR AX,AX MOV AL,KEY_COUNT ;放到show_data数组之后添加 ;将按下的键值换为数存入show_buf中 MOV BH,8 SUB BH,CL ;判断是否=6 7 CMP BH,6 JB ADDITADDFIRST: LEA SI,SHOW_BUFFER LEA DI,SHOW_BUFFE

26、R ADD SI,AX ADD DI,AX DEC SI XOR CH,CH MOV CL,KEY_COUNT STD ;DF=1,减量操作 REP MOVSB CLD XOR AX,AXADDIT: LEA DI,SHOW_BUFFER ADD DI,AX MOV AL,BH STOSB MOV AL,KEY_COUNT INC AL MOV KEY_COUNT,AL LEA SI,SHOW_BUFFER LEA DI,BUFFER MOV CX,8 REP MOVSB LEA SI,BUFFER CALL Display8 CALL FMQ_ON POP BX POP CX POP AX

27、RETADD_ONE ENDPDELETE_ONE PROC NEAR PUSH AX PUSH SI PUSH DI XOR AX,AX MOV AH,8 SUB AH,CL; MOV AL,KEY_COUNT; DEC AL LEA SI,SHOW_BUFFER MOV CL,KEY_COUNTFINDNUM: LODSB CMP AL,AH LOOPNZ FINDNUM; JCXZ DELETE_RETDELETE_IT: LEA DI,SHOW_BUFFER LEA SI,SHOW_BUFFER MOV AL,CL MOV CH,KEY_COUNT SUB CH,CL MOV CL,CH XOR CH,CH ADD SI,CX ADD DI,CX DEC DI MOV CL,AL INC CL; DEC CL REP MOVSB LEA SI,SHOW_BUFFER LEA DI,BUFFER MOV CX,8 REP MOVSB LEA SI,BUFFER CALL Display8 CAL

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

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