一、lcd1602
(一)、管脚展示
(二)、管脚释义
穿插:1602:意思:可以显示2行16列字符
(三)、时序图
1、
看的方法:先做垂线时间轴t,可以看到RS先变化(有交叉即变化),然后看到同一垂线上的R/W被拉低,DB0--DB7
改变电平,之后E被拉高,持续TPw
(四)、LCD1602写命令和数据函数
static void lcd_write_cmd(unsigned char byte)
{
RS = 0;//写入命令,R/S被拉低
RW = 0;//写
LCDPORT = byte;
E = 1;//E被拉高
delay_us(10);//延时
E = 0;//E被拉低
}
static void lcd_write_date(unsigned char byte)
{
RS = 1;//写入数据,R/S被拉高
RW = 0;
LCDPORT = byte;
E = 1;
delay_us(10);
E = 0;
}
(四)、LCD初始化函数
static void lcd_init()
{
delay_ms(5);
lcd_write_cmd(0x38);//设置显示位数,行数,点阵值,写四次,防止不成功
delay_ms(5);
lcd_write_cmd(0x38);
delay_ms(5);
lcd_write_cmd(0x38);
delay_ms(5);
lcd_write_cmd(0x38);
delay_ms(5);
lcd_write_cmd(0x08);//设置光标
delay_ms(5);
lcd_write_cmd(0x01);//清屏
delay_ms(5);
lcd_write_cmd(0x06);//设置自动加一位显示
delay_ms(5);
lcd_write_cmd(0x0c);//打开显示
delay_ms(5);
}
(五)、LCD相关命令
(六)、LCD写入函数
void main()
{
lcd_init();//初始化
lcd_write_cmd(0x80);//确定写入地址
lcd_write_data('a');//确定写入值
while(1);
}
(七)、自定义字符显示
1、低六位可编辑:
A5 A4 A3 :表示编辑的是第几个自定义字符
A2 A 1 A0:表示编辑的是某个字符的第几行
2、CGRAM地址范围:从0X40----0X7F,LCD1602为8行5列
3、自定义图形函数
void lcd_display_self()
{
lcd_write_cmd(0x40);//确定写入的CGRAM位置
lcd_write_date(0xff);//低三行全亮,因为LCD只有五位,所以0X1F和0Xff是一样的
lcd_write_date(0xff);//确定过地址之后行数自动加一
lcd_write_date(0xff);
lcd_write_date(0x07);//第四五六行为0000 0111,只两三列
lcd_write_date(0x07);
lcd_write_date(0x07);
lcd_write_date(0x03);//第四五六行为0000 011,只亮两列列
lcd_write_date(0x03);
lcd_write_cmd(0x80+0x40);//确定要显示的DDRAM的地址
lcd_write_date(0);//表示写入的为第0个字符
}
4、CGRAM和DDRAM地址示意:
关键字:51单片机 LCD显示
引用地址:
51单片机的LCD显示
推荐阅读最新更新时间:2024-03-16 16:06
51单片机多机通信电路图及C语言程序
多机通信电路图 此处,U1作为主机,U2为从机1,U3为从机2。 多机通信C语言程序 (1)主机程序 #include #include #define _SUCC_ 0x0f//数据传送成功 #define _ERR_ 0xf0//数据传送失败 unsigned charTable ={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; unsigned char Buff ; //数据缓冲区 unsigned char temp=0xff; sbit KEY1=P1^6; sbit KEY2=P1^7; //unsigned char addr; //延时1ms函数 void de
[单片机]
实验九 定时、记数、显示(80C51单片机汇编语言编程)
设计一个带有控制功能的脉冲发生器/计数器系统,脉冲发生器发出周期为2秒的方波(提示:可由P3.0口输出,用发光二极管显示);被计数脉冲由T0口输入,所记录的脉冲数以十进制形式在数码管显示(至少应可记录256个脉冲);设两个按键,一个启动脉冲发生器,一个启动记数,(按一次启动,再按一次停止),不启动时,发光管灭,数码管显示学号。 伟福:数码管为共阴极; KEY/LED_CS与CS0连线,则段地址为:8004H,位地址为:8002H ORG 0000H AJMP MAIN ORG 0003H AJMP INT0 ORG 0013H AJMP INT1 ORG 001BH AJMP T1 ORG 0030H MAIN:MOV TMOD
[单片机]
跟我学51单片机(二):单片机内部定时/计数器和中断系统
上讲通过讲述用单片机控制一个外部的LED闪烁实验来向读者介绍了单片机的工作原理与开发流程。这一讲将介绍单片机内部非常重要的两个资源——定时/ 计数器和中断系统。通过该讲,读者可以掌握定时器的工作原理和单片机的中断系统。 从而设计定时器计数程序和中断服务程序。 一、原理简介 首先让我们举闹钟为例,将它定时在一分钟后闹铃,这就需要秒针走一圈(60 次)。即一分钟时间转化为秒针走的次数,也就是计数的次数,计数到了60 次然后闹铃,而每一次计数的时间是1 秒。 单片机内部的定时/ 计数器跟闹钟类似,可以通过编程来设定要定时的时间、定时时间到了进行相应的操作。那么在单片机内部计数一次的时间是多少呢,51 单片机输入
[单片机]
基于MCS51单片机的多路数据通信设计
1.引言 MCS51单片机标准构成只有一组全双工UART串行口,P3.0-RXD收、P3.1-TXD发,如果要完成多路串口收发,一般使用外部扩展芯片,例如:GM8123/25,完成一扩多路串口,但是,由于增加扩展芯片,造成硬件成本增加,PCB板面增大,抗干扰性下降等不良因素,因此能尽量使用现有串口,利用分时切换技术,完成串行口不同类型,不同端口的数据传送是优先选择。 2.硬件功能简述 本设计用于数据采集监控系统如图1所示。采用485串行口完成数据采集,和232串口输出打印功能,这样使得接口连线简单,可靠性高。 RS-485工作特征:发送端:逻辑“1″两线间的 电压 差为+2至6V表示;逻辑”0″以
[单片机]
如何以AT89C51单片机为核心设计一个剪板机的控制电路?
本文介绍了一种用精密是采用交流接触器、中间继电器、行程开关及脚踏开关等电器来控制剪板机剪切。在生产使用过程中由于剪切频率高(1分钟约30刀),剪板机长期在这种频繁的工作状态下运行,难免经常会出现故障,影响生产效率,加重了维修工作量。 故障主要表现如下几方面;行程开关、脚踏开关、交流接触器及中间继电器等。 针对上述的问题,采用单片机作为控制的核心,用三相交流固态继电器JG-27F/40A380取代交流接触器为电机供电。三相交流固态继电器的特点:光电隔离,单硅反并联输出,具有缺相保护功能,特别适用于频繁起动的工作方式。将限位的行程开关和脚踏开关内的触点开关改为接近开关。接近开关没有任何机械性能,具有寿命长、响应速度快等优点。同
[单片机]
基于51单片机的语音合成模块
#include main.h bit bSysHalfSec; u8 TimeWaitCnt = 0; u8 code PrevFile = {0xAA, 0x05,0x00, 0xAF};/*此数组指令可以直接由上位机生成,复制过来即可 */ u8 code NextFile = {0xAA, 0x06, 0x00, 0xB0}; u8 code Path = {0xAA, 0x08, 0x10, 0x02, 0x2F, 0xB9, 0xE3, 0xB8, 0xE6, 0x2A, 0x2F, 0xD0, 0xA1, 0xC3, 0xD7, 0x2A, 0x4D, 0x50, 0x33, 0x8B, }; // flas
[单片机]
c51单片机中断号及中断向量
1、外部中断 0、 1;分别由引脚/INT0、/INT1的电平信号引起。 2、定时/计数器 0、1;分别由T0、 T1的溢出引起。 3、串行口发送、接收;发送完一个字节或接收到一个字节引起。 上述共5个中断源。 一、中断号 外部中断0 0 定时器T0 1 外部中断1 2 定时器T1 3 串口中断 4 二、 interrupt 和 using 在C51中断中的使用 8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个
[单片机]
#51单片机#UART串口通信的初步认识
UART串口通信 UART,全称Universal Asynchronous Receiver/Transmitter,即通用异步收发器。 串口通信是单片机中最常用的一种技术,通常用于单片机和计算机之间以及单片机和单片机之间的通信。 UART的通信类型可分为两种,并行通信和串行通信。 并行通信:数据各个位同时传送,可实现以字节为单位来通信。缺点:通信线占用资源多,成本高。 串行通信:一次只传输一个字节的数据。 STC89C52有两个专门的UART通信引脚,P3.0(RXD)和P3.1(TXD),由它们组成的通信接口叫串行接口,简称串口。 下图体现了两个单片机相互收发信息的过程: 图中两单片机的GND互连
[单片机]