基于单片机的数字万年历.docx

上传人:b****7 文档编号:9224676 上传时间:2023-02-03 格式:DOCX 页数:34 大小:423.62KB
下载 相关 举报
基于单片机的数字万年历.docx_第1页
第1页 / 共34页
基于单片机的数字万年历.docx_第2页
第2页 / 共34页
基于单片机的数字万年历.docx_第3页
第3页 / 共34页
基于单片机的数字万年历.docx_第4页
第4页 / 共34页
基于单片机的数字万年历.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

基于单片机的数字万年历.docx

《基于单片机的数字万年历.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字万年历.docx(34页珍藏版)》请在冰豆网上搜索。

基于单片机的数字万年历.docx

基于单片机的数字万年历

第1章绪论

 随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。

此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性。

全球气候暖化危机和能源紧缺在进一步推动LED照明的普及,LED照明具有环保、光效高和寿命长的特点,但在完全取代具有墙上型调光器的白炽灯方面,LED照明还存在兼容性差的先天不足。

其主要原因在于:

  1)现有的调光器都是针对白炽灯设计的,而白炽灯呈现的是纯阻性;LED作为固态半导体照明器件,需要恒定的直流电流驱动,所以LED照明一般都需要驱动器从交流110V/220V转换到所需要的直流电流;

2)调光器种类繁多,而且工作原理各不相同,包括前切型、后切型和智能型等;

3)LED照明器的种类也很多。

这样一来,对于不同的LED照明匹配不同类型的调光器;LED的驱动器面临巨大挑战;照明属于消费电子产品,直接接触千家万户的消费者,不仅价格要适当,更重要的是要安全可靠;即便是任一元器件失效或调光器与LED不匹配,也不能造成漏电、过热、过流等任何安全故障。

第2章设计总体思路和原理框图

本设计是一种基于单片机AT89C51的LED彩灯设计制作,本设计中的LED彩灯是由主控制器、驱动电路和显示三部分组成。

其中主控制器采用单片机AT89C51芯片(即以AT89C51单片机作为主控核心)。

驱动模块是由1个NPN二极管和1个电阻构成的一个简单模块。

显示模块是由12个LED发光二极管构成,可根据主控制器的控制进行已设定的模式发光。

具体发光模式为:

首先东西南北四个方向的红灯亮,然后依次单独亮黄灯,绿灯。

其间间隔时间为1秒。

接着,南北方向等全亮,然后单独东西方向全亮。

其间时间间隔也为1秒。

最后东西南北方向的灯都亮,并保持时间3秒。

按照这种模式循环工作。

系统原理框图如下

 

洞洞板/万能板成品

图片左下角有地址-有录像

第3章

硬件电路设计

3.1主控制器模块

3.1.1AT89C51芯片的介绍

在整个系统中,微控制器是系统的控制中心,其工作效率的高低关系到系统效率的高低以及系统运行的稳定性。

而51系列单片机具有成本低,稳定性好,且运行速度基本能满足该系统的要求。

因此本系统采用AT89C51芯片作为主控制器芯片,其性能参数如下:

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

AT89C51芯片的芯片管脚图如图3-1-1所示

 

图3-1-1AT89C51芯片管脚图

下面对本设计所用到该芯片的管脚进行简单的说明:

ETAL1(19脚),ETAL2(18脚):

外部时钟信号的两个管脚,本设计采用的事内部时钟方式(如图2.2所示)。

RST/Vpd(9脚):

但作为RST使用时,为复位输入端。

在时钟电路工作以后,此管脚上出现两个机器周期的高电平将是单片机复位。

在RST与Vcc管脚之间接一个10~20uF的电容,RST与Vss管脚之间连接一个约8.2kΩ的电阻,就可以实现上电复位功能。

本设计就是用此方式来实现复位功能的(如图2.2所示)。

P1口(1~8脚):

具有内部上拉电阻的8位准双向I/O口。

在片内EPROM编程及校验时,它接收低8位地址。

P1口能去的4个LSTTL负载。

外部不扩展单片机时,则做双向I/O口用,P0口能以吸收电流的方式去的8个LSTTL负载。

3.1.2时钟与复位电路的设计

单片机工作的时间基准是由时钟电路提供的。

在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路,如图3-1-2a所示。

电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为(20-30)pF。

石英晶振选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值。

3-1-2a时钟电路图

单片机的RST管脚为主机提供一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

单片机的复位方式上有电自动复位和手工复位两种。

图3-1-2b所示是51系列单片机常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好地工作。

复位以后,单片机内各部件恢复到初始状态。

 

图3-1-2b复位电路

3.2LED灯驱动电路设计

发光二极管加一定的正向电压时,二极管发亮。

为了保护LED灯不被损坏,加一个三极管和一个电阻组成限流电路作为LED驱动电路。

图3-2驱动电路图

3.3显示电路设计

显示电路有12只发光二级管构成,按照设定的模式工作。

具体发光模式为:

首先东西南北四个方向的红灯亮,然后依次单独亮黄灯,绿灯。

其间间隔时间为1秒。

接着,南北方向等全亮,然后单独东西方向全亮。

其间时间间隔也为1秒。

最后东西南北方向的灯都亮,并保持时间3秒。

电路图如下图所示。

图3-3显示电路图

 

第4章软件设计

本设计采用汇编语言通过对单片机P0口的设置实现LED彩灯的工作,其程序如下。

ORG0000H;本指令从0000H开始存放

LOOP:

MOVP0,#01111011B;P0.7和P0.2为低电平控制红灯亮

CALLDL1S;延时1S

MOVP0,#10111101B;控制黄灯亮

CALLDL1S

MOVP0,#11011110B;控制绿灯亮

CALLDL1S

MOVP0,#00011111B;控制南北方向灯全亮

CALLDL1S

MOVP0,#11111000B;控制东西方向灯全亮

CALLDL1S

MOVP0,#00011000B;灯全亮

CALLDL3S

SJMPLOOP;跳转,循环继续运行

DL3S:

MOVR3,#3;3S延时子程序

DL1:

CALLDL1S

DJNZR3,DL1

RET

DL1S:

MOVR5,#4;1S延时子程序

DL3:

MOVR6,#251

DL4:

MOVR7,#248

DL5:

NOP

NOP

DJNZR7,DL5

DJNZR6,DL4

DJNZR5,DL3

RET

END

 

第5章电路总图设计

 

第6章参考文献

1、王迎旭编《单片机原理与应用》机械工业出版社

2、楼然苗编《51系列单片机设计实例》北京航空航天大学出版社.

3、黄勤编《计算机硬件技术基础实验教程》重庆大学出版社

4、刘乐善编《微型计算机接口技术及应用》华中科技大学出版社.

5、陈光东编《单片微型计算机原理及接口技术》华中科技大学出版社

 

第7章总结与体会

两周的课程设计很快就要过去了,我也顺利的完成了本次课程设计。

总的来说此次课程设计还比较简单,软件设计和硬件调试都很成功。

但从中我也遇到过小问题,让我对单片机控制实现功能有了更好的理解。

拿到任务书的时候,一开始我不知道应该做成怎样的彩灯,于是我现在网上收集资料,当我看到一篇关于交通灯的报告时我觉得很有意思。

经过仔细考虑之后我决定将交通灯的延时改一改,改成我想要的彩灯运作模式。

于是首先我要重新去理解延时程序的算法,然后将其改写。

在编程时让我学到了要有严谨,仔细的心思才能迅速成功的完成软件设计。

比如在编程时我将其中一个LOOP不小心写成了L00P在程序编译时老出现错误,一开始没有发现最后在同学的提醒下发现了。

这让我体会到编程要有严谨,仔细的心态。

总之,通过本次课程设计,让我对单片机和汇编语言有了更加深的理解和认识,对keil软件和Protues软件的操作更加熟练。

感谢设计中老师和同学的帮忙,让我顺利的完成了此次课程设计。

中文摘要

摘要:

在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

基于以上思路,本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能:

(1)密码通过键盘输入,若密码正确,则将锁打开。

(2)报警、锁定键盘功能。

密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。

电子密码锁的设计主要由三部分组成:

4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。

另外系统还有LED提示灯,报警蜂鸣器等。

密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:

(1)密码输入功能:

按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。

(2)密码清除功能:

当按下清除键时,清除前面输入的所有值,并清除所有显示。

(3)开锁功能:

当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。

主要的设计实施过程:

首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。

第二步,使用DXP2004设计硬件电路原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万能板焊接的方法)。

第三步,使用KeiluVision3软件编写单片机的C语言程序、仿真、软件调试。

第四部,使用PROTEUS软件进行模拟软、硬件调试。

最后,联合软、硬件调试电路板,完成本次毕业设计。

关键词:

4×4矩阵键盘;AT89C51;密码锁;密码二次确认

 

目录

中文摘要…………………………………………….…………………1

目录………………………………………………………..……………4

第1章概述………………………………………………………..1

第2章系统总体方案设计……………………………………………2

第3章硬件电路设计……………………………………………….5

3.1键盘电路设计…………………………………………………….5

3.2LED显示电路……………………………………………………….6

3.3开锁电路………………………………………………………….8

3.4报警电路…………………………………………………………..9

第四章软件设计……………………………………………………..11

4.1软件设计思路…………………………………………………….11

4.2各子程序设计…………………………………………………….11

第5章系统调试……………………………………………………..17

第6章心得体会………………………………………………………18

第7章参考文献……………………………………………………..19

附录……………………………………………………………….20

源程序清单…………………………………………………………….20

硬件原理图…………………………………………………………….27

第1章概述

随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

 

第2章系统总体方案设计

方案一:

采用数字电路控制。

其原理方框图如图1-1所示。

图2-1数字密码锁电路方案

采用数字密码锁电路的好处就是设计简单。

用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。

电路由两大部分组成:

密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:

键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。

方案二:

采用一种是用以AT89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理如图1-2所示。

89S51

单片机

矩阵

键盘

控制

输入错误锁定键盘

延时报警控制电路

AT24C02掉电存储

指示电路

串口显示电路

图2-2单片机控制方案

通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。

本方案采用一种是用以89S51为核心的单片机控制方案。

利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。

初步设计思路如下:

输入密码用矩形键盘,包括数字键和功能键。

LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。

用发光二极管代替开锁的电路,发光表示开锁。

输入密码错误次数超过3次,系统报警。

打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。

这样可预防停电后再来电时无密码可用。

按“C”键,清除显示器为“000000”。

欲重新设定密码,先输入密码在案“*”。

输入密码,再按“D”键。

若密码与设定密码相同,则开门。

否则显示器清为“000000”。

软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。

第3章硬件电路设计

3.1键盘电路设计

使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

其原理如图3.1

图3.1矩阵键盘

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图3.1所示的4×4键盘,说明线反转个工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

具体的功能设计如表3.1:

表3.1按键功能

按键

键名

功能说明

1-9键

数字键

输入密码

*键

重设密码键

设定新密码

D键

确定键

比较密码

#键

清除键

使显示器清零

3.2LED显示电路

本系统设计的显示电路是为了给使用者以提示而设置的。

本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.2所示。

用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。

通过软件实现数字和位控制。

图3.2LED显示电路

用74LS247可以控制输出什么字型。

74LS247的逻辑功能表如表3.2:

表3.274LS247的逻辑功能表

用74LS138控制位循环显示,其逻辑功能表如表3.3:

表3.374LS138逻辑功能表

C

B

A

Y1

Y2

Y0

Y3

Y4

Y5

Y6

Y7

0

0

0

0

1

1

1

1

1

1

0

0

1

1

0

1

1

1

1

1

1

0

1

0

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

0

1

1

1

1

0

1

1

1

1

0

1

1

1

1

1

1

0

1

1

1

1

0

1

1

1

1

1

1

0

1

1

1

1

1

1

1

1

1

1

1

0

3.3开锁电路

在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

电路图如3.3所示。

当P2.0口输出低电平时,二极管发光,表示开锁。

图3.3开锁电路

3.4报警电路

图3.4报警电路

报警模块由蜂鸣器和单片机组成。

选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。

蜂鸣器电路如图3.4所示。

当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。

第四章软件设计

4.1软件设计思路

电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误3次时,系统报警。

密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

4.2各子程序设计

1键盘扫描子程序

键盘扫描流程图如图4.2.1

图4.2.1键盘扫描流程图

键盘扫描子程序如下:

L2:

MOVR3,#0F7H

MOVR1,#00H

L3:

MOVA,R3

MOVP1,A

MOVA,P1

MOVR4,A

SETBC

MOVR5,#04H

L4:

RLCA

JNCKEYIN

INCR1

DJNZR5,L4

CALLDISP

MOVA,R3

SETBC

RRCA

MOVR3,A

JCL3

JMPL2

2LED显示子程序

LED显示流程图如图4.2.2

图4.2.2LED显示流程图

LED显示子程序如下:

DISP:

MOVR0,#45H

DISP1:

MOVA,@R0

ADDA,#50H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#40H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#30H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#20H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#10H

MOVP0,A

CALLDELAY

DECR0

MOVA,@R0

ADDA,#00H

MOVP0,A

CALLDELAY

RET

3密码比较和报警程序

密码比较和报警流程图如4.2.3

图4.2.3密码比较和报警流程

密码比较和报警程序:

COMP:

MOVR1,#45H

MOVR0,#35H

MOVR2,#06H

C1:

MOVA,@R1

XRLA,@R0

JNZC3

DECR1

DECR0

DJNZR2,C1

CLRP2.0

MOVR2,#200

C2:

MOVR6,#248

DJNZR6,$

DJNZR2,C2

C3:

INCR5

MOVA,R5

MOVR5,A

CJNER5,#03H,C4

CLRP2.1

MOVR5,#00H

C4:

JMPSTART

第5章系统调试

本次调试采用Protues软件仿真。

首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。

依次按下1,2,3,4,5,6后,LED显示如图5.1

图5.1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1