📄 22.lst
字号:
C51 COMPILER V8.12 22 12/27/2008 08:45:38 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE 22
OBJECT MODULE PLACED IN 22.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 22.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REGX51.H>
2 #include "ds18b20.h"
3 #define NO 3
4 //==================数码管段选IO口定义========================
5 sbit bit1=P2^7;
6 sbit bit2=P2^6;
7 sbit bit3=P2^5;
8 sbit bit4=P2^4;
9 unsigned char code table[]={0x3d,0x3b,0x37,0x2f,0x1f,0x3f,0xc0,0xa0,0x60,0xe0,
10 0x3d,0x3f,0x60,0xe0,0x3b,0x3f,0xa0,0xe0,0x37,0x3f,0xc0,0xe0,0x2f,0x1f,0x3f};// zuoyouliudong
11
12 unsigned char code DisplayCode[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xFF,0xef,0x40};//显示编码,xians
-hudian
13 unsigned char code DisplayCode1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};//wu xianshudia
-n
14 unsigned char DisplayBuffer[4]={0,0,0,10}; //显示缓冲
15 unsigned int temperature =0;
16 unsigned char set,n=0;
17 unsigned char temp_h=0;
18 unsigned char temp_l=0;
19 unsigned char tcount2s;
20 void displaytemperature1()
21 { static unsigned char count;
22 1 DisplayBuffer[0] = temperature/100; // 十位
23 1 DisplayBuffer[1] = (temperature/10)%10; // 个位
24 1 DisplayBuffer[2] = (temperature/1)%10; // 小数点位
25 1 switch(count)
26 1 {
27 2 case 1:
28 2 P0=DisplayCode1[DisplayBuffer[3]]; //字符C
29 2 bit4=0;bit3=1;bit2=1;bit1=1;
30 2 break;
31 2 case 2:
32 2 P0=DisplayCode1[DisplayBuffer[2]]; //小数点位
33 2 bit1=1;bit4=1;bit3=0;bit2=1;
34 2 break;
35 2 case 3: P0=DisplayCode[DisplayBuffer[1]]; // 个位
36 2 bit2=0;bit1=1;bit4=1;bit3=1;
37 2
38 2 break;
39 2 case 4:
40 2 P0=DisplayCode1[DisplayBuffer[0]]; //十位
41 2 bit3=1;bit2=1;bit1=0;bit4=1;
42 2 break;
43 2 default:break;
44 2 }
45 1 count++;
46 1 if(count==5)
47 1 count=0;
48 1 }
49 void Delay1ms(unsigned char k) //延时函数,1毫秒
50 {
51 1 unsigned char i,j;
52 1 for(i=0;i<k;i++)
53 1 for(j=0;j<120;j++);
C51 COMPILER V8.12 22 12/27/2008 08:45:38 PAGE 2
54 1 }
55 void displaytemperature2(void)
56 {
57 1 P0=DisplayCode1[temp_h];
58 1 bit1=1; //十位
59 1 Delay1ms(NO);
60 1 bit1=0;
61 1 P0=DisplayCode[temp_l];
62 1 bit2=1; //个位
63 1 Delay1ms(NO);
64 1 bit2=0;
65 1 P0=DisplayCode1[0];
66 1 bit3=1;
67 1 Delay1ms(NO);
68 1 bit3=0;
69 1 P0=DisplayCode1[10];
70 1 bit4=1;
71 1 Delay1ms(NO);
72 1 bit4=0;
73 1 }
74
75 void scan_key()
76 { Delay1ms(2);
77 1 if(P1_0==1)
78 1 set++;
79 1 if(set>=2)
80 1 set=0;
81 1 F0:if(P1_0==1)goto F0; //按键未释放,在此等候//
82 1 }
83 temperaturealarm()
84 {
85 1 if(temperature>(temp_h*100+temp_l*10)&(temp_h*100+temp_l*10)>=150)
86 1 {
87 2 P3_0=0;
88 2 // Delay1ms(5);
89 2 }
90 1 if(temperature<(temp_h*100+temp_l*10)&(temp_h*100+temp_l*10)<150)
91 1 {
92 2 P3_0=0;
93 2 // Delay1ms(5);
94 2 }
95 1 }
96 void temp_change()
97 {
98 1 unsigned char m;
99 1 if(P1_1==1) //十位加一
100 1 Delay1ms(5);
101 1 if(P1_1==1)
102 1 temp_h=temp_h+1;
103 1 if(temp_h==10)
104 1 temp_h=0;
105 1 for(m=0;m<8;m++)
106 1 { displaytemperature2();}
107 1 if(P1_2==1)
108 1 Delay1ms(5);
109 1 if(P1_2==1) //十位减一
110 1 temp_h=temp_h-1;
111 1 if(temp_h==0)
112 1 temp_h=0;
113 1 for(m=0;m<8;m++)
114 1 {displaytemperature2();}
115 1 if(P1_3==1)
C51 COMPILER V8.12 22 12/27/2008 08:45:38 PAGE 3
116 1 Delay1ms(5);
117 1 if(P1_3==1)
118 1 temp_l=temp_l+1; // //个位加一
119 1 if(temp_l==10)
120 1 temp_l=0;
121 1 for(m=0;m<8;m++)
122 1 {displaytemperature2();}
123 1 if(P1_4==1)
124 1 Delay1ms(10);
125 1 if(P1_4==1) //个位减一
126 1 temp_l=temp_l-1;
127 1 if(temp_l==0)
128 1 temp_l=0;
129 1 for(m=0;m<8;m++)
130 1 {displaytemperature2();}
131 1 }
132
133
134 main()
135 {
136 1 P1=0x00;
137 1 while(1)
138 1 {
139 2 temperature=Read_Temperature();
140 2 temperature=temperature*0.625;
141 2 displaytemperature1();
142 2 temperaturealarm();
143 2 if(P1_0==1)
144 2 scan_key();
145 2 tcount2s++;
146 2 if(tcount2s==15)
147 2 { switch(n)
148 3 {
149 4 case 0: P3=table[n];
150 4 break;
151 4 case 1: P3=table[n];
152 4 break;
153 4 case 2: P3=table[n];
154 4 break;
155 4 case 3: P3=table[n];
156 4 break;
157 4 case 4: P3=table[n];
158 4 break;
159 4 case 5: P3=table[n];
160 4 break;
161 4 case 6: P1=table[n];
162 4 break;
163 4 case 7: P1=table[n];
164 4 break;
165 4 case 8: P1=table[n];
166 4 break;
167 4 case 9: P1=table[n]; //////////////////////////////////////////////////////
168 4 break;
169 4 case 10: P3=table[n]; //p3.1 //0x3d,0x3f,0x60,0xe0,0x3b,0x3f,0xa0,0xe0,0x37,0x3f,0xc0,0xe0,0x2f,0x1f,0
-x3f
170 4 break; // 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
171 4 case 11: P3=table[n];
172 4 break;
173 4 case 12: P1=table[n]; // p1.7
174 4 break;
175 4 case 13: P1=table[n];
176 4 break;
C51 COMPILER V8.12 22 12/27/2008 08:45:38 PAGE 4
177 4 case 14: P3=table[n]; //p3.2
178 4 break;
179 4 case 15: P3=table[n];
180 4 break;
181 4 case 16: P1=table[n]; //1.6
182 4 break;
183 4 case 17: P1=table[n];
184 4 break;
185 4 case 18: P3=table[n]; //3.3
186 4 break;
187 4 case 19: P3=table[n];
188 4 break;
189 4 case 20: P1=table[n]; //1.5
190 4 break;
191 4 case 21: P1=table[n];
192 4 break;
193 4 case 22: P3=table[n];//3.4
194 4 break;
195 4 case 23: P3=table[n];//3.5
196 4 break;
197 4 case 24: P3=table[n];//p3灭
198 4 break;
199 4 default:break;
200 4 }
201 3 n++;
202 3 if(n==25)
203 3 n=0;
204 3
205 3 }
206 2 if( tcount2s>=20)
207 2 tcount2s=0;
208 2 switch(set)
209 2 {
210 3
211 3 case 1:
212 3 temp_change();
213 3
214 3 break;
215 3 default:
216 3 break;
217 3
218 3 }
219 2 }
220 1
221 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 864 ----
CONSTANT SIZE = 47 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 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 + -