LCD显示电子时钟设计

  • 格式:doc
  • 大小:57.39 KB
  • 文档页数:24

下载文档原格式

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

简单控制系统设计与实现学年设计任务书

简单控制系统设计与实现学年设计说明书

学院名称计算机与信息工程学班级名称

学生姓名

题目:显示的电子时钟设计LCD指导教师姓名:

起止日期:2015.6.25~2015.7.10

第一部分:正文部分

一、选题背景

当今时代是一个知识爆炸的时代,新科技、新技术、新产品层出不穷,电子技术的发展尤为迅速,它充斥在我们的日常生活中。随着科学技术的发展和社会的进步,单片机已成为当今计算机应用中空前活跃的领域,人们对数字钟的要求也越来越高,传统的时钟已经不能满足人们的需求。数字电子时钟是采用数字电路实

时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节加1;若分值达到60,则将其清零,并将相应的时字节加1;若时值达到24,则将其清零。该方案的特点是硬件电路简单,缺点是在每次执行程序时,都要对定时器重新赋值,因此该时钟精度不高。并且程序的执行与时钟的显示是同步进行的,当程序不执行时,时钟也会停止工作。

三、电路硬件设计部分.

3.1基于单片机的电子时钟基本框图

基于单片机电子时钟总体框图,如下图3-1所示,总体结构包括单片机主控电路,

AT89C51部分引脚功能:

(1)P0口(P0.0 - P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

(2)P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向I/O 负载。LSTTL四个)吸收或输出电流(口。能驱动.

(3)P2口(P2.0 - P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。

(4)P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载。

3.3 LCD1602

图3-3按键电路

按键电路跟显示电路一样,采用扫描方式,并巧妙利用显示时的数码管驱动的位置信号,也就是在显示的同时,判断相应按键的状态。判断的方法是在显示某一数码管时,判断U1的P3.7的状态,如果P3.7为高电平,说明没有按键按口P3的U1为低电平,则说明相应的按键按下,这时,通过读回P3.7下,如果

的值,就可判断是那个按键按下,然后调用相应的处理程序进行—P3.5中P3.3 处理。——进入设置现在的时间。K2按键需要四个,它们分别实现的功能是K1——LED 程序执行后工作指示灯K4设置小时。K3——设置分钟。——确认完成设置。,然后开始计时,时间的调00”LCD显示“00:00:闪动,表示程序开始执行,4整按递增的方式增加,且调整时不对其他时间的显示产生干扰,用单

3.5蜂鸣器电路

其硬件原理图如下图3-5所示。此电路用于整时提示。SPEAKER与P1.2口相连,

当SPEAKER输出高电平时蜂鸣器不响,而SPEAKER输出低电平时蜂鸣器发出响声。只需控制SPEAKER输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声音。.

按键程序4.5.

定义四个按键,它们分别实现的功能是K1——进入设置现在的时间。K2——设置小时。K3——设置分钟。K4——确认完成设置。

uchar read_key(void)

{

uchar x1, x2; //定义两个uchar类型的变量x1,x2

KEY_IO = 255; //初始化KEY_IOx1 = KEY_IO;/KEY_I赋值x1

if (x1 != 255) {

delay(100);/延

x2 = KEY_IO;

if (x1 != x2)return 255;/判

while(x2 != 255) x2 = KEY_IO;

if (x1 == 0x7f)return 0;/读取地址返回数

else if (x1 == 0xbf)return 1;

else if (x1 == 0xdf)return 2;

else if (x1 == 0xef)return 3;

else if (x1 == 0xf7)return 4;

}

return 255;

}

主程序中调用按键程序显示子程序

Key = read_key();/读出按

switch(Key) {/分别处理四个按

开始设/0: modify = 1; break;case

1: if(modify) {hour++; hour %= 24; W_BUFF(); break;} case

W_BUFF(); break;}

min %= 60; case 2: if(modify) {min++;

//设置结束case 3: modify = 0; break;

}

五、结果分析[4]文件导入到单片机软件画出电路图,将程序生成的“.hex”用

位数加到6时,十位数清零;按下K4时,工作指示灯LED 闪动,说明设置结束,返回到正常显示的状态。

2所示。5-仿真结果如下图

第二部分:参考文献

[1]刘同法,陈忠平. 单片机基础与最小系统[M]. 北京航空航天大学出版社,2007.

2009.

高等教育出版社,[M]. 单片机原理与应用. 张毅刚[2]

[3]马忠梅等. 单片机的C语言应用程序设计[M]. 北京航空航天大学出版社,2003.

[4]李全利,迟荣强. 单片机原理及接口技术[M]. 高等教育出版社,2004.