数字式密码电子锁电路设计(2)
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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介