?? main.lst
字號:
C51 COMPILER V8.05a MAIN 10/26/2008 20:55:52 PAGE 1
C51 COMPILER V8.05a, 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 #include "reg51.h"
2 #include "1302.h"
3 #include "key.h"
4 #include "12864.h"
5 #include "ds18b20.h"
6 #include "zifu.h"
7 #include "gton.h"
8
9
10
11
12
13
14
15
16
17 ////////////////////顯示函數////////////////////////
18
19 /*************
20 節日顯示
21 monthg1,dayg1 為公歷日期
22 monthn1,dayn1為農歷日期
23 **************/
24 void jieri(uchar monthg1,uchar dayg1,uchar monthn1,dayn1)
25 {
26 1 uchar i,j,temp11;
27 1 i=0;
28 1 temp11=30;
29 1 for(i=0;i<6;i++)
30 1 {
31 2 if((monthn1==feastn_focus[i][0])&&(dayn1==feastn_focus[i][1]))
32 2 {
33 3 temp11=i;
34 3 break;
35 3 }
36 2 }
37 1 if(temp11!=30) //農歷有節日,優先顯示農歷
38 1 {
39 2 for(i=0;i<6;i++)
40 2 for(j=i*16;j<i*16+16;j++)
41 2 {
42 3 if(i%2==0)
43 3 datatemp[j]=feastn[temp11][j]|0x01;
44 3 else
45 3 datatemp[j]=feastn[temp11][j];
46 3 }
47 2 datatemp[0]=0xff;
48 2 datatemp[16]=0xff;
49 2
50 2
51 2 play1616(0,0,0,datatemp);
52 2 play1616(0,2,0,datatemp+32);
53 2 play1616(0,4,0,datatemp+64);
54 2 }
55 1 else //無農歷節日時方檢查是否有公歷節日
C51 COMPILER V8.05a MAIN 10/26/2008 20:55:52 PAGE 2
56 1 {
57 2 for(i=0;i<23;i++)
58 2 {
59 3 if((monthg1==feastg_focus[i][0])&&(dayg1==feastg_focus[i][1]))
60 3 {
61 4 temp11=i;
62 4 break;
63 4 }
64 3 }
65 2
66 2 if(temp11!=30)
67 2 {
68 3 for(i=0;i<6;i++)
69 3 for(j=i*16;j<i*16+16;j++)
70 3 {
71 4 if(i%2==0)
72 4 datatemp[j]=feastg[temp11][j]|0x01;
73 4 else
74 4 datatemp[j]=feastg[temp11][j];
75 4 }
76 3 datatemp[0]=0xff;
77 3 datatemp[16]=0xff;
78 3
79 3 play1616(0,0,0,datatemp);
80 3 play1616(0,2,0,datatemp+32);
81 3 play1616(0,4,0,datatemp+64);
82 3 }
83 2 else
84 2 {
85 3 if((10*datastring[6]+datastring[7])>=18)
86 3 {
87 4 for(i=0;i<6;i++)
88 4 for(j=i*16;j<i*16+16;j++)
89 4 {
90 5 if(i%2==0)
91 5 datatemp[j]=night[j]|0x01;
92 5 else
93 5 datatemp[j]=night[j];
94 5 }
95 4 datatemp[0]=0xff;
96 4 datatemp[16]=0xff;
97 4
98 4 play1616(0,0,0,datatemp);
99 4 play1616(0,2,0,datatemp+32);
100 4 play1616(0,4,0,datatemp+64);
101 4 }
102 3 else
103 3 {
104 4 for(i=0;i<6;i++)
105 4 for(j=i*16;j<i*16+16;j++)
106 4 {
107 5 if(i%2==0)
108 5 datatemp[j]=daytime[j]|0x01;
109 5 else
110 5 datatemp[j]=daytime[j];
111 5 }
112 4 datatemp[0]=0xff;
113 4 datatemp[16]=0xff;
114 4
115 4 play1616(0,0,0,datatemp);
116 4 play1616(0,2,0,datatemp+32);
117 4 play1616(0,4,0,datatemp+64);
C51 COMPILER V8.05a MAIN 10/26/2008 20:55:52 PAGE 3
118 4 }
119 3 }
120 2 }
121 1 }
122
123 /*************
124 生肖顯示
125 year取年份后兩位,如2008,year=08
126 **************/
127 void dispshengxiao(uchar year)
128 {
129 1 uchar i;
130 1 for(i=0;i<16;i++)
131 1 datatemp[i]=shengxiao[year%12][i]|0x01;
132 1 for(i=16;i<32;i++)
133 1 datatemp[i]=shengxiao[year%12][i];
134 1
135 1 datatemp[0]=0xff;
136 1 datatemp[16]=0xff;
137 1 play1616(0,6,0,datatemp);
138 1 }
139
140 ////////////////////////////////////////////////////
141
142 /***************定時器0鍵盤掃描處理 *****************/
143
144 void keyset() interrupt 1
145 {
146 1 uchar keycode;
147 1 uchar move=0,weekvalue,mm;
148 1 uint sum=0;
149 1 bit fg;
150 1 // gettemperature(); //取溫度存在temp數組中
151 1 keycode=keyscan();
152 1 if(keycode==0x11&&ringflag==0)
153 1 {
154 2 clear12864();
155 2 play816(0,2,0,shuzi1[2],0);
156 2 play816(0,3,0,shuzi1[0],0);
157 2 play816(0,4,0,shuzi1[datastring[0]],1);
158 2 play816(0,5,0,shuzi1[datastring[1]],1);
159 2 play1616(0,6,0,hang);
160 2 play816(1,0,0,shuzi1[datastring[2]],0);
161 2 play816(1,1,0,shuzi1[datastring[3]],0);
162 2 play1616(1,2,0,hang);
163 2 play816(1,4,0,shuzi1[datastring[4]],0);
164 2 play816(1,5,0,shuzi1[datastring[5]],0);
165 2
166 2 play816(0,4,1,shuzi1[datastring[6]],0);
167 2 play816(0,5,1,shuzi1[datastring[7]],0);
168 2 play816(0,6,1,dian1,0);
169 2 play816(0,7,1,shuzi1[datastring[8]],0);
170 2 play816(1,0,1,shuzi1[datastring[9]],0);
171 2 play816(1,1,1,dian1,0);
172 2 play816(1,2,1,shuzi1[0],0);
173 2 play816(1,3,1,shuzi1[0],0);
174 2
175 2 play1616(0,2,2,nao);
176 2 play1616(0,4,2,zhong);
177 2 play816(0,6,2,dian1,0);
178 2 play816(0,7,2,shuzi1[ringtime[0]],0);
179 2 play816(1,0,2,shuzi1[ringtime[1]],0);
C51 COMPILER V8.05a MAIN 10/26/2008 20:55:52 PAGE 4
180 2 play816(1,1,2,dian1,0);
181 2 play816(1,2,2,shuzi1[ringtime[2]],0);
182 2 play816(1,3,2,shuzi1[ringtime[3]],0);
183 2 if(ringtime[4]==0)
184 2 {
185 3 play816(1,4,2,no,0);
186 3 }
187 2 else
188 2 play816(1,4,2,yes,0);
189 2
190 2 for(;;)
191 2 {
192 3 keycode=keyscan();
193 3 if(keycode==0x12) //按下光標鍵
194 3 {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -