资源简介
本文以STC89C51单片机为控制核心,通过无线发射模块发射传输信号,无线接收模块接收信号,经STC89C51处理后显示输出,从而实现病人与医护的无线远距离沟通。
附件为C代码。
附件为C代码。

代码片段和文件信息
#include //头文件
#define uc unsigned char
#define ui unsigned int //宏定义
sbit RS=P1^4;
sbit RW=P1^5;
sbit E=P1^6; //这3个是1602引脚定义
sbit D0=P1^3; //上升按键
sbit D1=P1^2; //下降按键
sbit D2=P1^1; //模式切换
sbit D3=P1^0; //光敏识别引脚
sbit bg_1602=P2^6; //1602背光
sbit key=P3^3; //应答按键
sbit Beep=P3^4; //蜂鸣器
uc code tab0[]=“ 123456789#“; //显示几号的码表
uc code tab1[]=“Calling!!!“; //显示呼叫的码表
uc code tab2[]=“I Know!“; //显示相应的码表
uc code tab3[]=“Happy Every Day!“; //显示开心快乐每一天的码表
uc num_D0=0num_D1=0num_D2=0num_D3=0; //床号
bit bdata fu_D0=0 fu_D1=0 fu_D2=0 fu_D3=0flag;//初始床号
void delay(ui x) //延时函数
{
ui ij;
for(i=0;i for(j=0;j<121;j++); //为1ms的延时函数
}
void init() //初始化函数
{
bg_1602=0; //开启背光
TMOD=0x01; //定时器0工作方式1
TH0=0x4b;
TL0=0xff; //赋初值
EA=1; //开总中断
ET0=1; //定时器中断开
TR0=1; //定时器0中断开
D0=0;
D1=0;
D2=0;
D3=0; //清零床号引脚
}
/******LCD1602******/
void com_1602(uc com) //写命令
{
RS=0;
P0=com;
delay(1);
E=1;
delay(1);
E=0;
RS=1;
}
void data_1602(uc date) //写数据
{
RS=1;
P0=date;
delay(1);
E=1;
delay(1);
E=0;
RS=0;
}
void dis_1602(uc word_numuc hanguc lieuc tab_numuc num)
/**word_num:显示字符个数,hanglie:显示坐标,****
***tab_num:显示数组号,num:从第几字符开始显示****/
{
uc n;
for(n=0;n {
com_1602(0x80+hang*0x40+lie);
if(tab_num==0)
data_1602(tab0[num+n]);
else if(tab_num==1)
data_1602(tab1[num+n]);
else if(tab_num==2)
data_1602(tab2[num+n]);
else if(tab_num==3)
data_1602(tab3[num+n]);
delay(5);
lie++;
}
}
void init_1602() //初始化1602
{
RW=0; //写命令
com_1602(0x38);//设置1602
com_1602(0x0c);//设置显示,光标不闪烁
com_1602(0x06);//不移动,指针加1
com_1602(0x01);//清屏
}
void know() //应答函数
{
if(D0!=fu_D0)
num_D0=1;
if(D1!=fu_D1)
num_D1=2;
if(D2!=fu_D2)
num_D2=3;
if(D3!=fu_D3)
num_D3=4; //数据脚状态改变,将床号赋给变量
if(key==0) //检测按键
{
delay(5);
if(key==0)
{
if((num_D0!=0)||(num_D1!=0)||(num_D2!=0)||(num_D3!=0))//如果有呼叫时
{
bg_1602=0; //打开背光
Beep=1; //关闭蜂鸣器
flag=0; //标志位清零
num_D0=0;num_D1=0;num_D2=0;num_D3=0;
fu_D0=D0;fu_D1=D1;fu_D2=D2;fu_D3=D3;//将床位清零,并记录当前引脚状态
com_1602(0x01); //清屏
dis_1602(71420); //显示I Know
}
else //如果没有呼叫时
bg_1602=0; //只点亮背光
}
while(!key); //按键释放
delay(2000);
com_1602(0x01);//清屏
}
}
void display() //显示函数
{
if((num_D0==0)&&(num_D1==0)&&(num_D2==0)&&(num_D3==0)) //当没有床位呼叫时
dis_1602(160030); //显示Happy
else //有床位呼叫时
{
if(flag==0)
{
flag=1;
com_1602(0x01);//清屏
}
if(num_D0==1)
{
dis_1602(1020num_D0);
dis_1602(103010);
}
if(num_D1==2)
{
dis_1602(1050num_D1);
dis_1602(106010);
}
if(num_D2==3)
{
dis_1602(1080num_D2);
dis_1602(109010);
}
if(num_D3==4)
{
dis_1602(10110num_D3);
dis_1602(1012010);
}
di
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-03-25 12:57 1-c程序\
文件 3406 2014-05-20 00:05 1-c程序\hujiao
文件 10478 2014-05-20 00:05 1-c程序\hujiao.LST
文件 14206 2014-05-20 00:05 1-c程序\hujiao.M51
文件 5482 2014-05-20 00:05 1-c程序\hujiao.OBJ
文件 2094 2013-10-06 13:33 1-c程序\hujiao.Uv2.bak
文件 3749 2012-06-16 13:49 1-c程序\hujiao.bak
文件 3998 2014-05-20 00:05 1-c程序\hujiao.c
文件 2756 2014-05-20 00:05 1-c程序\hujiao.hex
文件 29 2014-05-20 00:05 1-c程序\hujiao.lnp
文件 1000 2013-10-06 13:33 1-c程序\hujiao.opt.bak
文件 166 2014-10-08 09:41 1-c程序\hujiao.plg
文件 55827 2014-10-08 09:41 1-c程序\hujiao.uvopt
文件 13185 2014-05-20 00:05 1-c程序\hujiao.uvproj
文件 958 2012-10-03 13:32 1-c程序\hujiao_Opt.Bak
文件 1656 2012-10-03 13:32 1-c程序\hujiao_Uv2.Bak
文件 55819 2014-05-20 00:05 1-c程序\hujiao_uvopt.bak
相关资源
- makefiletest.tar.gz
- 简易的电阻电容测量电路
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
- 基于51单片机的智能温控器
- GSM监控系统51单片机设计
- 精选单片机设计与制作30例
- C malloc函数用法
- 蓝桥杯单片机设计CD107D仿真图
- 嵌入式局域网聊天系统客户端
- 算法竞赛入门经典 第2版刘汝佳+高清
- 基于单片机的GPS定位及显示系统设计
- 链表实现通讯录管理系统
- PowerShell-6.2.1-win-x86.zip
- pl/0编译器 语法分析
- 源程序阅读与调试课程设计报告--学生
- 谁说程序员不浪漫?!基于easyX图形库
- 编译原理课设c编译器
- MCP3421 STM32 Driver
- ADS1100 STM32 Driver
- 单片机89c52与MLX90614红外的测温程序
- stm32f103AES加密 cbc模式
- 单片机 点阵 字模提取软件
- 计算机考研复试各科讲义.zip
- C高级编程讲义-传智播客
- NOIP必学内容之前缀和与差分颜鸿宇
评论
共有 条评论