📄 route0.lst
字号:
C51 COMPILER V7.00 ROUTE0 06/14/2005 17:21:08 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE ROUTE0
OBJECT MODULE PLACED IN route0.OBJ
COMPILER INVOKED BY: C:\PROGRA~1\KEILC5~1\C51\BIN\c51.exe route0.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include<rount3.h>
2 #include<intrins.h>
3 /////////////////////////////////////////
4 //名称:温度采集程序
5 //功能:命令64个DS18B20同时开始温度采集
6 ////////////////////////////////////////
7 extern void read_all_tmp(void);
8
9 void send_ds_cmd(void)
10 {
11 1 if(!OWReset())
12 1 {
13 2 OWWriteByte(0xCC);
14 2 OWWriteByte(0x44);
15 2 delay_time_1s();
16 2 }
17 1 read_all_tmp();
18 1 }
19
20 ////////////////////////////////////////
21 //名称:配置DS18B20
22 //功能:配置DS18B20 采样精度,告警上下限
23 ///////////////////////////////////////
24 extern unsigned char pc_cmd_data[4];
25
26 sbit DQ =0x97;
27 void configure_ds(void)
28 {
29 1 unsigned char i,j;
30 1 unsigned char id_count =0;
31 1 unsigned char sla_adr;
32 1 unsigned char init_adr;
33 1 unsigned char pc_config_data[3];
34 1 unsigned char id_rom[8];
35 1 bit data page_flg =0;
36 1 bit data flag;
37 1
38 1 i =0;
39 1 j =0;
40 1 for(i=0;i<3;i++)
41 1 {
42 2 pc_config_data[i] =pc_cmd_data[i];
43 2 }
44 1
45 1 sla_adr =0xA0; //24C08硬件地址
46 1 init_adr =0x00; //DS18B20 ID在EEPROM中存放首地址
47 1 flag =OWReset();
48 1 if(!flag)
49 1 {
50 2 do
51 2 {
52 3 if(page_flg==1)
53 3 { sla_adr =0xA2;
54 4 rdnbyt(&id_rom[0],sla_adr,8);
55 4 goto next;
C51 COMPILER V7.00 ROUTE0 06/14/2005 17:21:08 PAGE 2
56 4 }
57 3 if(id_count==0xf8)
58 3 page_flg =1;
59 3
60 3 if(j==0)
61 3 rdadr(&id_rom[0],sla_adr,init_adr,8);
62 3 else
63 3 rdnbyt(&id_rom[0],sla_adr,8); //读取下一个DS18B20 ID
64 3
65 3 next: OWReset();
66 3 OWWriteByte(0x55); //发匹配ID命令
67 3 for(i=0;i<8;i++)
68 3 {
69 4 OWWriteByte(id_rom[i]);
70 4 }
71 3 OWWriteByte(0x4E); //送出Write ScatchPad命令
72 3 for(i=0;i<3;i++)
73 3 {
74 4 OWWriteByte(pc_config_data[i]);
75 4 }
76 3
77 3 flag =OWReset();
78 3 if(!flag)
79 3 {
80 4 OWWriteByte(0x55); //发匹配ID命令
81 4 for(i=0;i<8;i++)
82 4 {
83 5 OWWriteByte(id_rom[i]);
84 5 }
85 4 OWWriteByte(0x48); //发COPY ROM命令
86 4 DQ =1;
87 4 delay_time_1s();
88 4 }
89 3
90 3 id_count+=8;
91 3 j++;
92 3 }while(!OWReset()&&(j<64) ); //配置64个DS18B20
93 2
94 2 }
95 1 }
96
97
98 /////////////////////////////////////////////
99 //名称:定时参数设置程序
100 //功能:修改定时采样时间间隔
101 /////////////////////////////////////////////
102 extern unsigned int data t1_data0;
103 extern unsigned int data t1_data1;
104
105 void change_time(void)
106 {
107 1 unsigned int data time_tmp;
108 1 time_tmp =0x0000|pc_cmd_data[0];
109 1 time_tmp =(time_tmp<<8)&0xff00;
110 1 t1_data0 =time_tmp|pc_cmd_data[1];
111 1
112 1 time_tmp =0x0000|pc_cmd_data[2];
113 1 time_tmp =(time_tmp<<8)&0xff00;
114 1 t1_data1 =time_tmp|pc_cmd_data[3];
115 1
116 1 }
117
C51 COMPILER V7.00 ROUTE0 06/14/2005 17:21:08 PAGE 3
118 ////////////////////////////////////////
119 //名称:出错处理
120 //功能:接收到PC非法命令,作显示提示
121 ////////////////////////////////////////
122 void error_set(void)
123 {
124 1 //printf("Command Error!\n");
125 1 _nop_();
126 1 _nop_();
127 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 294 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 16
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 + -