PIC单片机原理及应用课程设计报告电子密码锁

上传人:汽*** 文档编号:486796879 上传时间:2022-08-05 格式:DOC 页数:19 大小:1.50MB
返回 下载 相关 举报
PIC单片机原理及应用课程设计报告电子密码锁_第1页
第1页 / 共19页
PIC单片机原理及应用课程设计报告电子密码锁_第2页
第2页 / 共19页
PIC单片机原理及应用课程设计报告电子密码锁_第3页
第3页 / 共19页
PIC单片机原理及应用课程设计报告电子密码锁_第4页
第4页 / 共19页
PIC单片机原理及应用课程设计报告电子密码锁_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《PIC单片机原理及应用课程设计报告电子密码锁》由会员分享,可在线阅读,更多相关《PIC单片机原理及应用课程设计报告电子密码锁(19页珍藏版)》请在金锄头文库上搜索。

1、PIC单片机原理及应用课程设计报告电子密码锁专业:电子信息工程姓名:哈哈哈 班级: (1) 学号:000000000 2010.12.29【摘要】:随着生活水平的提高,人们也越来越重视个人的隐私及财产安全,要设计主要基于PIC单片机系统、键盘、LCD。本系统可完成开锁、修改密码、掉电后密码受保护以及三次输入密码错误报警功能。【关键词】:电子密码锁、键盘、LCD。【目录】: 第一章:主要元器件介绍第一节:PIC介绍 1第二节:LCD1602介绍2第二节:矩阵键盘介绍7 第二章:电子密码锁的设计 第一节:密码锁原理图及工作原理8第二节:密码锁程序9第三章:设计心得及参考文献17第一章 主要元器件介

2、绍第一节、 PIC单片机单片机是一块芯片上集成了中央处理器单元、数据存储器、程序存储器、输入/输出和定时器/计数器等部件的一台小型计算机。随着芯片集成度的提高,单片机的功能得以迅速的扩充,特别是PIC单片机,增加了许多强大的外围模块,从而给用户带来了极大的便利。PIC单片机有如下特点:1、哈佛总线结构;2、RISC技术;3、指令特色;4、功耗低;5、驱动能力强;6、同步串行数据传送方式;7、应用界面友好、开发方便;8、程序存储器版本齐全。1-1 PIC16F877A框图1-2引脚示意图: 1-3 特殊功能寄存器 第二节、LCD1602第二节、 矩阵键盘 1.矩阵式键盘的结构与工作原理在键盘中按

3、键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都

4、是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。第二章、电子密码锁的设计第一节、原理图及工作原理一、原理图二、原理框图单片机控制系统LCD显示蜂鸣器键盘三、设计原理用户根据屏幕提示操作,单片机通过键盘扫描,检测输入密码是否正确,如果正确则进入系统,进行下一步操作。进入系统后,刚继续检测用户输入的功能号,根据功能号判断下一步要执行的程序,否则一直在功能界面等待用户指令。其中在功能界面中,按下A则为退出功能界面,下次要再进入则须再输入正确密码,按下B则可重设密码,在这里须两次输入相同新密码后才可设定成功,设定成功后退至功

5、能界面,继续等待用戶指令。第二节、 电子密码所程序一、 程序流程图初始化调用LCD显示子程序,显示“press D to start”调用键盘扫程序检测D是否被按下清屏调用LCD程序,清屏,并显示“enter password”调用输入六位密码子程序 调用密码检测程序检测密码是否正确调用显示程序,清屏,显示“A:exit B:reset num:function”执行读按键子程序执行退出程序执行密码重设程序执行其他程序输入错误次数加1,并判断是否达到3次执行报警程序 是 二、 程序#include#include#includestring.h_CONFIG(0X3B31);#define u

6、int unsigned int#define uchar unsigned charchar inword6;char passwd6;char newword6;void delay(uint t);void init();void sound200ms(unsigned char fre_repeat,unsigned char s_max,unsigned char s_min);void sounddelay(unsigned char delay_count);/*/#define keybord PORTBchar keyscan();void keyinit();char re

7、adkey();#define LINE1 RB0#define LINE2 RB1#define LINE3 RB2#define LINE4 RB3/*/#define rs RA5#define rw RA4#define e RA3char TABLE117;void lcdportinit(); void lcd_init(); void write_data(uint data); void write_com(uint com); void writelcd(uint x,uint y,char *pt);void lcdpoint1();void lcdpoint2();voi

8、d lcdpoint3();void lcdpoint4();void lcdpoint5();void lcdclr();int CN=0;char key=0;/*扫描*/void ipassword();/输入密码int testword();/测试/*/void reset();/*主程序*/void main()int count=0;init();while(1)lcdclr(); /清屏lcdpoint1();if(readkey()=D)lcdclr(); sprintf(TABLE1,enter password:);/显示enter password:writelcd(0,

9、0,TABLE1);ipassword();if(testword()lcdclr();/清屏while(1)lcdpoint3();/显示操作提示readkey();if(key=B)reset();/重设密码lcdclr();/清屏continue;if(key=A) lcdclr();break;/退出系统if(key=1) music();else count+;while(count2) 报警程序sound200ms(4,0X93,0X47);/*按键程序*/void keyinit()TRISB=0X0F;/高四位当输入,低四位当输出char keyscan()char temp1

10、=0;keybord= 0x10;asm(nop); if( !LINE1 ) return temp1=1; if( !LINE2 ) return temp1=4; if( !LINE3 ) return temp1=7 ; if( !LINE4 ) return temp1=*; keybord= 0x20;asm(nop); if( !LINE1 ) return temp1=2; if( !LINE2 ) return temp1=5; if( !LINE3 ) return temp1=8; if( !LINE4 ) return temp1=0; keybord= 0x40;as

11、m(nop); if( !LINE1 ) return temp1=3; if( !LINE2 ) return temp1=6; if( !LINE3 ) return temp1=9; if( !LINE4 ) return temp1=#; keybord= 0x80;asm(nop); if( !LINE1 ) return temp1=A;/返回 if( !LINE2 ) return temp1=B; if( !LINE3 ) return temp1=C;/重设 if( !LINE4 ) return temp1=D;/enter键 return temp1 ;char readkey()/char temp=0; while(!keyscan();temp=keyscan();delay(10);if(keyscan()=temp)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号