📄 tianxiang2.lst
字号:
C51 COMPILER V6.12 TIANXIANG2 04/29/2009 13:14:04 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TIANXIANG2
OBJECT MODULE PLACED IN .\tianxiang2.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE .\tianxiang2.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #include<stdio.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 sbit ds=P2^2;
8 sbit dula=P2^6;
9 sbit wela=P2^7;
10 sbit beep=P2^3;
11
12 uint temp;
13 float f_temp;
14 /*uint warn_l1=270;
15 uint warn_l2=250;
16 uint warn_h1=300;
17 uint warn_h2=320;
18
19 sbit led0=P1^0;
20 sbit led1=P1^1;
21 sbit led2=P1^2;
22 sbit led3=P1^3;
23 */
24 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,
25 0xBf,0x86,0xDb,0xCf,0xE6, 0xEd,0xEd,0x87,0xFf,0xEf};
26 //共阴极数码管显示数字0.,1.,2.,3.,4.,5.,6.,7.,8.,9.
27
28 void delay(uint z)
29 {
30 1 uint x,y;
31 1 for(x=z;x>0;x--)
32 1 for(y=110;y>0;y--);
33 1 }
34
35 void dsreset()
36 {
37 1 uint i;
38 1 ds=0;
39 1 i=103;
40 1 while(i>0) i--;
41 1 ds=1;
42 1 i=4;
43 1 while(i>0) i--;
44 1 }
45
46 bit tempreadbit()
47 {
48 1 uint i;
49 1 bit dat;
50 1 ds=0;i++;
51 1 ds=1;i++;i++;
52 1 dat=ds;
53 1 i=8;
54 1 while(i>0) i--;
55 1 return (dat);
C51 COMPILER V6.12 TIANXIANG2 04/29/2009 13:14:04 PAGE 2
56 1 }
57
58 uchar tempread()
59 {
60 1 uchar i,j,dat;
61 1 dat=0;
62 1 for(i=1;i<=8;i++)
63 1 {
64 2 j=tempreadbit();
65 2 dat=(j<<7)|(dat>>1);
66 2 }
67 1 return (dat);
68 1 }
69
70 void tempwritebyte(uchar dat)
71 {
72 1 uint i;
73 1 uchar j;
74 1 bit testb;
75 1 for(j=1;j<=8;j++)
76 1 {
77 2 testb=dat&0x01;
78 2 dat=dat>>1;
79 2 if(testb)
80 2 {
81 3 ds=0;
82 3 i++;i++;
83 3 ds=1;
84 3 i=8;while(i>0) i--;
85 3 }
86 2 else
87 2 {
88 3 ds=0;
89 3 i=8;
90 3 while(i>0) i--;
91 3 ds=1;
92 3 i++;i++;
93 3 }
94 2 }
95 1 }
96
97 void tempchange()
98 {
99 1 dsreset();
100 1 delay(1);
101 1 tempwritebyte(0xcc);
102 1 tempwritebyte(0x44);
103 1 }
104
105 uint get_temp()
106 {
107 1 uchar a,b;
108 1 dsreset();
109 1 delay(1);
110 1 tempwritebyte(0xcc);
111 1 tempwritebyte(0xbe);
112 1 a=tempread();
113 1 b=tempread();
114 1 temp=b;
115 1 temp<<=8;
116 1 temp=temp|a;
117 1 f_temp=temp*0.0625;
C51 COMPILER V6.12 TIANXIANG2 04/29/2009 13:14:04 PAGE 3
118 1 temp=f_temp*10+0.5;
119 1 f_temp=f_temp+0.05;
120 1 return temp;
121 1 }
122
123 void display(uchar num,uchar dat)
124 {
125 1 uchar i;
126 1 dula=0;
127 1 P0=table[dat];
128 1 dula=1;
129 1 dula=0;
130 1 wela=0;
131 1 i=0xFF;
132 1 i=i&(~((0x01)<<(num)));
133 1 P0=i;
134 1 wela=1;
135 1 wela=0;
136 1 delay(1);
137 1 }
138
139 void dis_temp(uint t)
140 {
141 1 uchar i;
142 1 i=t/100;
143 1 display(0,i);
144 1 i=t%100/10;
145 1 display(1,i);
146 1 i=t%100%10;
147 1 display(2,i);
148 1 }
149 void main()
150 {
151 1 uchar ii;
152 1 while(1)
153 1 {
154 2 tempchange();
155 2 for(ii=0;ii<5;ii++)
156 2 {
157 3 dis_temp(get_temp());
158 3 }
159 2 }
160 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 499 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 3
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -