3)电子密码锁位驱动及指示灯电路原理图,如图3-4
图3-4电子密码锁位驱动及指示灯电路原理图
第四章 软件设计及实现
一、软件环境介绍
本次毕业设计软件部分采用在KEIL编译器环境下进行编程,KEIL C-51软件是众多单片机开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM,C等多种程序设计语言,界面友好。
二、程序设计及说明
软件设计可分为两部分。
(1)键盘输入。通过行列键盘扫描程序获取所按键的行、列号,并根据表得到其键值编码。在键盘扫描时需要惊醒消抖处理。
(2)数码管显示和指示灯输出。根据获取的键值编码,选择相应的功能,驱动数码管和指示灯显示。
三、程序流程图,如图4-1
图4-1程序流程图
四、源程序
1) 头文件
#ifndef _PWLOCK_H // 防止PWLock.h被重复引用
#define _PWLOCK_H
#include <reg52.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
uchar digbit; // 字位
uchar wordbuf[6]; // 字型码缓冲区
uchar t1count; // 定时器1由50ms累积到1s所用的计数器
uchar count; // 密码位计数
uchar pw[6]; // 初始密码存储区
uchar pwbuf[6]; // 输入密码存储区
bit enterflag; // 确认键按下与否标志
bit pwflag; // 密码正确与否标志
bit showflag; // 数码管显示与否标志
sbit green=P3^0;
sbit red=P3^1;
void display(void); // 显示函数
#endif
2)主程序(见附录)
结 束 语
在本次毕业设计中,由于时间的关系,我只完成了基本任务部分,
系统复习了PROTEL 99 SE,硬件的设计和检测和软件的编写,单片机的有关知识。使大学三年的学习有了很好的联系。
以上为本次毕业设计的单片机电子密码锁 第5页电路,它经过多次修改,但因为水平有限,此电路中也存在一定的问题,譬如说电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但过于复杂,本次设计未在其中;用开关作74LS112的CLK脉冲,不是很稳定,可以调换其它高速开关或计数脉冲;电路密码只有16种可供修改,但由于他人不知道密码的位数,而且还要求在规定的时间内按一定的顺序开锁,所以他人开锁的几率很小;电路未设声音报警系统,需要在芯片的某一端口增加一音频放大模块,这需要一段时间的进一步改进. 另外设计方案是在始终通电的前提下设计的,若是遇到断电问题则密码锁也很难打开,可以通过增加备用电源来实现,同样因为知识有限,只能做到这一步。如果有好的意见,希望老师给以支持。
在整个过程中懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页