📄 lcd.lst
字号:
C51 COMPILER V7.50 LCD 04/03/2007 10:38:50 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN Lcd.obj
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE IIC[Ultral]\Lcd.c BROWSE DEBUG OBJECTEXTEND PRINT(.\Lcd.lst) OBJECT(Lcd.obj
-)
line level source
1 #include "iic.h"
2
3 #define EN() {P2=0xa0;}
4 #define DisEN() {P2=0xf0;}
5 unsigned char code Line[4]={0x80,0x90,0x88,0x98};
6
7 //////////////
8 void DelayS()
9 {
10 1 unsigned char xdata i;
11 1 i = 200; //1f
12 1 while(i--);
13 1 }
14
15 void WriteCmd(unsigned char ch)
16 {
17 1 DelayS();
18 1 //EN = 0;
19 1 DisEN();
20 1 LCD_RS = 0;
21 1 LCD_RW = 0;
22 1 _nop_();
23 1 _nop_();
24 1 //EN = 1;
25 1 EN();
26 1 P0 = ch;
27 1 _nop_();
28 1 _nop_();
29 1 _nop_();
30 1 //EN = 0;
31 1 DisEN();
32 1 }
33
34 void WriteData(unsigned char dat)
35 {
36 1 DelayS();
37 1 //EN = 0;
38 1 DisEN();
39 1 LCD_RS = 1;
40 1 LCD_RW = 0;
41 1 _nop_();
42 1 _nop_();
43 1 //EN = 1;
44 1 EN();
45 1 P0 = dat;
46 1 _nop_();
47 1 _nop_();
48 1 _nop_();
49 1 //EN = 0;
50 1 DisEN();
51 1 LCD_RS = 0;
52 1 }
53
54 void LcdInit()
C51 COMPILER V7.50 LCD 04/03/2007 10:38:50 PAGE 2
55 {
56 1 if(LcdRE==1)
57 1 {//扩展指令集状态,先退出睡眠状态
58 2 WriteCmd(0x0c);//退出睡眠模式
59 2 WriteCmd(0x30);//基本指令集
60 2 LcdRE=0;
61 2 }
62 1 WriteCmd(0x0C);//显示on,游标、反白oFF
63 1 WriteCmd(0x01);//清除显示
64 1 WriteCmd(0x02);//地址归位
65 1 WriteCmd(0x80);
66 1 }
67
68 void LcdCN(unsigned char x,unsigned char y,const char datH,const unsigned char datL)
69 {//汉字显示
70 1 x=Line[x];
71 1 x+=y;
72 1 WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
73 1 WriteData(datH);
74 1 WriteData(datL);
75 1 }
76
77 void LcdCnString(unsigned char x,unsigned char y,const char Head[])
78 {//汉字串
79 1 //x:0-3,y:0-7
80 1 unsigned char *ptr;
81 1 ptr=Head;
82 1 while(1)
83 1 {
84 2 LcdCN(x,y,*ptr,*(ptr+1));
85 2 y+=1;
86 2 ptr=ptr+2;
87 2 if(*ptr == NULL)
88 2 break;
89 2 }
90 1 }
91
92 void LcdChar(unsigned char x,unsigned char y,const char dat)
93 {//英文显示
94 1 //x:0-3,y:0-7
95 1 /* switch(x)
96 1 {
97 1 case 0:
98 1 x=0x80;
99 1 break;
100 1 case 1:
101 1 x=0x90;
102 1 break;
103 1 case 2:
104 1 x=0x88;
105 1 break;
106 1 default:
107 1 x=0x98;
108 1 }*/
109 1 x=Line[x];
110 1 x+=y;
111 1 WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
112 1 WriteData(dat);
113 1 }
114
115 void LcdAddChar(unsigned char dat)
116 {
C51 COMPILER V7.50 LCD 04/03/2007 10:38:50 PAGE 3
117 1 //追加英文字母
118 1 WriteData(dat);
119 1 }
120
121 void LcdCur(unsigned char x,unsigned char y)
122 {
123 1 //x:0~3,y:0~7
124 1 x=Line[x];
125 1 x=x+y;
126 1 WriteCmd(x);//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
127 1 WriteCmd(0x0f);//开下标
128 1 }
129
130 void LcdCurOff()
131 {
132 1 WriteCmd(0x0C);
133 1 }
134
135 void LcdPowerOn()
136 {
137 1 LcdPowerFlag=1;
*** ERROR C202 IN LINE 137 OF IIC[ULTRAL]\LCD.C: 'LcdPowerFlag': undefined identifier
138 1 }
139
140 void LcdPowerOff()
141 {
142 1 LcdPowerFlag=0;
*** ERROR C202 IN LINE 142 OF IIC[ULTRAL]\LCD.C: 'LcdPowerFlag': undefined identifier
143 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -