當前位置:編程學習大全網 - 編程語言 - 單片機C語言,求大俠們,把每壹項的註解標到後面,謝謝。

單片機C語言,求大俠們,把每壹項的註解標到後面,謝謝。

#include <reg52.h> //調用頭文件reg52.h

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)死循環,函數執行到這就 壹直執行這個。

  • 上一篇:寶馬新3系怠速不穩,重新編程能解決嗎
  • 下一篇:古代有幾種燈。
  • copyright 2024編程學習大全網