设计一款能满足大众要求,适合各种服务性行业的紧急呼叫系统,无疑会对改善人们生活起着十分重要的作用。对医院单位而言,在同类行业中,需要对病人或客户进行快速、准确的服务和治疗,这就需要一种能够提高医院工作人员办事效率的设备,而这种便捷服务式的呼叫系统节约了大量的人力,财力。对医院工作人员而言,不需要频繁的去查房、更不需要高声应答病人或家属,免去了无数次的来回奔波,维护了医院良好的安静环境,同时能够准确的给病人更好的服务和解决突发事件。该系统的设计主要分主机和从机两部分,集串行通信,液晶显示,蜂鸣器报警于一体,具有施工快捷、简单、故障率低、移动方便,使用该呼叫器的病人,无需四处张望寻找,也无需高声喊叫,只需轻松地按一下呼叫器的按钮,所需要的服务就会得到及时的解决。
1 串行通信技术
1.1 单片机串行通信功能
计算机与外界的信息交换称为通信,常用的通信方式可分为两种:并行和串行通信。一次同时传送多位数据称为并行通信。并行通信其特点是通信速度快,但传输信号线多,传输的距离较远时线路复杂,成本高。
所以主要用于近距离的传输操作。按一位接一位顺序传送数据的通信称为串行通信。串行通信其特点是传输线少,通信线路简单,通信速度慢,成本低,适合长距离通信。本设计采用串行通信。
51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:
1)串行数据寄存器(SBUF)
串行数据寄存器SBUF,字节地址为99H,实际对应两个寄存器:发送数据寄存器和接收数据寄存器。当CPU向SBUF写数据时对应的是发送数据寄存器,当CPU读SBUF时对应的是接收数据寄存器。
2)串行控制寄存器(PCON)
SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:
SM0,SM1:串行接口工作方式选择位,用于选择四位工作方式。
SM2:多机通信控制位。
REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。
TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。
RB8:为发送数据的第9位,在方式2或3时,存放接收数据的第9位,在方式1时,若SM2=0,则为接收到的停止位。
TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。
RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。
3)输入移位寄存器
数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。
4)波特率发生器
波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。
5)电源控制寄存器PCON
其最高位为SMOD,称为波特率加倍位。若SMOD位为1,则波特率加倍。
6)波特率计算
当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。由于是定时方式,T1计数率=fORC/12。产生溢出所需机器周期数=模M-计数初值W。
1.2 MAX232芯片
MAX232芯片是美信(MAXIM)公司专为RS-232串口设计的单相电源电平转换的芯片,使用正5 V单相电源供电系统。如图1所示。
第1部分主要是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成的。其功能是产生+12v和-12v电源,提供给RS-232串口。
第2部分主要是数据转换。由7、8、9、10、11、12、13、14脚构成其中的两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚 (R2OUT)输出。
第三部分是供电。15脚GND、16脚VCC(+5 V)。
1.3 串行通信软件实现
1)串行口工作于方式1;用定时器1产生9600bit/s的波特率。
2)通信协议:主机首先发送连络信号(AAH),从机接收到之后返回一个连络信号(BBH)表示从机已准备好接收。
3)通信过程使用第九位发送奇偶校验位。
4)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。
5)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。
2 液晶显示1602
2.1 电路设计
液晶显示LCM1602[3,4,5,6]是利用液晶经过处理后能改变光线的传输方向的特性来实现信息显示。一种常用的2行16个字的液晶模块,它的显示功能比较丰富,通过不同的地址编码,既可以显示出不同的阿拉伯数字、英文字母的大小写,还可以显示出常用的符号和日文假名等。它的电路设计比较简单,八个数据线口可以直接和单片机的口相连,典型的结构如图2所示。
2.2 LCM1602引脚及功能介绍
LCM1602共16个引脚,各个引脚功能如下:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:V0为液晶对比度调整端,当其接正电源时对比度是最弱的,而接地电源时其对比度最高。
第4脚:RS为寄存器选择端,高电平时表示选择数据、低电平时表示选择指令。
第5脚:RW为读写信号端,高电平时表示读操作,低电平表示写操作。RS和RW共同为低电平时表示可以写入指令或显示地址。
第6脚:E端为使能端,当由高电平跳变成低电平时,液晶模块执行其命令。
第7~14脚:D0~D7为8位双向的数据线。
第15~16脚:为背光的阳极脚和阴极脚,如果模块是不带背光的,则为空脚。
说明:1为高电平、0为低电平
3 系统的软件实现
主机程序流程图如图3所示。
系统的软件实现中主机的流程图主要由以下几个主要部分组成:首先开启主程序,程序经过初始化之后,主机发送AAH到从机,从机如果不应答,则返回上一层流程,否则主机发送数据进行检验判断输出是否完成,若完成则清除标志位,否则返回上一层流程。
分机程序流程图如图4所示。
系统的软件实现中分机的流程图主要由以下几个主要部分组成:首先开启主程序,程序经过初始化之后,接收数据,同时计算检验主机发送数据的累加值,如果检验的累加值和主机的数据相等,则发送00H到主机,否则发送FFH;发送00H到主机后,进行接收完成判断,若完成则清除标志位,然后将结果显示到LCD屏上,否则返回到第三个流程阶段,再次计算检验主机发送数据的累加值,然后重复后续流程阶段。
4 结论
本设计在设计过程中遇到的最大的困难就是程序的调试,串口程序的初始调试还算比较顺利,先根据数码管实现了串口间的发送与接收,然后换成1602液晶以后问题接踵而来,开始的时候复位需要在分机上进行,但是问题是分机上复位了患者也不能立马看到主机上的复位效果,所以效果不能真正的实现。然而通过再次查阅有关串口通信的资料,得知串口通信发送接收一次要进行一次初始化,问题随之而解。其次在进行主机按键查询的程序设计中费了不少功夫,开发板上的按键不能中断串口通信的过程,而且串口通信的接口和键盘的一排按键的接口是复用的,给设计带来了不小的麻烦,最后利用中断的优先级的设定,利用外部中断的优先级高于定时器中断的优先级有效的解决了主机按键查询的问题。
上一篇:基于STC89C52单片机的火灾语音报警器的设计与实现
下一篇:STC Monitor-51的单片机在线仿真调试
推荐阅读最新更新时间:2024-03-16 14:47