sbit RS=P2^6; //位定義 把P2的第六位定義為RS 以後操作RS等同於操作P2^6
sbit RW=P2^5; //同上
sbit E=P2^7; //同上
unsigned char busy; //把變量busy定義為 無符號字符變量
void delay(unsigned char asf) //這是個延時函數 括號內asf 為延時的時間
{while(asf--);}//當asf>=1時壹直在這循環,直到asf<1.
lcd_busy()//這是寫壹個函數 不過前面應該加上void 變為 void lcd_busy()
{RS=0;RW=1;E=1;P0=0X80;delay(0xff);//把0賦值給RS 把1賦值給RW 把1賦值給E。P0口輸出0x80 延時0xff這麽長時間。
if(P0==0X00)//if判斷語句 當P0=0x00時執行下面busy=0x00語句
busy=0x00; //把0賦值給busy
else //如果上面的if判斷不成立則執行busy=0x01
busy=0x01;//同上
}
write_cmd(unsigned char cmd)//創建子函數 口號內為定義cmd為無符號字符型變量
{
busy=1; //同上
while(busy)因為busy=1 所以會壹直執行下面大括號內的語句 妳這少了個括號
{
lcd_busy(); //調用lcd_busy()這個函數 在上面了
RS=0;RW=0;E=0;P0=cmd;//前三個是賦值語句和上面壹樣,後面是把cmd的值給P0
delay(0xff);延時函數 同上
E=1;//普通賦值
delay(0xff);延時函數 同上
E=0;//普通的賦值
}
lcd_cmd()//同上創建子函數
{
write_cmd(0x38);調用上面的write_cmd(unsigned char cmd)函數其中cmd被賦值為0x38
write_cmd(0x08);//同上
write_cmd(0x01);//同上
write_cmd(0x06);//同上
write_cmd(0x0c);//同上
write_cmd(0x84);//同上
}
lcd_date()//這個函數參考上面的lcd_busy()
{
busy=1;
while(busy)
lcd_busy();
RS=1;RW=0;E=0;P0=0X62;
delay(0xff);E=1;delay(0xff);E=0;
}
main()主函數
{lcd_cmd();lcd_date();while(1);}分別調用lcd_cmd();lcd_date();這兩個子函數。while(1)死循環,函數執行到這就 壹直執行這個。