📄 lcddrive.lst
字号:
C51 COMPILER V7.50 LCDDRIVE 12/01/2006 12:32:58 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCDDRIVE
OBJECT MODULE PLACED IN lcddrive.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcddrive.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 //Port Definitions**********************************************************
3 sbit LcdRs = P1^0;
*** ERROR C202 IN LINE 3 OF LCDDRIVE.C: 'P1': undefined identifier
4 sbit LcdRw = P1^1;
*** ERROR C202 IN LINE 4 OF LCDDRIVE.C: 'P1': undefined identifier
5 sbit LcdEn = P1^2;
*** ERROR C202 IN LINE 5 OF LCDDRIVE.C: 'P1': undefined identifier
6 sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
7
8 sbit LcdLight = DBPort^4;
9 /***************************************************************************/
10 void Delay1ms(unsigned int count)
11 {
12 1 unsigned int i,j;
13 1 for(i=0;i<count;i++)
14 1 for(j=0;j<120;j++);
15 1 }
16 //内部等待函数**************************************************************************
17 unsigned char LCD_Wait(void)
18 {
19 1 LcdRs=0;
*** ERROR C202 IN LINE 19 OF LCDDRIVE.C: 'LcdRs': undefined identifier
20 1 LcdRw=1; _nop_();
*** ERROR C202 IN LINE 20 OF LCDDRIVE.C: 'LcdRw': undefined identifier
21 1 LcdEn=1; _nop_();
22 1 while(DBPort&0x80); //或do{ACC=DBPort;} while(ACC_7==1); 忙信号??为1忙
23 1 LcdEn=0;
24 1 Delay1ms(1);
25 1 return ACC;
26 1 }
27
28 void LCD_Write(unsigned char style, unsigned char input)
29 {
30 1 LcdRs=style;
31 1 LcdRw=0; _nop_();
32 1 LcdEn=1; _nop_();
33 1 DBPort=input; _nop_();
34 1 LcdEn=0; _nop_();
35 1 LCD_Wait();
36 1 }
37
38
39
40 void LCD_SetDisplay(unsigned char DisplayMode)
41 {
42 1 LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
43 1 }
44
45
46
47 void LCD_SetInput(unsigned char InputMode)
48 {
49 1 LCD_Write(LCD_COMMAND, 0x04|InputMode);
50 1 }
C51 COMPILER V7.50 LCDDRIVE 12/01/2006 12:32:58 PAGE 2
51
52
53 void LCD_Move(unsigned char object, unsigned char direction)
54 {
55 1 if(object==LCD_CURSOR)
56 1 LCD_Write(LCD_COMMAND,0x10|direction);
57 1 if(object==LCD_SCREEN)
58 1 LCD_Write(LCD_COMMAND,0x18|direction);
59 1 }
60
61 //初始化LCD************************************************************
62 void LCD_Initial()
63 {
64 1 LcdEn=0;
65 1 Delay1ms(80);
66 1 LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵
67 1 Delay1ms(10);
68 1 LCD_Write(LCD_COMMAND,0x38);
69 1 Delay1ms(10);
70 1 LCD_SetDisplay(LCD_SHOW|LCD_CURSOR); //开启显示, 无光标
71 1 //LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标
72 1 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
73 1 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动
74 1 }
75
76 //************************************************************************
77 void GotoXY(unsigned char x, unsigned char y)//y是行 ,x是列
78 {
79 1 if(y==0)
80 1 LCD_Write(LCD_COMMAND,0x80|x);
81 1 if(y==1)
82 1 LCD_Write(LCD_COMMAND,0x80|(x-0x40));
83 1 }
84 void Print(unsigned char *str)
85 {
86 1 while(*str!='\0')
87 1 {
88 2 LCD_Write(LCD_DATA,*str);
89 2 str++;
90 2 }
91 1 }
92 void LCD_LoadChar(unsigned char user[8], unsigned char place)
93 {
94 1 unsigned char i;
95 1 LCD_Write(LCD_COMMAND,0x40|(place*8));
96 1 for(i=0; i<8; i++)
97 1 LCD_Write(LCD_DATA,user[i]);
98 1 }
99 //************************************************************************
100 /*main()
101 {
102 //unsigned char str1[17];
103 unsigned char str[]=" Six Boys ";
104 unsigned char strlc[]=" Good Luck! ";
105 LCD_Initial();
106 while(1)
107 {
108 GotoXY(0, 0);
109 Print(str);
110 if(strlen(str)>16)
111 Print(str+16);
112
C51 COMPILER V7.50 LCDDRIVE 12/01/2006 12:32:58 PAGE 3
113 GotoXY(0, 1);
114 Print(strlc);
115 if(strlen(strlc)>16)
116 Print(strlc+16);
117
118 //LCD_LoadChar(str, 0);
119 }
120 }*/
121
122
C51 COMPILATION COMPLETE. 0 WARNING(S), 5 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -