【C51自学笔记】LCD1602

发布者:乐观向前最新更新时间:2022-03-11 来源: eefocus关键字:C51  自学笔记  LCD1602 手机看文章 扫描二维码
随时随地手机看文章

LCD1602

(16*2字符

A:当前显示


B:当前无法显示


初始化:

 #include

#define uchar unsigned char 

#define uint unsigned int 

 

sbit rs=P2^4;

sbit rw=P2^5;

sbit e=P2^6;

 

uchar table1[]=" www.tlxmcu.com ";

uchar table2[]="LCD1602 test ok!";

//************************************************

//延时函数,在12MHz的晶振频率下

//大约50us的延时

//************************************************

void delay_50us(uint t)

{

uchar j;

for(;t>0;t--)

        for(j=19;j>0;j--);

}

 

void write_com(uchar com)//写指令

{

e=0;

rs=0;

rw=0;

P0=com;//送指令

delay_50us(10);

e=1;

delay_50us(20);

e=0;

}

 

void write_data(uchar dat)

{

e=0;

rs=1;

rw=0;

P0=dat;

delay_50us(10);

e=1;

delay_50us(20);

e=0;

}

 

void init(void)

{

// 根据开发手册的初始化

delay_50us(300);

write_com(0x38);

delay_50us(100);

write_com(0x38);

delay_50us(100);

write_com(0x38);

write_com(0x38);

write_com(0x08);

write_com(0x01);

write_com(0x06);

write_com(0x0c);

}

 

void main()

{

uchar j;

init();//初始化

write_com(0x80);//初始化首位置(指针)

for(j=0;j<16;j++)

{

write_data(table1[j]);

delay_50us(10);

}

write_com(0x80+0x40);//指针换行

for(j=0;j<16;j++)

{

write_data(table2[j]);

delay_50us(10);

}

while(1);

 

}

关键字:C51  自学笔记  LCD1602 引用地址:【C51自学笔记】LCD1602

上一篇:【C51自学笔记】D/A转换器++DAC0832芯片+A/D转换器+ADC0804芯片
下一篇:【C51自学笔记】串口通信+RS-232C接口+ RS-422A/RS-485接口

推荐阅读最新更新时间:2024-11-11 10:35

PIC16F877 定时采集电压 LCD1602显示 Proteus仿真图
功能:定时器间隔50us采集一次AD电压,一共采集30次,并通过LCD1602显示。 软件:MPLAB X IDE v5.35,ISIS 7 Professional 注意事项:系统时钟配置为外部时钟8Mhz,由于间隔50us采集一次,所以AD采集一次时间应该小于50us。可通过调整定时器的数值,间隔不同的时间采集AD。 代码如下: #include pic.h #define RS RC1 //command or data #define RW RC2 //read write io #define EN RC3 //enable __CONFIG(FOSC_HS & WDTE_OFF & PWRTE_
[单片机]
PIC16F877 定时采集电压 <font color='red'>LCD1602</font>显示 Proteus仿真图
c51写的测转速源程序
以前写的c51单片机测转速源程序,比较久了,当时电路板有数码显示,代码不是最优化的,不过朋友可以看看其中的测速代码,当时费了点心思写的,24c02的读写代码,贴出来给朋友看看,写的很差劲,高手就不要见笑了。 #include reg51.h #include intrins.h #include math.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit key0=P3^0;//按键0 sbit key1=P3^1;//按键1 sbit key2=P3^3;//按键2 sbit key3=P3^4;
[单片机]
keil c51编译器对内存分配一些使用心得
现在的存储器已经不像七八年前那样昂贵了,但是ram相对于rom和eeprom的价格还是不可同样看待的,所以程序中节省内存在现在看来还是非常关键的。原因有以下几点: 1.ram的存取速度相对于eeprom的存取速度要快很多倍,不在一个数量级上,主要是因为eeprom的存储要想写入就必须先擦除,而且eeprom的擦出需要成块擦除(这是由于eeprom的擦除原理是场效应管的栅极上电擦除的,为了节省成本厂家一般都是8Bytes/page 64Bytes/page),所以使用ram来处理中间的数据是能够符合速度要求的。 2.无论是xram还是eeprom都是外部存储器,在负值时都要用到16bit地址空间(8位机),这样无形中就增大了程序的co
[单片机]
C51单片机之串口
/* 名称:C51单片机之串口 说明:在计算机之间进行通讯的时候,有两种方式,一个是串行通信,一个是并行通信。对于前者适合长距离通信、有一定的纠错能力。对于后者,适合短距离通信,速度较快。 对于C51单片机来说,其内部集成有一个功能很强的全双工通信口。设有两个相互独立的接受、发送缓冲器,可以同时发送数据和接收数据。发送缓冲器只能发送不能读出。接收缓冲器只能接收不能发送,而且两个缓冲器共用一个物理地址(0X99)。在编程时由编译器进行区分。还有,C51单片机的串口有4种工作方式,其中两种波特率时刻变的,另外两种是不可变的。 对于具体的使用来说,首先也是需要进行一系列初始化设置(包括工作方式设置、波特率设置等)。然后可以通
[单片机]
C51中的INTRINS.H
INTRINS.H:内部函数 函数名: _crol_,_irol_,_lrol_ 原 型: unsigned char _crol_(unsigned char val,unsigned char n); unsigned int _irol_(unsigned int val,unsigned char n); unsigned int _lrol_(unsigned int val,unsigned char n); 功 能:_crol_,_irol_,_lrol_以位形式将val 左移n 位,该函数与8051“RLA”指令 相关,上面几个函数不同于参数类型。 例: #include main() { unsigned int
[单片机]
详细LCD1602串行或者并行数据传输51单片机程序
单片机串行源程序如下: #include reg52.h #include intrins.h //LCD1602接口定义 #define LCD_DATA P1 //P1口(P14~P17)与LCD高四位(D4~D7)对应相接 sbit LCD1602_RS=P1^2; //数据指令 sbit LCD1602_EN=P1^3; //使能 //延时函数,12mhz 6t延迟时间10*255us void LCD_init(void); void LCD_en_write(void); void LCD_write_command(unsigned char comma
[单片机]
MSP430汇编指令自学笔记
伪指令:NAME(PROGRAM):标志一个程序模块的开始。 常用符号: Rn:R0-R15,常指R4-R5这四个通用寄存器。 #:立即数。 -/+:加减操作 &:后跟具体地址。 .w/.B:字(16位)/字节(8位)操作 @:后跟寻址地址 dst:目的操作数 src:源操作数。 寻址方式: 共7种,dst:只用4种。src7种均可。 1.寄存器寻址: 例;MOV R10,R11 ;R10的数据移入R11中 2.立即数寻址: MOV #23H,R4 ;十六进制数23 转移到R4中。
[单片机]
基于51单片机的LCD1602实现分秒计时总结
完成要求 1、实现分秒计时。 2、按键控制分秒的调整(两个按键分别控制分秒增加)。 3、实现整分报时功能(蜂鸣器响)。 4、PCB板的绘制及焊接 设计思路及实现原理 1、首先实现分秒计时功能。为实现分秒计时功能,需要使用到单片机中的计时器功能,通过计时器来完成秒增加的运算,进而对分进行运算。 2、其次在实现分秒自动计时的基础上添加按键分别对分秒进行控制。此步骤需要使用到按键检测,及按键消抖。因为在程序中使用两个返回值,所以按键对这两个返回值进行操作,在调秒过程中,需要使两返回值一致,否则分秒进位发生不一致。 3、最后在完成整分报时功能。此步骤需要对分秒的值进行判断,因为整分时,秒位为0,分位进1,而在初始时刻(即00:00)不
[单片机]
基于51单片机的<font color='red'>LCD1602</font>实现分秒计时总结
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved