电子时钟LCD显示

  • 格式:docx
  • 大小:197.50 KB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子时钟(LCD显示)

作者:日期:

电气工程及自动化专业

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

姓名:XXXXXX

学号:XXXXXXX

专业班级:XXXXXX

题目:电子时钟(LCD显示)

电气与电子工程学院

二◦一四年十二月三十日

目录

一、设计目的 (2)

二、设计任务和要求 (2)

三、设计原理分析 (2)

四、硬件资源及其分配 (3)

五、硬件图 (4)

六、程序框图 (5)

七、程序 (7)

八、调试运行13

九、仿真截图13

十、设计心得体会14

一、 设计目的

1、设计要求以AT89C51单片机为核心的时钟,在 LCD 显示器上显 示当

前的时间。

2、 使用字符型LCD 显示器显示当前时间。显示格式为“时时:分 分:

秒秒”。

3、 用4个功能键操作来设置当前时间。

4、 熟悉掌握proteus 编成软件以及keil 软件的使用

二、 设计任务与要求

本设计以AT89C51单片机为核心,通过时钟程序的编写,并在LCD 显示器上显示出来。该编程的核心在于定时器中断及循环往复判断是 否有按键操作,并对每个按键的操作在

LCD 显示器上作出相应的反

应。由于LCD 显示器每八位对应一个字符,故把秒、分、时的个位和 十位分开表示。

该课题中有四个控制开关 KM1 KM2 KM3 KM4分别控制时、分、 秒、确定的调整,时间按递增的方式调整,每点一次按钮则相应的时 间个位加以,且时间调整不干扰其他为调整时间的显示。 三、 设计原理分析

1、按照系统的设计功能要求,本时钟系统的设计必须采用单片 机软件

系统实现,用单片机的自动控制能力配合按键控制, 来控制时

钟的调整及显示。

图一系统总原理图

型控制器

时钟电路

按键调时

2、软件主要完成功能

(1)显示时间程序

用软件调节时间,通过程序的调节,最后用LED现实时钟

(2)调节时间程序

按键调节时间,能实现时、分的调节

3、软件设计主要流程

时间控制程序

时间控制程序,用中断准确的控制时间,采用60进制,60秒为一分钟,60分钟为一个小时,全天设置为24小时。

四、硬件资源及原理图

AT89C51 芯片

AT89C51是美国ATMEL公司生产的8位Flash ROM单片机。其最突出的优点是片内ROM为Flash ROM可擦写1000次以上,应用并不复杂的通用ROM写入器就能方便的擦写,读取也很方便,价格低廉,具有片程序ROM二级保密系统。因此可灵活应用于各种控制领域。

AT89C51包含以下一些功能部件:

1. 一个8 位CPU;

2. 一个片内振荡器和时钟电路;

3. 4KB Flash ROM ;

4. 128B 内RAM

5. 可寻址64KB的外ROM和外RAM控制电路;

6. 两个16位定时/计数器;

7. 21个特殊功能寄存器;

8. 4个8位并行I/O 口;

9. 一个可编程全双工串行口;

10. 5个中断源,可设置成2个优先级。

AT89C51单片机一般采用双列直插DIP封装,共40个引脚,图2-1为其引脚排列图。40个引脚大致可分为4类:电源、时钟、控制各I/O引脚

五、硬件图

题目2时钟电路(LCD 显

示)

— 11 -------- 1

o

F

KEY

vcc

7

P.S1 C

7

F

r 7

口]

HAL

PIY

Pl.l K.0 P]2

6

K.1 J]J

PU M.3 P]J PU ?]J 6 K.= Pl' Kd m K PjjOW EA

Pj.lT^_ AI£PF J Q& P 口 20 P£E1;

P J 3>11

F *.7

PL47ft

P :.

K.i

P JJ S^ P2.4

MF K.l

:江心 HZ

XTAL1 抵L 辄

K.P

兰 S4

VC C VO RS

M2 二 BB : K

DBS

DB5

2? _

六、程序框图

时钟主程序流程

+

1

N N

___ 保 呆护

置^

(4叩)+1 (46H )

Io

(40H )

(4JH ) 0 (43^) +1 (43H )

o :

(44H )+1

(4^H )

中断服务

(46

盯 +1

----- ►

(46H)

o ;

(47) +1

七、程序

#in elude

#i nclude vintrin s.h>

#defi ne uchar un sig ned char

#defi ne uint un sig ned int

#define DelayNOP()匕nop_();_nop_();_nop_();_nop_();}

sbit K1 二POP;

sbit K2 二POX;

sbit K3 =P0A2;

sbit K4 =P0A3;

sbit SPK=P3A0;

sbit RS =P2A0;

sbit RW =P2A1;

sbit E =P2A2;

uchar code Str1[] = " Curre nt Time "; // 一下两个字符串的串长均为16

uchar code Str2[] = "Set New Time...";

uchar HMS_Stri ng[]=" 00:00:00 ";// 带显示的时间串

bit Settime=0; // 是否修改时间

bit Change_H_or_M =1;//1 表示修改时.0表示修改分

uchar MilliSec on d,Hour =0,Mi nute=0, Seco nd =0;

//延时函数

void DelayMS(ui nt x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//LCD忙状态检测

bit LCD_Busy_Check()

相关主题