標(biāo)題:
單片機(jī)12864顯示4行的程序有問題,求幫助
[打印本頁]
作者:
18686906042
時(shí)間:
2019-8-6 11:51
標(biāo)題:
單片機(jī)12864顯示4行的程序有問題,求幫助
這個(gè)是12864顯示4行的程序,第一行是“0123456789”,每一位再隨機(jī)變化,第二三四行顯示如程序中寫的,想請(qǐng)教大神為啥什么也不顯示呢,感覺程序沒有錯(cuò)誤的嗚嗚
單片機(jī)源程序如下:
#include<reg52.h>
#include<intrins.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD_data P0
sbit rs=P2^6;
sbit en=P2^5;
sbit rw=P2^7;
sbit psb=P3^2;
sbit wela=P3^7;
sbit dula=P3^6;
uchar dis1[10];
uchar dis2[]="www.tian";
uchar dis3[]="Îò°®Äú";
uchar dis4[]="~~~~~~";
void delayms(uchar xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void write_com(uchar cmd)
{
rs=0;
rw=0;
en=0;
P0=cmd;
delayms(5);
en=1;
delayms(5);
en=0;
}
void write_data(uchar dat)
{
rs=1;
rw=0;
en=0;
P0=dat;
delayms(5);
en=1;
delayms(5);
en=0;
}
void lcd_pos(uchar X,uchar Y)
{
uint pos;
if(X==0)
{X=0x80;}
else if(X==1)
{X=0x90;}
else if(X==2)
{X=0x88;}
else if(X==3)
{X=0x98;}
pos=X+Y;
write_com(pos);
}
void makerand()
{
uint ran;
ran=rand();
dis1[0]=ran/10000+0x30;
dis1[1]=ran%10000/1000+0x30;
dis1[2]=ran%1000/100+0x30;
dis1[3]=ran%100/10+0x30;
dis1[4]=ran%10+0x30;
ran=rand();
dis1[5]=ran/10000+0x30;
dis1[6]=ran%10000/1000+0x30;
dis1[7]=ran%1000/100+0x30;
dis1[8]=ran%100/10+0x30;
dis1[9]=ran%10+0x30;
}
void lcd_init()
{
psb=1;
en=0;
write_com(0x30);
delayms(5);
write_com(0x03);
delayms(5);
write_com(0x0c);
delayms(5);
write_com(0x01);
delayms(5);
}
void main()
{
uchar i;
write_com(0x80);
lcd_init();
wela=0;
dula=0;
delayms(10);
lcd_pos(1,0);
i=0;
while(dis2[i]!='\0')
{
write_data(dis2[i]);
delayms(50);
i++;
}
lcd_pos(2,0);
i=0;
while(dis3[i]!='\0')
{
write_data(dis3[i]);
delayms(50);
i++;
}
lcd_pos(3,0);
i=0;
while(dis4[i]!='\0')
{
write_data(dis4[i]);
delayms(50);
i++;
}
while(1)
{
lcd_pos(0,0);
makerand();
for(i=0;i<10;i++)
{
write_data(dis1[i]);
delayms(3000);
}
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1