📄 main.c
字号:
#include "iom162v.h"
#define uint8 unsigned char
#define uint16 unsigned int
#define uint8 unsigned char
#define uint16 unsigned int
#define RS 0x01
#define RW 0x02
#define E 0x04
void delay_us(uint16 z)
{
uint16 x;
for(;z>0;z--)
{
for(x=10;x>0;x--);
}
}
void lcd_busy(void)
{
DDRA=0x00;
PORTA=0xff;
while(1)
{
PORTC&=~E;
PORTC&=~RS;
PORTC|=RW;
// delay_us(10);
PORTC|=E;
if(!(PINA&0x80))break;
}
DDRA=0xff;
}
void lcd_wr_cmd(uint8 cmd)
{
lcd_busy();
PORTC&=~RS;
PORTC&=~RW;
PORTA=cmd;
delay_us(50);
PORTC|=E;
delay_us(50);
PORTC&=~E;
}
void lcd_wr_date(uint8 date)
{
lcd_busy();
PORTC|=RS;
PORTC&=~RW;
PORTA=date;
delay_us(50);
PORTC|=E;
delay_us(50);
PORTC&=~E;
}
void lcd_init(void)
{
DDRA=0xff;
DDRC|=0x07;
lcd_wr_cmd(0x38);
delay_us(300);
lcd_wr_cmd(0x38);
lcd_wr_cmd(0x06);
lcd_wr_cmd(0x0c);
lcd_wr_cmd(0x01);
delay_us(500);
DDRA=0xff;
DDRC|=0x07;
}
void lcd_wr_byte(uint8 addr,uint8 date)
{
lcd_wr_cmd(0x80+addr);
lcd_wr_date(date);
delay_us(100);
}
void lcd_wr_str(uint8 addr,uint8 str[],uint8 len)
{
uint8 i=0;
lcd_wr_cmd(0x80+addr);
for(i=0;i<len;i=i+1)
{
lcd_wr_date(str[i]);
//i=i+1;
// str=str+1;
}
}
void main(void)
{
uint8 ss[]="hello word!";
lcd_init();
lcd_wr_str(0x01,ss,12);
lcd_wr_byte(0x03,'a');
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -