哪位高手有12864和STC89C52的连接图,以及测试程序
求一份
邮箱:1920266977@qq.com
多谢了
亲,要善用百度啊·····尤其是百度文库
朋友你好下面是我自己的接法和程序希望能帮到你,另外12864的资料已发到你邮箱!12864按口接线为:VCC接5V,GND接地,RS接P1口的3, RW接P1口的0, E(始能端)接P1口的1, PSB(串并口选择)接P1口的2, A K(背光LED)接5V和地。我选的是并口接法8位数据数接口接P0口的0-7位。以下是程序
#include<reg52.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P1^3;
sbit RW=P1^0;
sbit PSB=P1^2;
sbit EN=P1^1;
uchar code addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};
void lcd_wcmd(uchar cmd);
void lcd_wdat(uchar dat);
void delay(uchar z)//延时
{
uchar i,j;
for(i=z;i>0;i--)
for(j=220;j>0;j--);
}
void lcd_checkBusy()//检测忙标志
{
uchar busy;
do{
EN = 0;
RS = 0;
RW = 1;
delay(4);
EN = 1;
busy = P0;
delay(4);
EN = 0;
}
while(busy&0x80);
}
void hanzi_Disp(uchar x,uchar y,uchar *pt)//显汉字
{
lcd_wcmd(addr_tab[8*x+y]); //写地址
while(*pt>0)
{
lcd_wdat(*(pt++)); //写数据
// break;
}
}
void lcd_wcmd(uchar cmd) //写指令
{
RS=0;
RW=0;
EN=0;
delay(4);
P0=(cmd);
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_wdat(uchar dat)//写数据
{
RS=1;
RW=0;
EN=0;
P0=dat;
delay(4);
EN=1;
delay(4);
EN=0;
}
void lcd_init()//初始化
{
PSB=1;
lcd_wcmd(0x30);
delay(4);
lcd_wcmd(0x0f);
delay(4);
lcd_wcmd(0x01);
delay(4);
}
void main()//主函数
{
void lcd_checkBusy(void);
lcd_init();
hanzi_Disp(0,0,"单片机世界");
//lcd_wcmd(0x91);
hanzi_Disp(3,0,"爱你到老");
while(1);
}
请看这篇文章啊!百度文库号东东
http://wenku.baidu.com/view/f0bda536f111f18583d05a03.html
--------------------------------------------
巴布工程师 365ele.com/bbs
--------------------------------------------
谢谢了,说实话小弟是想偷懒
亲,要善用百度啊·····尤其是百度文库
航航航航航。
学习了,,,,,,,,呵呵学习了,,,,,,,,呵呵学习了,,,,,,,,呵呵学习了,,,,,,,,呵呵
我来学习啦,哈哈哈哈,好东西要分享,真要啊啊