单片机设计电子密码锁毕业论文

单片机设计电子密码锁毕业论文

ID:9249512

大小:34.64 KB

页数:9页

时间:2018-04-25

单片机设计电子密码锁毕业论文_第1页
单片机设计电子密码锁毕业论文_第2页
单片机设计电子密码锁毕业论文_第3页
单片机设计电子密码锁毕业论文_第4页
单片机设计电子密码锁毕业论文_第5页
资源描述:

《单片机设计电子密码锁毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、设计题目:电子密码锁Ø功能实现:八位密码锁具有设置密码,然后输入密码验证的功能:1)设置密码成功后会点亮LED灯提示;2)录放音模块;3)输入密码错误则有语音提示;4)输错3次后LED灯闪烁提示,输错5次以上就禁止输入,且LED灯闪的频率加快;5)输入正确后播放音乐提示;6)设置密码和输入密码时不小心按错可以使用清除键;7)密码破解后可以选择重置密码或继续使用原密码;Ø实现方法:状态机设置密码----输入密码----判断密码是否正确----错误继续回到输入密码状态-----正确则选择是回到输入密码状态或者重置密码Ø设计源程序:#include

2、a16.h>flashunsignedcharled_7[13]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x40};//字型码,后3位为“A”,“b”,“-”flashunsignedcharposition[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};unsignedchardis_buff[8];//显示缓冲区,存放要显示的8个字符的段码值unsignedcharkey_disbuff[8];unsignedchark

3、ey_stime_counter,key_stime_ok1,sign;unsignedcharposit;bitkey_stime_ok;unsignedcharcount=0;flashunsignedintt[9]={0,956,865,759,716,638,568,506,470};flashunsignedchard[9]={0,105,116,132,140,157,176,198,209};#defineMax_note32flashunsignedcharmusic[Max_note]={1,2,1,2,1,2,3,2,5,2,5,

4、2,5,4,5,2,6,2,6,2,6,2,8,2,5,4};unsignedcharnote_n;unsignedintint_n;bitplay_on;interrupt[TIM1_COMPA]voidtimer1_compa_isr(void)//音乐播放中断{if(!play_on){note_n=0;int_n=1;play_on=1;}else{if(--int_n==0){TCCR1B=0x08;if(note_n

5、n++;int_n=int_n*music[note_n];note_n++;TCCR1B=0x09;}elseplay_on=0;}}}voiddisplay(void)//8位LED数码管动态扫描函数{PORTC=0xff;PORTA=led_7[dis_buff[posit]];PORTC=position[posit];if(++posit>=8)posit=0;}#defineNo_key255#defineK1_11#defineK1_22#defineK1_33#defineK2_14#defineK2_25#defineK2_36#d

6、efineK3_17#defineK3_28#defineK3_39#defineK4_110#defineK4_20#defineK4_311#defineKey_mask0bunsignedcharread_keyboard()//键盘输入子程序{staticunsignedcharkey_state=0,key_value,key_line;unsignedcharkey_return=No_key,i;switch(key_state){case0:key_line=0b;for(i=1;i<=4;i++)//扫描键盘{PORTB=~key_

7、line;//输出行线电平PORTB=~key_line;//必须送2次!!!(注1)key_value=Key_mask&PINB;//读列电平if(key_value==Key_mask)key_line<<=1;//没有按键,继续扫描else{key_state++;//有按键,停止扫描break;//转消抖确认状态}}break;case1:if(key_value==(Key_mask&PINB))//再次读列电平,{switch(key_line

8、key_value)//与状态0的相同,确认按键{//键盘编码,返回编码值case0b:ke

9、y_return=K1_1;break;case0b:key_return=K1_2;break;case0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。