📄 7219.lst
字号:
C51 COMPILER V7.09 7219 08/23/2004 22:32:06 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 7219
OBJECT MODULE PLACED IN 7219.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE 7219.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <math.h>
3 #include <stdio.h>
4 #include <absacc.h>
5 #include <intrins.h>
6 #include <string.h>
7 #include <stdlib.h>
8 #define True 1
9 #define False 0
10 #define Ctop_temper 75
11 #define Cbottom_temper 18
12 #define Ftop_temper 167
13 #define Fbottom_temper 64
14 #define Hot_time 30
15 #define Pre_time 10
16
17 typedef unsigned char uchar;
18 typedef unsigned int uint;
19 sfr WDTRST = 0xA6;
20 sbit Temper_add = P1^0; //= P0^0;
21 sbit Temper_subb = P3^5; //= P0^1;
22 sbit Time_add = P0^1; //= P0^2;
23 sbit Time_subb = P2^3; //= P0^3;
24 sbit Lamp_onoff = P3^6; //= P0^4;
25 sbit Lamp = P3^4; //= P0^5;
26 sbit Setup_lamp = P2^6; //= P0^6;
27 sbit setup_led = P0^6;
28 sbit Precontract_lamp = P2^7; //= P0^7;
29
30 sbit set_key = P0^2; //= P2^0;
31 sbit Off_power = P2^2; //= P2^1;
32 sbit Choose_cf = P2^1; //= P2^2;
33 sbit Hot_up = P1^1; //= P2^3;
34 /**************** DS18B20 ********************/
35 sbit TMDAT = P1^2; //= P2^4;
36 /**************** Max7219 ********************/
37 sbit M7219_in = P0^5;
38 sbit M7219_cs = P0^6;
39 sbit M7219_clock = P0^7;
40 /*********************************************/
41 sbit Speak = P1^3; //= P1^0;
42 sbit Precontract = P2^0; //= P1^1;
43 sbit Open_power = P0^0; //= P1^2;
44 sbit LED = P3^7; //= P1^3;
45 sbit Power_led = P3^0;
46 /* 定义调用子程序 */
47 void Max7219_send(uchar add, uchar dat);
48 void temperature(bit C_f);
49 bit tmreset(void);
50 uchar readbyte(void);
51 void delay3(uint Tm_count);
52 void writebyte(uchar dat);
53 uchar read_temper(bit C_F);
54 void tmstart(void);
55 void Max7219_int(void);
C51 COMPILER V7.09 7219 08/23/2004 22:32:06 PAGE 2
56 void disp(uchar y3,bit id);
57
58 void sound(bit f,uchar i);
59 void delay(uchar i);
60 void Watch(void);
61 void shift8(uchar a);
62
63 uchar TH0_T,TL0_T;
64 bit run;
65 uint V_ml;
66 uchar bdata AD;
67 sbit AD_0=AD^0;
68 sbit AD_1=AD^1;
69 sbit AD_7=AD^7;
70 uchar now_temper = 20;
71 uchar sys_1 ;
72 uchar sys_2 ;
73 uchar sys_3 ;
74 /*********************/
75 /* 演示主程序 */
76 /*********************/
77
78 void main()
79 { uchar now_time , now_time2,count,Led_count;
80 1 uchar system_count,top,bottom,Over_count;
81 1 uint data1;
82 1 bit CF; /* 0=C,1=F */
83 1 bit Set_flag,set_flag2,Over;
84 1 uchar set_time = 0; /* work 时间 */
85 1 uchar set_time2 = 0;/* no work */
86 1 uchar set_temper = 42;
87 1 top = Ctop_temper;
88 1 bottom = Cbottom_temper;
89 1 V_ml = 0;
90 1 TH1 = 0xFA;
91 1 TL1 = 0xFa;
92 1 TH0_T = 0;
93 1 TL0_T = 0;
94 1 CF = False;
95 1 delay(1);
96 1 Max7219_int();
97 1 delay3(800);
98 1 ES = True;
99 1 run = True;
100 1 Set_flag = False;
101 1 set_flag2 = True;
102 1 now_time = 0;
103 1 now_time2 = 0;
104 1 system_count = 0;
105 1 count = 0;
106 1 Led_count = 0;
107 1 Over_count = 0;
108 1 LED = False;
109 1 Over = False;
110 1 Watch();
111 1 if (sys_1==0x33 && sys_2==0x51 && sys_3==0x90) goto Power;
112 1 sys_1 = 0x33;
113 1 sys_2 = 0x51;
114 1 sys_3 = 0x90;
115 1 Max7219_send(0x0c, 0x00);
116 1 /*****************************/
117 1 while (Open_power)
C51 COMPILER V7.09 7219 08/23/2004 22:32:06 PAGE 3
118 1 {
119 2 Watch();
120 2 V_ml = 0;
121 2 TR0 = 0;
122 2 delay3(10);
123 2 }
124 1 do { Watch(); }
125 1 while (!Open_power);
126 1 Power: Max7219_send(0x0c,0x01);
127 1 sound(False,1);
128 1 set_flag2 = True;
129 1 LED = True;
130 1 Power_led = False;
131 1
132 1 /*****************************/
133 1
134 1 while (1)
135 1 {
136 2 Watch();
137 2 SCON = 0x50;
138 2 TMOD = 0x21; //TR1 = 1;
139 2 EA = 1;
140 2 ET0 = 1;
141 2 if (set_flag2)
142 2 {
143 3 Led_count++;
144 3 }
145 2 if (Led_count >= 130)
146 2 {
147 3 LED = False;
148 3 Led_count = 0;
149 3 set_flag2 = False;
150 3 if (Set_flag)
151 3 {
152 4 Set_flag = 0;
153 4 Precontract_lamp = True;
154 4 Setup_lamp = True;
155 4 system_count = 0;
156 4 }
157 3
158 3 }
159 2 if (Lamp_onoff == False) /* 开关灯控制 */
160 2 {
161 3 Lamp =~ Lamp; delay3(10);
162 3 do { Watch(); }
163 3 while (!Lamp_onoff);
164 3 sound(False,1);
165 3 Led_count = 0;
166 3 LED = True;
167 3 set_flag2 = True;
168 3 }
169 2 if (Off_power == False) /* 开关控制 */
170 2 {
171 3 off: delay3(10);
172 3 now_time = 0;
173 3 now_time2 = 0;
174 3 set_time = 0;
175 3 set_time2 = 0;
176 3 system_count = 0;
177 3 count = 0;
178 3 Precontract_lamp = True;
179 3 Setup_lamp = True;
C51 COMPILER V7.09 7219 08/23/2004 22:32:06 PAGE 4
180 3 Hot_up = True;
181 3 LED = False;
182 3 Power_led = True;
183 3 Lamp = True;
184 3 do { Watch(); }
185 3 while (!Off_power);
186 3 sound(False,1);
187 3 Max7219_send(0x0c, 0x00);
188 3 delay3(10);
189 3 Max7219_send(0x0c, 0x00);
190 3 while (Open_power)
191 3 {
192 4 V_ml = 0;
193 4 TR0 = 0;
194 4 delay3(10);
195 4 Watch();
196 4 }
197 3 do { Watch(); }
198 3 while (!Open_power);
199 3 Max7219_send(0x0c,0x01);
200 3 delay3(10);
201 3 Max7219_send(0x0c,0x01);
202 3 sound(False,1);
203 3 set_flag2 = True;
204 3 LED = True;
205 3 Power_led = False;
206 3 }
207 2 if (Choose_cf == False) /* 华氏与温度转换 */
208 2 {
209 3 CF = ~CF ;
210 3 delay3(10);
211 3 do { Watch(); }
212 3 while (!Choose_cf);
213 3 if (CF)
214 3 {
215 4 top = Ftop_temper; bottom = Fbottom_temper; data1 = set_temper;
216 4 set_temper = (data1*9)/5+32;
217 4 }
218 3 else
219 3 {
220 4 top = Ctop_temper; bottom = Cbottom_temper; data1 = set_temper;
221 4 set_temper = (data1 - 32)*5/9;
222 4 }
223 3 sound(False,1);
224 3 Led_count = 0;
225 3 LED = True;
226 3 set_flag2 = True;
227 3 }
228 2 if (set_key == False) /* 设置键处理 */
229 2 {
230 3 switch (system_count)
231 3 {
232 4 case 0:
233 4 {
234 5 Set_flag = 1; Setup_lamp = False; Precontract_lamp = True; system_count+
-+; Led_count++;
235 5 if (set_time==0 || set_time>90) set_time = Hot_time;
236 5 set_time2 = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -