目录
一、设计要求······································1
二、设计目的······································1
三、设计的具体实现·······························2
1.系统概述···································2
2.设计方案与框图····························3
3.程序流程···································5
4.单元电路设计······························5
5.软件程序设计······························10
四、程序的调试与仿真····························12
1.用KeilC编译程序························12
s软件调试与仿真结果··············13
五、结论与展望··································15
六、心得体会及建议······························16
七、附录·········································17
八、参考资料·····································22
1
病床呼叫系统设计报告
一、设计要求
1.设计一个可容64张床位的病房呼叫系统。
2.要求每个床位都有一个按钮,当患者需要呼叫护士时,按
下按钮。此时护士值班室内的呼叫系统板上显示该患者的床位
号,并振铃3秒。
3.当护士按下“响应”键时,取消当前呼叫。
二、设计目的
该系统的目的就是能够满足这个要求,且实际意义在于能够
为医院提供一个成本低、不复杂、生产和安装方便的简单快捷病
房呼叫系统,方便病人更快找到医生,以节约病人的宝贵时间。
系统主要用于医院、门疹、养老院等场所。可大大降低护理成本,
增强护理的及时性和有效性,安装极其简便。以前当病人需要服
务时就不得不亲自到值班室去叫。安装该呼叫系统后,可在减少
护理人员的同时,保证病员随时能够得到服务,让每个病人及时
得到最佳护。
本设计是基于51系列的单片机设计的病房呼叫系统。在该
设计中每个患者床头都有一个按键,当患者有需要的时候,按下
按键,此时,值班室的系统板上会显示此患者的床位号,并且为
了提醒效果更好会震铃3秒。此时,值班室的护士会看到哪个病
房的患者又需要,然后护士按下“响应”键取消当前呼叫。
本系统是一个64个床位的的病房呼叫系统,核心部件选择
内部存储资源丰富的AT89C51单片机,输入采用8×8矩阵键盘。
显示采用2位7段共阴极LED动态显示,复位电路采用上电加按
2
钮复位,时钟采用12MHz晶体振荡电路。编程语言方面针对病房
呼叫系统程序比较简单,接口可以不通过扩展而实现,而且考虑
到汇编的语言对端口的操作比较直观,故采用汇编语言,由于采
用AT89C51单片机内部有充足的程序存储单元和数据存储单元,
因此不需要进行外围存储扩展。又采用了直观的汇编语言,故该
系统具有安装方便,成本低等特点.利用51系列单片机进行病房
呼叫系统设计。
1.利用51系列单片机进行病房呼叫系统设计。
2.利用独立式键盘作为呼叫按钮。
3.利用两位八段数码管来显示病房呼叫的病床号。
4.利用ProteusISIS仿真软件对病房呼叫系统功能进行仿
真。
三、设计的具体实现
1.系统概述
1.1单片机的发展介绍
单片机也被称作“单片微型计算机”、“微控制器”和“嵌入
式微控制器”,单片机一词最初源于“SingleChip
Microcomputer”,简称SCM。随着单片机在技术和体系结构上的
进步,其控制功能不断扩展,国际上逐渐采用“MCU”(Micro
ControllerUnit,微控制器)来代替SCM。单片机的发展历史大
致分为4个阶段。
第一阶段:单片机的探索阶段。
第二阶段:单片机的完善阶段。
第三阶段:向微控制器发展的阶段。
第四阶段:单片机的全面发展阶段。
单片机是微型机的一个重要分支,它在结构上的最大特点是
把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超
3
大规模的集成电路芯片上。
单片机内是一种在线式实时控制计算机,在线式就是现场控
制,需要有较强的抗干扰能力,较低的成本。
单片机由于种结构,所以具有很多显著的特点。主要有控制能力
强,抗干扰能力强、可靠性高,性能价格比高,低功耗、低电压,
扩展了多种串行口和系统扩展容易等。
单片机广泛应用于仪表仪器、家用电器、医用设备、航空航
天、专用设备的智能化管理及过程控制等领域,大致可分为以下
几个范畴:
(1)在智能仪器仪表上的应用
(2)在工业控制中的应用
(3)在家用电器中的应用
(4)在计算机网络和通信领域的应用
(5)单片机在医用设备领域中的应用
2.设计方案与框图
2.1设计方案
(1)系统单片机采用AT89S52,AT89S52是一种低功耗、高
性能CMOS8位微控制器,具有8K在系统可编程Flash存储
器。使用Atmel公司高密度非易失性存储器技术制造,与工
业80C51产品指令和引脚完全兼容。片上Flash允许程序存
储器在系统可编程,亦适于常规编程器。
(2)由于系统需要用到的I/O端口比较多,所以采用矩阵
式键盘,此类键盘采用矩阵式行列扫描方式,优点是可减少
占用单片机的I/O口数目,使CPU有足够的资源去处理其他
的工作(多机通讯)。
4
(3)显示采用传统的两个8位数码管(LED)动态扫描显示
传输的数据信息。软件驱动简单,硬件电路调试方便,显示
信息量足够用,而且结构简单。
2.2总体框图
图3.2.2总框图
因该系统需要比较多的输入、输出口,所以采用内部存储
资源和I/O口比较多的MCS-51指令系列的AT89S52单片机,2
位LED动态显示,需要8根数据线,采用P0口作为数据线,
P3口的P3.0,P3.1作为线选,相当于地址线,选择其中一位
显示,P3.2口作为中断1的专门接口外接一个接地的按钮以实
护士响应该患者的请求产生中断。
根据要求至少有64个病房的输入要求的,采用8×8矩阵
键盘,采用矩阵键盘也是利用软件节省硬件,利用内部ROM,
进行循环查询。扬声器可以用一个准I/O口,这里采用P0的
第八口P3.7。采用AT89S52作为运算和控制单元完全满足系
统的需求。
单
片
机
AT89S52
复位电路
按键电路
数码管显示电路
振铃响应电路
按键响应电路
5
3.软件程序的流程图
图3.3.1软件程序流程图
病房呼叫系统硬件安装好后,给系统供电则系统开始准备运
行,然后整个系统初始化等待呼叫。如果有病人按下呼叫按钮则
响铃会报警、数码管显示病床号,否则系统继续保持初始化。当
医护人员按下复位按钮时系统则会恢复到初始化状态,否则数码
管一直显示呼叫病床号。
4.单元电路设计
4.1控制器AT89C51
开始
初始化
是否呼叫
扫描整个键盘
LED显示、响铃
响应复位
结束
等待
延时
初始化显示、停止响铃
6
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单
片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)
和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公
司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系
统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强
大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活
应用于各种控制领域。
主要特性:
(1)与MCS-51产品指令系统完全兼容;
(2)4K字节可重擦写Flash闪速存储器;
(3)1000次擦写周期三.全静态操作:0Hz-24MHz;
(4)三级加密程序存储器;
(5)128×8字节内部RAM;
(6)32个可编程I/O口线;
(7)2个16位定时/计数器;
(8)6个中断源;
(9)可编程串行UART通道;
(10)低功耗空闲和掉电模式。
AT89C51单片机采用40Pin封装的双列直插DIP结构,图1.1
是它的引脚配置图。40个引脚中,正电源和地线两根;4组8位
I/O口,共32个引脚;时钟电路引脚XTAL1和XTAL2;控制信
号引脚包含:复位输入端RET,地址锁存允许输出/编程脉冲输
入端ALE/PROG,片外程序存储器选通控制信号端PSEN,内外程
序存储器选择/编程电源输入端EA/VPP。
7
输入输出引脚AT89C51引脚如图所示:
图3.4.1AT89C51引脚图
P0~P3:通用I/O口;
VCC:电源端,一般接5V;
GND:电源地;
XTAL1,XTAL2:外接晶体振荡器,不能超过24M;需加微调电容,
一般为30pF;
RST/VPD:复位端,平时为低电平;
ALE/PROG:地址锁存允许信号端;
EA/Vpp:外部程序存储器地址允许输入端/固化编程电压输入端。
4.2复位电路
RST引脚是复位信号输入端,高电平有效。采用上电加按钮
复位,因为本系统设计考虑到该系统比较重要,所以除了采用上
电复位的方式外,应该还有按钮复位备用复位方式以防止系统死
机功能。上电加按钮复位一般由RC组成,它响应时间大约为10ms。
当按下按钮时,系统会从地址0000H从新开始执行程序。
8
如图所示:
图3.4.2.1复位电路
4.3时钟电路
时钟是时序的基础,AT89S52芯片内由一个反相放大器构成
振荡器,可以由它产生时钟,时钟可以由两种方式产生内部方式
和外部方式。本系统采用内部方式,在XTAL1和XTAL2端外接石
英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。时
钟发生器对振荡脉冲二分频。电容采用33pF的电容,如下图
3.4.3.1所示。
图3.4.3.1时钟电路
4.4显示电路
采用2位8段共阴极LED,P0口作为LED显示码输出端,P3.0、
P3.1口接线选端,在单片机应用系统中常用的显示器有发光二极
9
管数码显示器LED(如图3.4.4.1)。LED显示器具有耗电少、成
本低廉、配置简单灵活,抗干扰性强等优点,但显示内容有限,
且不能显示图形,因而其灵活性受到限制。8段LED由7个发光
二极管按“日”字形排列,阴极接在一起称为共阴极接法。
图3.4.4.1LED显示器
4.5报警响铃电路
响铃报警部分电路是通过三极管将信号放大然后通过喇叭
发出报警声音,当有高电平导通,显示器显示床号的同时蜂鸣器
发出“嘀嘀”声作为呼叫提示。P3.2位“响应按钮”端。
图3.4.5.1报警响铃电路图3.4.5.2响应电路
4.6键盘电路
矩阵键盘,每个键对应I/O端口的一位,没有什么键闭和时,
各位均处于高电位。当有一个键按下时,就是对应位接地而成为
低电位,而其它位仍为高电位。这样,CPU只要检测到某一位
为”0”,便可判别出对应键已经按下。但是,当键盘上的键较多时,
引线太多,占用的I/O端口也太多。比如,一个有64个键的键盘,
10
采用这种方法来设计时,就需要64条连线和8个8位并行端口。
所以,这种简单结构只用在仅由几个键的小键盘中。通常使用的
键盘结构是矩阵式的,如图2-5所示。设有
nm
个键盘,那么,
采用矩阵式结构以后,便只要
nm
条引线就行了。比如,有
6488个键,那么,只要用两个并行端口和16条引线便可以
完成矩阵8*8键盘连接。
图如下所示:
图3.4.6.1矩阵8*8键盘
5.软件程序设计
5.1系统初始化
启动系统后,系统进行初始化,此时,单片机执行
SETBEA
SETBEX0
SETBIT0
及CLRP3.7
MOV30H,#0FFH
LCALLDISPLED
进行系统初始化LED显示00,等待呼叫
11
5.2键盘扫描程序
KEY:
LCALLKS
JNZK1
LCALLDELAY2;延时消抖
RET
K1:LCALLDELAY2
JNZK2
LJMPKEY
K2:MOVR2,#0FEH
MOVP1,#0FFH;使P1口置高电平
MOVR4,#00H
K3:MOVP2,R2
LOOP0:JBP1.0,LOOP1;扫描按钮键盘
MOVA,#00H
LJMPLOOPK
LOOP1:JBP1.1,LOOP2
MOVA,#08H
LJMPLOOPK
LOOP2:JBP1.2,LOOP3
MOVA,#10H
LJMPLOOPK
LOOP3:JBP1.3,LOOP4
MOVA,#18H
LJMPLOOPK
12
LOOP4:JBP1.4,LOOP5
MOVA,#20H
LJMPLOOPK
LOOP5:JBP1.5,LOOP6
MOVA,#28H
LJMPLOOPK
LOOP6:JBP1.6,LOOP7
MOVA,#30H
LJMPLOOPK
LOOP7:JBP1.7,NEXT
MOVA,#38H
LOOPK:ADDA,R4;移位扫描行
PUSHACC
5.3延时程序
DELAY3:
DDL1:MOV41H,#220
DDL2:MOV42H,#250
DDL3:
DJNZ42H,DDL3
LCALLDISP
DJNZ41H,DDL2
四、程序的调试与仿真
1.用KeilC编译
于AT89C51的控制设计,以KeilC为软件编程环境,以
13
proteus软件为电路仿真设计环境,通过运行可以生成hex文件,
为后面Proteus仿真做准备,二者的结合为该系统的设计提供有
利条件。
KeilC软件界面如图4.1.1所示:
图4.1.1KeilC编译界面
s软件调试与仿真结果
2.1调试界面显示
下面是我们通过Proteus软件编程,使对应的软件仿真模块
变成可视化的控制界面:
图4.2.1.1调试显示
启动电源,显示屏显示00,在按下1号键时,界面部分显示
14
01;如果现在不按清零键,再按下64号键时,图反映了控制电
路的可行性,按复位后则去掉当前界面显示房间。
2.2Proteus仿真
双击单片机AT89S52出现EditComponent菜单栏,然后载
入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试
运行。系统开机初始化上电复位后和按下响应按键后LED显示,
如图所示。
图4.2.2.1系统初始化界面
系统初始化后,数码管显示病床号为00。当按下21号病房呼
叫按键时则数码管就会显示病床号21,同时病房呼叫系统的响铃
也想起,如图4.2.2.2。当护士按下响应按钮即复位按钮时,数
码管由上图数字21变为数字00,并且响铃此时会停止。此时整个
呼叫系统回归到初始化状态。以上的仿真结果与课题设计要求一
致。通过对病房呼叫系统的功能仿真能够清晰地了解其工作原理
15
以及该系统的可行性与可靠性。
图4.2.2.221号床呼叫仿真
五、结论与展望
至此,本设计的主要内容已经完成。本章是在对前面完成的
工作进行总结的基础上,提出今后进一步工作的建议和设想。
随着集成电路和计算机技术的迅速发展,使电子仪器的整体
水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。智能
仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与
发展,从而加快了智能仪器的发展在做毕业设计的过程中,虽然
碰到了不少的困难,但是在老师的指导以及自己的努力下,终于
取得了一定成果。
在设计的过程中遇到了很多问题,发现了自己的不足之处,
有很多没有学习,如Proteus仿真知识及操作,还有单片机的汇
编编程;有些软件掌握得不够牢固,比如说KeilC仿真不熟练;
16
通过此次学习,进一步加强了我的理解,同时提高了我独立自学
的能力。
整个设计过程中,老师详细的指导,同学的帮助,以及校图
书馆的资料给了我很大的帮助。此次设计让我从中学到很多东
西。虽然中间遇到很多困难,但都对于我是一次很好的锻炼。设
计以后,才更加深刻感受到自己的学习只是理论部分,而且很多
时候不能付诸实践。这次设计能够让我从实践中重新学习理论知
识,对我今后的工作和学习有了很多提高。
但是由于本人水平有限,整个设计仍有很多不足之处,如程
序不够完善、灵活,显示可以采用液晶LCD模块,还有可以增加
一些其他的模块比如记忆功能这些以及根据语音功能等等。完善
后将会进一步提高设计的稳定性和普适性。
六、心得体会及建议
首先选择这个课题之后,在设计中首先考虑到键盘的设计
问题,由于这个题目的键盘设计是所有题目中最多的,达到了64
个按键,想到我们刚学习的键盘设计知识,没有采用独立式键盘,
因为如果采用这种方案的话I/O口是远远不够用的,于是采用按
钮构造的矩阵式键盘,但是矩阵式键盘对程序编写的要求多而且
也很麻烦,这也就是考验我们对所学知识有比较透彻的了解和我
们的耐心。
当然在设计的过程中遇到了很多问题,可以说得是困难重
重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在
设计的过程中发现了自己的不足之处,如对以前所学过的知识理
解得不够深刻,掌握得不够牢固,比如说KeilC仿真不熟练,
17
Proteus仿真知识及操作、对单片机汇编语言掌握得不好。不过
通过这次课程设计之后,也学到了很多知识,更重要的是一定把
以前所学过的知识重新温故,学好用好,学以致用。
最后在百般努力下,这次课程设计终于完成了,在设计中遇到了
很多编程问题,最后在崔立志老师的辛勤指导下,终于实现了设
计的要求。同时,在老师的身上也让我学得到很多实用的知识,
在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老
师再次表示忠心的感谢!
七、附录
1.源程序代码
ORG0000H
LJMPMAIN
ORG0003H
LJMPINTR_0
ORG0030H
MAIN:SETBEA;初始化系统,EA/EXO/IT0
置位
SETBEX0
SETBIT0
MAIN1:CLRP3.7;P3.7清零
MOV30H,#0FFH
LCALLDISP
DP1:LCALLKEY
LCALLDISP
18
LJMPDP1
KEY:
LCALLKS
JNZK1
LCALLDELAY2;延时消抖
RET
K1:LCALLDELAY2
JNZK2
LJMPKEY
K2:MOVR2,#0FEH
MOVP1,#0FFH;使P1口置高电平
MOVR4,#00H
K3:MOVP2,R2
LOOP0:JBP1.0,LOOP1;扫描按钮键盘
MOVA,#00H
LJMPLOOPK
LOOP1:JBP1.1,LOOP2
MOVA,#08H
LJMPLOOPK
LOOP2:JBP1.2,LOOP3
MOVA,#10H
LJMPLOOPK
LOOP3:JBP1.3,LOOP4
MOVA,#18H
LJMPLOOPK
19
LOOP4:JBP1.4,LOOP5
MOVA,#20H
LJMPLOOPK
LOOP5:JBP1.5,LOOP6
MOVA,#28H
LJMPLOOPK
LOOP6:JBP1.6,LOOP7
MOVA,#30H
LJMPLOOPK
LOOP7:JBP1.7,NEXT
MOVA,#38H
LOOPK:ADDA,R4;移位扫描行
PUSHACC
K4:LCALLKS
JNZK4
POPACC
MOV30H,A
SETBP3.7
LCALLDELAY3
CLRP3.7
RET
NEXT:INCR4
MOVA,R2
JNBACC.7,RET0
RLA
20
MOVR2,A
LJMPK3
KS:MOVP2,#0FFH
MOVP1,#00H
MOVA,P2
XRLA,#0FFH
RET0:RET
DELAY2:MOVR5,#08H
D7:MOVR6,#0FAH
D8:DJNZR6,D8
DJNZR5,D7
RET
DISP:
LCALLHBCD
PLAY:CLRP3.0
MOVDPTR,#DSEG1
MOVA,31H
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
SETBP3.0
CLRP3.1
MOVDPTR,#DSEG1
MOVA,32H
MOVCA,@A+DPTR
21
MOVP0,A
LCALLDL1
SETBP3.1
RET
DL1:MOVR7,#05H
DL:MOVR6,#0FFH
DL6:DJNZR6,$
DJNZR7,DL
RET
DSEG1:DB3FH,06H,5BH,4FH,66H;输入LED显示段
DB6DH,7DH,07H,7FH,6FH
HBCD:
MOVA,30H
INCA
MOVB,#100
DIVAB
MOVR5,A
MOVA,#10
XCHA,B
DIVAB
MOV31H,A
MOV32H,B
RET
INTR_0:MOV30H,#0FFH;响应中断
CLRP3.7;清零P3.7
22
RETI
DELAY3:
DDL1:MOV41H,#220
DDL2:MOV42H,#250
DDL3:
DJNZ42H,DDL3
LCALLDISP
DJNZ41H,DDL2
RET
END
八、参考文献
[1]杨振江冯军·单片机原理与实践指导·中国电力出版
社·2008.8
[2]楼然苗李光飞·单片机课程设计指导·北京航空航天大学出
版社·2007.7
[3]王建校·51系列单片机及C51程序设计·科学出版社·2002.4
[4]杨凌霄·微型计算机原理及应用·中国矿业大学出版
社·2004.8
[5]陈明荧·8051单片机课程设计实训教材·清华大学出版
社·2004.12
本文发布于:2022-12-11 17:40:15,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/87056.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |