?? main.lst
字號:
C51 COMPILER V7.06 MAIN 04/09/2005 13:15:56 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include "ds1302.h"
3 #include "iic.h"
4 #include "lcd.h"
5 #include "system.h"
6 #include "checktime.h"
7 #include "checkmeasure.h"
8 #include "measure.h"
9 #include "ads1100.h"
10
11 //idata uchar buf[120];
12 code SystemParam SysParam =
13 {
14 0x30,//0 0 B 1 W/S M2 M1 M0
15 0x87,//WF 0 0 0 0 FX
16 0x07,//0 0 0 0 FY
17 0x27,//C/R
18 0x42,//TC/R
19 0xf0,//L/F
20 0x28,//APL
21 0x00,//APH
22 };
23
24 code DisplayParam DispParam =
25 {
26 0x00,//saddr1lo;
27 0x00,//saddr1hi;
28 0xf0,//sl1;
29 0x00,//saddr2lo;
30 0x40,//saddr2hi;
31 0xf0,//sl2;
32 0x00,//saddr3lo;
33 0x80,//saddr3hi;
34 0x00,//saddr4lo;
35 0x00//saddr4hi;
36 };
37
38 void initsystem()
39 {
40 1 TMOD = 0x21;
41 1 TH1 = 0xe8;
42 1 TH0 = 55535%256;
43 1 TL0 = 55535/256;
44 1 SCON = 0x50;
45 1 TR0 = 1;
46 1 TR1 = 1;
47 1 ET0 = 1;
48 1 EA = 1;
49 1 TI = 1;
50 1 }
51
52 void idle()
53 {
54 1 clear(0x0000);
55 1 clear(0x4000);
C51 COMPILER V7.06 MAIN 04/09/2005 13:15:56 PAGE 2
56 1 printstring32(0,6,6,"歡迎使用水專家");//
57 1 printstring32(0,10,12,"系列濁度儀");//
58 1 printstring16(0,28,24,"按1進入測量");//
59 1 printstring16(0,28,26,"按2進入校驗");//
60 1 printstring16(0,28,28,"按3進入校時");//
61 1 }
62
63 void initclock()
64 {
65 1 writesecond(0x00);
66 1 writeyear(0x05);
67 1 writemonth(0x01);
68 1 writedate(0x01);
69 1 writehour(0x00);
70 1 writeminute(0x00);
71 1 writesecond(0x00);
72 1 }
73
74 unsigned char bcd2digit(unsigned char tmp)
75 {
76 1 unsigned char hi,lo;
77 1
78 1 hi = (tmp>>4)&0x0f;
79 1 lo= tmp&0x0f;
80 1
81 1 return (hi*10+lo);
82 1 }
83
84 void checkclock()
85 {
86 1 uchar tmp;
87 1
88 1 tmp = readyear();
89 1 if(bcd2digit(tmp) > 99)
90 1 writeyear(0x05);
91 1
92 1 tmp = readmonth();
93 1 if(bcd2digit(tmp) > 12 || bcd2digit(tmp) == 0)
94 1 writemonth(0x01);
95 1
96 1 tmp = readdate();
97 1 if(bcd2digit(tmp) > 31 || bcd2digit(tmp) == 0)
98 1 writedate(0x01);
99 1
100 1 tmp = readhour();
101 1 if(bcd2digit(tmp) > 23)
102 1 writehour(0x00);
103 1
104 1 tmp = readminute();
105 1 if(bcd2digit(tmp) > 59)
106 1 writeminute(0x00);
107 1
108 1 tmp = readsecond();
109 1 if(bcd2digit(tmp) > 59)
110 1 writesecond(0x00);
111 1 }
112
113 int main()
114 {
115 1 uchar key,refresh=1;
116 1
117 1 delay(200);
C51 COMPILER V7.06 MAIN 04/09/2005 13:15:56 PAGE 3
118 1
119 1 initsystem();
120 1 initds1302();
121 1 initlcd();
122 1
123 1 setdisplayon(0,0x04);
124 1
125 1 clear(0x0000);
126 1 clear(0x4000);
127 1
128 1 readiic(0x20,&key);
129 1 if(key != 0x55)
130 1 initclock();
131 1
132 1 initdisplay(&SysParam);
133 1 setdisplayparam(&DispParam);
134 1 setcursorform(1,0x07,0x07);
135 1 // setoverlay(0x0f);
136 1 setoverlay(0x0d);
137 1 sethdot(0x00);
138 1 // setdisplayon(1,0x77);
139 1 setdisplayon(1,0x04);
140 1
141 1 checkclock();
142 1
143 1 resetads1100();
144 1 writeads1100(0x8c);
145 1
146 1 while(1)
147 1 {
148 2 idle();
149 2
150 2 do
151 2 {
152 3 printtime();
153 3 key = readkey();
154 3 delay(100);
155 3 } while(key != KEY_1 && key != KEY_2 && key != KEY_3);
156 2
157 2 switch(key)
158 2 {
159 3 case KEY_1:
160 3 measure();
161 3 break;
162 3 case KEY_2:
163 3 checkmeasure();
164 3 break;
165 3 case KEY_3:
166 3 checktime();
167 3 break;
168 3 }
169 2 }
170 1 }
171
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 529 ----
CONSTANT SIZE = 80 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
C51 COMPILER V7.06 MAIN 04/09/2005 13:15:56 PAGE 4
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 + -