生成一个ICCAVR代码 用于验证LCD1602能否亮
时间: 2024-03-07 14:52:11 浏览: 68
lcd1602显示屏代码
3星 · 编辑精心推荐
好的,以下是一个简单的ICCAVR代码用于验证LCD1602是否能够正常亮:
```
#include <avr/io.h>
#include <util/delay.h>
#define LCD_DATA_PORT PORTB // 将LCD数据线连接到MCU的PB0-PB7引脚
#define LCD_CTRL_PORT PORTD // 将LCD控制线连接到MCU的PD0-PD2引脚
#define RS PD0 // 将LCD的RS引脚连接到PD0
#define E PD1 // 将LCD的E引脚连接到PD1
void lcd_command(unsigned char cmnd) {
LCD_DATA_PORT = cmnd;
LCD_CTRL_PORT &= ~(1<<RS); // 将RS引脚设为低电平,表示发送的是命令
LCD_CTRL_PORT |= 1<<E;
_delay_us(1);
LCD_CTRL_PORT &= ~(1<<E);
_delay_ms(3);
}
void lcd_init(void) {
LCD_DATA_PORT = 0xFF;
LCD_CTRL_PORT &= ~(1<<RS); // 将RS引脚设为低电平,表示发送的是命令
LCD_CTRL_PORT &= ~(1<<E);
_delay_ms(20);
lcd_command(0x38); // 8位数据,2行显示,5x7点阵字符
lcd_command(0x0C); // 打开LCD显示,关闭光标显示
lcd_command(0x06); // 光标自动右移
lcd_command(0x01); // 清除显示
_delay_ms(2);
}
void lcd_write_char(unsigned char data) {
LCD_DATA_PORT = data;
LCD_CTRL_PORT |= 1<<RS; // 将RS引脚设为高电平,表示发送的是数据
LCD_CTRL_PORT |= 1<<E;
_delay_us(1);
LCD_CTRL_PORT &= ~(1<<E);
_delay_ms(1);
}
int main(void) {
DDRD = 0xFF; // 将PD0-PD2引脚设为输出模式
DDRB = 0xFF; // 将PB0-PB7引脚设为输出模式
lcd_init(); // 初始化LCD
lcd_write_char('H');
lcd_write_char('e');
lcd_write_char('l');
lcd_write_char('l');
lcd_write_char('o');
while(1) { }
}
```
这个代码会向LCD1602屏幕上写入"Hello"这个单词。如果屏幕正常亮起并显示该单词,则表明LCD1602模块能够正常工作。
阅读全文