1 / 14
文档名称:

电子密码锁的设计.doc

格式:doc   大小:69KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电子密码锁的设计.doc

上传人:xnzct26 2022/4/19 文件大小:69 KB

下载得到文件列表

电子密码锁的设计.doc

相关文档

文档介绍

文档介绍:-
. z
结合51单片机设计电子密码锁
实验目的
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机 z
这次密码锁设计遇到的最大的两个问题一个是错误三次锁死无法实现,一个是定时器功能无法实现。
一个问题产生的主要原因是因为早期将键盘扫描程序mat_keyget〔〕写在了错误是否小于3次的判断语句之前,导致即使错误3次仍然能执行键盘扫描,未能到达锁死键盘的效果。后来将mat_keyget ()写在了主程序判断错误语句的里面,这样一旦错满3次,自动跳到外面,脱离了键盘扫描,从而到达了锁死键盘的效果。
实****中还遇到了其他些许问题,如定时12s,使用户假设未能在12s输入完密码并且按下确认键,即使密码输入正确也会被判为无效,即错误一次。在实际操作过程中,t自加一次用时50ms,所以定时12s应为:50*20*12。而在实际操作过程中,由于晶振误差和操作误差,实际时间长于12s,因此最后将数值设为200,在循环进展操作,减小了误差。
【七】总结
实践是检验真理的唯一标准,当然也是检验学****成果的标准。在经过一段时间的学****之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。
从这次试验如果要一个人来做,我想也是做不了这么快的,因此我们不得不归功于集体的力量,分配合作对于这种近乎于模块化设计的东西来说是非常有利的,当然我们也碰到过问题,这在调试错误这一节中也说得很是明白了,但是我们也并没有灰心丧气,,不能光是从手头上从硬件上找问题,我们也要从软的例如程序上或是设计思路上思考这样的解决方案是不是有较大的缺陷.
通过这个不难也不是很简单的实验我们认识到了团结协作,互帮互助的好处,这次课程设计也可以说是考完试后通过实践检验真理的一次珍贵时机,我们都为能够顺利完本钱次实验感到无比的骄傲和自豪。
附录:主要源程序以及原理实现框图
程序代码:
*include""
*include""
*include""
*include""
*include""
*include""
unsigned char digital_display[]={16,16,16,16,16,16,16,16};
unsigned char e2prom_addr[]={0*00,0*01,0*02,0*03,0*04};
unsigned char code cipher[]={2,2,3,4,5};
unsigned char cipher_temp[6],password[5];
unsigned char error_num=0;
unsigned char code digital_lock[]={26,26,17,18,19,26,26,26}; //--OUT---
unsigned char code digital_open[]={26,26,20,21,22,23,26,26}; //--OPEN--
unsigned char code digital_help[]={26,26,20,22,25,21,26,26};//--HELP--
-
. z
unsigned char code digital_in[]={26,26,26,24,25,26,26,26} ;//---IN---
void lock(void)// 关锁
{
unsigned char i;
for(i=0;i<8;i++)
digital_display[i]=digital_lock[i];
buzzer_on();
delay_500us(200);
buzzer_off();
}
void open(void)//***
{
unsigned char i;
for(i=0;i<8;i++)
digital_display[i]=digital_open[i];
buzzer_on();
delay_500us(200);
buzzer_off();
del