密码锁单片机课程设计.doc

上传人:laozhun 文档编号:4148869 上传时间:2023-04-07 格式:DOC 页数:16 大小:117.50KB
返回 下载 相关 举报
密码锁单片机课程设计.doc_第1页
第1页 / 共16页
密码锁单片机课程设计.doc_第2页
第2页 / 共16页
密码锁单片机课程设计.doc_第3页
第3页 / 共16页
密码锁单片机课程设计.doc_第4页
第4页 / 共16页
密码锁单片机课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《密码锁单片机课程设计.doc》由会员分享,可在线阅读,更多相关《密码锁单片机课程设计.doc(16页珍藏版)》请在三一办公上搜索。

1、 单片机课程设计说明书 2008 级 电子信息工程 专业 0813083 班级题 目 基于单片机的数字密码锁设计学 号 081308322 一 数字密码锁的基本原理1.1 设计要求及基本实现原理密码锁设计要求如下:1、 数字密码锁能够设置4位数字密码;2、 输入密码正确显示”ON”,输入错误显示”OFF”;3、 密码初始值为“8888”;4、 输入原密码正确可以修改密码。 根据设计要求,在设计时采用89C52单片机作为核心器件,利用C语言作为开发源程序。四位数字密码在硬件上由4位LED数码显示器显示,单片机采取动态显示方式控制数码显示管,可同时显示4位数字,用4个三极管驱动4位LED显示器;由

2、单片机内部程序可使得密码锁输入密码正确显示”ON”,输入错误显示”OFF”;开辟4个存储单元用于存储4位密码,通过24的矩阵式按键键盘和相关程序可实现密码锁密码初始值为“8888”,并且输入原密码正确可以修改密码的功能。1.2 系统构成框图按照系统设计的要求和功能,可以将系统分为主控模块、按键扫描模块、蜂鸣器及LED灯、电源电路、复位电路、晶振电路、驱动电路几个模块。如图1.1所示,主控模块采用89C52单片机。 电源电路主控模块89C52复位电路晶振电路按键扫描模块驱动电路蜂鸣器和LED灯图1.1 基于89C52单片机的密码锁组成模块图二 数字密码锁的硬件设计2.1 电路原理图 系统硬件电路

3、图如图2.1所示,P3口接密码按键,提示音由P3.7输出,晶振频率为12MHz,Q1Q4控制4位数码显示器。 限于篇幅,电路原理图中多出采用网络标号表示元件之间的连接。图2.1 数字密码锁原理图2.2 电子线路CAD软件生成的PCB图 如图2.2所示,考虑到打印的示图效果,印制电路板未经过覆铜处理。图2.2 电路原理图生成印制电路板图2.3 元器件列表序号器件名称参数数量1USB座12USB线13双排针214跳帽25电容0.1uF66LED灯17电阻2K1840针座19STC89C52110晶振12MHz111电容20pF212复位键113电阻10K114蜂鸣器115三极管9015516电阻3

4、301716针座118MAX232119单排针5120按键821单排针3122跳帽1234位LED124电阻4.7K825电阻3308三 数字密码锁的软件设计3.1 程序基本流程图开始初始化Y调用显示和扫描存储键值是否够4位?有键按下?N调用显示和扫描YN有键按下?YN比较键值N是否正确?存储并覆盖原键值YN是否够4位?结束显示offYY显示on图3.1 数字密码锁程序流程图3.2 源程序/*原始密码8888*/#include#include /void delay(void);/按键销抖延时/void keyscan(void);/键盘扫描/bit pwcmp(void);/密码比较/*数

5、码管表格*/unsigned char code dis_code14=0xc0,0xf9,0xa4,0xb0,/ 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x90, 0xbf,0xc8,0x8e,0xff;/ 4, 5, 6, 7, 8, 9,-, on ,offunsigned char data dis_index;unsigned char data dis_digit;/字位unsigned char data dis_buf4;/字形码缓冲区unsigned char data count; /密码位计数unsigned char data pw4;

6、/密码存储区unsigned char data pwin4; /输入密码存储区bit showflag; /数码管显示bit updataflag; /更改密码标志,updataflag=1时,输入密码存入pwbit pwflag; /密码正确void display(unsigned char i)P2=0xfe;P0=dis_codei;/*功能:延时子程序*/void delay(void)unsigned char i,j;for(i=0;i200;i+)for(j=0;j250;j+);/*函数功能:密码比较子程序*/void pwcmp(void)unsigned char j;

7、for (j=0;j4;j+) if (pwj=pwinj) pwflag=1;else pwflag=0;j=4;if (count4)/密码小于4位,直接显示OFFpwflag=0;count=4;if (pwflag=1) dis_buf0=dis_code11; dis_buf1=dis_code0; dis_buf2=dis_code13; dis_buf3=dis_code13;else dis_buf0=dis_code12; dis_buf1=dis_code12; dis_buf2=dis_code0; dis_buf3=dis_code13; /*函数功能:键盘扫描子程序*

8、/ void keyscan(void) unsigned char n,j; /扫描第一行 P3=0xfe; n=P3; n&=0xf0; if(n!=0xf0) delay(); P3=0xfe; n=P3; n&=0xf0; if(n!=0xf0) switch(n) case(0xb0):if (count4) dis_bufcount=dis_code8;if (updataflag=1) /按下修改密码键pwcount=0; elsepwincount=0;count+;delay();break;case(0x70):if (count4)dis_bufcount=dis_cod

9、e8;if (updataflag=1) /按下修改密码键pwcount=3; elsepwincount=3;count+;delay();break; /扫描第二行P3=0xfd;n=P3;n&=0xf0;if(n!=0xf0) delay(); P3=0xfd; n=P3; n&=0xf0; if(n!=0xf0) switch(n) case(0xb0):updataflag=1; for (j=0;j4;j+) dis_bufj=dis_code10; count=0; pwin0=0; pwin1=0; pwin2=0; pwin3=0; delay();break; case(0

10、x70):if (count4) dis_bufcount=dis_code8;if (updataflag=1)/按下修改密码键pwcount=2; elsepwincount=2;count+;delay();break; /*函数功能:主程序*/void main(void)unsigned char j;P2=0x0;TMOD=0x11; TH0 = 0xFC;TL0 = 0x17;TR0=1;ET0=1;EA=1;count=0; /初始没有输入密码updataflag=0;pwflag=0; dis_digit = 0xfe;dis_index = 0;pw0=8; /初始密码88

11、88pw1=8;pw2=8;pw3=8;showflag=1; /打开数码管显示for (j=0;j4;j+) dis_bufj=dis_code10;while(1) keyscan(); void timer0() interrupt 1/ 定时器0中断服务程序, 用于数码管的动态扫描/ dis_index - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量/ dis_digit - 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,选通P2.0口数码管/ dis_buf - 显示缓冲区基地址TH0 = -2000/256;TL0 = -2000%256;P2 =

12、 0xff;/ 先关闭所有数码管P0 = dis_bufdis_index;/ 显示代码传送到P0口P2 = dis_digit; dis_digit = _crol_(dis_digit,1);/位选通值左移, 下次中断时选通下一位数码管dis_index+;dis_index &= 0x03;/ 数码管全部扫描一遍,回到第一个开始下次扫描if (dis_digit = 0xef) dis_digit = 0xfe;四 课程设计总结 从这次课程设计的资料收集到电路板的焊接,从源程序的调试到最终的程序载入运行成功,都凝聚了老师和同学们的心血。这次课程设计中我收获了许多课堂上得不到的宝贵知识,主要有以下几点: (1) 扎实的专业理论知识是指导实践的根本,在今后的学习中,我一定会尽全力打好专业基础,注重联系实际,多做练习。 (2)实际操作中我觉得自己的动手能力较差,作为一名工科学生,加强手脑并用的实践能力尤为重要。(3)严谨科学的思维方式和态度是设计工程项目的指导思想,在平时的学习中也非常重要,对于避免和克服困难必不可少。这次课程设计后,我在以后生活工作中一定加强培养团队精神以及与队友合作的技巧和效率。遇到困难迎难而上,努力克服。自强不息,厚德载物。五 指导教师评语成绩 指导教师签名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号