📄 watch.lst
字号:
C51 COMPILER V6.12 WATCH 08/20/2006 22:22:27 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE WATCH
OBJECT MODULE PLACED IN .\watch.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\watch.c DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X51.H>
2
3 //全局变量
4 unsigned int s_l; //s
5 unsigned int s_h;
6 unsigned int m_l; //min
7 unsigned int m_h;
8 unsigned int h_l; //hour
9 unsigned int h_h;
10
11 unsigned int a;
12 unsigned int i;
13 //////////////////////////////////////////
14
15 //时间设置
16
17
18
19 /*
20 struct SYSTEMTIME
21 {
22 int wYear;
23 int wMonth;
24 int wDayOfWeek;
25 int wDay;
26 int wHour;
27 int wMinute;
28 int wSecond;
29 int wMilliseconds;
30 }nowtime={0,0,0,0,0,0,0,0};
31
32 */
33
34 //延时子程序
35
36 void delay(unsigned int times)
37 {
38 1 unsigned int i;
39 1 unsigned int j;
40 1 for (i=0;i<times;i++)
41 1 for (j=0;j<10;j++);
42 1 }
43 //显示子程序
44 void display (unsigned int t)
45 {
46 1 P1=0x80;
47 1 P2=s_l;
48 1 delay(t);
49 1 P1=0x40;
50 1 P2=s_h;
51 1 delay(t);
52 1 ////////////////////////////////
53 1 P1=0x10;
54 1 P2=m_l;
55 1 delay(t);
C51 COMPILER V6.12 WATCH 08/20/2006 22:22:27 PAGE 2
56 1 P1=0x08;
57 1 P2=m_h;
58 1 delay(t);
59 1 //////////////////////////////////
60 1 P1=0x02;
61 1 P2=h_l;
62 1 delay(t);
63 1 P1=0x01;
64 1 P2=h_h;
65 1 delay(t);
66 1 }
67 //中断程序
68 void timer1 (void) interrupt 3 using 1
69 {
70 1 a=a-1;
71 1 do {} while (i-->0);
72 1 i=18;
73 1 if (a==0)
74 1 {
75 2 s_l=s_l+1;
76 2 if (s_l==10)
77 2 {
78 3 s_l=0;s_h=s_h+1;
79 3 if(s_h==6)
80 3 {s_h=0;m_l=m_l+1;
81 4 if (m_l==10)
82 4 {
83 5 m_l=0;m_h=m_h+1;
84 5 if (m_h==6)
85 5 {
86 6 m_h=0;h_l=h_l+1;
87 6 if (h_l==10)
88 6 {
89 7 h_l=0;h_h=h_h+1;
90 7 }
91 6 else if (h_h==2&h_l==4)
92 6 {h_h=0;h_l=0;}
93 6 }
94 5 }
95 4 }
96 3 }
97 2 a=20;
98 2
99 2 }
100 1 TH1=-50000/256;
101 1 TL1=-50000%256;
102 1 }
103 //////////////////////////////////////////////
104 ///////////调定时间
105
106 void set (void) interrupt 2 using 3
107 {
108 1 //set second
109 1 if (P3_0==0)
110 1 {
111 2 s_l=s_l+1;
112 2 if(s_l==10)
113 2 {s_l=0;
114 3 s_h=s_h+1;
115 3 if(s_h==6)
116 3 s_h=0;
117 3 }
C51 COMPILER V6.12 WATCH 08/20/2006 22:22:27 PAGE 3
118 2 }
119 1 //set minute
120 1 else if (P3_1==0)
121 1 {
122 2 m_l=m_l+1;
123 2 if(m_l==10)
124 2 {
125 3 m_l=0;
126 3 m_h=m_h+1;
127 3 if(m_h==6)
128 3 m_h=0;
129 3 }
130 2 }
131 1 //set hour
132 1 else if (P3_2==0)
133 1 {
134 2 h_l=h_l+1;
135 2 if(h_l==10)
136 2 {
137 3 h_l=0;
138 3 h_h=h_h+1;
139 3 }
140 2 else if (h_h==2&h_l==4)
141 2 {h_h=0;h_l=0;}
142 2 }
143 1
144 1 }
145
146
147
148 ///////////////////////////////////////////////////////////////
149 void main(void)
150 {
151 1 TMOD=0X10;
152 1 TH1=-50000/256;
153 1 TL1=-50000%256;
154 1 EA=1;
155 1 ET1=1;
156 1 TR1=1;
157 1 EX1=1;
158 1 IT1=1;
159 1 //struct SYSTEMTIME [nowtime];
160 1 //GetLocalTime(&nowtime);
161 1
162 1 //s_l=nowTime.wSecond%10;
163 1 s_l=0;
164 1 s_h=5;
165 1 m_l=1;
166 1 m_h=4;
167 1 h_l=9;
168 1 h_h=0;
169 1 a=20;
170 1 i=18;
171 1
172 1 do{ display(50);} while(1);
173 1
174 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 545 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V6.12 WATCH 08/20/2006 22:22:27 PAGE 4
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 2
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 + -