编译问题
..\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 //数据口
- sbit LCD_RS = P2^4; //寄存器选择输入
- sbit LCD_RW = P2^5; //液晶读/写控制
- sbit LCD_EN = P2^6; //液晶使能控制
- sbit LCM_RST = P2^7;
- uchar code dis0[]=" 显示系统 ";
- 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忙状态 */
- /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */
- /* */
- /*******************************************************************/
- 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); //第一行显示数字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=" 系统 ";
- 1="1.输入.... ";
- 2="2.登记.... ";
- /*********************************************************/
- void display(uchar a,uchar b,uchar c)
- {
- uchar i;
- lcd_pos(a,b); //第一行显示数字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); //第一行显示数字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(' ');
- }
复制代码
谢谢指教!
|