解释这段代码:void LCD_Write(unsigned char cmd,unsigned char isData) { delay_us(2000); //Hardcoding delay, keep waiting while the LCD is busy lcd1602_RS = isData; lcd1602_EN = 0; if(cmd&0x80)lcd1602_D7=1;else lcd1602_D7=0; if(cmd&0x40)lcd1602_D6=1;else lcd1602_D6=0; if(cmd&0x20)lcd1602_D5=1;else lcd1602_D5=0; if(cmd&0x10)lcd1602_D4=1;else lcd1602_D4=0; delay_us(2); lcd1602_EN=1; delay_us(2); lcd1602_EN=0; if(cmd&0x08)lcd1602_D7=1;else lcd1602_D7=0; if(cmd&0x04)lcd1602_D6=1;else lcd1602_D6=0; if(cmd&0x02)lcd1602_D5=1;else lcd1602_D5=0; if(cmd&0x01)lcd1602_D4=1;else lcd1602_D4=0; delay_us(2); lcd1602_EN=1; delay_us(2); lcd1602_EN=0;
时间: 2023-06-13 11:09:07 浏览: 95
无法解析的外部符号”private: char * __cdecl cv::String::allocate(unsigned __int64)” (?allocate@String@cv@@AEAA
这段代码是用于在LCD1602显示屏上写入指令或数据的函数。参数cmd指定要写入的指令或数据,参数isData指定是写入数据还是指令(isData=1表示写入数据,isData=0表示写入指令)。具体解释如下:
1. 延迟2ms,等待LCD1602显示屏准备好接收指令或数据。
2. 根据isData的值,设置RS引脚为高电平(写入数据)或低电平(写入指令)。
3. 根据cmd的高4位(即cmd&0x80、cmd&0x40、cmd&0x20、cmd&0x10),设置D7~D4引脚的状态。
4. 延迟2us。
5. 将EN引脚设为高电平,表示开始写入指令或数据。
6. 延迟2us。
7. 将EN引脚设为低电平,表示写入完成。
8. 根据cmd的低4位(即cmd&0x08、cmd&0x04、cmd&0x02、cmd&0x01),设置D7~D4引脚的状态。
9. 延迟2us。
10. 将EN引脚设为高电平,表示开始写入指令或数据。
11. 延迟2us。
12. 将EN引脚设为低电平,表示写入完成。
阅读全文