?? lcd1.lst
字號:
C51 COMPILER V7.09 LCD1 01/08/2007 09:46:11 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE LCD1
OBJECT MODULE PLACED IN LCD1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE LCD1.c DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<absacc.h>
3
4 sbit RS=P2^0;
5 sbit RW=P2^1;
6 sbit EN=P2^2;
7 sbit clock=P2^7;
8 sbit cc=P1^0;
9 sbit cc1=P2^6;
10 sbit high=P3^2;
11 sbit low=P3^3;
12
13 unsigned char Counter=1;Flag1=0;Flag2=0;ccFlag=1;
14 unsigned int Timerlow;Timerhigh;Counter1=100;
15 void delay(unsigned long delay_count)
16 {
17 1 while(delay_count--);
18 1 }
19
20 void enable(char c)
21 {
22 1 unsigned char temp;
23 1 do
24 1 {
25 2 RS=0;RW=1;EN=1;
26 2 temp=P0;
27 2 temp&=0x80;
28 2 EN=0;
29 2 }while(temp);
30 1 P0=c;
31 1 RS=0;RW=0;EN=1;
32 1 delay(20);
33 1 EN=0;
34 1 }
35
36 void WriteCharToLCD(unsigned char c2)
37 {
38 1 unsigned char temp;
39 1 do
40 1 {
41 2 RS=0;RW=1;EN=1;
42 2 temp=P0;
43 2 temp&=0x80;
44 2 EN=0;
45 2 }while(temp);
46 1 if(c2==0x0D)return;
47 1 P0=c2;
48 1 RS=1;RW=0;EN=1;
49 1 EN=0;
50 1 delay(300);
51 1 }
52
53 void InitialLCD(void)
54 {
55 1 enable(0x01);delay(200);
C51 COMPILER V7.09 LCD1 01/08/2007 09:46:11 PAGE 2
56 1 enable(0x38);
57 1 enable(0x0c);
58 1 enable(0x14);
59 1 delay(2000);
60 1 }
61
62 void ClearLCD(void)
63 {
64 1 enable(0x01);
65 1 delay(200);
66 1 enable(0x0c);
67 1 }
68
69 void WriteStrToLCD(unsigned char row,unsigned char col,unsigned char *c)
70 {
71 1 unsigned char count=0,tempAC;
72 1 switch(col)
73 1 {
74 2 case 1:enable(0x80+row-1);break;
75 2 case 2:enable(0xC0+row-1);break;
76 2 default:
77 2 break;
78 2 }
79 1 count=0;
80 1 while(*c!=0)
81 1 {
82 2 delay(20);
83 2 WriteCharToLCD(*c);
84 2 c++;
85 2 P0=0xFF;
86 2 delay(100);
87 2 RS=0;RW=1;EN=1;
88 2 tempAC=P0;
89 2 EN=0;
90 2 tempAC&=0x7F;
91 2 if(tempAC==0x14)
92 2 enable(0x80+0x40);
93 2 if(tempAC==0x54)
94 2 enable(0x80+0x14);
95 2 if(tempAC==0x40)
96 2 enable(0x80+0x54);
97 2 }
98 1 }
99 /*
100 void InitialTC(void)
101 {
102 TMOD=0x1F;
103 TH1=0x0;TL1=0x68; //T1=1000;
104 EA=1;
105 ET1=1;
106 TR1=1;
107 EX0=1;EX1=1;
108 TF1=0;
109 IE0=0;
110 IE1=0;
111 }
112
113 void InterruptEX0 (void) interrupt 0
114 {
115 if(Counter<=3)
116 {
117 ++Counter;
C51 COMPILER V7.09 LCD1 01/08/2007 09:46:11 PAGE 3
118 }
119 }
120 void InterruptEX1 (void) interrupt 2
121 {
122 if(Counter>=1)
123 {
124 --Counter;
125 }
126 }
127
128 /*void InterruptT1 (void) interrupt 3
129 {
130 clock=(~clock);
131 switch(Counter)
132 {
133 case 1: Timerhigh=0x27;Timerlow=0x10; //T1=10000,--100Hz
134 case 2: Timerhigh=0x13;Timerlow=0x88; //T1=5000,--200Hz
135 case 3: Timerhigh=0x07;Timerlow=0xD0; //T1=2000,--500Hz
136 case 4: Timerhigh=0x03;Timerlow=0xE8; //T1=1000,--1000Hz
137 default: Timerhigh=0x03;Timerlow=0xE8;
138 break;
139 }
140 TH1=Timerhigh;TL0=Timerlow;
141 } */
142
143 void main(void)
144 {
145 1 // InitialTC();
146 1 InitialLCD();
147 1 delay(100);
148 1 ClearLCD();
149 1 delay(100);
150 1 WriteStrToLCD(1,1," Motor Driver");
151 1 WriteStrToLCD(1,2,"Design by:IC lab");
152 1 delay(20000);
153 1 WriteStrToLCD(1,2," Speed:high ");
154 1 P2=(P2|0x0F8);
155 1 while(1)
156 1 {
157 2 /* switch(Counter)
158 2 {
159 2 case 1: Counter1=1000;WriteStrToLCD(1,2,"Frequency:100 Hz"); //T1=10000,--100Hz
160 2 case 2: Counter1=500;WriteStrToLCD(1,2,"Frequency:200 Hz"); //T1=5000,--200Hz
161 2 case 3: Counter1=200;WriteStrToLCD(1,2,"Frequency:500 Hz"); //T1=2000,--500Hz
162 2 case 4: Counter1=100;WriteStrToLCD(1,2,"Frequency:1000Hz"); //T1=1000,--1000Hz
163 2 default:
164 2 break;
165 2 } */
166 2 if(high==0)
167 2 {
168 3 Counter1=100;
169 3 WriteStrToLCD(1,2," Speed: high ");
170 3 }
171 2 if(low==0)
172 2 {
173 3 Counter1=1000;
174 3 WriteStrToLCD(1,2," Speed: low ");
175 3 }
176 2 delay(Counter1);
177 2 clock=(~clock);
178 2
179 2 if(cc==0)
C51 COMPILER V7.09 LCD1 01/08/2007 09:46:11 PAGE 4
180 2 {
181 3 delay(50);
182 3 cc1=(~cc1);
183 3 delay(50);
184 3 ccFlag=1;
185 3 }
186 2 if(ccFlag==1)
187 2 {
188 3 ccFlag=0;
189 3 if(cc1==1)
190 3 {
191 4 WriteStrToLCD(1,1," direction: + ");
192 4 }
193 3 else
194 3 {
195 4 WriteStrToLCD(1,1," direction: - ");
196 4 }
197 3 }
198 2
199 2 }
200 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 431 ----
CONSTANT SIZE = 117 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -