单片机 1602 液晶屏 检测是否忙对的c程序,看不懂,望详解

单片机 1602 液晶屏 检测是否忙对的c程序,看不懂,望详解,第1张

void busy_test()//检测lcd是否忙

{

    u8 st            //忙状态标志 0:不忙,0x80:忙 

    if(f_init==0)     //如果某个东西没有初始化

    {

         return      // 退出忙判断,不执行下面的代码

    }

    lcd=0xff         // 先往数据端口赋高电平,便于读数据 

    rs=0             // 读忙设置

    rw=1//读

    do

    {

        e=1          // 数据端口读写使能

        st=lcd       // 读数据端口的值

        e=0          // 禁止数据端口读写

    }

    while(st&0x80)   // 如果忙位BF为1,就一直读端口数据,直到为0才退出忙判断。

                      // BF:忙标志位,为数据端口的BIT7位。所以为0x80

}

这是为你量身制作的,希望你能喜欢,光标根据按键在数字下面闪烁,一定符合你的要求,给你截了一张效果图

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

uchar code table[]="1602"

sbit key1=P1^0

sbit key2=P1^1

sbit key3=P1^2

sbit key4=P1^3

sbit rs=P2^0

sbit rw=P2^1

sbit en=P2^2

void delay(uint z)

{

uint x,y

for(x=zx>0x--)

for(y=110y>0y--)

}

void write_com(uchar com)

{

rs=0

rw=0

en=0

P0=com

delay(5)

en=1

delay(5)

en=0

}

void write_dat(uchar dat)

{

rs=1

rw=0

en=0

P0=dat

delay(5)

en=1

delay(5)

en=0

}

void init()

{

uchar i

write_com(0x38)

write_com(0x0c)

write_com(0x06)

write_com(0x01)

write_com(0x86)

for(i=0i<4i++)

{

write_dat(table[i])

delay(5)

}

}

void main()

{

init()

while(1)

{

if(key1==0)

{

delay(10)

if(key1==0)

{

while(key1==0)

write_com(0x86)

write_com(0x0f)

}

}

if(key2==0)

{

delay(10)

if(key2==0)

{

while(key2==0)

write_com(0x87)

write_com(0x0f)

}

}

if(key3==0)

{

delay(10)

if(key3==0)

{

while(key3==0)

write_com(0x88)

write_com(0x0f)

}

}

if(key4==0)

{

delay(10)

if(key4==0)

{

while(key4==0)

write_com(0x89)

write_com(0x0f)

}

}

}

}

这个是1602内部结构决定的,你只需要在初始化的时候先设置三次显示,然后再设置你的其他要求。

芯片厂家推荐的用法:

INT:

MOV

A,#30H

MOV

DATR,#CW_ADD

MOV

R2,#03H

INT1:

MOVX

@DPTR,A

CALL

DELAY

DJNZ

R2,INT1

这上面就是1602对于51单片机推荐的初始化之前加的三次模式设置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7733996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存