教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

数字式密码电子锁电路设计(2)

来源:网络收集 时间:2025-09-12
导读: num--; LCD_Operation_Answer(num); } if(answerflag == 1 startflag == 0 errorflag == 0) { LCD_Operation_Answer(num); startflag = 1; } if(function == 2 errorflag == 0) { if(changeflag == 1) { 21 if(sure

num--;

LCD_Operation_Answer(num); }

if(answerflag == 1 && startflag == 0 && errorflag == 0) { LCD_Operation_Answer(num); startflag = 1; }

if(function == 2 && errorflag == 0) { if(changeflag == 1) {

21

if(sureflag == 0) { ps[location] = 0; LCD_Operation_Enter(); location++; if(location == 4) { location = 0; sureflag = 1; LCD_Operation_Makesure(); } } else { ps_1[location] = 0; LCD_Operation_Enter(); location++; } } else { LCD_Operation_Unlock(); function = 0; } } break; case 0x03:

if(function == 0 && errorflag == 0) { if(lockflag == 0 && unlockflag == 0 && answerflag == 0) { temp[location] = 1; LCD_Operation_Enter(); busy = 1; location++; LCD_Operation_Check(); } } if(answerflag == 1 && startflag == 1 && errorflag == 0) { num++; if(num == 10) { num = 0; }

22

LCD_Operation_Answer(num); }

if(answerflag == 1 && startflag == 0 && errorflag == 0) { LCD_Operation_Answer(num); startflag = 1; }

if(function == 1 && startflag == 0 && errorflag == 0) { LCD_Operation_Question(); answerflag = 1; }

if(function == 2 && errorflag == 0) {

if(changeflag == 1) { if(sureflag == 0) { ps[location] = 1; LCD_Operation_Enter(); location++; if(location == 4) { location = 0; sureflag = 1; LCD_Operation_Makesure(); } } else { ps_1[location] = 1; LCD_Operation_Enter(); location++; if(location == 4) { location = 0; sureflag = 0; } } } else { changeflag = 1; LCD_Operation_New();

23

} } break; } } } }

#pragma vector = TIMERA0_VECTOR __interrupt void TA0_ISR(void) {

_DINT(); ms++; if(ms == 500) { s++; ms = 0; if(s <= 120) { if(s%2 == 1) { Ab0; } else { Ab1; } } else { Ab1; } if(s >= 140) { s = 0; } } _EINT(); }

// There is two vector in timer bj,

// TIMERA0_VECTOR is owned by CCR0

24

2.coded_lock.h头文件

/*------------------------------------------------------------------------------ ** Created by: Xu Yuanchun ** Created date: 2012.06.02 ** Version: V1.0

** Descriptions: The coded_lock.h of trick lock

*******************************************************************************/ #ifndef _coded_lock_h #define _coded_lock_h

/*********Define for keys********/ #define Key_Dir P1DIR #define Key_Out P1OUT #define Key_In P1IN #define Key_1 (P1IN & 0x06) // Select the function #define Key_2 (P1IN & 0x05) // Increase to change #define Key_3 (P1IN & 0x03) // Decrease to change /********************************/

/*********Define for LCD*********/ #define LCD_Ctrl_Dir P3DIR #define LCD_Ctrl_Port P3OUT #define LCD_Data_Dir P2DIR #define LCD_Data_Port P2OUT #define LCD_RS BIT0 #define LCD_EN BIT1

#define LCD_RES_RS LCD_Ctrl_Port &= ~LCD_RS #define LCD_SET_RS LCD_Ctrl_Port |= LCD_RS #define LCD_RES_EN LCD_Ctrl_Port &= ~LCD_EN #define LCD_SET_EN LCD_Ctrl_Port |= LCD_EN /********************************/

#define Ab0 LCD_Ctrl_Port &= ~BIT2 #define Ab1 LCD_Ctrl_Port |= BIT2 #define Blue0 LCD_Ctrl_Port &= ~BIT4 //0代表亮,1代表灭 #define Blue1 LCD_Ctrl_Port |= BIT4 #define Red0 LCD_Ctrl_Port &= ~BIT5 #define Red1 LCD_Ctrl_Port |= BIT5 /********Function declare********/ void Delayms(uint); void LCD_Init();

void Write_Com(uchar); void Write_Date(uchar); #include \

25

#endif

3.LCD1602.c文件

/*------------------------------------------------------------------------------ ** Created by: Xu Yuanchun ** Created date: 2012.06.02 ** Version: V1.0

** Descriptions: The LCD1602.c of trick lock

*******************************************************************************/

void Write_Com(uchar com) // Write command {

LCD_RES_RS; LCD_RES_EN; LCD_Data_Port=com; Delayms(5); LCD_SET_EN; Delayms(5); LCD_RES_EN; }

void Write_Date(uchar date) // Write data { LCD_SET_RS; LCD_RES_EN; LCD_Data_Port=date; Delayms(5); LCD_SET_EN; Delayms(5); LCD_RES_EN; }

void LCD_Init() // Initialize { LCD_RES_EN; Write_Com(0x38); //设置16*2显示,5*7点阵,8位数据接口 Write_Com(0x0c); //设置开显示,不显示光标 Write_Com(0x06); //写一个字符后地址指针加1 Write_Com(0x01); //显示清零,数据指针清零 }

26

27

本科生课程设计成绩评定表

姓 名 专业、班级 徐元春 性 别 男 电子科学与技术电子1003班 课程设计题目: 数字式密码电子锁电路设计 课程设计答辩或质疑记录: 问题一:你的电路硬件框架? 答:我所设计的电路中使用了单片机芯片AT89C52作为主控芯片,外围器件有矩阵键盘,1602液晶,蜂鸣器和LED灯。 问题二:电路能否记忆设定密码?如何实现? 答:可以。我在电路中使用AT89C52自带的E2PROM作为电路的存储模块,存储当前的密码。 问题三:如果三次密码错误会出现什么现象? 答:程序中设置了一个标志变量,当三次密码错误,标志变量置位,不能再次输入密码。 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定)

指导教师签字:

年 月 日

28

…… 此处隐藏:1583字,全部文档内容请下载后查看。喜欢就下载吧 ……
数字式密码电子锁电路设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/656765.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)