#include reg52h 头文件 #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=P
void main() { init(); init_1602(); dis_1602(16,0,0,3,0); //显示开心快乐每一天 while(1) { if(D0==1) //上升按键 { delay(5); if(D0==1) { num_D0++; if(num_D0>9) num_D0=0; dis_1602(1,1,9,0,num_D0); } } if(D1==1) //下降按键 { delay(5); if(D1==1) { num_D0--; if(num_D0<0) num_D0=9; dis_1602(1,1,9,0,num_D0); } } if(D2==1) //模式切换 { delay(5); if(D2==1) { flag++; if(flag>3) flag=0; switch(flag) { case 0: dis_1602(16,0,0,3,0); break; case 1: dis_1602(10,0,0,1,0); dis_1602(6,1,0,0,num_D0); break; case 2: dis_1602(8,0,0,2,0); break; case 3: dis_1602(5,0,0,3,0); break; } } } if(D3==1) //光敏识别 { delay(5); if(D3==1) { if(fu_D0==0) //判断是否已经呼叫 { fu_D0=1; Beep=1; //蜂鸣器响声 dis_1602(10,1,0,1,10); //显示Calling!!! delay(500); Beep=0; //蜂鸣器停声 } } } if(key==1) //应答按键 { delay(5); if(key==1) { if(fu_D0==1) //判断是否有呼叫 dis_1602(7,1,0,2,0); //显示I Know! fu_D0=0; //应答后清零 } } } } /定时器中断/ void Timer0() interrupt 1 { static uc cnt=0; cnt++; if(cnt==20) //200ms { cnt=0; if(flag==0) //显示开心快乐每一天 { bg_1602=~bg_1602; //1602背光闪烁 } else if(flag==1) //显示床号 { if(fu_D0==1) //呼叫时,床号闪烁 bg_1602=~bg_1602; else bg_1602=1; } else if(flag==2) //显示I Know! { bg_1602=1; } else if(flag==3) //显示Happy Every Day! { bg_1602=0; } } }
原文地址: http://www.cveoy.top/t/topic/bmgF 著作权归作者所有。请勿转载和采集!