1602LCD显示的秒表单片机课程设计.docx
《1602LCD显示的秒表单片机课程设计.docx》由会员分享,可在线阅读,更多相关《1602LCD显示的秒表单片机课程设计.docx(35页珍藏版)》请在冰豆网上搜索。
1602LCD显示的秒表单片机课程设计
单片机课程设计
题目:
1602LCD显示的秒表
1单片机原理…………………………………………………3
2课程设计的任务与要求……………………………………3
3课程设计目的………………………………………………4
4芯片资料……………………………………………………5
4.1AT89C51……………………………………………5
4.21602LCD……………………………………………8
5电路分析…………………………………………………16
6代码分析…………………………………………………21
7设计分析…………………………………………………29
8调试成功与否……………………………………………31
9参考文献…………………………………………………36
10附录
1602LCD秒表的显示源代码………………………37
1602LCD秒表的显示原理图………………………43
一、单片机原理
单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
它是一种在线式实时控制计算机,需要有较强的抗干扰能力,较低的成本。
本次设计内容为以8051单片机为核心的秒表,采用数码管显示,单片机技术控制。
利用单片机的定时器/计数器定时和技术的原理,用集成电路芯片、LCD数码管以及按键来设计计时器。
将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生活中应用广泛。
2、课程设计的任务与要求
设计任务:
利用AT89C51单片机结合1602LCD显示器设计一个秒表
设计要求:
1.本设计实现一个1602LCD显示秒表
2.利用AT89C51控制整个电路来实现秒表的显示。
大体上可以讲1602LCD秒表的显示主要包括硬件和软件两部分。
重点就是各部分硬件的连接设计以及程序的编写。
本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。
三、课程设计目的
《MCS-51单片机原理及应用》课的课程设计是四个学生一组完成一个老师给的一个题目,叫1602LCD显示的秒表。
为了让我们能够综合运用自己学的课程的基本知识,能够进行单片机的应用,掌握单片机程序设计调试和应用电路设计、分析及调试检测。
通过这个实验:
1.、使我们增进对单片机知识的进一步认识,也同时加深对单片机理论知识的理解。
2、使我们掌握单片机的内部功能模块的应用,
3、使我们了解和掌握单片机应用系统的软硬件设计过程,方法即实现,为了以后设计和实现单片机应用系统打下基础。
4、芯片资料
4、1AT89C51
AT89C51是128字节内部RAM,4KB可编程Flash存储器(可擦写1000次),三级程序存储器保密,静态工作频率:
0Hz-24MHz,2个16位定时/计数器,一个串行通讯口,6个中断源,32条I/O引线,有片内时种振荡器。
输入输出引脚资料:
(1)P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
(2)P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
(3)P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4)P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
其它控制或复用引脚:
(1)ALE/PROG30访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频率的1/6)。
在访问外部数据存储器时,出现一个ALE脉冲。
(2)PSEN29该引是外部程序存储器的选通信号输出端。
当AT89C51由外部程序存储器取指令或常数时,每个机器周期输出2个脉冲即两次有效。
但访问外部数据存储器时,将不会有脉冲输出。
(3)EA/Vpp31外部访问允许端。
当该引脚访问外部程序存储器时,应输入低电平。
要使AT89C51只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。
AT89C51特殊功能寄存器列表(适用于同一架构的芯片)
符 号
地 址
注 释
*ACC
E0H
累加器
*B
F0H
乘法寄存器
*PSW
D0H
程序状态字
SP
81H
堆栈指针
DPL
82H
数据存储器指针低8位
DPH
83H
数据存储器指针高8位
*IE
A8H
中断允许控制器
*IP
D8H
中断优先控制器
*P0
80H
端口0
*P1
90H
端口1
*P2
A0H
端口2
*P3
B0H
端口3
PCON
87H
电源控制及波特率选择
*SCON
98H
串行口控制器
SBUF
99H
串行数据缓冲器
*TCON
88H
定时器控制
TMOD
89H
定时器方式选择
TL0
8AH
定时器0低8位
TL1
8BH
定时器1低8位
TH0
8CH
定时器0低8位
TH1
8DH
定时器1高8位
带*号的特殊功能寄存器都是可以位寻址的寄存器
4.11602LCD
1602字符型LCD简介:
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780.
1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
引脚功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表1所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
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
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
表1:
引脚接口说明
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
1602LCD的指令说明及时序:
1602液晶模块内部的控制器共有11条控制指令,如下表2所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
表2:
控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙
指令10:
写数据。
指令11:
读数据。
与HD44780相兼容的芯片时序下表3如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
表3:
基本操作时序表
读写操作时序如图2和3所示:
图2读操作时序
图3写操作时序
1602LCD的RAM地址映射及标准字库表:
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,图4是1602的内部显示地址。
图41602LCD内部显示地址
例如第