问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁有LCD1602程序 发过来看看 自己写的测忙函数老是出b...

发布网友 发布时间:2023-11-14 20:13

我来回答

1个回答

热心网友 时间:2024-07-23 11:58

本程序已通过实际电路检测

#include<reg52.h>
#define uchar unsigned char
sbit rs=P2^0; //lcd1602 rs端
sbit rw=P2^1; //lcd1602 rw端
sbit en=P2^2; //lcd1602 e端
uchar code table[]="wang yun";
uchar code tt1[]={0x1F,0x1F,0x04,0x0E,0x0E,0x04,0x1F,0x1F}; //王
uchar code tt2[]={0x0E,0x0E,0x00,0x1F,0x1F,0x0C,0x19,0x1F}; //云
///////////////////////////////////////
void delay(uchar H,uchar L) //定时器延时程序段
{ TF0=0;TH0=H;TL0=L;
while(!TF0);
}
////////////////////////////////////// 写指令程序段
void w_comd(uchar lcd1602_code)
{ en=1;rs=0;rw=0;
P0=lcd1602_code;
delay(0xff,0xd8);
en=0; //en端下降沿触发数据发送
delay(0xff,0xd8); //本程序没有 忙检测程序,所以此处必须给足够长的延时,保证数据发送完全
}
///////////////////////////////////////写数据程序段
void w_data(uchar lcd1602_data)
{ en=1;rs=1;rw=0;
P0=lcd1602_data;
delay(0xff,0xd8);
en=0; //en端下降沿触发数据发送
delay(0xec,0x78);
}
//////////////////////////////////// 初始化lcd1602
void set_lcd1602()
{ w_comd(0x01); //清屏
delay(0xf9,0x98);
w_comd(0x02); //地址指针归位
delay(0xf9,0x98);
w_comd(0x06); //
w_comd(0x0c); //开显示屏
w_comd(0x38); //8位传送数据 2行显示
}
/////////////////////////////////// 显示程序段
void view_lcd1602(uchar addr,uchar *i) //*i为所传字符串指针
{ int j;
w_comd(addr); //写入地址
while(*i>0)
{ w_data(*i); //写入数据
i++;
for(j=0;j<=100;j++)
delay(0x15,0xa0);
w_comd(0x18); //左移指令
}
}
/////////////////////////////////////// cgram写入程序段
void cgram_set_lcd1602(uchar addr,uchar*i)
{ int j;
w_comd(addr); //地址写入
for(j=0;j<8;j++)
{ w_data(*i); //自定义数据写入
i++;
}
}

////////////////////////////////////// 主程序
void main()
{
TMOD=0x00; //设定定时器
TR0=1; //定时器0开
set_lcd1602(); //初始化LCD1602
view_lcd1602(0x8f,table);
cgram_set_lcd1602(0x40,tt1);
cgram_set_lcd1602(0x48,tt2);
w_comd(0xca); w_data(0x00); w_data(0x01); //自定义字符显示
while(1);
}
LCD1602为什么有时要测忙

因为LCD1602控制芯片也是一个CPU,它在处理上位机发来的某些指令的时候,耗时较长。如复位命令,全屏清除命令等。另外,LCD1602的CPU速度较慢,上位机较快时,LCD1602CPU 来不及完成上条命令,会对后续命令不予理睬,这样就造成了命令序列不能正确完整地到达LCD1602CPU,以至于显示不正常。

stm32是什么?stm32的简介

STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM32 微控制器体积小巧,可以集成到各种电子设备中。2. 低功耗:STM32 微控制器功耗低,可以节省能源和电力成本。3. 高性能:STM32 微控制器性能优异,可以实现高速处理、复杂控制和高精度操作。4. 丰富的外设:STM32 微控制器拥有丰富的外设,例如GPIO、UART、SPI、I2C等,可以方便地连接外部器件。5. 强大的资源:STM32 微控制器内置了…STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能化的发展。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服...

LCD1602,我一开始烧进51单片机后,1602第一行全黑,第二行亮着,就是显 ...

调节一下1602 第三个管脚接的滑动变阻器

这条lcd1602的C程序怎么总是有错误的?

showchar(l++,*(ptr+i));} /***ptr类型声明有问题吧,还有showchar两个参数之间要用逗号,要全小写,跟上面的保持一致,指针变量ptr要明确声明unsigned char *ptr,还有,如果你的字符串不够16个这样就不太好吧,改一下吧:***/ void ShowString(unsigned char line,unsigned char *ptr){ unsigne...

请问下面程序有什么错?LCD1602+AT89S52。结果上面一排全黑,下面一排...

LCD1602+AT89S52。结果上面一排全黑,下面一排无显示 #include&lt;reg52.h&gt;#defineLCDP0sbitRS=P3^7;sbitRW=P3^6;sbitEN=P3^5;bitCheckBusy()//LCD忙碌检测,忙碌返回1,空闲返回0{biti;LCD=0xFF;RS=0;RW=1;EN=1;if(LCD&amp;0x80)i=1;elsei=0;EN=... #include&lt;reg52.h&gt;#define LCD P0sbit RS=P3^7...

lcd1602的启动时,需要先调用一次什么函数

lcd1602的启动时,需要先调用一次函数:LCD1602是一个可以显示两行字符的LCD显示器,每一行可以都写入40个字符。写入1602中要显示的数据好比油,如果以单片机的高运行速度向1602写数据就很可能造成上面所说的溢出,比如连续写入abc,结果只显示出了a,这是因为1602的显示芯片每次都要花时间来处理输入的ascii码...

LCD1602用C语言编程如何显示字符?

define _LCD_BIT_IS 4 //CPU与LCD1602间使用DB7-DB4这4根数据线进行传输 include &lt;at89x51.h&gt; //头文件 include &lt;string.h&gt;//strlen()函数头文件 void LCMInit(void); //LCM初始化化 void WriteDataLCM(unsigned char WDLCM);//写数据 void WriteCommandLCM(unsigned char WCLCM,int Buy...

LCD1602液晶显示出现乱码,求高手解惑!急!!!谢谢

LCD1602_delay();LCD1602_EN = 1;LCD1602_delay();LCD1602_EN = 0;} / 名称 : LCD1602_wdata(uchar del)功能 : 1602写数据函数 输入 : 需要写入1602的数据 输出 : 无 / void LCD1602_wdata(uchar del){ while(Busy());LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_EN = 0;LCD1602_delay(...

lcd1602液晶显示的程序

void SMC1602_WriteByte(bit write_type,uchar write_data)//1602液晶屏读函数 { uchar i=BusyReadCount;for(;i;i--);//延时操作,为写操作预留回复时间 while((SMC1602_Read(CommOperate)&amp;BusyState) &amp;&amp;(++i&lt;=BusyReadCount));//读取忙标志(BusyReadCount次),若均忙中,则不再读取忙标志,...

LCD1602第一行显示为16个小黑块,仿真没问题,但是烧写到板子里就有问题...

比如要显示abc,则这样操作,写a---判忙---写b---判忙---写c---判忙。这样就不会出错了。这几年推出的lcd,像手机的屏响应速度就比较快,而1602这个古董我用示波器测过,大约40us左右的忙处理时间,而很多速度快的单片机的指令周期都是ns级的。也就是说单片机相当一段时间都在‘等’LCD。incl...

AVR上面lcd1602只亮不显示,但是写入程序之后屏幕一直在闪烁

写个简单数字程序 看看先不显示数字 在检查一下温度传感器 其他都对 那就是温度传感器的问题 要不你现在开发板上面 看看 温度传感器好不好用!

LCD1602显示函数流程图 1602液晶显示程序流程 1602lcd液晶显示程序流程图 lcd1602时序图程序 lcd1602显示数字程序 LCD1602液晶显示10 51单片机显示1602液晶屏程序 1602lcd液晶显示程序 lcd1602简单显示程序
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四川成人大学自考专业有哪些 世界辶窗门票多少 成人大学自考有哪些专业比较好 感觉不到情感是怎么回事儿 车八岭原生态漂流谷地址在哪里? 郭德纲于谦开的公司都有哪些 成人大学自考能学什么专业 车八岭国家级自然保护区旅游资源 木雕如何处理 民间中医专长医师资格证怎么报名 怎么找回原来注册的 怎么通过找别人的位置? 青岛景点排行榜前十名 排名-青岛最著名景点 朗读中文,英文还有日语的技巧,别人说我读书像念经 第二次该如何修改? 求一部动画电影名:内容类似灰姑娘+白雪公主的综合体,但故事里... 《古朗月行》的诗句196 ...发的说说,我点了赞,可过几个小时点赞的那个有变成原来的,就像... 问道手游改造装备找哪个npc 向LCD1602写入指令,其中有一个函数如下8 急啊!!在线等。。。LCD1602的测忙函数的问题,13 问一下,下面这段代码是检测LCD是否忙的函数4 谁知道这个礼物的名称??? 不是对方微信好友,但是知道对方,怎么举报对方?12 提示win7副本不是正版不管有没有影响吗48 不联系的前同事找你,八成是这3个原因,想明白了再回复 内蒙古财经大学最低奖学金给多少14 四边形有几种? 梦幻西游里一个号绑定了3个将军令怎么解绑28 不加微信怎么投诉别人?1 手游版问道装备改造后不见去哪找??我只改了武器结果一身装备都... 如果重新注册一个之前的还可以找得回来吗? 微信不小心重新注册了想登回原来的怎么办? 为什么水在烧瓶中会再沸腾呢? bear什么意思?1 可以随意更改吗? 济南香溢澜庭和锦悦府哪个好 怎么才能找回原来的呢? 山西财大奖学金班上多少人拿到 如果我4月凭证已经装订好了,但是这个月我发现有4月的销货清单...1 NDF用+13的双龙魔影好还是+12的远古之断魂好3 地下城双龙魔影剑和远古之断魂不知道要买哪把,求介绍 我爱一个人,该怎么做呢?1 什么面板的3D电视比较好啊? 我很爱一个人应该怎么做?24 笃行不怠的意思 应该如何理解 LCD1602为什么有时要测忙12 梦见死不瞑目6 问道手游装备改造好不好?属性都是?5 海上繁花终于要播了,压播五年实属不易,李沁领衔实力派阵容要来袭吗...