📄 main_rount.lst
字号:
C51 COMPILER V7.00 MAIN_ROUNT 06/13/2005 14:41:59 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN_ROUNT
OBJECT MODULE PLACED IN main_rount.OBJ
COMPILER INVOKED BY: C:\PROGRA~1\KEILC5~1\C51\BIN\c51.exe main_rount.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #include<iicrount_h.h>
4
5 extern void read_id(void);
6
7 sbit led =0x95; //p1.5
8 sbit key0 =0x91; //p1.1
9
10 unsigned char data sla_adr;
11 ////////////////////////////
12 //名称:延迟程序
13 //功能:根据参数延迟
14 ////////////////////////////
15 void delay_time(unsigned int us) //29us/40us/52us/64us
16 {
17 1 unsigned int data i;
18 1 for(i=0;i<=us;i++)
19 1 _nop_();
20 1 }
21
22 void delay_time_10ms(void) //12ms
23 {
24 1 delay_time(1000);
25 1 }
26
27 void delay_time_1s (void) //实际模拟仿真测试 /0.9s
28 {
29 1 unsigned char data i;
30 1 while(i<4)
31 1 {
32 2 delay_time(8000);
33 2 _nop_();
34 2 delay_time(8000);
35 2 i++;
36 2 }
37 1 }
38
39 ////////////////////////////////
40 //名称:键盘扫描
41 //功能:重新配置DS18B20,DS18B20 ID修改
42 ////////////////////////////////
43 bit keyscan(void)
44 {
45 1 unsigned char data i=0;
46 1 if(key0==0) //1键按下,发读DS18B20 ID命令,ID写入EEPROM,RAM备份
47 1 {
48 2 delay_time_10ms(); //按键消抖
49 2 if(key0==0)
50 2 {
51 3 led =~led; //led 闪烁一次,按键有效
52 3 read_id(); //查询所有DS18B20 ID,存EEPROM
53 3 while(key0==0); //等待按键释放
54 3 while(i<3) //LED闪烁3下,提示搜索成功
55 3 {
C51 COMPILER V7.00 MAIN_ROUNT 06/13/2005 14:41:59 PAGE 2
56 4 delay_time_1s();
57 4 led =~led;
58 4 i++;
59 4 }
60 3 return 1;
61 3 }
62 2 }
63 1 else
64 1 return 0;
65 1 }
66
67 //////////////////////////////////////////
68 //名称:读取EEPROM中DS18B20 ID
69 //////////////////////////////////////////
70 void read_all_id(void)
71 {
72 1 unsigned char k =0;
73 1 unsigned char id_count =0;
74 1 unsigned char init_adr =0x00;
75 1 unsigned char id_data[8];
76 1 bit page_ch_flg =0;
77 1
78 1 sla_adr =0xA0;
79 1 do
80 1 {
81 2 if(page_ch_flg==1)
82 2 {
83 3 page_ch_flg =0;
84 3 sla_adr =sla_adr|pagel; //修改页地址
85 3 rdadr(&id_data[0],sla_adr,init_adr,8);
86 3 goto next;
87 3 }
88 2
89 2 if(id_count==0xf8)
90 2 page_ch_flg =1;
91 2 if(k==0)
92 2 rdadr(&id_data[0],sla_adr,init_adr,8);
93 2 else
94 2 rdnbyt(&id_data[0],sla_adr,8);
95 2
96 2 next: id_count+=8;
97 2 k++;
98 2 }while(k<64);
99 1 _nop_();
100 1 }
101
102 ////////////////////////////////////////////
103 //名称:主程序
104 ////////////////////////////////////////////
105 main()
106 {
107 1 led =1; //上电指示
108 1 loop:if(keyscan())
109 1 read_all_id();
110 1 goto loop;
111 1 }
112
113
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 185 ----
C51 COMPILER V7.00 MAIN_ROUNT 06/13/2005 14:41:59 PAGE 3
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 13
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -