編譯問題
..\LCD12864.C(129): warning C209: '_write_cmd': too few actual parameters
..\LCD12864.C(131): warning C209: '_write_cmd': too few actual parameters
..\LCD12864.C(133): warning C209: '_write_cmd': too few actual parameters
..\LCD12864.C(135): warning C209: '_write_cmd': too few actual parameters
..\LCD12864.C(155): warning C209: '_write_cmd': too few actual parameters
程序
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- /*LCD12864 端口定義*/
- #define LCD_data P0 //數(shù)據(jù)口
- sbit LCD_RS = P2^4; //寄存器選擇輸入
- sbit LCD_RW = P2^5; //液晶讀/寫控制
- sbit LCD_EN = P2^6; //液晶使能控制
- sbit LCM_RST = P2^7;
- uchar code dis0[]=" 顯示系統(tǒng) ";
- uchar code dis1[]="1.輸入 ";
- uchar code dis2[]="2.密碼輸入: ";
- void delay(int ms) //延時xms
- {
- while(ms--)
- {
- uchar i;
- for(i=0;i<250;i++)
- {
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }
- }
- }
- void delayNOP() //延時4us
- { _nop_(); _nop_(); _nop_(); _nop_();}
- /*******************************************************************/
- /* */
- /*檢查LCD忙狀態(tài) */
- /*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。 */
- /* */
- /*******************************************************************/
- bit lcd_busy()
- {
- bit result;
- LCD_RS = 0;
- LCD_RW = 1;
- LCD_EN = 1;
- delayNOP();
- result = (bit)(LCD_data&0x80);
- LCD_EN = 0;
- return(result);
- }
- /*******************************************************************/
- /* */
- /* LCD初始化設定 */
- /* */
- /*******************************************************************/
- void lcd_init()
- {
- write_cmd(0x36); //擴充指令操作
- delay(5);
- write_cmd(0x30); //基本指令操
- delay(5);
- write_cmd(0x0C); //顯示開,關光標
- delay(5);
- write_cmd(0x01); //清除LCD的顯示內容
- delay(5);
- }
- /*********************************************************/
- /* */
- /* 設定顯示位置 */
- /* */
- /*********************************************************/
- void lcd_pos(uchar X,uchar Y)
- {
- uchar 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_cmd(pos); //顯示地址
- }
- /*********************************************************/
- /* */
- /* 顯示主程序 */
- /* */
- /*********************************************************/
- void display_all()
- {
- uchar i;
-
- lcd_pos(0,0); //第一行顯示數(shù)字0~9
- i = 0;
- while(dis0[i] != '\0')
- {
- lcd_wdat(dis0[i]); //顯示字母
- i++;
- }
-
- lcd_pos(1,0); //第二行顯示字母
- i = 0;
- while(dis1[i] != '\0')
- {
- lcd_wdat(dis1[i]); //顯示字母
- i++;
- }
- lcd_pos(2,0); //第三行顯示文字
- i = 0;
- while(dis2[i] != '\0')
- {
- lcd_wdat(dis2[i]); //顯示
- i++;
- }
-
- }
- /*********************************************************/
- /* 特定字符顯示主程序 */
- /*
- 0=" 系統(tǒng) ";
- 1="1.輸入.... ";
- 2="2.登記.... ";
- /*********************************************************/
- void display(uchar a,uchar b,uchar c)
- {
- uchar i;
- lcd_pos(a,b); //第一行顯示數(shù)字0~9
- i = 0;
- switch(c)
- {
- case 0:
- while(dis0[i] != '\0')
- {
- lcd_wdat(dis0[i]); //顯示字母
- i++;
- }
- break;
- case 1:
- while(dis1[i] != '\0')
- {
- lcd_wdat(dis1[i]); //顯示字母
- i++;
- }
- break;
- case 2:
- while(dis2[i] != '\0')
- {
- lcd_wdat(dis2[i]); //顯示字母
- i++;
- }
- break;
- default :break;
- }
- }
- /*********************************************************/
- /* */
- /* 一般字符顯示主程序 */
- /* */
- /*p:內容 */
- /*********************************************************/
- void display2(uchar a,uchar b,uchar *p,uchar num)
- {
- uchar i;
- lcd_pos(a,b); //第一行顯示數(shù)字0~9
- for(i=0;i<num;i++)
- lcd_wdat(p[i]); //顯示字母
- }
- /********************
- 清除某一行
- *********************/
- void display_clear_line(uchar a)
- {
- uchar i;
- lcd_pos(a,0);
- for(i=0;i<16;i++)
- lcd_wdat(' ');
- }
復制代碼
謝謝指教!
|