用1602液晶显示万年历用汇编程序

用1602液晶显示万年历用汇编程序
用1602液晶显示万年历用汇编程序

微机原理与接口技术专用周设计报

设计科目:1602万年历设计

所修课程:单片机课程

设计人: 张毅(201212020250)

杨梦柳(201212020309)系部:电气系

班级:通信一班

指导老师:王老师、施老师、杨老师时期:2013-12-9至201312-12-19

目录

第一章、设计内容及要求 (1)

1、1设计内容 (1)

1.2 各部分的功能 (1)

1.3设计要求 (2)

第二章、设计方案 (2)

2.1实时时间计算模块方案 (2)

2.2 液晶显示模块 (2)

第三章、功能模块介绍 (3)

3.1液晶模块 (3)

3.1.1 功能特性介绍 (3)

3.1.2 接口信号说明 (3)

3.1.3 基本操作时序 (4)

3.1.4 显示说明 (4)

3.1.5 接口电路 (5)

3.2按键控制模块 (5)

3.3稳压电路模块 (6)

3.4晶振模块 (6)

3.5复位电路 (7)

第四章、系统软件设计 (8)

4.1程序路程图 (8)

4.1.1主程序流程图 (8)

4.1.2定时器流程图 (8)

4.1.3 时间调整程序流程图 (9)

第五章、测试方案和结果分析 (10)

5.1 测试仪器 (10)

5.2显示模块的调试 (10)

5.3测试结果分析 (10)

*附录

一、程序清单 (11)

二、电路总图 (28)

三、参考文献 (28)

四、专用周总结 (29)

摘要:本文主要介绍了LCD1602的各个引脚的功能及其作用,也介绍了单片机的一些比较基础的,比较常用的一些资源的应用,同时也对PROTEUS硬件仿真电路有一定的认识。对于单片机的原理设计电路,在了解硬件的基础上完成程序设计,是自己掌握对一个系统的初步规划和设计,同时也提高了自己分析问题的能力和资料整理的能力。

关键字:LCD1602,程序设计,硬件电路。

Abstract:

T his paper mainly introduces the function and the function of each pin of LCD1602, also introduces micro controller some basis of comparison, some commonly used application resources, but also have a certain understanding to the PROTEUS hardware simulation circuit. The design principle of single chip circuit, completed the program design is based on the understanding of hardware, is in their own hands the preliminary planning and design of a system, but also improve the ability of their own ability to analyze the problem and the collation of data.

Keyword:

LCD1602, program design, hardware circuit.

第一章、设计内容及要求 1、1设计内容

利用P89V51RD2单片机芯片和LCD1602液晶显示屏做个万年历,在显示屏上显示年、月、日、时、分、秒、星期。同时设置四个按键,其要求是一个按键进入调试,两个按键分别为向上键和向下键,还有一个键为设定退出键。

硬件原理框图

日期时钟由硬件软件结合长生;按键之间相互配合完成当前日期的调整功能。过程与结果由控制芯片输到显示器上显示出来。 1.2 各部分的功能

晶振电路:为系统提供基本的时钟信号。

复位电路:每次都可以通过复位键直接复位,不用关闭电源。 按键控制:通过按键对年、月、日、时、分、秒、星期 LCD1602:年、月、日的结果的显示。

P89V51RD2

LCD1602显示屏

按键控制

晶振、复位电路

1.3设计要求

(1)掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。

(2)以单片机P89C51RD2为核心元件,通过定时器能够自动的实现时间的累加。

(3)通过四个按键实现时间等得加减。

(4)时间的调试能在LCD1602液晶显示上显示及校准。

第二章、设计方案

本系统是以P89C51RD2单片机为控制核心,通过其定时器实现时间的累加,并将得到的数据通过1602液晶显示出来,同时通过按键调整相应的值。因此设计可分为:显示模块、实时时间计算模块、设置模块三大设计模块。

2.1实时时间计算模块方案

P89C51RD2单片机内部带有定时/计数功能,此定时器功能是通过对外部晶振的脉冲进行计数,从而达到计时功能。

2.2 液晶显示模块

方案我们选取1602液晶显示,1602液晶也叫字符型液晶,它是一种专门用来显示字母、数字、符号等点阵型模块,它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602的驱动电路带有11条指令,可以很方便的控制液

晶的显示效果如:清屏、左移右移、光标显示,而且1602显示的字符在下一条指令到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。综合比较应该采用这种方案。

第三章、功能模块介绍

3.1液晶模块

1602液晶功耗较小可直接与单片机接口相接,电源直接与电源电路相接,使用单片机的P1口与1602进行通信。

1602LCD特征及应用 :微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中.

3.1.1 功能特性介绍

(1)+5V电压,对比度可调 (2)内含复位电路

(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 (4)有80字节显示数据存储器DDRAM

(5)内建有160个5X7点阵的字型的字符发生器CGROM (6)8个可由用户自定义的5X7的字符发生器CGRAM

3.1.2 接口信号说明

编号符号引脚说明编

符号引脚说明

1 VSS 电源地9 D

2 Data I/O

2 VDD 电源正极10 D

3 Data I/O

3 VL 液晶显示偏压信号11 D

4 Data I/O

4 RS 数据/命令选择端(H/L) 12 D

5 Data I/O

5 R/W 读/写选择端(H/L)13 D

6 Data I/O

6 E 使能信号14 D

7 Data I/O

7 D0 Data I/O 15 BLA 背光源正极

8 D1 Data I/O 16 BLK 背光源负极

图/1602引脚说明

3.1.3 基本操作时序

(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=高脉冲输出:无

3.1.4 显示说明

显示模式设置

指令码功能

0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据接口

显示开/关及光标设置

指令码功能

0 0 0 0 1 D C B D=1开显示;D=0关显示

C=1显示光标;C=0不显示光标

B=1闪烁光标;B=0光标不显示

C 0 0 0 0 1 N S N=1当读或写一个字符后地址指针加一,

且光标加一。

N=0当读或写一个字符后地址指针减一,

且光标减一

S=1当写一个字符,整屏显示左移(N=1)

图、1602显示设置

3.1.5 接口电路

LCD1602显示接口电路

3.2按键控制模块

设置模块采用四个按键与P2.4、P2.5、P2.6、P2.7相接组成独立按键,按键电路由四个轻触开关组成,按键用来调整时间,其一端直接接到单片机的端口,另一端接地,当按下按键时,相应的端口变为低电平,通过一个与门只要这四个按键有一个按下就会在P3.2检测到一低电平就触发外部中断0进入按键调节程序中,通过与个各键相连的端口可以判断是哪个键按下。

按键电路图

3.3稳压电路模块

为了解决电压不稳定的问题,故采用7805进行稳压,接口电路如下

电源电路

3.4晶振模块

时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。

此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容C1、C2的作用使电路快速起振,提高电路的运行速度。

晶振电路图

3.5复位电路

复位电路由电阻和极性电容组成,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。此复位电路为上电复位,较为简单。若改进可以添加手动复位的功能,上电复位发生在开机加电时,由系统自动完成,手动复位通过一个按键来实现,在程序运行时若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮和一个电阻。

复位电路

第四章、系统软件设计

4.1程序路程图

4.1.1主程序流程图 4.1.2定时器流程图

开始

初始化

读、写日期和时间 开始

赋初值定时器

记满一

日期时间更新

结束

4.1.3 时间调整程序流程图

开始

控制键有效,进入年调整程序

等待按键程序

加键有效

减键有效

年加一

年减一

控制键有效,进入日调整程序

等待按键程序

日减一

日加一 减键有效

加键有效

控制键有效,进入小时调整程序

等待按键程序

减键有效

加键有效

小时减一

小时加一

控制键有效,进入月调整程序

等待按键程序

月减一 月加一

减键有效

加键有效

星期减一 星期加一

减键有效 加键有效

控制键有效,进入分钟调整程序

等待按键程序

分钟减一 分钟加一

减键有效

加键有效

按键有效,跳出时间调整程序,进入主循环程序

控制键有效,进入星期调整程序

等待按键程序

第五章、测试方案和结果分析

5.1 测试仪器

仿真软件PROTEUS: 对电路进行焊接前的仿真和测试

KEIL51软件:编写调试程序并生成可烧录HEX文件

插上1602液晶显示屏的小车:检查程序是否可在液晶屏上显示

5.2显示模块的调试

出现的问题:LCD1602液晶显示屏幕上不显示内容

解决办法:使小车LCD1602的端口和程序里的端口相对应。

出现的问题:在测试中遇到LCD显示不出来

解决方法:首先检查LCD液晶屏是不是好的,若是好的就检查程序中的端口是否和LCD的端口相对应。

出现问题:LCD液晶屏显示闪动,亮度不均。

解决方法是:首先对调用的延时程序进行逐渐修改和改变电路图中芯片的频率可以解决闪动问题,其次由于使用动态扫描方式显示数字,动态扫描很快,人的肉眼很难看出,但是如果调用显示程序时,如果不在返回时屏蔽掉最后的赋值,会出现很亮是现象,所以程序的最后可以加一个屏蔽指令,最后解决了这个问题。

5.3测试结果分析

经过多次的反复测试与分析,对电路的原理及功能更加熟悉,同时提高了设计能力及对电路的分析能力,经过此设计基本完成了设计要求,硬件层面而言相对比较简单。在硬件电路方面,详尽解析了各个独立元件的选择依据,对数种方案进行了全面的比较。在软件方面,对日历的算法和时间调整的算法都做了比较全面的阐述。综上所述,本设计实现了电子万年历的功能,但美中不足的就是没有阴历的功能和更多好的功能。

附录1.程序清单

EN BIT P2.2

RS BIT P2.0 RW BIT P2.1

SJ EQU P0 HOUR EQU 30H MIN EQU 31H

SEC EQU 32H

WEEK EQU 33H DAY EQU 34H MOON EQU 35H YEAR_H EQU 36H

YEAR_L EQU 37H

DAYBUF EQU 38H

CHANGEBUF EQU 39H

CHANGEKEY BIT P2.4 INCKEY BIT P2.5 DECKEY BIT P2.6 ESCKEY BIT P2.7 WEI BIT P2.1 DUAN BIT P2.0

BDD0 BIT 23H.0

BDD1 BIT 23H.1

BDD2 BIT 23H.2

BDD3 BIT 23H.3

BDD4 BIT 23H.4

BDD5 BIT 23H.5

BDD6 BIT 23H.6

BDD7 BIT 23H.7

BXY0 BIT 24H.0

BXY1 BIT 24H.1

BXY2 BIT 24H.2

BXY3 BIT 24H.3

BXY4 BIT 24H.4 BXY5 BIT 24H.5 BXY6 BIT 24H.6 BXY7 BIT 24H.7 aDD0 BIT 26H.0 aDD1 BIT 26H.1 aDD2 BIT 26H.2 aDD3 BIT 26H.3 aDD4 BIT 26H.4 aDD5 BIT 26H.5 aDD6 BIT 26H.6 aDD7 BIT 26H.7 aXY0 BIT 27H.0 aXY1 BIT 27H.1 aXY2 BIT 27H.2 aXY3 BIT 27H.3 aXY4 BIT 27H.4 aXY5 BIT 27H.5 aXY6 BIT 27H.6 aXY7 BIT 27H.7 T_D0 BIT 25H.0 BChangeDD BIT 25H.1 BChangeXY BIT 25H.2 BFF BIT 25H.3 BFLICKER B IT 25H.4 ORG 0000H

AJMP START

ORG 000BH

AJMP SERT0

ORG 001BH

AJMP SERT1

ORG 0030H START: MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV TH1,#3CH

MOV TL1,#0B0H

SETB ET1

SETB TR1

SETB PX0 ;程序初始化

;定时器0初始化;定时器1初始化

MOV HOUR,#23

MOV MIN,#59

MOV SEC,#57

MOV WEEK,#2

MOV DAY,#28

MOV MOON,#2

MOV YEAR_H,#20

MOV YEAR_L,#13

MOV 60H,#20

MOV 61H,#20

CALL CHUSHIHUA

MAIN: LCALL CHANGE

LCALL DISPOSE

LCALL LCDDIS

LCALL YEARJUD

LCALL MOONJUD

AJMP MAIN CHANGE: JNB BCHANGEDD,DY8

JB CHANGEKEY,DY8

JB BCHANGEXY,D8

SETB BCHANGEXY

INC CHANGEBUF

CLR TR0

CLR TR1

MOV A,CHANGEBUF

CJNE A,#1,LL1

LCALL T SEC

LL1: CJNE A,#2,LL2

LCALL T MIN

LL2: CJNE A,#3,LL3

LCALL T HOUR

LL3: CJNE A,#4,LL4

LCALL T WEEK

LL4: CJNE A,#5,LL5

LCALL T YEAR

LL5: CJNE A,#6,LL6

LCALL T MOON

LL6: CJNE A,#7,LL7

LCALL T DAY

LL7: CJNE A,#8,D8

MOV CHANGEBUF,#0

RET

DY8: JNB CHANGEKEY,DD8

CLR BCHANGEDD ;小时初始化

;分钟初始化

;秒钟初始化

;星期初始化

;日数初始化

;月份初始化

;年份初始化(高位)

;年份初始化(低位)

;用于定时器0记满一秒

;用于定时器1记满一秒

;调整键切换

;调用扫描键盘程序

;调用显示程序

;返回

;判断切换调整键抖动标志

;判断切换调整调整键是否按下;判断切换调整调整键是否响应过;没有响应过,日响应位置一

;按下次数加一

;判断是否按下6次

;按下八次,将次数清零

;判断切换调整调整键是否按下;没有按下,清0抖动标志位

CLR BCHANGEXY

RET

DD8: SETB BCHANGEDD DISPOSE: LCALL TSEC

LCALL TMIN

LCALL THOUR

LCALL TWEEK

LCALL TYEAR

LCALL TMOON

LCALL TDAY

RET

TSEC: MOV A,ChangeBuf

CJNE A,#1,D0

LCALL X0

LCALL X1

LCALL X X0

LCALL M1

XX0: JNB ADD6,XDY0

JB ESCKEY,XDY0

JB AXY6,XD0

SETB AXY6

MOV CHANGEBUF,#0

XD0: RET

XDY0: JNB ESCKEY,XDD0

CLR ADD6

CLR AXY6

RET

XDD0: SETB ADD6

RET

X0: JNB bDD0,DY0

JB INCKEY,DY0

JB BXY0,D0

SETB BXY0

INC SEC

MOV A,SEC

CJNE A,#60,D0

MOV SEC,#0

D0: RET

DY0: JNB INCKEY,DD0

CLR bDD0

CLR bXY0

RET

DD0: SETB bDD0

RET

;没有按下,清零响应标志位

;按下,抖动标志位置一

;查秒

;查分钟

;查小时键

;查星期键

;查年

;查月键

;查日键

;判断分钟抖动标志

;判断分钟调整键是否按下

;判断分钟调整键是否响应过

;没有响应过,响应为置一

;加到60分钟,分钟清零

;判断分钟调整键是否按下

;没有按下,清0抖动标志位

;没有按下,清零响应标志位

;分钟调整键按下,抖动标志位置一;判断分钟抖动标志

;判断分钟调整键是否按下

;判断分钟调整键是否响应过

;没有响应过,响应为置一

;秒加一

;判断是否加到60分钟

;加到60分钟,分钟清零

;判断分钟调整键是否按下

;没有按下,清0抖动标志位

;没有按下,清零响应标志位

;分钟调整键按下,抖动标志位置一

6、用DS1302与LCD1602可调数字万年历实验设计报告

利用时钟芯片DS1302实现万年历 系别电子通信工程系 组别第十组 专业名称电子信息工程 指导教师 组内成员 2013年8月19日

用DS1302与LCD1602设计 的可调式电子日历时钟 一、总体设计 1.1、设计目的 为巩固所学的单片机知识,把所学理论运用到实践中,用LCD1602与DS1302 设计可调式电子日历时钟。 1.2、设计要求 (1)显示:年、月、日、时、分、秒和星期; (2)设置年、月、日、时、分、秒和星期的初始状态; (3)能够用4个按键调整日历时钟的年、月、日、时、分、秒和星期; 完成可调式电子日历时钟的硬件和软件的设计,包括单片机的相关内 容;日历时钟模块的设计,液晶显示模块的设计,按键模块的设计。 控制程序的编写等。 备注:本程序另外添加了每到上午8:10和下午2:10的闹钟提醒功能。 1.3、系统基本方案选择和论证 1.3.1、单片机芯片的选择方案 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。 方案二: 采用STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。但造价较高。

1.3.2 、显示模块选择方案和论证: 方案一: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用显示数字显得太浪费,且价格也相对较高。所以不用此种作为显示。 方案二: 采用LED数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,显示出来的只是拼音,而不是汉字。所以也不用此种作为显示。 方案三: 采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,且视觉效果较好,外形美观。LCD1602可实现显示2行十六个字符。 1.3.3、时钟芯片的选择方案和论证: 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 方案二: 采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、星期、月、年以及闰年补偿的年进行计数,而且精度高,31*8位的RAM做为数据暂存区,工作电压范围为2.5V~5.5V,2.5V时耗电小于300nA。 1.3.4、电路设计最终方案决定 综上各方案所述,对此次作品的方案选定:采用80C51作为主控制系统;DS1302提供时钟;LCD1602液晶带汉字库显示屏作为显示部分。

1602字符液晶显示原理+实例详解

1602详细资料和实例 1602字符液晶在实际的产品中运用的也比较多了,前几天留意了一下,发现宿舍门前的自动售水机就是采 用的1602液晶进行显示的。而且对于单片机的学习而言,掌握1602的用法是每一个学习者必然要经历的过程。在此,我将使用1602过程中遇到的问题以及感受记录下来,希望能够给初学者带来一点指导,少走一点弯路。 所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多 数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 1602液晶的正面(绿色背光,黑色字体) 1602液晶背面(绿色背光,黑色字体)

另一种1602液晶模块,显示屏是蓝色背光白色字体 字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示:

HD44780内置了DDRAM、CGROM和CGRAM。 DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:

也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码(指A的字模代码,0x20~0x7F为标准的ASCII码,通过这个代码,在CGROM中查找到相应的字符显示)就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:DDRAM地址与显示位置的对应关系。 (事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码,见字模关系对照表)并不能显示1出来。这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H 地址处显示数据,则必须将00H加上80H,即80H,若要在DDRAM的01H处显示数据,则必须将01H 加上80H即81H。依次类推。大家看一下控制指令的的8条:DDRAM地址的设定,即可以明白是怎么样的一回事了),1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形(无汉字),如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H)(其实是1个地址),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

LCD1602汇编显示程序

;1602显示ABC LCD_RS EQU P2.5 LCD_RW EQU P2.6 LCD_EN EQU P2.7 LCD_DATA EQU P3 ;----------------- ORG0000H JMP START ORG0030H ;----------------- LCD: CALL LCD_INIT MOV A, #80H CALL LCD_WCMD MOV A, #'A' CALL LCD_WDATA MOV A, #'B' CALL LCD_WDATA MOV A, #'C' CALL LCD_WDATA AJMP$ ;---------------- DELAY5MS: MOV R6, #10 DL1:DJNZ R7, $ DJNZ R6, DL1 RET ;---------------- LCD_INIT: CALL DELAY5MS MOV A, #38H CALL LCD_WCMD CALL DELAY5MS

CALL DELAY5MS MOV A, #06H CALL LCD_WCMD MOV A, #01H CALL LCD_WCMD MOV A, #0CH CALL LCD_WCMD RET ;===================================== LCD_WCMD: CALL CHECKBUSY CLR LCD_RS JMP W_LCD ;---------------- LCD_WDATA: CALL CHECKBUSY SETB LCD_RS W_LCD: CLR LCD_RW MOV LCD_DATA, A SETB LCD_EN NOP CLR LCD_EN RET ;---------------- CHECKBUSY: PUSH ACC MOV LCD_DATA, #255 CLR LCD_RS SETB LCD_RW BUSYLOOP: SETB LCD_EN NOP MOV A, LCD_DATA CLR LCD_EN JB ACC.7, BUSYLOOP POP ACC RET

液晶显示万年历设计

湄洲湾职业技术学院 液晶显示万年历设计 系别:自动化工程系 年级:10 级专业:电气自动化 姓名:陈承隆学号:1001020212 导师姓名:许振龙职称:讲师 2013年 5 月27日

目录 1.前言 (1) 2.系统设计参数要求 (2) 3.系统设计 (3) 3.1系统设计总体框图 (3) 3.2 各模块原理说明 (4) 3.2.1 AT89C52单片机最小系统模块 (4) 3.2.2 液晶显示模块 (5) 3.2.3 机给蜂鸣器模块 (5) 3.2.4 独立键盘模块 (5) 3.3 系统总原理图说明 (6) 3.4系统印刷电路板的制作图 (6) 3.5系统的操作说明 (6) 3.6 系统操作注意事项 (6) 参考文献 (7) 致谢词 (8) 附录 (9) 附录1:电路总原理图 (10) 附录2:印刷电路板 (11) 附录3:原件清单 (12)

1.前言 随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来了诸多方便。随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。 单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子万年历结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。

1602液晶字符显示

1.基本简介 LCD1602工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。2.管脚功能 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。 第7~14脚:D0~D7为8位双向数据端。 第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 ⑶特性 3.3V或5V工作电压,对比度可调 内含复位电路 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器DDRAM

LCD1602自定义显示字符

LCD1602自定义显示字符 从CGROM表中可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个, 实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000x111,x为无效位,最后三位为000-111共8个。 如果我们要想显示这8个用户自定义的字符,操作方法和显示CGROM一样,先设置DDRAM位置,再向DDRAM写入字符码,例如“A”就是41H。现在我们要显示CGRAM的第一个自定义字符,就向DDRAM写入00000000B(00H),如果要显示第8个就写入00000111(08H)。 从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据,而这6位中的高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了。例如第一个自定义字符的字模地址为01000000-01000111八个地址。 我们向这8个字节写入字模数据,让它能显示出“℃” 地址:01000000数据:00010000图示:○○○■○○○○ 0100000100000110○○○○○■■○ 0100001000001001○○○○■○○■ 0100001100001000○○○○■○○○ 0100010000001000○○○○■○○○ 0100010100001001○○○○■○○■ 0100011000000110○○○○○■■○ 0100011100000000○○○○○○○○ 字定义字符地址 0x40————0x00 0x48————0x01 0x50————0x02 0x58————0x03 0x60————0x04 0x68————0x05 0x70————0x06 0x78————0x07 程序操作: 1.定义字符数组 uchar code Word1[]={0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A};//自定义字符数组 2.写数据到CGRAM中 uchar j; WriteCommandLCD(0x40); for(j=0;j<8;j++) { WriteDataLCD(Word1[j]); } 3.读取数据并显示 WriteCommandLCD(0xC8);//显示在第一行 WriteDataLCD(0x00);//地址

基于液晶显示的万年历-毕设论文

毕业设计(论文)报告题目基于液晶显示的万年历 系别 专业 班级 学生姓名 学号

指导教师 2013年4 月

基于液晶显示的万年历 摘要: 本设计应用AT89S52芯片作为核心,采用C语言进行编程,实现以下功能:小时、分、秒、年、月、日、星期的显示和实时温度检测。该设计的电子时钟系统由时钟电路、LCD显示电路、按键调整电路和温度检测电路四部分组成。使用时钟芯片DS1302完成时钟日期的功能,以LCD1602为显示器,同时利用温度传感器DS18B20测量周围环境温度,并且可以依靠按键随时对日期时间进行调整。我们共设计四个按键,一个模式键,也就是我们用来选定被修改的数字的,两个调整键,一个“加”键和一个“减”键,当按下模式键,选定要调整的数字的时候,“加”、“减”可以帮我们调到所需的状态,还有一个复位键,显示精度为1秒。设计还提供三位实时温度检测并显示,其显示精度为0.1℃。 关键词: AT89S52、时钟日历芯片DS1302、温度传感器DS18B20、LCD1602

目录 前言 (1) 第一章方案选择与万年历研究情况 (2) 1.1 方案选择 (2) 1.1.1时钟芯片选择 (2) 1.1.2键盘选择 (3) 1.1.3显示模块选择 (3) 1.2电子万年历的研究情况 (4) 第二章主要硬件描述 (5) 2.1 AT89S52 (5) 2.1.1主要性能 (5) 2.1.2引脚说明 (5) 2.2 LCM1602 (8) 2.2.1工作原理 (8) 2.2.2端口引脚第二功能 (9) 2.2.3管脚功能 (10) 2.3 芯片DS1302 (11) 2.3.1工作原理 (11) 2.3.2引脚功能及结构 (12) 2.4 数字温度传感器DS18B20 (12) 2.4.1DS18B20工作原理 (12) 2.4.2DS18B20 引脚定义 (13) 第三章硬件设计与实现 (14) 3.1 单片机最小系统的设计 (14) 3.2 时钟电路的设计 (15) 3.3 温度采集模块的设计 (15) 3.4 LCDM1602显示模块设计 (16) 第四章系统软件设计与实现 (17)

LCD1602汉字显示讲解

LCD1602显示汉字研究与程序设计 1602是一款最常用也是最便宜的液晶显示屏。最多可以显示两行标准字符,每行最多可以显示16个字符。 1602可以显示内部常用字符(包括阿拉伯数字,英文字母大小写,常用符号和日文假名等),也可以显示自定义字符(单或多个字符组成的简单汉字,符号,图案等,最多可以产生8个自定义字符)。 一、显示常用字符。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是41H,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 十进制十六进制ASCII字符十进制十六进制ASCII 字符十进制十六进制ASCII字符 00 00 自定义字符1 56 38 8 96 60 ` 01 01 自定义字符2 57 39 9 97 61 a 02 02 自定义字符3 58 3A : 98 62 b 03 03 自定义字符4 59 3B ; 99 63 c 04 04 自定义字符5 60 3C < 100 64 d 05 05 自定义字符6 61 3D = 101 65 e 06 06 自定义字符7 62 3E > 102 66 f 07 07 自定义字符8 63 3F ? 103 67 g 08 08 自定义字符1 64 40 @ 104 68 h 09 09 自定义字符2 65 41 A 105 69 i 10 0A 自定义字符3 66 42 B 106 6A j 11 0B 自定义字符4 67 43 C 107 6B k 12 0C 自定义字符5 68 44 D 108 6C l 13 0D 自定义字符6 69 45 E 109 6D m 14 0E 自定义字符7 70 46 F 110 6E n 15 0F 自定义字符8 71 47 G 111 6F o 32 20 空格72 48 H 112 70 p 33 21 ! 73 49 I 113 71 q 34 22 " 74 4A J 114 72 r 35 23 # 75 4B K 115 73 s 36 24 $ 76 4C L 116 74 t 37 25 % 77 4D M 117 75 u 38 26 & 78 4E N 118 76 v 39 27 ' 79 4F O 119 77 w 40 28 ( 80 50 P 120 78 x 41 29 ) 81 51 Q 121 79 y 42 2A * 82 52 R 122 7A z 43 2B + 83 53 S 123 7B { 44 2C , 84 54 T 124 7C | 45 2D - 85 55 U 125 7D }

lcd1602按键显示程序

#include<> #include<> //包含_nop_()函数定义的头文件 typedef unsigned int uint ; typedef unsigned char uchar ; sbit RS=P2^0; //寄存器选择位,将RS位定义为引脚 sbit RW=P2^1; //读写选择位,将RW位定义为引脚 sbit E=P2^2; //使能信号位,将E位定义为引脚 sbit BF=P0^7; //忙碌标志位,,将BF位定义为引脚 " uchar keyscan(); void delay1ms(); void delay(unsigned char n); unsigned char BusyTest(void); void WriteInstruction (unsigned char dictate); void WriteAddress(unsigned char x); … void WriteData(unsigned char y); void LcdInitiate(void); void delay1ms() { unsigned char i,j; for(i=0;i<10;i++) for(j=0;j<33;j++); } ! void delay(unsigned char n) { unsigned char i; for(i=0;i

用DS1302与LCD1602可调数字万年历课程设计

数字开发与实践 课 程 设 计 题目:用DS1302与LCD1602 设计可调式电子日历时钟 班级: 姓名: 学号: 学院: 二O一二年六月五日

用DS1302与LCD1602设计 的可调式电子日历时钟 一、总体设计 1.1、设计目的 为巩固所学的单片机知识,把所学理论运用到实践中,用LCD1602与DS1302 设计可调式电子日历时钟。 1.2、设计要求 (1)显示:年、月、日、时、分、秒和星期; (2)设置年、月、日、时、分、秒和星期的初始状态; (3)能够用4个按键调整日历时钟的年、月、日、时、分、秒和星期; 完成可调式电子日历时钟的硬件和软件的设计,包括单片机的相关内 容;日历时钟模块的设计,液晶显示模块的设计,按键模块的设计。 控制程序的编写等。 备注:本程序另外添加了每到上午8:10和下午2:10的闹钟提醒功能。 1.3、系统基本方案选择和论证 1.3.1、单片机芯片的选择方案 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。 方案二: 采用STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全

兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。但造价较高。 1.3.2 、显示模块选择方案和论证: 方案一: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用显示数字显得太浪费,且价格也相对较高。所以不用此种作为显示。 方案二: 采用LED数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,显示出来的只是拼音,而不是汉字。所以也不用此种作为显示。 方案三: 采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,且视觉效果较好,外形美观。LCD1602可实现显示2行十六个字符。 1.3.3、时钟芯片的选择方案和论证: 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 方案二: 采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、星期、月、年以及闰年补偿的年进行计数,而且精度高,31*8位的RAM做为数据暂存区,工作电压范围为2.5V~5.5V,2.5V时耗电小于300nA。 1.3.4、电路设计最终方案决定 综上各方案所述,对此次作品的方案选定:采用80C51作为主控制系统;DS1302提供时钟;LCD1602液晶带汉字库显示屏作为显示部分。

1602液晶字符显示

1602液晶字符显示屏的原理 管脚功能/1602字符液晶编辑 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中: 引脚符号功能说明 1VSS一般接地 2VDD接电源(+5V) 3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 4RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 6E E(或EN)端为使能(enable)端,写操作时,下降沿使能。 读操作时,E高电平有效 7DB0低4位三态、双向数据总线0位(最低位)8DB1低4位三态、双向数据总线1位 9DB2低4位三态、双向数据总线2位 10DB3低4位三态、双向数据总线3位 11DB4高4位三态、双向数据总线4位 12DB5高4位三态、双向数据总线5位

13DB6高4位三态、双向数据总线6位 14DB7高4位三态、双向数据总线7位(最高位)(也是busy flag) 15BLA背光电源正极 16BLK背光电源负极 寄存器选择控制表 RS R/W操作说明 00写入指令寄存器(清除屏等) 01读busy flag(DB7),以及读取位址计数器(DB0~DB6)值 10写入数据寄存器(显示各字型等) 11从数据寄存器读取数据 注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0. busy flag(DB7):在此位为1时,LCD忙,将无法再处理其他的指令要求。 字符集/1602字符液晶编辑 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。 以下是1602的16进制ASCII码表: (图片打开是大图) 读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII 为0x42(前面加0x表示十六进制)。 显示地址/1602字符液晶编辑 1602字符液晶显示可分为上下两部分各16位进行显示,处于不同行时的字符显示地址如下

1602原理 汉字显示 原理理解

主要是看懂它CGROM CGRAM的存储空间图,和工作原理 用户直接操作DDRAM,DDRAM有80个字节,其位置与1602的显示位置有对应关系,基本思想是向指定的DDRAM地址中写入字符对应的ASCII码,其实是指针,DDRAM通过这个指针在CGROM中找到它对应的字模数组,然后显示在屏幕上。用户看起来是对DDRAM的操作,实则是通过DDRAM调用了CGROM中的字模数组,显示在LCD上。 图1 其奥妙在于它的ASCII码、字符点阵地址、行地址的对应关系上

图2(没有复制完整) DDRAM的地址对应LCD上的一个位,其内容是一个指针,指向了点阵中的数组。 以00H为例,(写地址的时候要写成0X80,因为指令规定了高位要为1 ,见DDRAM地址设置指令)向00H中写一个01100010则LCD的处理器会视01100010为指针,然后通过CGROM找到它对应的一组字模代码,如下图,这个指针对应的是一个存储空间,这个存储空间就是8行5列,对应下面的行地址0000到0111.这就是行地址的意思,也就是字模码的行。,第8行对应的是光标,就是我们在LCD上看到一最后一行,如果是光标闪烁的话,那一闪闪的就是第8行的位在不断的置0置1的结果。如下图3示 行、列描述的是存储空间,字模码的行列就是8行5列的;还有个行地址批的是CGROM 的行,CGROM中的低4位就是行,共16行16列,如图2 示 图3 下面提用户自定的的解释 CGRAM其实是CGROM中的一部分,这部分是没有被写进字模码的存储空间。前8位没有用到,可以让用户自己写字模码。用户最多写8个,CGROM中对应行0000行到0111行,当然对就的是第0列。第个CGRAM对应一个8行5列的存储空间,如下图4示 因此写自定义字模时要先设定好这个CGRAM的地址,如00000000,然后要在这个地址中写入8行的数据,如图4示,第一个地址代表字符标号,也就是行DDRAM中写的指针,下面的字符码的低3位,现时也是CGRAM的高3位,位5 4 3。自定义进就是这样写的 程序也是按这个思想写的。

已经采用过-LCD1602显示字符和(RAM)数字的汇编程序

单片机LCD1602显示字符和数字的汇编程序(无聊原创) 1,单片机和LCD1602的连线,和程序结果显示如下图: 2,LCD第一行显示字符XIAORENGUANG第二行显示RAM中40H到46H中的数字。程序如下: ORG 0000H AJMP MAIN RS EQU P2.4 RW EQU P2.5 E EQU P2.6 MAIN: MOV SP,#60H MOV 40H,#01H MOV 41H,#02H MOV 42H,#03H MOV 43H,#04H MOV 44H,#05H MOV 45H,#06H MOV 46H,#07H ACALL DD1 ;DD1是LCD初始化

MOV DPTR,#TABLE1 ACALL DD2;DD2是LCD第一行显示TABLE1 ACALL PPP ;PPP是LCD第二行显示RAM中40H到46H中的数据 SJMP $ DD1: MOV p0,#01H ;清屏 CALL ENABLE MOV p0,#38H ;显示功能 CALL ENABLE MOV p0,#0FH ;显示开关控制 CALL ENABLE MOV p0,#06H ;+1 CALL ENABLE RET DD2: MOV p0,#80H;第一行的开始位置 cALL ENABLE CALL WRITE1;到TABLE1取码? RET DD3: MOV p0,#0C0H;第二行的位置 CALL ENABLE CALL WRITE1;到TABLE2 取码 RET ENABLE: CLR RS ;送命令 CLR RW CLR E CALL DELAY SETB E RET WRITE1: MOV R1,#00H ;显示table中的值 A1: MOV A,R1;到table取码 MOVC A,@A+DPTR call wRITE2 ;显示到lcd INC R1 CJNE A,#00H,A1 ;是否到00h RET WRITE2:MOV p0,A ;显示 SETB RS CLR RW CLR E CALL DELAY SETB E RET

电子万年历设计

课程论文论文题目基于单片机的电子万年历设计 课程名称单片机原理及接口技术 专业年级 2014级自动化3班 学生姓名孙宏远贾腾飞 学号 2016年12 月3 日

摘要: 本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。。 关键词:AT89C51单片机,DS1602时钟芯片,LCD1602显示屏。串口通信。 一:引言 本设计的基于单片机控制的电子万年历,具有年、月、日、星期、时、分、秒的显示等功能,实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD1602显示屏显示信息。并且可以在键盘设置模块输入修改时间,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD1602液晶显示屏模块上显示。 二:硬件设计: 2.0.硬件的设计总框图 2.1 DS1032时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。芯片如图。 DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。 2.2 LCD1602与AT89C52的引脚接线 LCD1602采用总线式与单片机相连,AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。滑动变阻器用于调整液晶显示的亮度。电路如图

1602液晶字符显示

1602液晶字符显示

1.基本简介 LCD1602工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方

便地应用于市面上大部分的字符型液晶。 2.管脚功能 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。 第7~14脚:D0~D7为8位双向数据端。 第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 ⑶特性 3.3V或5V工作电压,对比度可调

1602液晶显示计算器电路图及程序

#include #include #include #include unsigned char code Error[]={"error"}; unsigned char code Systemerror[]={"system error"}; unsigned char code Lcd[]={"lcd calculate"}; char str[16]; sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2; sbit BF=P0^7; /*********************** 函数功能:延时1ms ***********************/ void delay1ms() { unsigned char i,j; for (i=0;i<10;i++) for (j=0;j<33;j++) ; } /************************ 函数功能:延时n毫秒 入口参数:n ************************/ void delaynms(unsigned char n) { unsigned char i; for (i=0;i

基于单片机的液晶显示“万年历”

宁波大红鹰学院 《单片机原理及应用》课程设计报告 课题名称:单片机液晶显示“万年历” 分院:机械与电气工程学院 教研室:电气工程及其自动化 班级: 09电自3 姓名:徐卡达 学号:0 指导教师:杨会保 二○一二年五月

单片机液晶显示“万年历” 一、设计任务 利用STC89C52RC单片机设计一个具有如下功能的电子万年历: (一)、能够显示年、月、日、时、分、秒、星期 (二)、能正确显示闰年日期 (三)、用独立键盘进行校时 二、硬件设计 1、系统框图 按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、蜂鸣器电路、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。主控模块采用STC89C52RC单片机,按键模块用5个按键,用于调整时间和设定闹钟,显示模块采用LCD1602,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。 图1 基于AT89C52RC单片机的电子万年历系统框图 2、原理图 基于STC89C52RC单片机的电子万年历硬件仿真电路图如图10所示,系统由STC89C52RC单片机、按键扫描电路、显示电路、时钟电路、晶振电路、复位电路、蜂鸣器电路组成。

图2 电子万年历仿真图 3、各部分介绍 (1)、主控模块 控制芯片使用STC89C52,控制系统如下图: 图3 STC89C52RC主控模块 主控制芯片采用STC89C52,系统包括晶振电路、复位电路、下载接口。

(2)、时钟芯片 时钟芯片使用DS1302,该模块电路原理图如下图: 图4 DS1302时钟电路 时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为~。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。工作电压与单片机的输入电压比较适合。上面是它的一些基本的应用介绍。下面是它的引脚的描述: 图5 DS1302引脚 下面是DS1302的时钟寄存器。我们要读取的时间数据就是从下面这些数据寄存器中读取出来的。当我们要想调整时间时,可以把时间数据写入到相应的寄存器中就可以了。 图6 DS1302的时钟寄存器 DS1302和单片机的连接很简单。只需一根复位线,一根时钟线,一根数据

液晶1602显示字符代码

1602液晶字符码 十十六ASCII 十十六ASCII 十十六ASCII 进制进制字符进制进制字符进制进制字符 00 00 自定义字符1 56 38 8 96 60 ` 01 01 自定义字符2 57 39 9 97 61 a 02 02 自定义字符3 58 3A : 98 62 b 03 03 自定义字符4 59 3B ; 99 63 c 04 04 自定义字符5 60 3C < 100 64 d 05 05 自定义字符6 61 3D = 101 65 e 06 06 自定义字符7 62 3E > 102 66 f 07 07 自定义字符8 63 3F ? 103 67 g 08 08 自定义字符1 64 40 @ 104 68 h 09 09 自定义字符2 65 41 A 105 69 i 10 0A 自定义字符3 66 42 B 106 6A j 11 0B 自定义字符4 67 43 C 107 6B k 12 0C 自定义字符5 68 44 D 108 6C l 13 0D 自定义字符6 69 45 E 109 6D m 14 0E 自定义字符7 70 46 F 110 6E n 15 0F 自定义字符8 71 47 G 111 6F o 32 20 空格72 48 H 112 70 p 33 21 ! 73 49 I 113 71 q 34 22 " 74 4A J 114 72 r 35 23 # 75 4B K 115 73 s 36 24 $ 76 4C L 116 74 t 37 25 % 77 4D M 117 75 u 38 26 & 78 4E N 118 76 v 39 27 ' 79 4F O 119 77 w 40 28 ( 80 50 P 120 78 x 41 29 ) 81 51 Q 121 79 y 42 2A * 82 52 R 122 7A z 43 2B + 83 53 S 123 7B { 44 2C , 84 54 T 124 7C | 45 2D - 85 55 U 125 7D } 46 2E . 86 56 V 126 7E ~ 47 2F / 87 57 W 48 30 0 88 58 X 49 31 1 89 59 Y 50 32 2 90 5A Z 51 33 3 91 5B [ 52 34 4 92 5C \ 53 35 5 93 5D ] 54 36 6 94 5E ^ 55 37 7 95 5F _

基于STC89C52液晶显示数字万年历设计报告

西安邮电学院 开放实验设计报告 系部名称电子与信息工程系学生姓名 专业名称电子与信息工程班级 实习时间

基于STC89C52液晶显示数字万年历 1.引言 在51单片机应用系统中,常常需要记录实时的时间信息。比如,在数据采集时,对默写重要的事件常常需要记录下准确的发生事件;又比如在银行营业大厅中使用的利率或汇率显示屏,上面除了显示利率或者汇率等数据外,还需要显示实时的时间信息,其中包括年,月,日,星期,时间等。 下面我们利用STC89C52和液晶显示器LCD1602和实时时钟芯片DS1302来实现实时时钟并利用液晶显示器进行显示。 1. 单片机STC89C52 STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器8K字节在系统可编程Flash。 2. 实时时钟芯片DS1302 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。带有IIC总线接口,便于同单片机进行通信。外接32.768KHZ晶振,可实现年误差小于2分钟。 3.液晶显示模块LCD 1602 LCD1602液晶显示模块是由字符型液晶显示屏(LCD),控制驱动主电路HD44780及其扩展驱动电路HD44100或与其兼容的IC,少量阻,容元件,结构件等装配在PCB板上而成。它可以显示2行字符,每行16个字符。 2.所用硬件和软件系统的介绍,实施方案 数字时钟芯片DS1302 1. 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 2. DS1302的控制字节

相关文档
最新文档