//#ifndef _vdf_INCLUDED_
//#define _vdf_INCLUDED_
#define rs PORTA.0
#define rw PORTA.1
#define e PORTA.2
void lcd_init(void); //OK
void lcd_clear(void); //OK
void lcd_gotoxy(unsigned char, unsigned char); //check
void lcd_putchar(unsigned char); //OK
void lcd_putsf(flash unsigned char *); //check
void lcd_brightness(unsigned char ); //OK
void write_data(unsigned char );
void write_cmd(unsigned char );
void write_8bit_cmd(char);
void vdf_on(void);
void vdf_off(void);
//*****************************************************
void lcd_init(void)
{
delay_ms(15);
write_8bit_cmd(0x30);
delay_ms(15); //4.1ms+ ;10ms
write_8bit_cmd(0x30);
delay_ms(15);//.100ms+ ;10ms
write_8bit_cmd(0x30);
delay_ms(15);//0ms+ ; 10ms
write_8bit_cmd(0x20); /* 4 bit mode */
delay_ms(10);
//DD RAM address
//DB7=1 + ADD ranges 0-27 line 1, 40h-67h line2w
rs=0;
rw=0;
//set shift and cursor
write_cmd(0x06);
delay_ms(10);
write_cmd(0x0C); //display ON antes f bink cursor
delay_ms(10);
lcd_gotoxy(0,0);
// delay_us(5);
//write_cmd(0x80); //address= 00h
// delay_ms(10);
//disp_clear();
//encender el display D=1 0x0C
lcd_brightness(1);
}
void lcd_clear(void)
{
write_cmd(0x01);
delay_ms(5);
}
void lcd_gotoxy(unsigned char x,unsigned char y)
{
write_cmd(0x80+x+0x40*y);// antes 0x80+x+0x40*y
}
void lcd_putchar(unsigned char code)
{
write_data(code);
}
void lcd_putsf(flash unsigned char *str)
{
//lcd_gotoxy(0,0);
while(str[0])
{
lcd_putchar(str[0]);
// printf("%c",str[0],);
str++;
}
}
void lcd_brightness(unsigned char b)
{
write_cmd(0x28);
write_data(b);
}
void vdf_on(void)
{
write_cmd(0x0c); //display ON
delay_ms(10);
}
void vdf_off(void)
{
write_cmd(0x08); //display ON
delay_ms(10);
}
void write_8bit_cmd(unsigned char cmd)
{
unsigned char temp;
rs=0;
rw=0;
// DDRA=0x00;
temp=PORTA;
temp=temp&0x0F; //limpio la parte del comando (MSB)
temp|=(cmd&0xF0);
// DDRA=0xff;
PORTA=temp;
e=1;
delay_us(1);
e=0;
delay_ms(1);
}
//#endif
void write_cmd(unsigned char cmd)
{
unsigned char temp;
rs=0;
rw=0;
//DDRA=0x00;
temp=PORTA;
temp&=0x0f;
temp|= (cmd&0xf0);
//DDRA=0xff;
PORTA=temp;
// PORTA=cmd&0xf0;
e=1;
delay_us(1);
e=0;
delay_us(50);
//DDRA=0x00;
temp=PORTA;
temp&=0x0f;
temp|= (cmd<<4);
//DDRA=0xff;
PORTA=temp;
e=1;
delay_us(1);
e=0;
delay_ms(1);
}
void write_data(unsigned char dat)
{
unsigned char temp;
rs=1;
rw=0;
//DDRA=0x00;
temp=PORTA;
temp&=0x0f;
temp|=(dat& 0xf0);
//DDRA=0xff;
PORTA=temp;
// PORTA=
// PORTA&= (dat|0x0f);
e=1;
delay_us(1);
e=0;
delay_us(50);
temp=PORTA;
//DDRA=0x00;
temp&=0x0f;
temp|=(dat<<4);
//DDRA=0xff;
PORTA=temp;
// PORTA&= (dat<<4)|0x0F;
e=1;
delay_us(1);
e=0;
rs=0;
delay_ms(1);
}
vdf.zip_vdf
版权申诉
93 浏览量
2022-09-24
02:21:45
上传
评论
收藏 1011B ZIP 举报
Kinonoyomeo
- 粉丝: 77
- 资源: 1万+
最新资源
- 23957825633dCar.zip
- Ruby优质学习资源和工具与案列应用场景.txt
- 阿里巴巴大数据实践之路-陈鹏宇(PDF格式).rar
- 基于医疗知识图谱的智能问答系统python实现源码+使用教程(毕业设计).zip
- 基于Python实现的医疗知识图谱的知识问答系统源码+使用教程(毕业设计).zip
- Objective-C优质学习资源和工具与案列应用场景.txt
- 基于python知识图谱医疗领域问答系统实现完整源码+使用说明(毕业设计).zip
- JavaScript优质学习资源和工具与案列应用场景.txt
- c#优质学习资源和工具与案列应用场景.txt
- 《医疗与在线教育PPT模板合集》-点亮您的演讲与教学!
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈