AT89S51下載后能正常運(yùn)行斷電重啟后卻不能正常運(yùn)行了,不知道是哪里出問題,網(wǎng)上也沒有搜到解決方法 。程序是1602液晶屏的,我改了一點(diǎn)給40266液晶屏用 ,不知道是不是程序的問。特來這里求助,請(qǐng)知道的指點(diǎn)一下。謝謝 !
就是下面這個(gè)程序:
#include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code table0[]="QQJL WEIXINDOUSHIJIAOLIUGONGJU"; //31字符 uchar code table1[]="WWW,COM WANGZJI"; //15 uchar num; sbit lcden=P2^7; sbit lcdrs=P2^6; void delay(uint z)//延時(shí)函數(shù) { uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com)//往LCD寫指令函數(shù) { lcdrs=0;//LCDRS為低時(shí)寫指令 P0=com;//往LCD數(shù)據(jù)口送指令 delay(5);//延時(shí)5毫秒 lcden=1; delay(5); lcden=0; } void write_data(uchar date)//往LCD寫數(shù)據(jù)函數(shù) { lcdrs=1;//LCDRS為低時(shí)寫數(shù)據(jù) P0=date;//往LCD數(shù)據(jù)口送數(shù)據(jù) delay(5);//延時(shí)5毫秒 lcden=1; delay(5); lcden=0; } void init()//初始化函數(shù) { lcden=0;//LCD使能信號(hào)端置零 write_com(0x38);//往LCD寫顯示模式設(shè)置的指令 write_com(0x06);//LCD開顯示,光標(biāo)不顯示、不閃爍 write_com(0x06);//當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一且光標(biāo)加一,整屏顯示不移動(dòng) write_com(0x01);//數(shù)據(jù)指針和所有顯示清零 } void main() { init(); //第一行顯示 write_com(0x80+0x10);//第一行第一字符位置 for(num=0;num<31;num++) //這個(gè)數(shù)字20就是顯示字?jǐn)?shù) 個(gè)數(shù) { write_data(table0[num]); delay(200); } //第二行顯示 write_com(0x80+0x50); for(num=0;num<15;num++) { write_data(table1[num]); delay(200); } for(num=0;num<40;num++) { write_com(0x18); delay(200); } while(1); }
|