void LCD1602_CheckBusy(void) { unsigned char i = 255; LCDPORT = 0xFF; //读之前先置位,准备读取IO口数据 LCD1602_RS = 0; LCD1602_RW = 1; //使液晶处于读数据状态 LCD1602_EN = 1; //使能液晶,高电平有效 while((i--) && (LCDPORT & 0x80)); //忙检测 D7为1忙禁止读写为0闲是允...
void LCD_check_busy(void) //检测LCD状态,检查LCD是否繁忙 { do { LCD_EN=0;LCD_RS=0; LCD_RW=1;DELAY_8_NOP(); LCDIO=0xff;DELAY_8_NOP(); LCD_EN=1; } while(LCD_BUSY==1); LCD_EN=0; } /*** *函数名称: void LCD_send_command(uchar command) *函数功能: 发送控制指令 *入口参...
void lcd_initial(void); //LCD初始化函数 void check_busy(void); //检查忙标志函数 void write_command(uchar com); //写命令函数 void write_data(uchar dat); //写数据函数 void string(uchar ad,uchar *s); void lcd_test(void); void delay(uint); //延时函数 void main(void) //主程序 { ...
void Lcd1602_Busy_Check(void) { uint8 tmp; LCD1602_D7_SET_INPUT; do { LCD1602_RS_SET_LOW; LCD1602_RW_SET_HIGH; LCD1602_EN_SET_LOW; LCD1602_EN_SET_HIGH; DELAY_2US; tmp = LCD1602_READ_D7_PIN;//tmp = lcdPort; DELAY_1US; LCD1602_EN_SET_LOW; DELAY_1US; } while (tmp); } ...
bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; //命令RW_SET; //读EN_CLR; //使能赋0_nop_(); EN_SET;//使能赋1return (bit)(DataPort & 0x80);//}在DataPort写1111 1111,读到的是啥?原理是什么?怎么判断1602忙的?然后把DataPort与1,得到的值转换返回. 扫码下载作业帮搜索答疑一搜即得...
void lcd1602_check_busy(); void Write_Byte_1602(u8 Byte,bit dat); void lcd1602_Init(); void Write_char1_1602(bit x,u8 y,u8 dat1); void Write_string_1602(bit x,u8 y,u8 *str); void main(void) { 登录后复制lcd1602_Init();Write_string_1602(0,0," Hello guy!");Write_char1_16...
proteus 仿真程序,结果1602 只亮不显示,数据端全处于高位。LCD子程序如下(仿真proteus文件在附件):#include"LCD1602.h"#include"delay.h"xdata LCD_Type LCD;static void LCD_CheckBusy(void){do{LCD_EN=0;LCD_RS=0;LCD_RW=1;LCDIO=0xff;LCD_EN=1;...
check_busy();//检测忙标志位BF=1则等待,若BF=0,则可对LCD 1602写入命令E=0;//按规定写数据时,E应为正脉冲,所以先置E=0//按规定RS=1和RW=0时,才可以写入数据RS=1; RW=0;out=dat;//将数据”dat“从P0口输出,即写入LCD 1602E=1;//E产生正跳变_nop_();//空操作1个机器周期,等待硬件反应E...
27、针初始值 清屏,数据指针清零 回车, 数据指针清零 口初始化 1602 写命令 写数据 检查忙 void Write1602_One_Dat(uint8 X,uint8 Y,uint8 dat);/void Write1602_Com(uint8 com); void Write1602_Dat(uint8 dat); / void CheckBusy(void); /写一个数写一个数据 void Write1602_Str(uint8 addr,ui...
读操作时序与写操作时序的区别在于:写操作时序在E=0的时候就开始传输数据,而读操作时序要等E=1之后才开始传输数据。 代码如下: voidcheck_busy()//检测忙信号函数{chartmp =0x80;//创建一个变量,存放数据databuffer=0x80;//初始值为忙,只要当单片机发数据后高位变...