带33键盘3位数电子号码锁
更新时间:2024-04-16 19:37:01 阅读量: 综合文库 文档下载
- 键盘键位数推荐度:
- 相关推荐
课程设计说明书
(2013/2014学年第二学期)
课程名称 :题 目 :带专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 :
单片机课程设计 3*3键盘3位数电子号码锁
2周
2014 年7月 8日
目 录
1、课程设计目的……………………………………………………………….1 2、课程设计具体要求………………………………………………………….1 3、课程设计正文……………………………………………………………….1 3.1硬件设计……………………………………………………………….....1 3.1.1方案设计……………………………………………………………..1 3.1.2 AT89C51,CD4511,数码管简介……………………………………2 3.1.3 方案设计……………………………………………………………. 8 3.1.4 单元电路设计………………………………………………………8 3.1.5 原理图……………………………………………………………….10 3.1.6 PCB图………………………………………………………………..11 3.1.7 系统调试…………………………………………………………….12 3.2 软件设计…………………………………………………………….……12 3.2.1 系统分析………………………………………………………………12 3.2.2 系统设计………………………………………………………………13 3.2.3 系统实施及程序……………………………………………………....14 4、课程设计心得体会……………………………………………………………18 5、参考文献……………………………………………………………………..19
1
1、课程设计目的
1)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 2)通过课程设计,掌握以单片机核心的电路设计的基本方法和技术 3)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
4)与模拟电子技术,数字电子技术等课程相结合,进一步熟悉和掌握单片机的结构及工作原理,为以后所学的后续课程打下良好的基础。
5)通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
2、课程设计具体要求
本课程设计旨在设计一个带3*3键盘的3位数电子号码锁,系统内定的密码为111,通过各种模块电路的连接,实现 :1)当上电时,数码管显示000;2)输入密码时,如果输入密码正确,蜂鸣器报警,如果输入密码错误,显示器直接清除成“000”; 3)修改密码时,在输入密码后方可输入所要修改的密码,然后按下改密键,密码修改完毕; 4)再次输入修改后的密码,同3)
2.1 主要任务
设计并制作一个以单片机为核心的电子锁系统。(1)确定总体设计方案 (2)设计键盘输入电路 (3)设计显示电路 (4)合理分配地址,编写系统程序 (5)利用Protel设计硬件电路原理图和PCB图 (6) 软硬件联机调试
2.2 技术要求
电源打开后,显示器显示“000”,“111”为内定密码:输入号码,再按“确定”开门键。若密码正确,则门会打开(用蜂鸣器提示),否则显示器会清除成“000”:并且密码可修改。
3、课程设计正文 3.1硬件设计 3.1.1 方案设计
2
本课程设计为一个各种模块电路的综合系统,系统单片机的标准的频率时间信号必须做到准确稳定,通常使用石英晶体振荡电路构成。在硬件设计上主要由复位电路、晶体振荡电路、键盘输入电路、驱动电路、数码管显示电路、蜂鸣器报警电路、单片机模块电路、位选电路等构成。所用到的主要元器件有AT89C51、数码管、晶体振荡器、按键、三极管、蜂鸣器、CD4511等。
3.1.2 AT89C51,CD4511,数码管简介 AT89C51
a.AT89C51主要特性 ● 1000次擦写周期 ● 全静态工作:0Hz—33MHz ● 32个可编程I/O口线 ● 2个16位定时器/计数器 ● 6个中断源
● 全双工UART串行通道 ● 低功耗空闲和掉电模式 ● 掉电后中断可唤醒 ● 看门狗定时器 ● 双数据指针
● 灵活的ISP编程(字或字节模式) ● 4.0---5.5V电压工作范围 b.内部结构
下图是单片机AT89C51的内部结构总框图。它可以划分为CPU、存储器、并行口、串行口、定时/计数器和中断逻辑几个部分。
● CPU由运算器和控制逻辑构成。其中包括若干特殊功能寄存器(SFR) ● AT89C51时钟有两种方式产生,即内部方式和外部方式。(如图3-2所示)
● AT89C51在物理上有四个存储空间:片内/片外程序存储器、片内/片外数据存储器。片内有256B数据存储器RAM和4KB的程序存储器ROM。除此之外,还可以在片外扩展RAM和ROM,并且和有64KB的寻址范围。
● AT89C51内部有一个可编程的、全双工的串行接口。它串行收发存储在特殊功能寄存器
3
SFR的串行数据缓冲器SBUF中的数据。
● AT89C51共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。P0口双向I/O口,用于分时传送低8位地址和高8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能(图3-3),用于特殊信号的输入输出和控制信号。
● AT89C51内部有两个16位可编程定时器/计数器T0、T1。最大计数值为2-1。工作方式和定时器或计数器的选择由指令来确定
图3-1 AT89C51 内部结构框图
16
图3-2 AT89S51的时钟电路
c.外部特性(引脚功能)
AT89S51芯片有40条引脚,双列直插式封装引脚图如2-4所示: ● Vcc(40):电源+5V
4
● Vss(20): 接地
● XTAL1(19)和XTAL2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲。
● P0口(39—32):双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。 ● P1口(1—8):准双向通用I/O口。
● P2口(21—28):准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用。 ● P3口(10—17):多用途口,既可作普通I/O口,也可按每位定义的第二功能操作。 ● ALE/~PROG(30):地址锁存信号输出端。在访问片外存储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号作外部地址锁存信号。公式(2—1)fALE=1/6fOSC ,也可作系统中其它芯片的时钟源。第二功能~PROG是对EPROM编程时的编程脉冲输入端。 ● RST/VPD(9):复位信号输入端。AT89S51接电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。第二功能是VPD,即备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。
● ~EA/Vpp(31):内部和外部程序存储器选择线。~EA=0时访问外部ROM 0000H—FFFFH;~EA=1时,地址0000H—0FFFH空间访问内部ROM,地址1000H—FFFFH空间访问外部ROM。 ● ~PSEN(29):片外程序存储器选通信号,低电平有效。 CD4511 a引脚介绍
5
引脚 7、1、2、6为 CD4511的BCD码输入端,9、10、11、12、13、14、15代表输出段码,另外,又设又三个辅助控制引脚:LT、BI、LE。 b引脚功能
引脚 7、1、2、6分别代表CD4511的BCD码输入,9、10、11、12、13、14、15分别代表输出段码的ABCDEFG,通过7个电阻与数码管abcdefg引脚相连,实现数码管的输出。另外,又设又三个辅助控制引脚:LT、BI、LE。其中LT为试灯输入低电平有效;BI为灭灯输入;LE为使能端。 功能介绍如下:
LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,cd4511输出被保持在LE=0时的数值。
A1、A2、A3、A4、为8421BCD码输入端。
a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。
BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否正常。
6
数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定
c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA
7
上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角;
(2)焊接温度:260度;焊接时间:5S
(3)表面有保护膜的产品,可以在使用前撕下来。
数字对应数码管显示控制转换字节 (共阴编码)
显示--HGFE,DCBA--编码 0 --0011,1111--0x3F; 1 --0000,0110--0x06; 2 --0101,1011--0x5B; 3 --0100,1111--0x4F; 4 --0110,0110--0x66; 5 --0110,1101--0x6D; 6 --0111,1101--0x7D; 7 --0000,0111--0x07; 8 --0111,1111--0x7F; 9 --0110,1111--0x6F; 共阳为编码取反即可 3.1.3 方案设计
本次课程设计的内容是设计一个带3*3键盘3位数电子号码琐,3*3键盘输入电路采用行列式结构,输出显示电路部分利用CD4511驱动三个数码管显示,密码修改通过软件编程实现,故在硬件设计上本次设计课题主要由3*3键盘输入电路、复位电路、晶体振荡电路、驱动电路,位选电路和蜂鸣器提示电路等组成。主要元器件有AT89S51、CD4511、NPN、PNP、数码管、晶体振荡器、按键。
8
3.1.4 单元电路设计 1)复位电路的实现
当正常工作时单片机接低电平正常工作,当按下按键,单片机接通高电平,实现复位功能。
2)晶体振荡电路的实现
电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了震荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。 3)驱动电路的实现
通过4511来实现 译码驱动的功能,把BCD码转化成段码显示。 4)键盘输入电路的实现
3*3键盘输入电路采用行列式电路结构,3个列线,3个行线分别与P1口的P1.3,P1.4,P1.5,P1.2,P1.1,P1.0相连 5)位选电路的实现
通过P2.0,P2.1,P2.2经过三个三极管放大来实现位选,分别控制三个数码管的显示。 5)蜂鸣器提示电路
通过P2.3经过一个PNP和蜂鸣器来实现提示密码输入正确
3.1.5原理图
9
10
3.1.6 PCBSWS3图 +51010ufSTXTAL1J1ON233VCCpf12Y1MHZXTAL2S2S1SWSW33+5pfINT04.7kINT14.7k4.7K20XTAL119XTAL21817161514INT113INT0121110STAT89GNDXTAL1XTAL2P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0P1.6P1.5P1.4P1.3P1.2P1.1P1.0U2E1S51/R/W/T1/T0/RNPNQ1/INT1/INT0/TxDxDST/VPDP1.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7PSALE/PREA/VpENOGP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0VCC4.7K2122232425262728293031323334353637383940+5P2P2P2P2+5E2+5NPNQ2P2P2P2P24511LTLKLE/SIN DIN CIN BIN AU3TBSEG GSEG FSEG ESEG DSEG CSEG BSEG A141510111213222222222222221413121110W7W6W5W4W3W2W110W7W6W5W4W3W2W110W7W6W5W4W3W2W17S7SEGEG[LEDgnGNDDPYGND[LEDgnGNDDPYGNDE2E1
11
TitleSizeDate:File:Numberevisio16-Jun-200F:\\count计数器.ddbSheet of Drawn By:
3.1.7 系统调试 硬件调试:
硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。
硬件调试可分为静态调试与动态调试两步进行。 静态调试是在用户系统未工作时的一种硬件检测。
第一步:目测。检查外部的各种元件或者是电路是否有断点。
第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。
动态调试 是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。 软件调试:
软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。
3.2 软件设计 3.2.1 系统分析
本次课题设计是基于单片机的特性来实现其功能的。本系统采用的单片机是AT89S51型号。其上集成了3个数码管,10个按键开关,主要实现数字输入和复位功能。3*3键盘九
12
个按键,其中 七个数字键,一个确认键,一个密码修改键,还有复位电路一个按键。还有蜂鸣器提示电路,当输入密码正确时,蜂鸣器响,起提示作用。 3.2.2 系统设计
本系统需实现3个功能,3*3键盘输入电路通过九个按键采用行列式电路结构实现,输出显示电路部分通过CD4511驱动三个数码管结合位选电路来显示输入的密码,当密码输入正确时,蜂鸣器响,起提示作用,密码修改功能通过软件编程实现。
开始 设定密码111 初始化显示000 键盘扫描 否 有键按下? 是 取键号 改密键-9键 判键号类型 密码键1-7 蜂鸣器响? 显示键号 否 密码正确? 确定键--6 否 是 改密键 是 蜂鸣器响
13
3.2.3 系统实施及程序
#include\
#define uchar unsigned char #define uint unsigned int uint temp;
uchar buf[3]=0,num; uchar keym[3]={1,1,1}; uchar flag=0; 锁,0:锁定 uchar flag1=0; uchar
table[]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9};
sbit wei1=P2^0; sbit wei2=P2^1; sbit wei3=P2^2; sbit beep=P2^3;
uchar count=0; //输入个数
void delay(uint z) {
uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void intal() {
code
//输入缓存
//密码
//解锁标志,1:解
14
beep=1; TMOD=0x01;
TH0=(65536-45000)/256; TL0=(65536-45000)%6; EA=1; ET0=1; TR0=1; }
void keyscan(void) { P1=0xfe; temp=P1;
temp=temp&0xf8;//扫描行 if(temp!=0xf8) {
delay(5); temp=temp&0xf8;
if(temp!=0xf8)//延时消抖 {
temp=P1; switch(temp) {
case 0xee: buf[count]=0,count++; break;
case 0xde: buf[count]=3,count++; break;
case 0xbe: //复位键
15
{
count=0; flag=0; buf[0]=0;
buf[1]=0; buf[2]=0; } break; } do { temp=P1; temp=temp&0xf8;
}while(temp!=0xf8);//检测松手
} } P1=0xfd; temp=P1;
temp=temp&0xf8;//扫描行 if(temp!=0xf8) {
delay(5); temp=temp&0xf8;
if(temp!=0xf8)//延时消抖 { temp=P1; switch(temp) {
case 0xed: buf[count]=1,count++; break;
16
case 0xdd: buf[count]=4,count++; break;
case 0xbd:flag1=1; break; } do { temp=P1; temp=temp&0xf8;
}while(temp!=0xf8);//检测松手 } } P1=0xfb; temp=P1;
temp=temp&0xf8;//扫描行 if(temp!=0xf8) {
delay(5); temp=temp&0xf8;
if(temp!=0xf8)//延时消抖 {
temp=P1; switch(temp) {
case 0xeb: buf[count]=2,count++; break;
case 0xdb: buf[count]=5,count++; break; case 0xbb:
//改密键
// 确认键 17
if(flag==0)
{if(buf[0]==keym[0]&&buf[1]==keym[1]&&buf[2]==keym[2])//密码正确 { count=0; flag=1; buf[0]=0; buf[1]=0; buf[2]=0; beep=0; delay(1000); beep=1; }
else //密码错误 { count=0; buf[0]=0; buf[1]=0; buf[2]=0; } }
if(flag1==1) {
keym[0]=buf[0]; keym[1]=buf[1]; keym[2]=buf[2]; buf[0]=0; buf[1]=0; buf[2]=0;
18
flag1=0; flag=0; } break;
} do { temp=P1; temp=temp&0xf8; }
while(temp!=0xf8);//检测松手
} } }
void display(void) { wei1=0;
P0=table[buf[0]]; delay(5); wei1=1;
wei2=0;
P0=table[buf[1]]; delay(5); wei2=1;
19
正在阅读:
带33键盘3位数电子号码锁04-16
第三章 双极结型晶体管(习题)06-11
基层组织建设工作应知应会知识09-18
茶叶10大美容功效 喝茶抗老敷脸祛痘04-16
反应工程答案12-04
电子时钟设计实验报告10-20
人防地下室施工组织设计07-09
热能与动力工程专业英语词汇06-15
4则有趣的汉字故事_历史典故素材04-04
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 位数
- 键盘
- 号码
- 电子
- 实验室安全知识习题(8)多选
- 江苏省赣榆县海头高级中学2018届高三上学期数学周考2
- 无损探伤
- S版四年级语文下册教学计划
- 学习心理学 已完成
- 第三章 货币资金审计
- 个人所得税知识竞赛题及标准答案-国家税务总局
- 营销成本价值链
- 鼻饲、胃肠减压评分标准 Microsoft Office Word 文档 - 图文
- 七年级寒假生活指导答案 山东教育出版社
- 上海海洋大学windows编程技术期末整理
- 宗祠落成典礼讲话稿
- VRAY快速入门渲染教程 - 图文
- 张家河河道综合整治工程施工组织
- 樊城区城管工作旬检排名表
- 教育学考研强化习题 - 教育与社会的发展判断
- 离退休人员返聘协议范本
- 叶曼先生讲楞严经
- 转基因食品的安全性论文
- 基于MATLAB的信号处理仿真分析