单片机定时闹钟学位论文.docx

上传人:b****1 文档编号:600461 上传时间:2022-10-11 格式:DOCX 页数:22 大小:91.96KB
下载 相关 举报
单片机定时闹钟学位论文.docx_第1页
第1页 / 共22页
单片机定时闹钟学位论文.docx_第2页
第2页 / 共22页
单片机定时闹钟学位论文.docx_第3页
第3页 / 共22页
单片机定时闹钟学位论文.docx_第4页
第4页 / 共22页
单片机定时闹钟学位论文.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机定时闹钟学位论文.docx

《单片机定时闹钟学位论文.docx》由会员分享,可在线阅读,更多相关《单片机定时闹钟学位论文.docx(22页珍藏版)》请在冰豆网上搜索。

单片机定时闹钟学位论文.docx

单片机定时闹钟学位论文

提供全套毕业论文,各专业都有

 

电气工程及其自控化专业

单片机原理及其应用课程设计报告

 

姓名:

学号:

专业班级:

题目:

定时闹钟

 

电气与电子工程学院

二〇一四年XX月XX日

目录

 

一、设计目的…………………………1

二、设计任务和要求…………………………1

三、设计原理分析…………………………2

四、硬件资源及其分配…………………………2

五、硬件图…………………………6

六、程序框图…………………………7

七、程序…………………………9

八、调试运行…………………………19

九、仿真截图…………………………20

十、设计心得体会…………………………21

一、设计本定时闹钟的目的

以单片机为核心的数字时钟是很有社会意义和社会价值的。

钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能。

二、设计任务和基本要求:

1、任务:

使用89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可以使用。

2、设计要求:

(1)显示程序格式为“时时:

分分”

(2)由LED闪动来做秒计数表示

(3)一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开关

(4)程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:

00”,

3、按下操作键K1-k4动作如下:

(1)K1—设置现在的时间。

(2)K2—显示闹钟设置的时间。

(3)K3—设置闹铃的时间。

(4)K4—闹铃ON/OFF的状态设置,设置ON时连续三次发出“哗”的一声,off置为哗的一声。

4、设置当前时间或闹铃时间如下:

(1)K1—时的调整。

(2)K2—分的调整。

(3)K3—设置完成。

(4)K4---闹铃时间到时,发出一阵声响,按下本键可以停止声响。

 

三、设计原理分析

1、数字钟介绍

时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。

而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

而LCD电子定时闹钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期为24小时,另外应有校时功能和一些显示日期、闹钟等附加功能。

一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”,“星期”计数器、校时电路、报时电路和振荡器组成。

目前电子钟广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手。

2、总体方案设计

本LCD定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他外围硬件电路,用汇编语言设计的程序来实现的。

根据C51单片机的外围接口特点扩展相应的硬件电路,然后根据单片机的指令设计出数字钟相应的软件,再利用软件执行一定的程序来实现数字钟的功能。

由于采用集成芯片性的单片机来制作电子钟,这样设计制作简单而且功能多、精确度高,也可方便扩充其他功能,实现也十分简单。

本设计是利用AT89C51单片机为主控芯片,由LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟

四、硬件资源及其分配

1、主控芯片AT89C51的设计

在本LCD电子闹钟设计中就是采用利用我们熟悉的AT89C51单片机为主控芯片。

AT89C51单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。

其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为4KB,片内数据存储器为128个字节。

89C51单片机有4个8位的并行I/O口:

P0口,P1口,P2口和P3口。

各个接口均由接口锁存器,输出驱动器,和输入缓冲器组成。

P1口是唯一的单功能口,仅能用作通用的数据输入/输出口。

P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口线,P3.1口是串行输出口线。

在需要外部程序存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。

P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号.

2、时钟电路部分设计

AT89C51系列的单片机的时钟方式分为内部方式和外部方式。

内部方式就是在单片机的XTAL1和XTAL2的两引脚外接晶振,就够成了自激振荡器在单片机内部产生时钟脉冲信号。

外部时钟方式是把外部已经有的时钟信号引入到单片机内部。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的

含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。

本LCD电子闹钟设计是采用内部时钟方式,用一个12MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图见图。

之所以采用高性能的振荡电路,因为:

(1)单片机电子钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。

所以,外接晶振频率精确度直接影响电子钟计时的准确性。

(2)单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。

大家都知道从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。

 

3、LCD显示电路部分

为了获得更好的效果本设计并没有采用常见的LED,而是采用了型号为1602的LCD。

LCD有LED数码显示更好的更的直观效果,也更加经久耐用。

液晶显示模块体积小功耗低、显示内容丰富,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件之一了。

本LCD是2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RS,R/W,EN三个控制端口(共14线),工作电压为5V。

没背光,和常用的1602B功能和引脚一样(除了调背光的二个线脚).该模块也可只用D4-D7作为四位数据分两次传送。

这样的话可以节省MCU的I/O口资源。

引脚说明

VDD:

电源正极,4.5-5.5V,通常使用5V电压;

VL:

LCD对比度调节端,电压调节范围为0-5V。

接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度或者直接串接一个电阻到地;

RS:

MCU写入数据或者指令选择端。

MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;

R/W:

读写控制端。

R/W为高电平时,读取数据;R/W为低电平时,写入数据;

E:

LCD模块使能信号控制端。

写数据时,需要下降沿触发模块。

D0-D7:

8位数据总线,三态双向。

如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。

本充电器就是采用4位数据传送方式;

BLA:

LED背光正极。

需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;

BLK:

LED背光地端。

LCD显示屏引脚说明

编号

符号

引脚说明

编号

符号

引脚说明

1

VCC

电源地

9

D2

双向数据口

2

VDD

电源正极

10

D3

双向数据口

3

VL

对比度调节

11

D4

双向数据口

4

RS

数据/命令选择

12

D5

双向数据口

5

R/W

读/写选择

13

D6

双向数据口

6

E

模块使能端

14

D7

双向数据口

7

D0

双向数据口

15

BLK

背光源地

8

D1

双向数据口

16

BLA

背光源正极

五、硬件图

六、程序框图

1、本LCD电子闹钟的的主程序流程图如图所示:

程序设计思想如图

2、显示程序

显示程序包括时钟显示和定时显示程序。

具体程序见附录。

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表6.1是TC1602EL液晶模块的内部显示地址。

 

内部显示地址

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

0F

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

七、程序

1、程序初始化

在系统开始上电时,需要.首先初始化液晶:

voidTimeInit()

{

write_com(0x01);//初始化1602液晶

write_com(0x80);//设置现实初始坐标

for(num=0;num<9;num++)//显示年月日

{

write_date(table[num]);

delay(5);

}

write_com(0x80+0x40+6);//写出时间显示部分的两个冒号

write_date(':

');

delay(5);

write_com(0x80+0x40+9);

write_date(':

');

delay(5);

write_sfm(4,shi);//分别送去液晶显示

write_com(0x80+0x40+4);

write_sfm(7,fen);

write_com(0x80+0x40+7);

write_sfm(10,miao);

write_com(0x80+0x40+10)

2、主程序:

#include

#include"24C08.h"

#defineuintunsignedint

#defineucharunsignedchar

ucharcodetable[]="NOWTIME:

";

ucharcodetable1[]="SETNOWTIME:

";

ucharcodetable2[]="SETALARMTIME:

";

ucharcodealarm[]="ALARMTIME:

";

ucharcodealarmoff[]="ALARMTIME:

OFF";

ucharcodealarmon[]="ALARMTIME:

ON";

sbitlcden=P3^2;

sbitlcdrs=P3^0;

sbitlcdrw=P3^1;

sbitK1=P1^0;

sbitK2=P1^1;

sbitK3=P1^2;

sbitK4=P1^3;

sbitbeep=P2^1;

ucharflag,num,count,k1num,k2num,k3num,k4num;

charmiao,shi,fen,ashi,

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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