课程设计报告---单片机实现密码锁(编辑修改稿)内容摘要:

//////显示子程序 /////////////////////////////////////////////////////////// //信息填充函数 void Fill_Buf(uchar FillChar)//将字符 FillChar 写入缓冲区 { uchar t。 for(t=0。 t6。 t++) { DispBuf[t]=FillChar。 PassInBuf[t]=FillChar。 } } void Fill_Buf_P() //将系统闭锁时的信息写入缓冲区 { Fill_Buf(BLANKCHAR)。 DispBuf[0]=PCHAR。 } void Fill_Buf_O() //将系统开锁时的信息写入缓冲区 { Fill_Buf(BLANKCHAR)。 DispBuf[0]=OPENCHAR。 } void Fill_Buf_A() //将系统报警时的信息写入缓冲区 { Fill_Buf(LINECHAR)。 DispBuf[0]=ALARMCHAR。 } void Fill_Buf_B() //将系统设定密码时的信息写入缓冲区 { Fill_Buf(BLANKCHAR)。 DispBuf[0]=SETCHAR。 } //缓冲区显示函数 void Disp_Led_Sin(uchar DispChar,uchar DispPosi) //在某个 LED 上显示字符 { LEDPORT=SEGCODE[DispChar]。 LEDCON=BITCODE[DispPosi]。 } void Disp_Led_OFF() //关闭显示器 { uchar T。 LEDCON|=0X3F。 for(T=0。 T6。 T++) Disp_Led_Sin(BLANKCHAR,T)。 } void Disp_LED(uchar i) //当系统处于不同模式下时显示某个显示器 { DispCnt++。 DispCnt%=10。 if(DispCnt==0) { DispNormal=~DispNormal。 } if(SysMode==1) { if(!DispNormal) { Disp_Led_OFF()。 return。 } } Disp_Led_Sin(DispBuf[i],i)。 } ////////报警子程序 //////////////////////////////////////////////////////////// void Sys_Speaker(uint stime) //设置报警时间及报警标志位 { AlarmEnable=1。 AlarmTime=stime。 } void Sys_Alarm() //控制蜂鸣器鸣叫 { if(AlarmEnable==1) { ALARMCON=0。 AlarmTime。 if(AlarmTime==0) { AlarmEnable=0。 ALARMCON=1。 if(SysMode==1) { SysMode=0。 Fill_Buf_P()。 } } } } ////////键盘子程序 //////////////////////////////////////////////////////////// uchar Find_Key() //扫描一次键盘返回按键值 { uchar KeyTemp,i,j。 KEYPORT=0XF0。 KeyTemp=KEYPORT。 if(KeyTemp==0XF0) return NO_KEY。 switch(KeyTemp) { case 0x70: j=4。 break。 case 0xb0: j=3。 break。 case 0xd0: j=2。 break。 case 0xe0: j=1。 break。 default: break。 } KEYPORT=0x0f。 KeyTemp=KEYPORT。 switch(KeyTemp) { case 0x07: i=4。 break。 case 0x0b: i=3。 break。 case 0x0d: i=2。 break。 case 0x0e: i=1。 break。 default: break。 } return (4*(i1)+j1)。 } uchar Scan_Key() //负责按键去抖动等操作 { uchar KeyTemp。 KeyTemp=Find_Key()。 if(KeyTemp==NO_KEY) { if(KeyUp2) { KeyUp=0。 return NO_KEY。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。