病房呼叫体统课程设计

上传人:枫** 文档编号:439086694 上传时间:2023-10-13 格式:DOC 页数:20 大小:298.51KB
返回 下载 相关 举报
病房呼叫体统课程设计_第1页
第1页 / 共20页
病房呼叫体统课程设计_第2页
第2页 / 共20页
病房呼叫体统课程设计_第3页
第3页 / 共20页
病房呼叫体统课程设计_第4页
第4页 / 共20页
病房呼叫体统课程设计_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《病房呼叫体统课程设计》由会员分享,可在线阅读,更多相关《病房呼叫体统课程设计(20页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告(本科/专科)课程:单片机课程设计学号:09104210100910421050姓名:肖国健王合杰班级:09普本非师范班教师:刘乐群时间:2012.4.20计算机科学与技术系设计名称:病房救护系统设计内容、目的与要求:本系统利用单片机(AT89C51芯片)为控制核心,由按键模块、系统控制模块、床号显示模块、声光提示模块以及电源模块构成。其中,按键模块采用8*8矩阵键盘模式,显示模块采用动态LED显示,系统主要通过软件控制实现了所有硬件功能。当病人紧急呼叫是,会产生声、光提示,并显示病人编号,以便医护人员及时处理。(1)设计一个可容64张床位的病房呼救系统。(2)要求每个床位都有一个

2、按钮,当护着需要呼叫护士时,按下按钮。此时护士值班室内的呼叫系统板上显示该患者的床位号。当护士按下“相应”键时,取消当前呼叫。计划与进度安排:第一阶段:查阅资料,查找相关书籍 。第二阶段:Proteus软件设计,画出实验图 。第三阶段:编写相应代码,并与 Proteus连接,调试程序。第四阶段: 调试完整的程序代码,填写实验报告。设计过程、步骤(可加页):由于需要比较多的输入输出口,所有采用内部存储系统资源比较多的AT89C51单片机,2位LED动态显示,需要10根数据线,其中8根作为位选线,相当于地址线,选择其中一位显示,另外2跟作为LED显示码输入线。 根据按键要求,每个床位需要一个按钮,

3、共64个。扬声器可以用一个准I/O。采用AT89C51作为运算和控制单元完全没满足系统的需求。如图1所示。图1 AT89C511. 电路设计(1) 复位电路:RST引脚是复位信号输入端吗,高电平有效。采用上点复位,因为本系统设计的值班室“响应按钮”具有复位键,所以不需要进行手动复位,以节省资源,如图2所示图2 复位设计(2) 时钟电路:时钟是时序的基础,时钟可以由两种方式产生,内部方式和外部方式。本系统采用内部方式,在XTAL1和XTAL2端外接石英芯片作为定时原件。内部反向放大器自激震荡,产生时钟。时钟发生器对震荡脉冲二分频。电容采用33pF电容。如图3所示。 图3 时钟电路设计(3) 数码

4、显示电路:采用2位8段共阴极LED,P0口作为LED显示码输出端,P3.0、P3.1口接线选端,如图4。图4 数码显示设计(4) 键盘开关矩阵设计:由于都使用按钮形式,每个病房一个按钮,当病人有紧急情况是按下响应按钮,值班室便会及时找到该病人,如图5所示。图5 键盘矩阵设计(5) 提示电路的设计:采用发光二极管和嗡鸣器相串联,用三极管加限流电阻作为控制开关,用单片机P3.7端口控制,当有高电平导通,二极管发光同时嗡鸣器发出“嘀嘀”声作为呼叫提示。电路连接图如6图所示。图6 提示设计2系统软件设计(1) 病房呼叫系统结构设计图7 系统结构设计图8 系统结构框图图9 硬件构成示意图(2) 系统初始

5、化及呼叫过程启动系统后,系统进行初始化,此时,单片机执行EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式1TH0=(65536-500)/256; /定时器T0的高8位赋初值TL0=(65536-500)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0keyval=0x00; /按键值初始化为0EX0=1; /允许使用外中断 IT0=1; /选择负跳变来触发外中断系统进行初始化后LED显示00,等待呼叫,如图10所示。图10 初始化显示(3)数码管显示过程接通LED的端口输出响应,连接响铃speaker的P3.7端位置,

6、LED显示按钮所带变得床位,响铃发出报警响声,提醒值班室的人眼有病人出现紧急情况。如图所示,比如24号按下按钮,LED显示24,响铃如图。图11 病房显示程序如下:void display(unsigned char k) P3=0xfe; /点亮数码管1 P0=Tabk/10; /显示十位 led_delay(); /动态扫描延时 P3=0xfd; /点亮数码管2 P0=Tabk%10; /显示个位 led_delay(); /动态扫描延时 if(keyval!=0x00) p=0; (4)延时程序设计 void led_delay(void) unsigned char j;for(j=0

7、;j200;j+) ; (5)键盘扫描过程端口P2进行键盘横向扫描,初始化后输出高电平。P0端口扫描键盘列向,当有按钮按下时,按钮左右电路接听,有信号输入。void time0_interserve(void) interrupt 1 using 1 TR0=0; /关闭定时器T0 P1=0xff; /所有列线置为高电平? P2=0x00; /所有行线置为低电平“0”?” if(P1&0xff)!=0xff) /列线中有一位为低电平“0”,说明有键按下 delay20ms(); /延时一段时间、软件消抖 if(P1&0xff)!=0xff) /确实有键按下 P2=0xfe; /第一行置为低电平

8、“0”(P1.1出低电平“0”) if(P1=0xfe) keyval=1; /可判断是S1键被按下 if(P1=0xfd) keyval=2; /可判断是S2键被按下 if(P1=0xfb) keyval=3; /可判断是S3键被按下 if(P1=0xf7) keyval=4; /可判断是S4键被按下 if(P1=0xef) keyval=5; /可判断是S5键被按下 if(P1=0xdf) keyval=6; /可判断是S6键被按下 if(P1=0xbf) keyval=7; /可判断是S7键被按下 if(P1=0x7f) keyval=8; /可判断是S8键被按下 P2=0xfd; /第

9、二行置为低电平“0”(P1.1出低电平“0”) if(P1=0xfe) keyval=9; /可判断是S9键被按下 if(P1=0xfd) keyval=10; /可判断是S10键被按下 if(P1=0xfb) keyval=11; /可判断是S11键被按下 if(P1=0xf7) keyval=12; /可判断是S12键被按下 if(P1=0xef) keyval=13; /可判断是S13键被按下 if(P1=0xdf) keyval=14; /可判断是S14键被按下 if(P1=0xbf) keyval=15; /可判断是S15键被按下 if(P1=0x7f) keyval=16; /可判

10、断是S16键被按下 P2=0xfb; /第三行置为低电平“0”(P1.2输出低电平“0”) if(P1=0xfe) keyval=17; /可判断是S17键被按下 if(P1=0xfd) keyval=18; /可判断是S18键被按下 if(P1=0xfb) keyval=19; /可判断是S19键被按下 if(P1=0xf7) keyval=20; /可判断是S20键被按下 if(P1=0xef) keyval=21; /可判断是S21键被按下 if(P1=0xdf) keyval=22; /可判断是S22键被按下 if(P1=0xbf) keyval=23; /可判断是S23键被按下 if

11、(P1=0x7f) keyval=24; /可判断是S24键被按下 P2=0xf7; /第三行置为低电平“0”(P1.2输出低电平“0 if(P1=0xfe) keyval=25; /可判断是S25键被按下 if(P1=0xfd) keyval=26; /可判断是S26键被按下 if(P1=0xfb) keyval=27; /可判断是S27键被按下 if(P1=0xf7) keyval=28; /可判断是S28键被按下 if(P1=0xef) keyval=29; /可判断是S29键被按下 if(P1=0xdf) keyval=30; /可判断是S30键被按下 if(P1=0xbf) keyval=31; /可判断是S31键被按下 if(P1=0x7f) keyval=32; /可判断是S32键被按下 P2=0xef; /第一行置为低电平“0”(P1.1出低电平“0”) if(P1=0xfe) keyval=33; /可判断是S33键被按下 if(P1=0xfd) keyval=34; /可判断是S34键被按下 if(P1=0xfb) keyval=35; /可判断是S35键被按下 if(P1=0xf7) keyval=36; /可判断是S36键被按下 if(P1=0xef) keyval=37; /可判断是S37键

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号