单片机控制的LCD 1602的电子广告牌

2020-04-17 20:55

单片机及DSP课程设计报告

专 业: 电子信息工程 班 级: 姓 名: 学 号: 指导教师: 时 间:2012-06-11~24

通信与电子工程学院

一、设计目的

为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。 1、通过本设计,使学生综合运用《单片机技术原理与应用》、《DSP原理与 用》《C语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。

2、学会使用KEIL C和PROTEUS等软件,用C语言或汇编语言编写一个较完 整的实用程序,并仿真运行,保证设计的正确性。

3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器 件、布线、编程、调试、撰写报告等。

二、设计内容

1、设计要求

单片机控制的LCD 1602的电子广告牌

用单片机控制字符型LCD 1602显示字符信息“Hello everyone!”和“Welcome to Harbin”。 字符信息“Hello everyone!”、“Welcome to Harbin”分别从LCD 1602右侧第一行、第一行滚动移入,然后再从左侧滚动移出,循环显示。

2、设计思路

液晶模块用命令控制显示由模块本身已经给出,AVR、LCD 的VSS、VDD、VEE 不需连接,默认VSS=0V、VDD=5V、VEE= -5V、GND=0V,液晶模块与单片机的连接不采用添加多个与非门的方式,而采用更直接、清晰的方式,使WR、RD直接与LCD的R/W、RS相连,使能端与P3^5相连,由软件给出下降沿。

3、功能说明

1) 给LCD写命令、送数据等均需要进行选中寄存器、发送命令或数据代码、

使能端有效等过程,若逐一写出会使程序混乱冗长,因此将写命令、写数据、初始化等分别封装在子函数中,方便随时调用。 2) 为实现滚动显示,使用命令打开整体显示移动。

3) 显示字母只需将相应的ASCII代码发送给LCM即可,将需要显示的字符直

接设为数组中的元素,显示时逐一写入液晶。

4) 若数组中只有相应的字符,显示的末尾会出现预料之外的字符,因此加入足

够的空格避免这种现象发生。

5) 为实现循环不断显示的功能,只需将函数整体放入while(1)中即可,但应注

意下一次循环开始前将DDRAM的地址回复为第一行。

4、硬件原理框图

三、硬件电路元件介绍

1、AT89C51单片机:

AT89C51是一种低电压、高性能CMOS 8位微处理器,它自带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory),俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪存存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C系列单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的部分引脚功能介绍如下。 P0口:P0口为一个8位漏级开路双向I/O口。当P1口的管脚第一次写1时,被定义为高阻输入。P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,

这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输出,由于外部下拉为低电平,它将输出电流。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

2、液晶模块

液晶模块简单点说就是屏+背光板+PCB板+铁框。

电力终端、仪器仪表等的显示部件就是液晶模块,其地位相当于CRT中的显像管。

其它部分包括电源电路,信号处理电路等,当然还有外壳什么的。 模块主要分为屏和背光灯组件。两部分被组装在一起,但工作的时候是相互独立的(即电路不相关)。

液晶显示的原理是背光灯组件发出均匀的面光,光通过液晶屏传到我们的眼睛里。屏的作用就是按像素对这些光进行处理,以显示图像。

3、排阻

排阻,是一排电阻的简称,就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。。内存在处理、传输数据时会产生大小不一的工作电流。而在内存颗粒走线的必经之处安装一排电阻,则能够帮助内存起到稳压作用,让内存工作更稳定。从而提升内存的稳定性,增强内存使用寿命。

四、 软件部分的程序流程图

开始 液晶模块的初始化 设定扫描时间 显示第一行字符 每显示一个字符后停留一会,越过液晶的“忙”状态

改变DDRAM清屏,准备进行下一行显示的地址,更改为第二行末尾,从此处开始进入 字符 开始输入第二行字符 DDRAM的地址改回第一行,准备进入下一次循环,显示重新开始 五、源程序清单

C语言程序: #include

#define uchar unsigned char #define uint unsigned int #define LCDPORT P0

uchar code tab[]=\ \

uchar code tab1[]=\ \字符后面加若干个空格,防止滚动显示时出现不该出现的字符 sbit LCDE=P3^5; sbit LCDRW=P3^6; sbit LCDRS=P3^7;

void WriteCMD(uchar); void init(); void WriteData(uchar); void Delay();

void main() { uint i; init(); while(1)

//定义无符号整形变量 //液晶模块的初始化

//使之一直进行滚动显示程序,不断循环

void mydelay(int);

//定义写命令函数

//定义初始化函数 //定义写数据函数

//定义延迟函数

{

for(i=0;i<32;i++)


单片机控制的LCD 1602的电子广告牌.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:妇女儿童社会福利的概念、发展历程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: