📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 12/18/2011 10:29:55 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************/
2 #include<reg51.h>
3 #include"lcd1602.c"
4 #include"ds1302.c"
5 #include"ds18b20.c"
6 #include"key.c"
7 #include"24C04.c"
8 #define uchar unsigned char
9 #define uint unsigned int
10 sbit fmq = P2^7;
11 uchar cp,flash,ds,df,d;
12 uint zs,xs,kj;
13 /*******************************显示函数***************************/
14 void display(void)
15 {
16 1 if(key1_flag >=8)
17 1 {
18 2 gotoxy(1,0);
19 2 display_string("*****dingshi*****");
20 2 gotoxy(2,0);
21 2 display_string("time:");
22 2 if(key1_flag == 8)//定时小时的调整值并闪烁
23 2 {
24 3 if(flash)display_num(time_tmp[7]);
25 3 else display_string(" ");
26 3 }
27 2 else display_num(time_tmp[7]);
28 2 if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
29 2 if(key1_flag == 9)//定时分钟的调整值并闪烁
30 2 {
31 3 if(flash)display_num(time_tmp[8]);
32 3 else display_string(" ");
33 3 }
34 2 else display_num(time_tmp[8]);
35 2 display_string(" ");
36 2 }
37 1 else
38 1 {
39 2 gotoxy(1,0); //第一行
40 2 display_string("20");//显示20
41 2 if(key1_flag == 1)//显示年的调整值并闪烁
42 2 {
43 3 if(flash)display_num(time_tmp[0]);
44 3 else display_string(" ");
45 3 }
46 2 else display_num(time_tmp[0]);
47 2 display_string("/");
48 2 if(key1_flag == 2)//显示月的调整值并闪烁
49 2 {
50 3 if(flash)display_num(time_tmp[1]);
51 3 else display_string(" ");
52 3 }
53 2 else display_num(time_tmp[1]);
54 2 display_string("/");
55 2 if(key1_flag == 3)//显示日的调整值并闪烁
C51 COMPILER V8.02 MAIN 12/18/2011 10:29:55 PAGE 2
56 2 {
57 3 if(flash)display_num(time_tmp[2]);
58 3 else display_string(" ");
59 3 }
60 2 else display_num(time_tmp[2]);
61 2 display_string(" WEEK");
62 2 if(key1_flag == 4)//显示星期的调整值并闪烁
63 2 {
64 3 if(flash)write_data(num[time_tmp[3]]);
65 3 else display_string(" ");
66 3 }
67 2 else write_data(num[time_tmp[3]]);
68 2 gotoxy(2,0); //第二行
69 2 if(key1_flag == 5)//显示小时的调整值并闪烁
70 2 {
71 3 if(flash)display_num(time_tmp[4]);
72 3 else display_string(" ");
73 3 }
74 2 else display_num(time_tmp[4]);
75 2 if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
76 2 if(key1_flag == 6)//显示分的调整值并闪烁
77 2 {
78 3 if(flash)display_num(time_tmp[5]);
79 3 else display_string(" ");
80 3 }
81 2 else display_num(time_tmp[5]);
82 2 if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
83 2 if(key1_flag == 7)//显示秒的调整值并闪烁
84 2 {
85 3 if(flash)display_num(time_tmp[6]);
86 3 else display_string(" ");
87 3 }
88 2 else display_num(time_tmp[6]);
89 2 display_string(" T");display_num(zs);display_string(".");write_data(num[xs]);write_data(0xdf);display_st
-ring("C");
90 2 }
91 1 }
92 /*****************************************************************************/
93 void timer0_init(void)
94 {
95 1 TMOD = 0x01;
96 1 TH0 = 0xec;
97 1 TL0 = 0x78;
98 1 TR0 = 1;
99 1 EA = 1;
100 1 ET0 = 1;
101 1 }
102 /*****************************************************************************/
103 void timer0_isr(void) interrupt 1
104 {
105 1 TH0 = 0xec;
106 1 TL0 = 0x78;
107 1 cp++;
108 1 if(cp >= 100) //刚好1秒
109 1 {
110 2
111 2 cp = 0;
112 2 flash = ~flash;
113 2 zs = Read_Temperature();
114 2 xs = c;
115 2 xs = xs * 0.66;
116 2 }
C51 COMPILER V8.02 MAIN 12/18/2011 10:29:55 PAGE 3
117 1 }
118 /*****************************************************************************/
119 void main (void)
120 {
121 1 timer0_init();
122 1 fmq = 0;
123 1 F1602_init();
124 1 F1602_clear();
125 1 gotoxy(1,0);
126 1 display_string(" welcome ");
127 1 gotoxy(2,0);
128 1 for(kj = 1;kj <= 16;kj++)
129 1 {
130 2 display_string(">");
131 2 delay_us(6000);
132 2 }
133 1 ds1302_init();
134 1 init_24c04();
135 1 write_add_dat_24c04(1,0x08);
136 1 write_add_dat_24c04(2,0x00);
137 1 while(1)
138 1 {
139 2 key();
140 2 get_ds1302_time();
141 2 d = read_add_dat_24c04(1);
142 2 ds = BCD_DEC_conv(d);
143 2 delay(500);
144 2 d = read_add_dat_24c04(2);
145 2 df = BCD_DEC_conv(d);
146 2 delay(500);
147 2 if(min == df && hour == ds)fmq = 1;
148 2 if(min != df || hour != ds) fmq = 0;
149 2 if(hour == time_tmp[7] && min == time_tmp[8])fmq = 1;
150 2 if(hour != time_tmp[7] || min != time_tmp[8])fmq = 0;
151 2 if(key1_flag == 0)
152 2 {
153 3 if(key4 == 0)
154 3 {
155 4 delay(300);
156 4 if(key4 == 0)
157 4 {
158 5 delay(300);
159 5 key4_s = 1;
160 5 }
161 4 }
162 3 if(key4 == 1 && key4_s == 1)
163 3 {
164 4 fmq = 0;
165 4 time_tmp[8] = time_tmp[8]-1;
166 4 }
167 3 }
168 2 if(key1_flag > 10 || key1_flag < 1)
169 2 {
170 3 gotoxy(1,0);
171 3 display_string("20");
172 3 display_num(year);
173 3 display_string("/");
174 3 display_num(moon);
175 3 display_string("/");
176 3 display_num(date);
177 3 display_string(" WEEK");
178 3 write_data(num[xingqi]);
C51 COMPILER V8.02 MAIN 12/18/2011 10:29:55 PAGE 4
179 3 gotoxy(2,0);
180 3 display_num(hour);
181 3 if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
182 3 display_num(min);
183 3 if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
184 3 display_num(sec);
185 3 display_string(" T");display_num(zs);display_string(".");write_data(num[xs]);write_data(0xdf);display_s
-tring("C");
186 3 }
187 2 else
188 2 display();
189 2
190 2 }
191 1 }
192
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2019 ----
CONSTANT SIZE = 76 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 56 1
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -