欢迎来到天天文库
浏览记录
ID:36609921
大小:2.64 MB
页数:8页
时间:2019-05-12
《基于单片机病房呼叫器设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、病房呼叫器的设计一、内容和要求1、内容:完成矩阵按键的设计;LED数码管显示的设计;复位电路的设计;控制程序的编写等。2、要求:(1)设计一个可容纳16张床位的病房呼叫系统;(2)要求每张床位都有一个按键,当患者需要一个护士时,按一下按钮,此时护士值班室内的呼叫系统版上显示该患者的床位号,并振铃;(3)当护士按下响应键时,取消当前呼叫。二、目的和意义1、掌握AT89C51的结构特点、工作原理和使用方法。2、掌握LED数码管显示数字的工作原理和方法。3、掌握行列扫描矩阵键盘的的使用方法。三、总体方案和设计思路图1电路设计框图本电路是由STC89C5
2、2单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;4*4矩阵按键电路采用行列扫描的方法判断是否有按键按下,用共阳极LED数码管将采集到的按键值显示出来,同时振铃电路响应报警;当复位按钮按下时,数码管显示零,振铃消失。四、仿真电路设计1、4*4按键电路的设计STC89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。
3、矩阵式键盘用于按键数目较多的场合。它由行线和列线构成,按键位于行列的交叉点上,通过对键的识别实现键的确认。4*4矩阵按键的行线接P1口的低四位,列线接P1口的高四位。按键的位置由行号和列号唯一确定,如图2所示:8图2主控制系统2、数码管显示电路(1)LED显示器工作原理LED显示器工作于静态显示方式时,各位的共阴极或共阳极连接在一起并接地或接电源。每位的段码线(a-dp)分别与一个锁存器输出相连。之所以叫静态显示,是因为各个LED的显示字符一经确定,相应锁存器锁存的段码输出将不变。直到送入下一个字符的段码为止。因此,静态显示的亮度较高。(2)LE
4、D数码管显示器的连接方法共阳极接法:把发光二极管的阳极接在一起构成公共阳极,使用时,公共阳极接+5V,每个发光二极管的阳极通过电阻与输入端相连,当阴极端输入低电平时,发光二极管就导通点亮,而输入高电平时则不亮。P0所接数码管显示按键值的个位数,P2所接数码显示按键值的十位数。两个数码管采用共阳极接法。P0口为开漏输出,在作为通用I/O口使用时,需在外部接上拉电阻至电源。图3LED数码管显示电路83、振铃响应电路图4振铃响应电路图4、按键复位电路根据设计要求需要选择一个独立按键作为响应呼叫按键。按键模块如图5所示:图5按键复位电路五、软件设计1、主
5、程序流程图图6主程序流程图主程序:/********main函数*********/voidmain(void){P1=0;P2=0xff;P0=0xff;P3=0;TMOD=0x01;IE=0x82;set=1;TH1=-10000>>8;TL1=-10000%256;/*定时器1每10000计数脉冲发生1次中断,12MHz晶振,定时时间10000us*/8TCON=0x40;/*内部脉冲计数*/IE=0x88;/*打开定时器中断*/key_Value=0xf0;do{if(!set){P2=DSY_Table[0];P0=DSY_Table[
6、0];}elseif(key_Value!=0xf0)/*如果有按键*/{TR0=1;Key_process();/*键值处理程序*/key_Value=0xf0;/*重置键值*/}else{TR0=0;}}while(1);}2、按键扫描子程序/*****扫描按键函数-2步判别扫描法*****/unsignedcharkeyscan(void)/**扫描按键函数-2步判别扫描法**/{ucharreadkey,rereadkey;ucharx_temp,y_temp;KEY_PORT=0x0f;x_temp=KEY_PORT&0x0f;if(x
7、_temp==0x0f)return(0xf0);/*无按键,退出*/KEY_PORT=0xf0;y_temp=KEY_PORT&0xf0;readkey=x_temp
8、y_temp;time(10);/*延时10ms后再测按键*/KEY_PORT=0x0f;x_temp=KEY_PORT&0x0f;if(x_temp==0x0f)return(0xf0);/*无按键,退出*/KEY_PORT=0xf0;y_temp=KEY_PORT&0xf0;rereadkey=x_temp+y_temp;if(readkey==rereadkey)/*2次一
9、致*/{return(~rereadkey);}return(0xf0);}voidKey_process(void)/*键值处理程序*
此文档下载收益归作者所有