|
//本程序?yàn)樽詈?jiǎn)單的顯示漢字程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^0;
sbit rw=P1^1;
sbit e=P1^2;
//sbit rst=P1^5;
uchar code table1[]="好好學(xué)習(xí)單片機(jī)!" ;
uchar code table2[]=123456" ;
/*****************延時(shí)***************/
void delayms(uint z) //延時(shí)子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay50us(uint z) //延時(shí)子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=19;y>0;y--);
}
/***********寫(xiě)命令**********************/
void write_12864com(uchar com)
{
e=0;//為后面做準(zhǔn)備
rw=0;//為低時(shí)寫(xiě)有效
rs=0;//為為是寫(xiě)命令,為1是寫(xiě)數(shù)據(jù)
delay50us(1);
P0=com;
e=1;//一個(gè)高脈沖,命令寫(xiě)入
delay50us(10);
e=0;//拉低為下一個(gè)準(zhǔn)備
delay50us(10);
}
/***********寫(xiě)數(shù)據(jù)**********************/
void write_12864dat(uchar dat)
{
e=0;//為后面做準(zhǔn)備
rw=0;//為低時(shí)寫(xiě)有效
rs=1;//為為是寫(xiě)命令,為1是寫(xiě)數(shù)據(jù)
delay50us(1);
P0=dat;
e=1;//一個(gè)高脈沖,命令寫(xiě)入
delay50us(10);
e=0;//拉低為下一個(gè)準(zhǔn)備
delay50us(10);
}
void init_12864()
{
delayms(100);
// rst=1;//rst為1是使用8位并行數(shù)據(jù)傳送
write_12864com(0x30);
delay50us(5);
write_12864com(0x30);
delay50us(5);
write_12864com(0x0e);//打開(kāi)所有顯示
delay50us(5);
write_12864com(0x0c);//不顯示光標(biāo)
delay50us(5);
write_12864com(0x01);//清除顯示
delayms(20);
write_12864com(0x06); //模示設(shè)置
delay50us(5);
}
void hanzi(uchar *ch)
{
while(*ch!=0)
write_12864dat(*ch++);
delayms(200);
}
void display3()
{
uchar i;
write_12864com(0x90);
for(i=0;i<16;i++)
{
write_12864dat(table1[ i]);
delay50us(5);
}
}
void display4()
{
uchar i;
write_12864com(0x98);
for(i=0;i<16;i++)
{
write_12864dat(table2[ i]);
delay50us(5);
}
}
void display5()
{
write_12864com(0x80);
//hanzi("白日依山盡, 唐");
hanzi("歡迎來(lái)到——");
delay50us(5);
write_12864com(0x90);
hanzi(單片機(jī)");
//hanzi("黃河入海流。王");
delay50us(5);
write_12864com(0x88);
//hanzi("欲窮千里目,之");
hanzi("單片機(jī)人人能學(xué)好");
delay50us(5);
write_12864com(0x98);
//hanzi("更上一層樓。渙");
hanzi("我棒,我很行!!");
delay50us(5);
}
void main()
{
init_12864();
//display3();
//display4();
display5();
P2=0x00;
while(1);
}
|
|