LCD1602的电路图和程序

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

LCD1602的电路图和程序

————————————————————————————————作者:————————————————————————————————日期:

MS

基于1602字符型液晶显示器的显示系统

姓名:杨越

班级:电子11-1

学号:110400104

一、实习目的

(1)了解飞思卡尔单片机的基本原理,掌握其基本的工作流程。

(2)了解LCD1602的基本原理及用法。

(3)能够熟练使用CodeWarrior软件编写C语言程序,使用BDM仿真器

下载程序。

(4)能够熟练焊接电路板。

二、实验设备与器件

CodeWarrior软件,BDM仿真器,万用电路板,飞思卡尔单片机,LCD1602

液晶显示器,

三、实验内容

内容:利用飞思卡尔单片机制作基于1602字符液晶显示器的显示系统

要求:用四个按键控制,按下第一个按键显示1,按下第二个按键显示

2,以此类推。

(1)LCD1602液晶显示器的原理:1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。

以下具体阐述这三个管脚:

RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。

R/W为读写选择,高电平进行读操作,低电平进行写操作。

E端为使能端,后面和时序联系在一起。

除此外,D0~D7分别为8位双向数据线。

操作时序:

RS R/W 操作说明

0 0 写入指令码D0~D7

0 1 读取输出的D0~D7状态字

1 0 写入数据D0~D7

1 1 从D0~D7读取数据

注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0.

读取状态字时,注意D7位,D7=1,禁止读写操作;D7=0,允许读写操作;

所以对控制器每次进行读写操作前,必须进行读写检测。(即后面的读忙子程序)

指令集:

LCD_1602 初始化指令小结:

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

0x01 清屏

0x0F 开显示,显示光标,光标闪烁

0x08 只开显示

0x0e 开显示,显示光标,光标不闪烁

0x0c 开显示,不显示光标

0x06 地址加1,当写入数据的时候光标右移

0x02 地址计数器AC=0;(此时地址为0x80)光标归原点,但是DDRAM 中断内容不变

0x18 光标和显示一起向左移动

(2)飞思卡尔单片机的功能及特点:MC9S12XS128是 16 位单片机,由 16 位

中央处理单元(CPU12X)、128KB 程序、Flash(P-lash)、8KB RAM、8KB 数据 Flash(D-lash)组成片内存储器。主要功能模块包括:内部存储器,内部PLL 锁相环模块,2 个异步串口通讯 SCI ,1个串行外设接口 SPI MSCAN 模块,1 个 8 通道输入/输出比较定时器模块 TIM ,周期中断定时器模块

PIT ,16 通道 A/D 转换模块 ADC ,1 个 8 通道脉冲宽度调制模块 PWM ,输入/输出数字 I/O 口。

本次设计中主要用到PORTA,PORTB端口:

PORTA:PORTA 为通用 I/O 口, 共 8 个,作为通用数字 I/O 口使用,未集成特殊功

能.主要配置寄存器有:数据寄存器 PORTA、数据方向寄存 DDRA、上拉电阻控制寄存器

PUCR 和驱动控制寄存器 RDR。

a.数据寄存器 PORTA

通过写 1/0 使单片机对应引脚输出高低电平,或通过读取数据寄存器获得对应引脚的高低电平值。例:PORTA_PB0=1

b.数据方向寄存器 DDRA

DDRA 寄存器配置引脚为输出口还是输入口,“0”,输入口;“1”,输出口。MCU 复位后,DDRA 值为 0x00, 引脚默认为输入口。例:DDRA=0xFF //配置PORTA 口为输出

PORTB:PORTB 为通用数字 I/O 口, 共 8 个。其使用与 PORTA 基本一样。主要配置寄存器有:数据寄存器 PORTB、数据方向寄存 DDRB。上拉电阻控制

寄存器 PUCR 和驱动控制寄存器 RDR 与 PORTA 、PORTB、PORTE、PORTK 共用。

a.数据寄存器 PORTB

b.数据方向寄存器 DDRB

四、原理图:

器件说明:LCD1602 (16管脚),2个排阻,4个10k电阻,一个1K电阻,飞思卡尔芯片(64管脚)

管脚连接:

VSS GND DB6 PB6

VCC VCC DB7 PB7

VEE GND A VCC

RS PA0 K GND

RW PA1 K1 PA4

E PA2 K2 PA5

DB0 PB0 K4 PA6

DB1 PB1 K4 PA7

DB2 PB2

DB3 PB3 DB4 PB4 DB5

PB5

五、流程图

六、程序设计

1.void PLL_Init(void):内部锁相环模块,单片机使用PLL 功能能够获得更高的总线频率,这对于需要提高单片机运行速度的应用场合非常必要。

2. void LCD_init(void):初始化LCD1602液晶显示屏,

3. void LCD_write_command(uchar dat):写指令

4. void LCD_write_data(uchar dat):写数据

5. void LCD_disp_char(uchar x,uchar y,uchar dat):显示字符

6. void main(void):主函数

#include /* common defines and macros */

#include "derivative.h" /* derivative-specific definitions */ #include "MC9S12XS128.h"

unsigned char a=0; unsigned char b=0; unsigned char c=0;

锁相环开

初始化 写指令 写数 显示

是否有

相关文档
最新文档