基于51单片机的无线病房呼叫助手的设计Word文档格式.docx
- 文档编号:21187957
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:15
- 大小:730.50KB
基于51单片机的无线病房呼叫助手的设计Word文档格式.docx
《基于51单片机的无线病房呼叫助手的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的无线病房呼叫助手的设计Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
LCD床号显示
音乐报警
图2接收显示主机框图
2、315MHz射频发送与接收模块
考虑到射频电路收发的稳定性,本设计使用射频收发模块实现,其中发送模块电路原理如图3所示,模块外型如图4所示。
图3发送模块电路图图4发送模块外形图
DF数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在-25~+85度之间变化时,频飘仅为3ppm/度。
特别适合多发一收无线遥控及数据传输系统。
声表谐振器的频率稳定度仅次于晶体,而一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。
DF发射模块未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路及单片机接口,而不必考虑编码电路的工作电压和输出幅度信号值的大小。
比如用PT2262等编码集成电路配接时,直接将它们的数据输出端第17脚接至DF数据模块的输入端即可。
接收模块使用315MHz超再生式接收模块,其电路原理如图5所示,外型如图6所示。
图5超再生式接收电路原理图
DF接收模块的工作电压为5伏,静态电流4毫安,它为超再生接收电路,接收灵敏度为-105dbm,接收天线最好为25~30厘米的导线,最好能竖立起来。
接收模块本身不带解码集成电路,因此接收电路仅是一种组件,只有应用在具体电路中进行二次开发才能发挥应有的作用,这种设计有很多优点,它可以和各种解码电路或者单片机配合,设计电路灵活方便。
其优点在于:
(1)天线输入端有选频电路,而不依赖1/4波长天线的选频作用,控制距离较近时可以剪短甚至去掉外接天线。
(2)输出端的波形相对比较干净,干扰信号为短暂的针状脉冲,所以抗干扰能力较强。
(3)DF模块自身辐射极小,加上电路模块背面网状接地铜箔的屏蔽作用,可以减少自身振荡的泄漏和外界干扰信号的侵入。
(4)采用带骨架的铜芯电感将频率调整到315M后封固,这与采用可调电容调整接收频率的电路相比,温度、湿度稳定性及抗机械振动性能都有极大改善。
可调电容调整精度较低,只有3/4圈的调整范围,而可调电感可以做到多圈调整。
可调电容调整完毕后无法封固,因为无论导体还是绝缘体,各种介质的靠近或侵入都会使电容的容量发生变化,进而影响接收频率。
另外未经封固的可调电容在受到振动时定片和动片之间发生位移;
温度变化时热胀冷缩会使定片和动片间距离改变;
湿度变化因介质变化改变容量;
长期工作在潮湿环境中还会因定片和动片的氧化改变容量,这些都会严重影响接收频率的稳定性,而采用可调电感就可解决这些问题,因为电感可以在调整完毕后进行封固,绝缘体封固剂不会使电感量发生变化。
3、PT2262\2272编解码电路
数据编码采用编码芯片PT2262实现,解码采用PT2272芯片。
PT2262是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位的通用编解码电路,芯片内部带有振荡器、系统内部包含载波振荡、定时器、地址解码器、编码脉冲发生器和控制逻辑电路,外围电路简单,使用方便,其管脚如图7所示,内部逻辑如图8所示。
图7PT2262芯片引脚图8PT2262内部逻辑
PT2272解码器是对应的8位解码接收器,管脚排列如图9所示。
当PT2262发出的编码与PT2272预置的编码相同时,它的17脚就会输出高电平。
第14脚为输入端,第15脚、第16脚是振荡器,外接电阻值为几百千欧即可。
图9PT2272芯片引脚
4、电路原理图
(1)发射电路
图10发射电路图
发射电路由3V纽扣电池供电。
只有当发射按键K1按下时系统才会接通电源,因此功耗极低。
发射机地址A0—A7预置为全0,而数据线D0—D3通过跳线设定。
不同的数据D0—D3对应不同的发射机编号。
(2)接收电路
接收电路如图11所示。
通过超再生式接收模块接收的信号送入PT2272解码电路。
当PT2272的地址引脚A0—A7和信号中的地址相同时,VT端输出高电平,同时接收信号中的数据被送入数据引脚D0—D3上。
图11接收电路图
(3)单片机电路
本设计选用宏晶公司高性能单片机STC89C52,该芯片为52内核8位单片机,兼容Intel等52内核单片机,支持ISP下载,适用于常用检测控制电路。
由STC89C52组成的单片机系统原理图如图12所示。
图中P1.0—P1.3得到接收电路的数据D0—D3信号,P1.6接VT信号。
当VT有效,即有呼叫时,单片机从P1.0—P1.3引脚读出发射子机编号,再触发报警和显示电路。
图12单片机电路图
(4)显示电路
显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:
表1液晶屏技术指标
接口信号说明如表2所示。
表2液晶屏接口信号说明
与单片机接口电路如图13所示。
图13LCD与单片机接口电路
(4)音乐报警电路
音乐报警电路采用16首曲目的门铃芯片TQ33A,该芯片内置音频驱动电路,可以直接连接扬声器播放音乐。
图14音乐报警电路
(5)供电及程序下载电路
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图15所示。
图15供电及程序下载电路
三、软件编程
1、软件流程图
本设计接收模块单片机软件主程序流程图如图16所示。
图16单片机主程序流程图
2、主程序
下面介绍main.c主程序编写,其他程序略。
(1)头文件和一些宏定义
#include<
reg52.h>
#include"
1602.h"
typedefunsignedcharU8;
/*definedforunsigned8-bitsintegervariable无符号8位整型*/
typedefsignedcharS8;
/*definedforsigned8-bitsintegervariable有符号8位整型*/
typedefunsignedintU16;
/*definedforunsigned16-bitsintegervariable无符号16位整型*/
typedefsignedintS16;
/*definedforsigned16-bitsintegervariable有符号16位整型*/
typedefunsignedlongU32;
/*definedforunsigned32-bitsintegervariable无符号32位整型*/
typedefsignedlongS32;
/*definedforsigned32-bitsintegervariable有符号32位整型*/
typedeffloatF32;
/*singleprecisionfloatingpointvariable(32bits)单精度浮点数*/
typedefdoubleF64;
/*doubleprecisionfloatingpointvariable(64bits)双精度浮点数*/
(2)常量、变量定义和函数声明
//定义无线接收信号
sbitFlagIn=P1^6;
sbitBell=P3^6;
//定义标识
volatilebitFlagCall=0;
//有呼叫信号
volatilebitFlagKeyPress=0;
//有键按下
//函数声明
voidData_Init();
voidTimer0_Init();
voidPort_Init();
voidADC_Init();
ucharGetADVal();
voidKeyProcess(uint);
//------------------定义变量--------------------//
U16temp;
U16Counter;
U8din;
U8TotalCall,CallNumOld;
U8CallNum[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
U8index=0;
//------------------函数声明--------------------//
voidINT0_Init(void);
voidTimer0_ISR(void);
voidmain();
(3)各子程序
//数据初始化
voidData_Init()
{
P1=0xff;
Counter=0;
din=0;
FlagIn=1;
Bell=0;
TotalCall=0;
index=0;
}
//定时器0初始化
voidTimer0_Init()
ET0=1;
//允许定时器0中断
TMOD=1;
//定时器工作方式选择
TL0=0x06;
TH0=0xf8;
//定时器赋予初值
TR0=1;
//启动定时器
//定时器0中断
voidTimer0_ISR(void)interrupt1using0
U8i;
Counter++;
//显示呼叫号
if(Counter>
=500)
{
if(TotalCall>
5)
for(i=0;
i<
5;
i++)
{
L1602_char(1,i*3+1,CallNum[i+index]/10+48);
L1602_char(1,i*3+2,CallNum[i+index]%10+48);
}
if(index<
(TotalCall-5))
index++;
else
index=0;
}
Counter=0;
//外部中断初始化函数
voidINT0_Init(void)
IT0=1;
//负边沿触发中断
EX0=1;
//允许外部中断0
//按键中断处理
voidINT0_ISR(void)interrupt0
//取消键按下,所有指示灯熄灭
L1602_string(1,1,"
"
);
L1602_string(2,1,"
NoCall"
CallNumOld=255;
/********************************************************************
*名称:
Main()
*功能:
主函数
***********************************************************************/
voidmain()
U16i,j;
U8flag;
EA=0;
Timer0_Init();
//定时器0初始化
INT0_Init();
//外部中断初始化
Data_Init();
EA=1;
L1602_init();
Welcometo"
WirelessCalling!
"
//延时
500;
for(j=0;
j<
j++)
{;
//清屏
while
(1)
//检测是否有无线接收信号
if(FlagIn==1)
10000;
i++);
//延时,以保证一个VT脉冲只计一次
if(FlagIn==1)
{
Bell=1;
//播放音乐
din=P1&
0x0f;
//取出呼叫号
//和未处理的呼叫号比较,如果是新的则显示
flag=0;
for(i=0;
TotalCall;
{
if(CallNum[i]==din)flag=1;
//与已有呼叫号相同
}
if(flag==0)
if(TotalCall<
16)
{
CallNum[TotalCall]=din;
TotalCall++;
L1602_int(2,4,TotalCall);
}
if(TotalCall<
=5)
L1602_char(1,(TotalCall-1)*3+1,CallNum[TotalCall-1]/10+48);
L1602_char(1,(TotalCall-1)*3+2,CallNum[TotalCall-1]%10+48);
//等待VT脚高电平变低
while(FlagIn);
Bell=0;
//音乐播放信号归0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 无线 病房 呼叫 助手 设计