📄 cj1.lst
字号:
C51 COMPILER V8.01 CJ1 03/22/2010 19:34:14 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE CJ1
OBJECT MODULE PLACED IN cj1.OBJ
COMPILER INVOKED BY: D:\学习软件\keil\C51\BIN\C51.EXE cj1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include"18B20_1.h" // 包含18b20函数
3 #define uchar unsigned char
4 #define uint unsigned int
5
6
7 sbit RE=P3^4;
8 uchar code display_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x77,0x73};
9 uchar ti=0;temperature[4]={11,0,0,0};
10
11
12 void display(); // 显示函数
13 void delay1(uint a); // 延时函数
14
15 void main()
16 {
17 1 int temp;
18 1
19 1 TMOD=0x21; //定时计数器1设置为模式2 ,定时计数器0为模式1
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 TR0=1;
27 1 TR1=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 1
47 1 }
48
49
50 void delay1(uint a)
51 {
52 1 uchar i;
53 1 for(;a>0;a--)
54 1 for(i=100;i>0;i--);
55 1
C51 COMPILER V8.01 CJ1 03/22/2010 19:34:14 PAGE 2
56 1 }
57
58
59 void display()
60 {
61 1
62 1 P2=0XFF; // 显示从机的代号
63 1 P0=display_table[temperature[0]];
64 1 P2=0xfe;
65 1 delay1(1);
66 1
67 1 P2=0XFF; // 显示温度
68 1 P0=display_table[temperature[1]];
69 1 P2=0xfd;
70 1 delay1(1);
71 1
72 1 P2=0XFF;
73 1 P0=display_table[temperature[2]];
74 1 P2=0xfb;
75 1 delay1(1);
76 1
77 1 P2=0XFF;
78 1 P0=display_table[temperature[3]]+0x80;
79 1 P2=0xf7;
80 1 delay1(1);
81 1
82 1 }
83
84
85 void time() interrupt 1
86 {
87 1 TH0=(65536-50000*110592/120000)/256;
88 1 TL0=(65536-50000*110592/120000)%256;
89 1
90 1 ti++;
91 1 }
92
93
94 void r_scon() interrupt 4 //串口中断
95 {
96 1 uchar i;
97 1
98 1 if(RI==1)
99 1 {
100 2 RI=0;
101 2 delay1(10);
102 2 if(SBUF==1) //判断是否是本机地址,为1
103 2 {
104 3 ES=0; //关串口中断
105 3 SM2=0;
106 3
107 3 RE=1; //准备发送数据
108 3 delay1(5);
109 3
110 3 SBUF=1; //将本机的地址发送给主机
111 3 while(TI!=1);
112 3 TI=0;
113 3 delay1(10);
114 3
115 3 for(i=0;i<4;i++) //发送要显示的4个数据
116 3 {
117 4 SBUF=temperature[i];
C51 COMPILER V8.01 CJ1 03/22/2010 19:34:14 PAGE 3
118 4 while(TI!=1);
119 4 TI=0;
120 4 delay1(10);
121 4 }
122 3
123 3 RE=0;
124 3 ES=1;
125 3 SM2=1;
126 3
127 3 }
128 2
129 2 }
130 1 }
131
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 526 ----
CONSTANT SIZE = 13 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 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 + -