經過一番波折,和參考網路上許多的範例代碼,終於把驅動弄出來了,如果第一行都是黑塊,可能是程式沒有初始化成功,也有可能是線沒接好,兩行黑塊,可以把對比度那個接腳接上1k歐姆電阻試試看,如果初始化成功,但是印出來的卻是亂碼,有可能是連接線接觸不良,以上三種,都被我遇到了...,結論是線要接好,我的線一直接觸不良,耗掉很多時間在搞莫名其妙的問題,在此筆記一下
#include<reg51.h>
#include<stdio.h>
#include<string.h>
#define port P0
sbit rs=P2^2;
sbit rw=P2^1;
sbit en=P2^0;
void delay(unsigned int ms)
{
unsigned int i,k;
for(i=0;i<ms;i++)
{
k=123;
while(k--);
}
}
void write_cmd(unsigned char a)
{
rs=0;
rw=0;
port=a;
en=1;
delay(5);
en=0;
}
void write_data(unsigned char a)
{
rs=1;
rw=0;
port=a;
en=1;
delay(5);
en=0;
}
void lcd_ini()
{
rs=0;
write_cmd(0x01);
write_cmd(0x38);
write_cmd(0x0F);
write_cmd(0x06);
}
void main()
{
unsigned char str[]="hello miku!";
unsigned int i;
lcd_ini();
write_cmd(0X00);//設定 dd ram的位址
i=0;
while(str[i])
{
write_data(str[i]);
i++;
}
while(1);
}
沒有留言:
張貼留言