📄 cj2.lst
字号:
C51 COMPILER V8.01 CJ2 03/21/2010 22:58:42 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE CJ2
OBJECT MODULE PLACED IN cj2.OBJ
COMPILER INVOKED BY: D:\学习软件\keil\C51\BIN\C51.EXE cj2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include "18B20_1.h"
3 #define uchar unsigned char
4
5
6 sbit RE=P3^4; // 487控制位
7 uchar code display_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x77,0x7c};
8 uchar t=0,ti=0;temperature[4]={12,0,0,0};
9
10
11 void display(); // 显示函数
12 void delay(uchar a); // 延时函数
13
14
15 void main()
16 {
17 1 int temp;
18 1
19 1 TMOD=0x21; //定时计数器1设置为模式2
20 1 TL1=0XFD;
21 1 TH1=0XFD;
22 1 TH0=(65536-50000*110592/120000)/256; //设置50ms溢出一次
23 1 TL0=(65536-50000*110592/120000)%256;
24 1 PCON=0X00;
25 1 SCON=0xf0; //工作在方式3,允许通信,SM2=1只有RB8为1时才接受数据,否则不要
26 1 TR1=1;
27 1 TR0=1;
28 1 ET0=1;
29 1 RE=0; //设置457为接受状态
30 1 EA=1;
31 1 ES=1;
32 1
33 1 while(1)
34 1 {
35 2 display();
36 2
37 2 if(ti==20)
38 2 {
39 3 ti=0;
40 3 temp=b20_temperate();
41 3 temperature[1]=temp%1000/100; // 百位温度
42 3 temperature[2]=temp%100/10; // 十位温度
43 3 temperature[3]=temp%10; // 个位温度
44 3 }
45 2
46 2 }
47 1
48 1 }
49
50
51 void delay(uchar a)
52 {
53 1 uchar i;
54 1 for(;a>0;a--)
55 1 for(i=100;i>0;i--);
C51 COMPILER V8.01 CJ2 03/21/2010 22:58:42 PAGE 2
56 1
57 1 }
58
59
60 void display()
61 {
62 1
63 1 P2=0XFF; // 显示从机的代号
64 1 P0=display_table[temperature[0]];
65 1 P2=0xfe;
66 1 delay(1);
67 1
68 1 P2=0XFF; // 显示温度
69 1 P0=display_table[temperature[1]];
70 1 P2=0xfd;
71 1 delay(1);
72 1
73 1 P2=0XFF;
74 1 P0=display_table[temperature[2]];
75 1 P2=0xfb;
76 1 delay(1);
77 1
78 1 P2=0XFF;
79 1 P0=display_table[temperature[3]]+0x80;
80 1 P2=0xf7;
81 1 delay(1);
82 1
83 1 }
84
85
86 void time() interrupt 1 // 定时器中断函数
87 {
88 1 TH0=(65536-50000*110592/120000)/256;
89 1 TL0=(65536-50000*110592/120000)%256;
90 1
91 1 ti++;
92 1 }
93
94
95 void r_scon() interrupt 4 //串口中断
96 {
97 1 uchar i;
98 1
99 1 if(RI==1)
100 1 {
101 2 RI=0;
102 2 delay(10);
103 2
104 2 if(SBUF==2) //判断地址是否是本机,地址为2
105 2 {
106 3 t=1;
107 3 ES=0; //关串口中断
108 3 SM2=0;
109 3
110 3 RE=1; //准备发送数据
111 3 delay(10);
112 3
113 3 SBUF=2; // 校验本机地址
114 3 while(TI!=1);
115 3 TI=0;
116 3 delay(10);
117 3
C51 COMPILER V8.01 CJ2 03/21/2010 22:58:42 PAGE 3
118 3 for(i=0;i<4;i++) // 发送数据
119 3 {
120 4 SBUF=temperature[i];
121 4 while(TI!=1);
122 4 TI=0;
123 4 delay(10);
124 4 }
125 3
126 3 RE=0;
127 3 ES=1;
128 3 SM2=1;
129 3
130 3 }
131 2 }
132 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 513 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 1
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 + -