📄 text2.lst
字号:
C51 COMPILER V8.02 TEXT2 10/20/2008 20:21:09 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT2
OBJECT MODULE PLACED IN Text2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3
4 //--------LCD control bit---------------
5 sbit LCD_RS = P2^0;
6 sbit LCD_RW = P2^1;
7 sbit LCD_EN = P2^4;
8 sbit INT_0 =P3^2;
9 #define LCDDATA P0
10 unsigned char KeyValue,timer0_tick=0,Flag_time=0;
11
12
13 typedef struct {
14 char hour;
15 char minute;
16 char second;
17 }time;
18 time now={11,28,45} ;
19
20
21 void delay_10ms()
22 {
23 1 unsigned char k;
24 1 for (k=0;k<20;k++);
25 1 }
26 void delay()
27 {
28 1 unsigned char j,k;
29 1 for (j=0;j<100;j++);
30 1 for (k=0;k<200;k++);
31 1 }
32 void WriteCommand(unsigned char c)
33 {
34 1 delay_10ms();
35 1 LCD_RS=0;
36 1 LCD_RW=0;
37 1 _nop_();
38 1 LCD_EN=1;
39 1 LCDDATA=c;
40 1 LCD_EN=0;
41 1 }
42
43 void WriteData(unsigned char c)
44 {
45 1 delay_10ms();
46 1
47 1 LCD_RS=1;
48 1 LCD_RW=0;
49 1 _nop_();
50 1 LCD_EN=1;
51 1 LCDDATA=c;
52 1 LCD_EN=0;
53 1
54 1 }
55
C51 COMPILER V8.02 TEXT2 10/20/2008 20:21:09 PAGE 2
56 void ShowChar(unsigned char pos,unsigned char c)
57 {
58 1 WriteCommand(pos+0x80);
59 1 WriteData(c);
60 1 }
61 void ShowString(unsigned char ptr)
62 {
63 1 unsigned char i=0,j=0x80;
64 1 while(i<8)
65 1 {
66 2 if(ptr&j)
67 2 {
68 3
69 3 ShowChar(3+i,'1') ;
70 3 }
71 2 else {
72 3
73 3 ShowChar(3+i,'0') ;
74 3 }
75 2 i++;
76 2 j=j>>1;
77 2 }
78 1 ShowChar(11,' ') ;
79 1
80 1
81 1 }
82
83 void InitLCD(void)
84 {
85 1 delay_10ms();
86 1 WriteCommand(0x38);
87 1 WriteCommand(0x38);
88 1 WriteCommand(0x06);
89 1 WriteCommand(0x0C);
90 1 //WriteCommand(0x01);
91 1 WriteCommand(0x80);
92 1 }
93
94 void Ex0_Key() interrupt 0 using 0
95 {
96 1 unsigned char x,y;
97 1 EA=0;
98 1 delay();
99 1 x=P1;
100 1 P1=0xff;
101 1 P1=0xf0;
102 1 y=P1;
103 1 KeyValue=x+y;
104 1 ShowString(KeyValue);
105 1 //ShowChar(6,KeyValue+0x30) ;
106 1 switch(KeyValue)
107 1 {
108 2 // case 0xee: Flag_time=1;
109 2
110 2 }
111 1 P1=0x0f;
112 1 EA=1;
113 1 }
114 void initTimer (void)
115 {
116 1
117 1 EA=0;
C51 COMPILER V8.02 TEXT2 10/20/2008 20:21:09 PAGE 3
118 1 TMOD=0x01;
119 1 TH0=-9460/256;
120 1 TL0=-9460%256; //初始化计数器初值,
121 1 PT0=1;
122 1 TR0=1;
123 1 ET0=1;
124 1 EA =1;
125 1 }
126 void ShowTime()
127 {
128 1 ShowChar(4,now.hour/10+0x30);
129 1 ShowChar(5,now.hour%10+0x30);
130 1 ShowChar(6,':');
131 1 ShowChar(7,now.minute/10+0x30);
132 1 ShowChar(8,now.minute%10+0x30);
133 1 ShowChar(9,':');
134 1 ShowChar(10,now.second/10+0x30);
135 1 ShowChar(11,now.second%10+0x30);
136 1 }
137 void timer0 (void) interrupt 1
138 {
139 1 TR0=0;
140 1 TH0=-9460/256;
141 1 TL0=-9460%256; //初始化计数器初值
142 1 TR0=1;
143 1 timer0_tick++;
144 1 if (timer0_tick==100)
145 1 {
146 2 timer0_tick=0;
147 2 /***********************************************************/
148 2 if(now.second==59)
149 2 {
150 3 now.second=0;
151 3 if (now.minute==59)
152 3 {
153 4 now.minute=0;
154 4 if (now.hour==23)
155 4 {
156 5
157 5 now.hour = 0;
158 5 now.minute =0;
159 5 now.second =0;
160 5 }else now.hour++;
161 4 }else now.minute++;
162 3 }else now.second++;
163 2 if(Flag_time)
164 2 {
165 3 ShowTime();
166 3 }
167 2 /* else if(Flag_xhtime)
168 2 {
169 2 CycShow();
170 2 } */
171 2
172 2
173 2 }
174 1 }
175
176 void main (void)
177 {
178 1 InitLCD();
179 1 initTimer();
C51 COMPILER V8.02 TEXT2 10/20/2008 20:21:09 PAGE 4
180 1 P1=0x0f;
181 1
182 1 IT0=1;
183 1 EX0=1;
184 1 EA=1;
185 1 ShowChar(2,'r') ;
186 1 while(1)
187 1 {
188 2 ;
189 2
190 2 }
191 1
192 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 466 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -