微机原理课程设计模拟医院报警系统_第1页
微机原理课程设计模拟医院报警系统_第2页
微机原理课程设计模拟医院报警系统_第3页
微机原理课程设计模拟医院报警系统_第4页
微机原理课程设计模拟医院报警系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、示出病房号,选择了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口,将其设置为基本输出工作方式,通过PC0输出线连接到芯片8253

4、的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.45V输入低电平电压(外部端

5、口)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:写信号输入线,低电平有

7、效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。 RL2- 1 40 -VCC IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时, 此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM 中还有信息,则此线重又变为高电平。在传感器工作方式中, 每当探测到传感器信号变 化时,中断线就变为高电平。 SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。 RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这

8、些回送线内部设置有上拉电 路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时, 均保持高电平。 SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保 持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。 CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入 方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来, 在选通输入方式中,作选通用,把数据存入FIFO R

9、AM中。 OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是16×4切换的数字显示。这 两个端口可被独立控制,也可看成一个8位端口。 BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示 空格字符。 VCC:+5V电源输入线。 VSS:地线输入线。 8279的编程方法 1.8279可按其功能分为:键盘功能块;显示功能块;控制功能块;与CPU接口功能块控制功能块包括 控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块

10、工作. :控制和定时寄存器:用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作 方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0CS=0,并在WR 上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能. :定时和控制:它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器, 分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反 跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描.以

11、60;及显示器扫描次数. :扫描计数器:扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数, 通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式 时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译 码扫描. :键盘功能块包括:返回缓冲器,键盘反跳及控制,8x8 FIFO传感器RAM,FIFO/传感器RAM状态. 2.返回缓冲器与键盘反跳及控制 8条返回线被返回缓冲器缓冲,在键盘工作方式中,这几条线被逐个检测,以找出该行键中闭合

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

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

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

15、时,数据锁存器状态随输入数据线变换,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的

16、范围为+5V+15V;VREF:基准电压输入线,VREF的范围为-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)蜂鸣器的功能分析扬声器是将电能转化成声能,并将声能

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

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

19、键在本设计中的作用 在本设计中,键盘主要的作用是启动系统。(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软件仿真图图

20、2-8-2软件总体仿真图图2-8-3左半部分图图 2-8-4软件右半部分图三.控制程序设计3.1控制程序设计思路说明本程序采用模块化的程序设计思想,将完成整个作业所需要的全部功能按要求划分为若干子模块。具体而言,控制程序主要有:主程序块,初始化8255A,调用8279函数,初始化DAC0832子模块,延时子模块及其他一些初始化程序。3.2程序流程图0832、8255、8279芯片初始化YY开始是否有人按报警开关N8255A端口读入开关状态8255B将信号传给8279A相应LED发光二级管发光=清除警报8255C端口指示开关状态,数码显示器显示出病房号持续报警N结束Y清除键按下报警开关0832转

21、化模拟信号使扬声器发出报警音图3.1 模拟医院报警系统流程图图3-2 延时子程序图3-3 点亮LED3.3控制程序.MODEL TINYIOYEQU0F000H; 对应端口CS1A_8255EQUIOY+00H; 控制按键B_8255EQUIOY+01H; 控制数码管C_8255EQUIOY+02H; 控制LEDCON_8255EQUIOY+03H ADDR_0832EQU0D000H; ADC0832,CS2EXTRNDisplay8:NEAR.STACK300.DATABUFFERDB8 DUP(0)SHOW_BUFFERDB8 DUP(10H)LED_FLAGDB8 DUP(0);表示灯

22、1的状态,0表示灭,1为亮KEY_COUNTDB0;表示总共多少病房SHAN_TIMEDW0SHAN_BUFDB2 DUP(0)KEY_VALUEDB?KEY_VDB 0FFH ;保存灯的状态,最开始时二极管全灭,每当按一个按键使一个灯亮.CODEMAIN:MOVDX,CON_8255 MOVAL,10010000B; 方式0,A口输入,B口、C口输出OUTDX,ALMOVDX,C_8255MOVAL,0FFH; C口输出高电平,LED全灭OUTDX,ALMOVDX,ADDR_0832MOVAL,0FFHOUTDX,AL; 蜂鸣器初始状态,不响CALLCLEAR_SEGMENT;清数码管显示K

23、EY_SCAN:CALLSHANSHUOMOVDX,A_8255INAL,DX; 读键值CMPAL,0FFHJZKEY_SCANCALL DL500msMOV KEY_VALUE,ALCLEAR_KEY:;消抖INAL,DX; 读键值CMPAL,0FFHJNZCLEAR_KEYMOV AL,KEY_VALUE ;CALL SHOW+CALLFIND_KEY;找出按键位置JMP KEY_SCANCLEAR_SEGMENT PROC NEARPUSH DIPUSH CXPUSH AXLEA DI,BUFFERMOV AL,10HMOV CX,8LOOPCLEAR:STOSBLOOP LOOPCLE

24、ARLEA SI,BUFFERCALL Display8CALL FMQ_OFFPOP AXPOP CXPOP DIRETCLEAR_SEGMENT ENDPFIND_KEY PROC NEARPUSH AXPUSH CXPUSH BXMOV AL,KEY_VALUEMOV CX,8MOV BL,11111110BFIND1:CMP AL,BLROL BL,1LOOPNZ FIND1JCXZ FIND_8FIND_IT:CALL CHANGE_LEDJMP FIND_RETFIND_8:CALL CLEAR_ALLFIND_RET:POP BXPOP CXPOP AXRETFIND_KEY E

25、NDPCHANGE_LED PROC NEARPUSH AXPUSH SIPUSH DIMOV DX,CON_8255CHANGE1:LEA SI,LED_FLAGADD SI,CXDEC SILODSBCMP AL,1JNZ SET1SET0:MOV AL,CLROL AL,1OR AL,00HOUT DX,ALLEA DI,LED_FLAG;如果该位已经按过,表示该灭灯ADD DI,CXDEC DIMOV AL,0STOSB;CALL DELETE_ONE;删除一个,JMP CHANGE_RETSET1:MOV AL,CLROL AL,1AND AL,0FFHOUT DX,ALLEA DI

26、,LED_FLAGADD DI,CXDEC DIMOV AL,1STOSB;CALL ADD_ONE;增加一个CHANGE_RET:POP DIPOP SIPOP AXRETCHANGE_LED ENDPADD_ONE PROC NEARPUSH AXPUSH CXPUSH BXXOR AX,AXMOV AL,KEY_COUNT;放到show_data数组之后添加;将按下的键值换为数存入show_buf中MOV BH,8SUB BH,CL;判断是否=6 7CMP BH,6JB ADDITADDFIRST:LEA SI,SHOW_BUFFERLEA DI,SHOW_BUFFERADD SI,AX

27、ADD DI,AXDEC SIXOR CH,CHMOV CL,KEY_COUNTSTD ;DF=1,减量操作REP MOVSBCLDXOR AX,AXADDIT:LEA DI,SHOW_BUFFERADD DI,AXMOV AL,BHSTOSBMOV AL,KEY_COUNTINC ALMOV KEY_COUNT,ALLEA SI,SHOW_BUFFERLEA DI,BUFFERMOV CX,8REP MOVSBLEA SI,BUFFERCALL Display8CALL FMQ_ONPOP BXPOP CXPOP AXRETADD_ONE ENDPDELETE_ONE PROC NEARPU

28、SH AXPUSH SIPUSH DIXOR AX,AXMOV AH,8SUB AH,CL;MOV AL,KEY_COUNT;DEC ALLEA SI,SHOW_BUFFERMOV CL,KEY_COUNTFINDNUM:LODSBCMP AL,AHLOOPNZ FINDNUM;JCXZ DELETE_RETDELETE_IT:LEA DI,SHOW_BUFFERLEA SI,SHOW_BUFFERMOV AL,CLMOV CH,KEY_COUNTSUB CH,CLMOV CL,CHXOR CH,CHADD SI,CXADD DI,CXDEC DIMOV CL,ALINC CL;DEC CLR

29、EP MOVSBLEA SI,SHOW_BUFFERLEA DI,BUFFERMOV CX,8REP MOVSBLEA SI,BUFFERCALL Display8CALL FMQ_OFFMOV AL,KEY_COUNTDEC ALMOV KEY_COUNT,ALDELETE_RET:POP DIPOP SIPOP AXRETDELETE_ONE ENDPSHANSHUO PROC NEARPUSH AXPUSH CXPUSH SIPUSH DXMOV DX,CON_8255LEA SI,LED_FLAGADD SI,1LODSBCMP AL,1JNZ SHANSHUO_7MOV CX,SHA

30、N_TIMEINC CXCMP CX,2000JNB SHAN_6JMP SHANSHUO_7SHAN_6:MOV AL,SHAN_BUFTEST AL,01HJZ SSET1SSET0:MOV DX,CON_8255MOV AL,00000100BOUT DX,ALMOV SHAN_BUF,0MOV CX,0JMP SHANSHUO_7SSET1: MOV AL,00000101BOUT DX,ALMOV SHAN_BUF,1MOV CX,0SHANSHUO_7:DEC SIDEC SILODSBCMP AL,1JNZ SHAN_RETMOV CX,SHAN_TIMEINC CXCMP CX

31、,2000JNB SHAN_7JMP SHAN_RETSHAN_7:MOV AL,SHAN_BUF+1TEST AL,01HJZ L7SET1L7SET0:;MOV DX,CON_8255MOV AL,00000010BOUT DX,ALMOV SHAN_BUF+1,0MOV CX,0JMP SHAN_RETL7SET1:;MOV DX,CON_8255MOV AL,00000011BOUT DX,ALMOV SHAN_BUF+1,1MOV CX,0 SHAN_RET:MOV SHAN_TIME,CXPOP DXPOP SIPOP CXPOP AXRETSHANSHUO ENDPFMQ_ON

32、PROC NEARMOVDX,ADDR_0832MOVAL,00H ;蜂鸣器响OUTDX,ALRETFMQ_ONENDPFMQ_OFF PROC NEARMOVDX,ADDR_0832MOVAL,0FFHOUTDX,ALRETFMQ_OFFENDPCLEAR_ALL PROC NEARCALL CLEAR_SEGMENT;清除数码管;清除led灯MOVDX,C_8255MOVAL,0FFH; C口输出高电平,LED全灭OUTDX,AL;清除变量LEA DI,LED_FLAGMOV CX,7MOV AL,0CLEAR_LEDFLAG:STOSBLOOP CLEAR_LEDFLAGMOV AL,10HMOV CX,7LEA DI,SHOW_BUFFERCLEAR_SBUF:STOSBLOOP CLEAR_SBUFMOV KEY_COUNT,0RETCLEAR_ALL ENDPCALL_SHOW PROC NEAR PUSH DXMOVDX,A_8255INAL,DX; 读键值CMPAL,0FFHPOP DXRETCALL_SHOW ENDPDL1 PROC NEARPUSH CXMOV CX,60DL2: LOOP DL1POP CXRETDL1 ENDPDL500m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论