电子时钟设计实验报告.docx

上传人:b****1 文档编号:481472 上传时间:2022-10-10 格式:DOCX 页数:21 大小:160.74KB
下载 相关 举报
电子时钟设计实验报告.docx_第1页
第1页 / 共21页
电子时钟设计实验报告.docx_第2页
第2页 / 共21页
电子时钟设计实验报告.docx_第3页
第3页 / 共21页
电子时钟设计实验报告.docx_第4页
第4页 / 共21页
电子时钟设计实验报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

电子时钟设计实验报告.docx

《电子时钟设计实验报告.docx》由会员分享,可在线阅读,更多相关《电子时钟设计实验报告.docx(21页珍藏版)》请在冰豆网上搜索。

电子时钟设计实验报告.docx

电子时钟设计实验报告

单片机电子时钟设计报告

一、设计任务

本次课程设计的电子时钟电路,是基于单片机STC89C52、时钟芯片和液晶显示,运用C语言编程实现。

电子时钟可以显示日期的年、月、日和时间的时、分、秒,具有复位功能。

二、系统硬件设备及芯片简介

数字电子钟系统设计已经成熟,但是目前系统设计时基本都是采用LED作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。

字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。

本系统设计采用字符型液品显示模块LCD1602作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。

1LCD1602简介

字符型液晶显示模块LCD1602已经是单片机应用设计中最常用的信息显示器件。

LCD1602可以显示两行,每行16个字符,采用+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。

2LCD1602功能介绍

2.1引脚功能

LCD1602采用标准14脚(无背光)或16脚(带背光)接

口,各引脚功能见表1。

表1引脚功能

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

DataI/O

2

VDD

电源正极

10

D3

DataI/O

3

VL

液晶显示偏压信号

11

D4

DataI/O

4

RS

数据/命令选择端

12

D5

DataI/O

5

R/W

读/写选择端

13

D6

DataI/O

6

E

使能信号

14

D7

DataI/O

7

D0

DataI/O

15

BLA

背光源正极

8

D1

DataI/O

16

BLK

背光源负极

 

2.2LCD1602读写指令

LCD1602读写指令较多且较复杂,具体使用可以查相关资料,下面仅列出最常用的的一些命令:

①写指令38H:

显示模式设置;②写指令08H:

显示关闭;③写指令01H:

显示清屏;④写指令06H:

显示光标移动设置;⑤写指令0CH:

显示开及光标设置。

2.3LCD1602读写操作时序

LCD1602读写操作时序总体上来说是比较简单的,掌握其有两种方法:

一种是只看时序图,另外一种方法是直接记忆和总结读写时电平高低和变化。

很显然第二种更简单和直接,下面就列出典型读写的时序要求,以方便编写程序。

(1)读状态:

输入:

RS=L,RW=H,E=H。

输出:

D0-D7=状态字。

(2)写指令:

输入:

RS=L,RW=L,D0-D7=指令码,E=上升沿。

输出:

无。

(3)读数据:

输入:

RS=H,RW=H,E=H。

输出:

D0-D7=数据。

(4)写数据:

输入:

RS=H,RW=L,D0-D7=数据,E=上升沿。

输出:

无。

2.4LCD1602显示方法

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

显示字符时,要先输入显示字符地址,即告诉模块在哪里显示字符。

因为写入显示地址时要求最高位D7恒定为高电平,所以实际写入的数据应该是要显示地址值加上80H,即将最高位D7置为1。

在使用此显示模块时一般要对其进行初始化,设置所需要的显示参数。

液晶模块在显示字符时光标是自动右移的,无需人工干预。

每次输入指令前,都要判断液晶模块是否处于忙状态。

3数字电子钟硬件电路设计

硬件电路系统设计主要由单片机最小系统、输入电路、输出电路等组成。

单片机最小系统同所有单片机系统,在此不作讨论。

输入电路主要时间调节电路,为简化系统我们使两个外部中断来调节“时”和“分”数值,即将INT0、INT1分别接两个按钮。

LCD显示器和单片机接口电路可以采用总线方式或者是模拟口线方式,本设计采用第二种方式,即以单片机I/O模拟控制信号。

具体电路见图1,P0口作为数据,并接上拉电阻提升电压,P2.0接LCD的RS端、P2.1接LCD的R/W端、P2.2接LCD的E端,“分”调节按钮接INT0,“时”调节按钮接INT1,图1省略了电源和单片机最小系统电路。

 

图1数字电子钟硬件电路

三、设计电路图及程序

1.电路图如下

原理图如下:

2.程序

共有四段程序,用Keil仿真是程序列表如图

Regx52.h程序为:

 

#ifndef__AT89X52_H__

#define__AT89X52_H__

 

sfrP0=0x80;

sfrSP=0x81;

sfrDPL=0x82;

sfrDPH=0x83;

sfrPCON=0x87;

sfrTCON=0x88;

sfrTMOD=0x89;

sfrTL0=0x8A;

sfrTL1=0x8B;

sfrTH0=0x8C;

sfrTH1=0x8D;

sfrP1=0x90;

sfrSCON=0x98;

sfrSBUF=0x99;

sfrP2=0xA0;

sfrIE=0xA8;

sfrP3=0xB0;

sfrIP=0xB8;

sfrT2CON=0xC8;

sfrT2MOD=0xC9;

sfrRCAP2L=0xCA;

sfrRCAP2H=0xCB;

sfrTL2=0xCC;

sfrTH2=0xCD;

sfrPSW=0xD0;

sfrACC=0xE0;

sfrB=0xF0;

/*------------------------------------------------

P0BitRegisters

------------------------------------------------*/

sbitP0_0=0x80;

sbitP0_1=0x81;

sbitP0_2=0x82;

sbitP0_3=0x83;

sbitP0_4=0x84;

sbitP0_5=0x85;

sbitP0_6=0x86;

sbitP0_7=0x87;

/*------------------------------------------------

PCONBitValues

------------------------------------------------*/

#defineIDL_0x01

#defineSTOP_0x02

#definePD_0x02/*Alternatedefinition*/

#defineGF0_0x04

#defineGF1_0x08

#defineSMOD_0x80

/*------------------------------------------------

TCONBitRegisters

------------------------------------------------*/

sbitIT0=0x88;

sbitIE0=0x89;

sbitIT1=0x8A;

sbitIE1=0x8B;

sbitTR0=0x8C;

sbitTF0=0x8D;

sbitTR1=0x8E;

sbitTF1=0x8F;

/*------------------------------------------------

TMODBitValues

------------------------------------------------*/

#defineT0_M0_0x01

#defineT0_M1_0x02

#defineT0_CT_0x04

#defineT0_GATE_0x08

#defineT1_M0_0x10

#defineT1_M1_0x20

#defineT1_CT_0x40

#defineT1_GATE_0x80

#defineT1_MASK_0xF0

#defineT0_MASK_0x0F

/*------------------------------------------------

P1BitRegisters

------------------------------------------------*/

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

sbitP1_3=0x93;

sbitP1_4=0x94;

sbitP1_5=0x95;

sbitP1_6=0x96;

sbitP1_7=0x97;

sbitT2=0x90;/*ExternalinputtoTimer/Counter2,clockout*/

sbitT2EX=0x91;/*Timer/Counter2capture/reloadtrigger&dirctl*/

/*------------------------------------------------

SCONBitRegisters

------------------------------------------------*/

sbitRI=0x98;

sbitTI=0x99;

sbitRB8=0x9A;

sbitTB8=0x9B;

sbitREN=0x9C;

sbitSM2=0x9D;

sbitSM1=0x9E;

sbitSM0=0x9F;

/*------------------------------------------------

P2BitRegisters

------------------------------------------------*/

sbitP2_0=0xA0;

sbitP2_1=0xA1;

sbitP2_2=0xA2;

sbitP2_3=0xA3;

sbitP2_4=0xA4;

sbitP2_5=0xA5;

sbitP2_6=0xA6;

sbitP2_7=0xA7;

/*------------------------------------------------

IEBitRegisters

------------------------------------------------*/

sbitEX0=0xA8;/*1=EnableExternalinterrupt0*/

sbitET0=0xA9;/*1=EnableTimer0interrupt*/

sbitEX1=0xAA;/*1=EnableExternalinterrupt1*/

sbitET1=0xAB;/*1=EnableTimer1interrupt*/

sbitES=0xAC;/*1=EnableSerialportinterrupt*/

sbitET2=0xAD;/*1=EnableTimer

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

当前位置:首页 > 解决方案 > 学习计划

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

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