?? lcd.lst
字號:
C51 COMPILER V6.12 LCD 10/24/2008 22:55:37 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\LCD.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE .\LCD.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include"Config.h"
3 #include"IOCfg.c"
*** ERROR C231 IN LINE 10 OF E:\KEIL\C51\INC\REG51.H: 'P0': redefinition
*** ERROR C231 IN LINE 11 OF E:\KEIL\C51\INC\REG51.H: 'P1': redefinition
*** ERROR C231 IN LINE 12 OF E:\KEIL\C51\INC\REG51.H: 'P2': redefinition
*** ERROR C231 IN LINE 13 OF E:\KEIL\C51\INC\REG51.H: 'P3': redefinition
*** ERROR C231 IN LINE 14 OF E:\KEIL\C51\INC\REG51.H: 'PSW': redefinition
*** ERROR C231 IN LINE 15 OF E:\KEIL\C51\INC\REG51.H: 'ACC': redefinition
*** ERROR C231 IN LINE 16 OF E:\KEIL\C51\INC\REG51.H: 'B': redefinition
*** ERROR C231 IN LINE 17 OF E:\KEIL\C51\INC\REG51.H: 'SP': redefinition
*** ERROR C231 IN LINE 18 OF E:\KEIL\C51\INC\REG51.H: 'DPL': redefinition
*** ERROR C231 IN LINE 19 OF E:\KEIL\C51\INC\REG51.H: 'DPH': redefinition
*** ERROR C231 IN LINE 20 OF E:\KEIL\C51\INC\REG51.H: 'PCON': redefinition
*** ERROR C231 IN LINE 21 OF E:\KEIL\C51\INC\REG51.H: 'TCON': redefinition
*** ERROR C231 IN LINE 22 OF E:\KEIL\C51\INC\REG51.H: 'TMOD': redefinition
*** ERROR C231 IN LINE 23 OF E:\KEIL\C51\INC\REG51.H: 'TL0': redefinition
*** ERROR C231 IN LINE 24 OF E:\KEIL\C51\INC\REG51.H: 'TL1': redefinition
*** ERROR C231 IN LINE 25 OF E:\KEIL\C51\INC\REG51.H: 'TH0': redefinition
*** ERROR C231 IN LINE 26 OF E:\KEIL\C51\INC\REG51.H: 'TH1': redefinition
*** ERROR C231 IN LINE 27 OF E:\KEIL\C51\INC\REG51.H: 'IE': redefinition
*** ERROR C231 IN LINE 28 OF E:\KEIL\C51\INC\REG51.H: 'IP': redefinition
*** ERROR C231 IN LINE 29 OF E:\KEIL\C51\INC\REG51.H: 'SCON': redefinition
*** ERROR C231 IN LINE 30 OF E:\KEIL\C51\INC\REG51.H: 'SBUF': redefinition
*** ERROR C231 IN LINE 35 OF E:\KEIL\C51\INC\REG51.H: 'CY': redefinition
*** ERROR C231 IN LINE 36 OF E:\KEIL\C51\INC\REG51.H: 'AC': redefinition
*** ERROR C231 IN LINE 37 OF E:\KEIL\C51\INC\REG51.H: 'F0': redefinition
*** ERROR C231 IN LINE 38 OF E:\KEIL\C51\INC\REG51.H: 'RS1': redefinition
*** ERROR C231 IN LINE 39 OF E:\KEIL\C51\INC\REG51.H: 'RS0': redefinition
*** ERROR C231 IN LINE 40 OF E:\KEIL\C51\INC\REG51.H: 'OV': redefinition
*** ERROR C231 IN LINE 41 OF E:\KEIL\C51\INC\REG51.H: 'P': redefinition
*** ERROR C231 IN LINE 44 OF E:\KEIL\C51\INC\REG51.H: 'TF1': redefinition
*** ERROR C231 IN LINE 45 OF E:\KEIL\C51\INC\REG51.H: 'TR1': redefinition
*** ERROR C231 IN LINE 46 OF E:\KEIL\C51\INC\REG51.H: 'TF0': redefinition
*** ERROR C231 IN LINE 47 OF E:\KEIL\C51\INC\REG51.H: 'TR0': redefinition
*** ERROR C231 IN LINE 48 OF E:\KEIL\C51\INC\REG51.H: 'IE1': redefinition
*** ERROR C231 IN LINE 49 OF E:\KEIL\C51\INC\REG51.H: 'IT1': redefinition
*** ERROR C231 IN LINE 50 OF E:\KEIL\C51\INC\REG51.H: 'IE0': redefinition
*** ERROR C231 IN LINE 51 OF E:\KEIL\C51\INC\REG51.H: 'IT0': redefinition
*** ERROR C231 IN LINE 54 OF E:\KEIL\C51\INC\REG51.H: 'EA': redefinition
*** ERROR C231 IN LINE 55 OF E:\KEIL\C51\INC\REG51.H: 'ES': redefinition
*** ERROR C231 IN LINE 56 OF E:\KEIL\C51\INC\REG51.H: 'ET1': redefinition
*** ERROR C231 IN LINE 57 OF E:\KEIL\C51\INC\REG51.H: 'EX1': redefinition
*** ERROR C231 IN LINE 58 OF E:\KEIL\C51\INC\REG51.H: 'ET0': redefinition
*** ERROR C231 IN LINE 59 OF E:\KEIL\C51\INC\REG51.H: 'EX0': redefinition
*** ERROR C231 IN LINE 62 OF E:\KEIL\C51\INC\REG51.H: 'PS': redefinition
*** ERROR C231 IN LINE 63 OF E:\KEIL\C51\INC\REG51.H: 'PT1': redefinition
*** ERROR C231 IN LINE 64 OF E:\KEIL\C51\INC\REG51.H: 'PX1': redefinition
*** ERROR C231 IN LINE 65 OF E:\KEIL\C51\INC\REG51.H: 'PT0': redefinition
*** ERROR C231 IN LINE 66 OF E:\KEIL\C51\INC\REG51.H: 'PX0': redefinition
*** ERROR C231 IN LINE 69 OF E:\KEIL\C51\INC\REG51.H: 'RD': redefinition
*** ERROR C231 IN LINE 70 OF E:\KEIL\C51\INC\REG51.H: 'WR': redefinition
*** ERROR C231 IN LINE 71 OF E:\KEIL\C51\INC\REG51.H: 'T1': redefinition
*** ERROR C231 IN LINE 72 OF E:\KEIL\C51\INC\REG51.H: 'T0': redefinition
*** ERROR C231 IN LINE 73 OF E:\KEIL\C51\INC\REG51.H: 'INT1': redefinition
C51 COMPILER V6.12 LCD 10/24/2008 22:55:37 PAGE 2
*** ERROR C231 IN LINE 74 OF E:\KEIL\C51\INC\REG51.H: 'INT0': redefinition
*** ERROR C231 IN LINE 75 OF E:\KEIL\C51\INC\REG51.H: 'TXD': redefinition
*** ERROR C231 IN LINE 76 OF E:\KEIL\C51\INC\REG51.H: 'RXD': redefinition
*** ERROR C231 IN LINE 79 OF E:\KEIL\C51\INC\REG51.H: 'SM0': redefinition
*** ERROR C231 IN LINE 80 OF E:\KEIL\C51\INC\REG51.H: 'SM1': redefinition
*** ERROR C231 IN LINE 81 OF E:\KEIL\C51\INC\REG51.H: 'SM2': redefinition
*** ERROR C231 IN LINE 82 OF E:\KEIL\C51\INC\REG51.H: 'REN': redefinition
*** ERROR C231 IN LINE 83 OF E:\KEIL\C51\INC\REG51.H: 'TB8': redefinition
*** ERROR C231 IN LINE 84 OF E:\KEIL\C51\INC\REG51.H: 'RB8': redefinition
*** ERROR C231 IN LINE 85 OF E:\KEIL\C51\INC\REG51.H: 'TI': redefinition
*** ERROR C231 IN LINE 86 OF E:\KEIL\C51\INC\REG51.H: 'RI': redefinition
4 #include"TimeDLY.h"
5 #include"LCD.h"
6
7 //IO輸入輸出控制
8 void InitLCDData(bit i)
9 {
10 1 if(i==1) LCDData = 0xff;
11 1 else LCDData = 0x00;
12 1 }
13
14 //指令/數據選擇函數:SetLCD_RS()
15 void SetLCD_RS(bit i)
16 {
17 1 if(i==1) LCDRS = 1;
18 1 else LCDRS = 0;
19 1 }
20
21 //讀寫操作控制信號:SetLCD_RW()
22 void SetLCD_RW(bit i)
23 {
24 1 if(i==1) LCDRW = 1;
25 1 else LCDRW = 0;
26 1 }
27
28 //使能信號:SetLCD_EN()
29 void SetLCD_EN(bit i)
30 {
31 1 if(i==1) LCDE = 1;
32 1 else LCDE = 0;
33 1 }
34
35 //復位:SetLCD_RST()
36 void SetLCD_RST(bit i)
37 {
38 1 if(i==1) LCDRST = 1;
39 1 else LCDRST = 0;
40 1 }
41
42 //讀狀態函數:ReadStatus()
43 INT8U ReadStatus(void)
44 {
45 1 INT8U i;
46 1 InitLCDData(1);
47 1 SetLCD_RW(1);
48 1 SetLCD_RS(0);
49 1 SetLCD_EN(0);
50 1 nNop(10);
51 1 SetLCD_EN(1);
52 1 nNop(20);
53 1 i = LCDData;
54 1 nNop(40);
C51 COMPILER V6.12 LCD 10/24/2008 22:55:37 PAGE 3
55 1 SetLCD_EN(0);
56 1 return(i);
57 1 }
58
59 //讀一字節數據函數:ReadOneByte()
60 INT8U ReadOneByte(void)
61 {
62 1 INT8U i;
63 1 InitLCDData(1);
64 1 SetLCD_RW(1);
65 1 SetLCD_RS(1);
66 1 SetLCD_EN(0);
67 1 nNop(10);
68 1 SetLCD_EN(1);
69 1 nNop(20);
70 1 i = LCDData;
71 1 nNop(40);
72 1 SetLCD_EN(0);
73 1 return(i);
74 1 }
75
76 //寫指令函數:WriteInstruc()
77 void WriteInstruc(INT8U Instruction)
78 {
79 1 while((ReadStatus() & 0x80)!= 0x00);
80 1 InitLCDData(0);
81 1 SetLCD_RW(0);
82 1 SetLCD_RS(0);
83 1 SetLCD_EN(0);
84 1 LCDData = Instruction;
85 1 nNop(100);
86 1 SetLCD_EN(1);
87 1 nNop(100);
88 1 SetLCD_EN(0);
89 1 }
90
91 //寫一字節數據函數:WriteOneByte()
92 void WriteOneByte(INT8U Data)
93 {
94 1 while((ReadStatus() & 0x80)!= 0x00);
95 1 InitLCDData(0);
96 1 SetLCD_RW(0);
97 1 SetLCD_RS(1);
98 1 SetLCD_EN(0);
99 1 LCDData = Data;
100 1 nNop(100);
101 1 SetLCD_EN(1);
102 1 nNop(100);
103 1 SetLCD_EN(0);
104 1 }
105
106 //復位函數:ResetLCD()
107 void ResetLCD(void)
108 {
109 1 LDelay(40);
110 1 SetLCD_RST(0);
111 1 LDelay(1);
112 1 SetLCD_RST(1);
113 1 LDelay(1);
114 1 }
115
116 //初始化函數:InitLCD()
C51 COMPILER V6.12 LCD 10/24/2008 22:55:37 PAGE 4
117 void InitLCD(void)
118 {
119 1 ResetLCD();
120 1 FunctionSet(0x30); // Function Set: 8_bits_Data, Base_Instrution
121 1 LDelay(1);
122 1 FunctionSet(0x30); // Function Set: 8_bits_Data, Base_Instrution
123 1 LDelay(1);
124 1 Disp_OnOff(0x0c); // Disp_ON: The Whole ALL_ON
125 1 LDelay(1);
126 1 ClearLCD(); // Clear LCD
127 1 LDelay(1);
128 1 PointSet(0x06); // Entry Mode Set: DDRAM Address Counter(AC) + 1
129 1 LDelay(1);
130 1 }
131
132 //顯示一個漢字(16x16)函數:DispOneWord()
133 void DispOneWord(INT8U X,INT8U Y,INT16U Word)
134 {
135 1 INT8U Disp_Address;
136 1 INT8U Address_H;
137 1 INT8U Address_L;
138 1
139 1 if((X == 0x00)||(X == 0x02)) // 0,2行
140 1 Address_H = 0x80;
141 1 else // 1,3行
142 1 Address_H = 0x90;
143 1
144 1 if((X == 0x00)||(X == 0x01)) // 0,1行
145 1 Address_L = Y;
146 1 else // 2,3行
147 1 Address_L = Y + 0x08;
148 1 Disp_Address = (Address_H | Address_L) & 0xff;
149 1 SetDDRAM_Add(Disp_Address); // Set DDRAM(Disp_Address)
150 1 WriteOneByte(((Word & 0xff00) >> 8) & 0xff); // H_Byte
151 1 WriteOneByte(Word & 0xff); // L_Byte
152 1 }
153
154
155 //顯示兩個字符(8x16)函數:DispTwoCharacter()
156 void DispTwoCharacter(INT8U X,INT8U Y,INT8U Character1,INT8U Character2)
157 {
158 1 INT8U Disp_Address;
159 1 INT8U Address_H;
160 1 INT8U Address_L;
161 1
162 1 if((X == 0x00)||(X == 0x02)) // 0,2行
163 1 Address_H = 0x80;
164 1 else // 1,3行
165 1 Address_H = 0x90;
166 1
167 1 if((X == 0x00)||(X == 0x01)) // 0,1行
168 1 Address_L = Y;
169 1 else // 2,3行
170 1 Address_L = Y + 0x08;
171 1 Disp_Address = Address_H | Address_L;
172 1 SetDDRAM_Add(Disp_Address); // Set DDRAM(Disp_Address)
173 1 WriteOneByte(Character1);
174 1 WriteOneByte(Character2);
175 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 63 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -