From 7cb8f84a5fa657e639413fc01d859c685f21cc73 Mon Sep 17 00:00:00 2001 From: htujun <134864016@qq.com> Date: Sun, 1 May 2022 12:27:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=A8=E9=83=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/keil-assistant.log | 4 + .vscode/uv4.log.lock | 2 +- DS18B20.LST | 135 ++++ DS18B20.OBJ | Bin 0 -> 6044 bytes DS18B20.__i | 1 + DS18B20.c | 108 +++ DS18B20.h | 11 + Light.LST | 324 ++++++++ Light.__i | 1 + Light.c | 297 +++++++ ds1302.LST | 12 +- ds1302.OBJ | Bin 5795 -> 5654 bytes ds1302.c | 4 +- lcd.LST | 6 +- lcd.OBJ | Bin 3496 -> 3496 bytes lcd.h | 2 +- main.LST | 769 +++++++++++++----- main.OBJ | Bin 13171 -> 32879 bytes main.c | 446 +++++++++- pro | Bin 26197 -> 49170 bytes pro.M51 | 1575 +++++++++++++++++++++++++----------- pro.build_log.htm | 10 +- pro.hex | 591 ++++++++++---- pro.lnp | 3 +- pro.uvgui.QY | 69 +- pro.uvopt | 14 +- pro.uvproj | 5 + 27 files changed, 3489 insertions(+), 900 deletions(-) create mode 100644 DS18B20.LST create mode 100644 DS18B20.OBJ create mode 100644 DS18B20.__i create mode 100644 DS18B20.c create mode 100644 DS18B20.h create mode 100644 Light.LST create mode 100644 Light.__i create mode 100644 Light.c diff --git a/.vscode/keil-assistant.log b/.vscode/keil-assistant.log index 96f7344..dd63fcb 100644 --- a/.vscode/keil-assistant.log +++ b/.vscode/keil-assistant.log @@ -1,2 +1,6 @@ [info] Log at : 2022/4/29|01:03:00|GMT+0800 +[info] Log at : 2022/4/30|17:48:13|GMT+0800 + +[info] Log at : 2022/4/30|20:14:44|GMT+0800 + diff --git a/.vscode/uv4.log.lock b/.vscode/uv4.log.lock index 138c8b9..c8c9003 100644 --- a/.vscode/uv4.log.lock +++ b/.vscode/uv4.log.lock @@ -1 +1 @@ -2022/4/29 1:06:45 \ No newline at end of file +2022/4/30 20:16:59 \ No newline at end of file diff --git a/DS18B20.LST b/DS18B20.LST new file mode 100644 index 0000000..783da46 --- /dev/null +++ b/DS18B20.LST @@ -0,0 +1,135 @@ +C51 COMPILER V9.56.0.0 DS18B20 04/30/2022 20:50:18 PAGE 1 + + +C51 COMPILER V9.56.0.0, COMPILATION OF MODULE DS18B20 +OBJECT MODULE PLACED IN DS18B20.OBJ +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE DS18B20.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND TABS(2) + +line level source + + 1 #include "DS18B20.h" + 2 + 3 sbit DS18B20=P3^2; //定义数据线 + 4 + 5 void delay_ms(unsigned int x)//延时1ms + 6 { + 7 1 unsigned int y,z; + 8 1 for(y=x;y>0;y--) + 9 1 for(z=110;z>0;z--); + 10 1 } + 11 + 12 uchar DS18B20_Init() //初始化。成功返回1,不成功返回0. + 13 { + 14 1 uchar i; + 15 1 DS18B20 = 0; //将总线拉低480微秒~960微秒 + 16 1 i = 70; + 17 1 while(i--); //延时642微秒 + 18 1 DS18B20 = 1; //拉高总线,等待后续反馈 + 19 1 i = 0; + 20 1 while(DS18B20) //等待DS18B20拉低总线 + 21 1 { + 22 2 delay_ms(1); //定义的延迟1ms的延迟函数 + 23 2 i++; + 24 2 if(i>5) //等待5ms以上 + 25 2 { + 26 3 return 0; //初始化失败 + 27 3 } + 28 2 } + 29 1 return 1; //初始化成功 + 30 1 } + 31 + 32 uchar DS18B20_ReadByte() //通过读取8次状态位达到读取字节的目的 + 33 { + 34 1 uchar byte, bi; + 35 1 uint i, j; + 36 1 for(j=8; j>0; j--) + 37 1 { + 38 2 DS18B20 = 0; //先将总线拉低 + 39 2 i++; + 40 2 DS18B20 = 1; //然后释放总线 + 41 2 i++; + 42 2 i++; //延时6微秒等待数据稳定 + 43 2 bi = DS18B20; //读取数据,从最低位开始读取 + 44 2 byte = (byte >> 1) | (bi << 7); //从最低位开始记录,将byte依次右移 + 45 2 i = 4; //读取完之后等待48微秒再接着读取下一个数 + 46 2 while(i--); + 47 2 } + 48 1 return byte; //将读取完的字节保存 + 49 1 } + 50 + 51 void DS18B20_WriteByte(uchar dat)//函数通过循环写8个位实现写一个字节 + 52 { + 53 1 uint i, j; + 54 1 for(j=0; j<8; j++) + 55 1 { + C51 COMPILER V9.56.0.0 DS18B20 04/30/2022 20:50:18 PAGE 2 + + 56 2 DS18B20 = 0; //每写入一位数据之前先把总线拉低 + 57 2 i++; + 58 2 DS18B20 = dat & 0x01; //然后写入一个数据,从最低位开始 + 59 2 i=6; + 60 2 while(i--); //延时68微秒 + 61 2 DS18B20 = 1; //释放总线,给总线1微秒恢复时间才能接着写入下一位 + 62 2 dat >>= 1; + 63 2 } + 64 1 } + 65 + 66 int DS18B20_ReadTemp() //读取的温度有两个字节,分别用tml和tmh存储两个字节 + 67 { + 68 1 int temp = 0; + 69 1 uchar tmh, tml; + 70 1 DS18B20_Init(); //传感器初始化 + 71 1 delay_ms(1); //延时1微秒 + 72 1 DS18B20_WriteByte(0xcc); //跳过读取序列号操作 + 73 1 DS18B20_WriteByte(0x44); //温度转换指令 + 74 1 //完成温度转换功能 + 75 1 DS18B20_Init(); //传感器初始化 + 76 1 delay_ms(1); + 77 1 DS18B20_WriteByte(0xcc); //跳过读取序列号操作 + 78 1 DS18B20_WriteByte(0xbe); //发送读取温度指令 + 79 1 //然后等待转换完后发送读取温度命令 + 80 1 tml = DS18B20_ReadByte(); //读取温度值共16位,先读低字节 + 81 1 tmh = DS18B20_ReadByte(); //再读高字节 + 82 1 temp = tmh; //先存高字节,后面通过移位存储低字节 + 83 1 temp <<= 8; + 84 1 temp |= tml; + 85 1 return temp; + 86 1 } + 87 + 88 + 89 uint Temper_change() + 90 { + 91 1 uint temper; + 92 1 float tp; + 93 1 //temper=read_temper(); + 94 1 temper=DS18B20_ReadTemp(); + 95 1 if(temper<0) //考虑负温度的情况 + 96 1 { + 97 2 temper=temper-1; + 98 2 temper=~temper; + 99 2 tp=temper*0.0625; //16位温度转换成10进制的温度 + 100 2 temper=tp*100+0.5; //留两个小数点,并四舍五入 + 101 2 } + 102 1 else + 103 1 { + 104 2 tp=temper*0.0625; //16位温度转换成10进制的温度 + 105 2 temper=tp*100+0.5; //留两个小数点,并四舍五入 + 106 2 } + 107 1 return temper; + 108 1 } + + +MODULE INFORMATION: STATIC OVERLAYABLE + CODE SIZE = 307 ---- + CONSTANT SIZE = ---- ---- + XDATA SIZE = ---- ---- + PDATA SIZE = ---- ---- + DATA SIZE = ---- 7 + IDATA SIZE = ---- ---- + C51 COMPILER V9.56.0.0 DS18B20 04/30/2022 20:50:18 PAGE 3 + + BIT SIZE = ---- ---- +END OF MODULE INFORMATION. + + +C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S) diff --git a/DS18B20.OBJ b/DS18B20.OBJ new file mode 100644 index 0000000000000000000000000000000000000000..250ac109bb330f3246e0a577bf0d316db3a67ed5 GIT binary patch literal 6044 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 + for(z=110;z>0;z--); +} + +uchar DS18B20_Init() //初始化。成功返回1,不成功返回0. + { + uchar i; + DS18B20 = 0; //将总线拉低480微秒~960微秒 + i = 70; + while(i--); //延时642微秒 + DS18B20 = 1; //拉高总线,等待后续反馈 + i = 0; + while(DS18B20) //等待DS18B20拉低总线 + { + delay_ms(1); //定义的延迟1ms的延迟函数 + i++; + if(i>5) //等待5ms以上 + { + return 0; //初始化失败 + } + } + return 1; //初始化成功 +} + +uchar DS18B20_ReadByte() //通过读取8次状态位达到读取字节的目的 +{ + uchar byte, bi; + uint i, j; + for(j=8; j>0; j--) + { + DS18B20 = 0; //先将总线拉低 + i++; + DS18B20 = 1; //然后释放总线 + i++; + i++; //延时6微秒等待数据稳定 + bi = DS18B20; //读取数据,从最低位开始读取 + byte = (byte >> 1) | (bi << 7); //从最低位开始记录,将byte依次右移 + i = 4; //读取完之后等待48微秒再接着读取下一个数 + while(i--); + } + return byte; //将读取完的字节保存 +} + +void DS18B20_WriteByte(uchar dat)//函数通过循环写8个位实现写一个字节 +{ + uint i, j; + for(j=0; j<8; j++) + { + DS18B20 = 0; //每写入一位数据之前先把总线拉低 + i++; + DS18B20 = dat & 0x01; //然后写入一个数据,从最低位开始 + i=6; + while(i--); //延时68微秒 + DS18B20 = 1; //释放总线,给总线1微秒恢复时间才能接着写入下一位 + dat >>= 1; + } +} + +int DS18B20_ReadTemp() //读取的温度有两个字节,分别用tml和tmh存储两个字节 +{ + int temp = 0; + uchar tmh, tml; + DS18B20_Init(); //传感器初始化 + delay_ms(1); //延时1微秒 + DS18B20_WriteByte(0xcc); //跳过读取序列号操作 + DS18B20_WriteByte(0x44); //温度转换指令 + //完成温度转换功能 + DS18B20_Init(); //传感器初始化 + delay_ms(1); + DS18B20_WriteByte(0xcc); //跳过读取序列号操作 + DS18B20_WriteByte(0xbe); //发送读取温度指令 + //然后等待转换完后发送读取温度命令 + tml = DS18B20_ReadByte(); //读取温度值共16位,先读低字节 + tmh = DS18B20_ReadByte(); //再读高字节 + temp = tmh; //先存高字节,后面通过移位存储低字节 + temp <<= 8; + temp |= tml; + return temp; +} + + +uint Temper_change() +{ + uint temper; + float tp; + //temper=read_temper(); + temper=DS18B20_ReadTemp(); + if(temper<0) //考虑负温度的情况 + { + temper=temper-1; + temper=~temper; + tp=temper*0.0625; //16位温度转换成10进制的温度 + temper=tp*100+0.5; //留两个小数点,并四舍五入 + } + else + { + tp=temper*0.0625; //16位温度转换成10进制的温度 + temper=tp*100+0.5; //留两个小数点,并四舍五入 + } + return temper; +} \ No newline at end of file diff --git a/DS18B20.h b/DS18B20.h new file mode 100644 index 0000000..51cf955 --- /dev/null +++ b/DS18B20.h @@ -0,0 +1,11 @@ +#ifndef __DS18B20_H__ +#define __DS18B20_H__ +#include + +#define uchar unsigned char +#define uint unsigned int + +uint Temper_change(); +void delay_ms(unsigned int x);//延时1ms + +#endif \ No newline at end of file diff --git a/Light.LST b/Light.LST new file mode 100644 index 0000000..2c3ec5d --- /dev/null +++ b/Light.LST @@ -0,0 +1,324 @@ +C51 COMPILER V9.56.0.0 LIGHT 04/30/2022 20:06:41 PAGE 1 + + +C51 COMPILER V9.56.0.0, COMPILATION OF MODULE LIGHT +OBJECT MODULE PLACED IN Light.OBJ +COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE Light.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND TABS(2) + +line level source + + 1 #ifndef __LIGHT_H_ + 2 #define __LIGHT_H_ + 3 + 4 #include + 5 #include //Keil library + 6 #include //Keil library + 7 + 8 + 9 #define SlaveAddress 0x46 //IICеĴӵַ,ALT ADDRESSַŲͬ޸ + 10 //ALT ADDRESSŽӵʱַΪ0x46ӵԴʱַΪ0xB8 + 11 + 12 + 13 sbit SCL=P1^0; //IICʱŶ + 14 sbit SDA=P1^1; //IICŶ + 15 + 16 + 17 typedef unsigned short WORD; + 18 + 19 unsigned char BUF[8]; //ݻ + 20 + 21 int dis_data; // + 22 + 23 void delay_nms(unsigned int k); + 24 void InitLcd(); + 25 void Init_BH1750(void); + 26 void WriteDataLCM(uchar dataW); +*** ERROR C141 IN LINE 26 OF Light.c: syntax error near 'dataW', expected ')' + 27 void WriteCommandLCM(uchar CMD,uchar Attribc); +*** ERROR C141 IN LINE 27 OF Light.c: syntax error near 'CMD', expected ')' + 28 void DisplayOneChar(uchar X,uchar Y,uchar DData); +*** ERROR C141 IN LINE 28 OF Light.c: syntax error near 'X', expected ')' + 29 void conversion(uint temp_data); +*** ERROR C141 IN LINE 29 OF Light.c: syntax error near 'temp_data', expected ')' + 30 + 31 void Single_Write_BH1750(uchar REG_Address); //д +*** ERROR C141 IN LINE 31 OF Light.c: syntax error near 'REG_Address', expected ')' + 32 uchar Single_Read_BH1750(uchar REG_Address); //ȡڲĴ +*** ERROR C129 IN LINE 32 OF Light.c: missing ';' before 'Single_Read_BH1750' + 33 void Multiple_Read_BH1750(); //ĶȡڲĴ + 34 //------------------------------------ + 35 void Delay5us(); + 36 void Delay5ms(); + 37 void BH1750_Start(); //ʼź + 38 void BH1750_Stop(); //ֹͣź + 39 void BH1750_SendACK(bit ack); //ӦACK + 40 bit BH1750_RecvACK(); //ack + 41 void BH1750_Sendunsigned char(unsigned char dat); //IICֽд + 42 unsigned char BH1750_Recvunsigned char(); //IICֽڶ + 43 + 44 + 45 //----------------------------------- + 46 + 47 //********************************************************* + 48 void conversion(uint temp_data) // ת ʮ٣ǧ + 49 { + C51 COMPILER V9.56.0.0 LIGHT 04/30/2022 20:06:41 PAGE 2 + + 50 wan=temp_data/10000+0x30 ; + 51 temp_data=temp_data%10000; //ȡ + 52 qian=temp_data/1000+0x30 ; + 53 temp_data=temp_data%1000; //ȡ + 54 bai=temp_data/100+0x30; + 55 temp_data=temp_data%100; //ȡ + 56 shi=temp_data/10+0x30; + 57 temp_data=temp_data%10; //ȡ + 58 ge=temp_data+0x30; + 59 } + 60 + 61 //ʱ************************** + 62 void delay_nms(unsigned int k) + 63 { + 64 unsigned int i,j; + 65 for(i=0;i +#include //Keil library +#include //Keil library + + +#define SlaveAddress 0x46 //IICеĴӵַ,ALT ADDRESSַŲͬ޸ + //ALT ADDRESSŽӵʱַΪ0x46ӵԴʱַΪ0xB8 + + +sbit SCL=P1^0; //IICʱŶ +sbit SDA=P1^1; //IICŶ + + +typedef unsigned short WORD; + +unsigned char BUF[8]; //ݻ + +int dis_data; // + +void delay_nms(unsigned int k); +void InitLcd(); +void Init_BH1750(void); +void WriteDataLCM(uchar dataW); +void WriteCommandLCM(uchar CMD,uchar Attribc); +void DisplayOneChar(uchar X,uchar Y,uchar DData); +void conversion(uint temp_data); + +void Single_Write_BH1750(uchar REG_Address); //д +uchar Single_Read_BH1750(uchar REG_Address); //ȡڲĴ +void Multiple_Read_BH1750(); //ĶȡڲĴ +//------------------------------------ +void Delay5us(); +void Delay5ms(); +void BH1750_Start(); //ʼź +void BH1750_Stop(); //ֹͣź +void BH1750_SendACK(bit ack); //ӦACK +bit BH1750_RecvACK(); //ack +void BH1750_Sendunsigned char(unsigned char dat); //IICֽд +unsigned char BH1750_Recvunsigned char(); //IICֽڶ + + +//----------------------------------- + +//********************************************************* +void conversion(uint temp_data) // ת ʮ٣ǧ +{ + wan=temp_data/10000+0x30 ; + temp_data=temp_data%10000; //ȡ + qian=temp_data/1000+0x30 ; + temp_data=temp_data%1000; //ȡ + bai=temp_data/100+0x30; + temp_data=temp_data%100; //ȡ + shi=temp_data/10+0x30; + temp_data=temp_data%10; //ȡ + ge=temp_data+0x30; +} + +//ʱ************************** +void delay_nms(unsigned int k) +{ +unsigned int i,j; +for(i=0;iO%wpRDv1d$l#!jN#2{h$FN}#nYVt%5;fWL2C%19ROPoBdq!}xUaPVO>hQwHYAMm*}1GkJIzuWT;kSdCx7Sr)KwK`Pr)wlZ)}P7`dN{8P|?@%3gcp-L72 D5ARns delta 409 zcmbQHvsib6r?Td@tR$|KVnbsCBRzj7FGhxsTe6ZkpaRKE3_$sbIev_PChm@4RGuut zSjISUayR3Cc1C3l78a$<&4EnZEU7FE%#3-_>>3Qr3=9lU{?_*i0jWQ4CNMBe{$IkN z^W)iHpa9Pv_P4bS^?ghX4BecX46F<+jEq3#+(4R*ft^8sfq{`7$QOf(D?({+0cHjk zhL_4llV`E1@FxJRkYGpzk}?cQ41tr6vwdOe|2%mwyALnz%uzNw>oPAP@Zw}M{aS(l+Bzxt69`l8Gt?mVnzlwAPoZl rfq)UD9mocG6~q^ud|E)7`6vU=y+V3|o2&$PZW4P=a*Ce6lNTd{{O+tIRuC_li9wJ%cVe;z~Z$(I@H)%XNB8JO67>VRiV-R9sxHP4nwT^*h za|M$fvl!5@Bqj#1(HYkhl^7%}|AjFzOe~Pz{G64EiOE2C@@sZ!M&8Nn9NLTzHyd-5 GvH}32oG48I delta 160 zcmZ1>y+V3|o9u<%SxM|U$timNPF{=*@<1Ldh?mU7z_2@OVzLI~fsH*DjQkTAn3)0$ z85o!rfEY%TFEiGwy%FGKU}E#JH!v_X?PC{XU}RumI5f3?K|Ny~gAfD5r788Sbqr57 zS1{QzivbNwVqyRronf7*#2{h$FN}#{VuAGL=d4UjOh$r}U$aXy@=s>x&}O{9*_fl0 F6#!)@EKL9a diff --git a/lcd.h b/lcd.h index 4da754f..dc13d8a 100644 --- a/lcd.h +++ b/lcd.h @@ -23,7 +23,7 @@ /********************************** PINڶ **********************************/ -#define LCD1602_DATAPINS P2 +#define LCD1602_DATAPINS P0 sbit LCD1602_E=P1^4; sbit LCD1602_RW=P1^5; sbit LCD1602_RS=P1^6; diff --git a/main.LST b/main.LST index 308c3be..9281c8f 100644 --- a/main.LST +++ b/main.LST @@ -1,4 +1,4 @@ -C51 COMPILER V9.56.0.0 MAIN 04/29/2022 01:22:41 PAGE 1 +C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 1 C51 COMPILER V9.56.0.0, COMPILATION OF MODULE MAIN @@ -11,198 +11,603 @@ line level source 2 #include"lcd.h" 3 #include"ds1302.h" 4 #include"i2c.h" - 5 #include - 6 #include - 7 - 8 sbit LED0=P0^2; - 9 sbit LED1=P0^1; - 10 sbit LED2=P0^0; - 11 sbit LED3=P0^4; - 12 - 13 sbit LED4=P0^3; - 14 - 15 sbit key1 = P1^2; - 16 sbit key2 = P1^3; + 5 #include "DS18B20.h" + 6 + 7 #include + 8 #include + 9 + 10 + 11 #define uchar unsigned char + 12 #define uint unsigned int + 13 + 14 sbit LED0=P2^5; + 15 sbit LED1=P2^6; + 16 sbit LED2=P2^1; 17 - 18 sbit IN = P3^7; - 19 sbit OUT = P3^6; - 20 - 21 struct UserInfo{ - 22 int num; - 23 int model; - 24 int start; - 25 int Light; - 26 }; + 18 sbit LED3=P2^4; + 19 + 20 sbit LED4=P2^3; + 21 + 22 sbit key1 = P1^2; + 23 sbit key2 = P1^3; + 24 sbit key3 = P2^2; + 25 sbit key4 = P2^7; + 26 27 - 28 struct UserInfo userInfo; - 29 - 30 void LcdDisplay(); - 31 void LcdDisplay1(); - 32 void Delay10ms(void); + 28 sbit IN = P3^7; + 29 sbit OUT = P3^6; + 30 + 31 sbit SCL1=P1^1; + 32 sbit SDA1=P1^0; 33 - 34 void Uart_Init() - 35 { - 36 1 TMOD = 0x20 | 0x01; - 37 1 SCON = 0x50; - 38 1 TH1 = 0xFD; - 39 1 TL1 = TH1; - 40 1 PCON = 0x00; - 41 1 EA = 1; - 42 1 ES = 1; - 43 1 TR1 = 1; - 44 1 } - 45 - 46 void us_delay(uchar t) - 47 { - 48 1 while(t--); - 49 1 } - 50 - 51 void Send_Uart(uchar value) - 52 { - 53 1 ES=0; - 54 1 TI=0; - 55 1 SBUF=value; - C51 COMPILER V9.56.0.0 MAIN 04/29/2022 01:22:41 PAGE 2 - - 56 1 while(TI==0); - 57 1 TI=0; - 58 1 ES=1; - 59 1 } - 60 - 61 void Bluetooth_Set(uchar *puf) - 62 { - 63 1 while(*puf!='\0') - 64 1 { - 65 2 Send_Uart(*puf); - 66 2 us_delay(5); - 67 2 puf++; - 68 2 } - 69 1 } - 70 - 71 void Detection() - 72 { - 73 1 int i = 0; - 74 1 if(key1==0) //��ⰴ��K1�Ƿ��� - 75 1 { - 76 2 Delay10ms(); //�������� - 77 2 if(key1==0){ - 78 3 if(userInfo.model == 0) userInfo.model = 1; - 79 3 else userInfo.model = 0; - 80 3 } - 81 2 while((i<50)&&(key1==0)){ - 82 3 Delay10ms(); - 83 3 i++; - 84 3 } - 85 2 i=0; - 86 2 } - 87 1 - 88 1 if(key2==0) //��ⰴ��K1�Ƿ��� - 89 1 { - 90 2 Delay10ms(); //�������� - 91 2 if(key2==0){ - 92 3 if(userInfo.start == 0) userInfo.start = 1; - 93 3 else userInfo.start = 0; - 94 3 } - 95 2 while((i<50)&&(key2==0)){ - 96 3 Delay10ms(); - 97 3 i++; - 98 3 } - 99 2 i=0; - 100 2 } - 101 1 - 102 1 if(IN==0) //��ⰴ��K1�Ƿ��� - 103 1 { - 104 2 Delay10ms(); //�������� - 105 2 if(IN==0){ - 106 3 userInfo.num++; - 107 3 if(userInfo.num > 99) userInfo.num = 99; - 108 3 } - 109 2 while((i<50)&&(IN==0)){ - 110 3 Delay10ms(); - 111 3 i++; - 112 3 } - 113 2 i=0; - 114 2 } - 115 1 - 116 1 if(OUT==0) //��ⰴ��K1�Ƿ��� - 117 1 { - C51 COMPILER V9.56.0.0 MAIN 04/29/2022 01:22:41 PAGE 3 - - 118 2 Delay10ms(); //�������� - 119 2 if(OUT==0){ - 120 3 userInfo.num--; - 121 3 if(userInfo.num < 0) userInfo.num = 0; - 122 3 } - 123 2 while((i<50)&&(OUT==0)){ - 124 3 Delay10ms(); - 125 3 i++; - 126 3 } - 127 2 i=0; - 128 2 } - 129 1 } - 130 - 131 void Dispose() - 132 { - 133 1 if(userInfo.start && userInfo.model){ - 134 2 LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; - 135 2 }else{ - 136 2 if(userInfo.Light < 50 && userInfo.model == 0){ - 137 3 if(userInfo.num < 10 && userInfo.num > 0) LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 1; - 138 3 else if(userInfo.num >= 10 && userInfo.num < 20) LED0 = 0, LED1 = 0, LED2 = 1 ,LED3 = 1; - 139 3 else if(userInfo.num >= 20 && userInfo.num < 30) LED0 = 0, LED1 = 1, LED2 = 1 ,LED3 = 1; - 140 3 else if(userInfo.num >= 30) LED0 = 1, LED1 = 1, LED2 = 1 ,LED3 = 1; - 141 3 else LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; - 142 3 } - 143 2 } - 144 1 LED4 = userInfo.model; - 145 1 } - 146 - 147 void main() - 148 { - 149 1 int i = 0; - 150 1 uchar str[30]; - 151 1 LcdInit(); - 152 1 Ds1302Init(); - 153 1 Uart_Init(); - 154 1 while(1) - 155 1 { - 156 2 Ds1302ReadTime(); - 157 2 LcdDisplay(); - 158 2 Detection(); - 159 2 sprintf(str, "%d\r\n", userInfo.model); - 160 2 Bluetooth_Set(str); - 161 2 Dispose(); - 162 2 } - 163 1 } - 164 + 34 int cut = 0; + 35 + 36 struct Time{ + 37 int hour; + 38 int min; + 39 int sec; + 40 }; + 41 + 42 struct UserInfo{ + 43 int num; + 44 int model; + 45 int set; + 46 int start; + 47 float Light; + 48 int temp; + 49 struct Time time[2]; + 50 }; + 51 + 52 struct UserInfo userInfo; + 53 + 54 void LcdDisplay(); + 55 void LcdDisplay1(); + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 2 + + 56 void Delay10ms(void); + 57 + 58 #define SlaveAddress 0x46 //¶¨ÒåÆ÷¼þÔÚIIC×ÜÏßÖеĴӵØÖ·,¸ù¾ÝALT ADDRESSµ + -ØÖ·Òý½Å²»Í¬ÐÞ¸Ä + 59 //ALT ADDRESSÒý½Å½ÓµØʱµØַΪ0x46£¬½ÓµçԴʱµØÖ + -·Îª0xB8 + 60 typedef unsigned char BYTE; + 61 typedef unsigned short WORD; + 62 + 63 BYTE BUF[8]; //½ÓÊÕÊý¾Ý»º´æÇø + 64 int dis_data; //±äÁ¿ + 65 + 66 void delay_nms(unsigned int k); + 67 void InitLcd(); + 68 void Init_BH1750(void); + 69 + 70 void WriteDataLCM(uchar dataW); + 71 void WriteCommandLCM(uchar CMD,uchar Attribc); + 72 void DisplayOneChar(uchar X,uchar Y,uchar DData); + 73 void conversion(uint temp_data); + 74 + 75 void Single_Write_BH1750(uchar REG_Address); //µ¥¸öдÈëÊý¾Ý + 76 uchar Single_Read_BH1750(uchar REG_Address); //µ¥¸ö¶ÁÈ¡ÄÚ²¿¼Ä´æÆ÷Êý¾Ý + 77 void Multiple_Read_BH1750(); //Á¬ÐøµÄ¶ÁÈ¡ÄÚ²¿¼Ä´æÆ÷Êý + -¾Ý + 78 //------------------------------------ + 79 void Delay5us(); + 80 void Delay5ms(); + 81 void BH1750_Start(); //ÆðʼÐźŠ+ 82 void BH1750_Stop(); //Í£Ö¹ÐźŠ+ 83 void BH1750_SendACK(bit ack); //Ó¦´ðACK + 84 bit BH1750_RecvACK(); //¶Áack + 85 void BH1750_SendByte(BYTE dat); //IICµ¥¸ö×Ö½Úд + 86 BYTE BH1750_RecvByte(); //IICµ¥¸ö×Ö½Ú¶Á + 87 + 88 + 89 //ºÁÃëÑÓʱ************************** + 90 void delay_nms(unsigned int k) + 91 { + 92 1 unsigned int i,j; + 93 1 for(i=0;i0;c--) - 178 1 for(b=38;b>0;b--) - 179 1 for(a=130;a>0;a--); - C51 COMPILER V9.56.0.0 MAIN 04/29/2022 01:22:41 PAGE 4 - - 180 1 } + 166 /************************************** + 167 ÏòIIC×ÜÏß·¢ËÍÒ»¸ö×Ö½ÚÊý¾Ý + 168 **************************************/ + 169 void BH1750_SendByte(BYTE dat) + 170 { + 171 1 BYTE i; + 172 1 + 173 1 for (i=0; i<8; i++) //8λ¼ÆÊýÆ÷ + 174 1 { + 175 2 dat <<= 1; //ÒƳöÊý¾ÝµÄ×î¸ßλ + 176 2 SDA1 = CY; //ËÍÊý¾Ý¿Ú + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 4 + + 177 2 SCL1 = 1; //À­¸ßʱÖÓÏß + 178 2 Delay5us(); //ÑÓʱ + 179 2 SCL1 = 0; //À­µÍʱÖÓÏß + 180 2 Delay5us(); //ÑÓʱ + 181 2 } + 182 1 BH1750_RecvACK(); + 183 1 } + 184 + 185 /************************************** + 186 ´ÓIIC×ÜÏß½ÓÊÕÒ»¸ö×Ö½ÚÊý¾Ý + 187 **************************************/ + 188 BYTE BH1750_RecvByte() + 189 { + 190 1 BYTE i; + 191 1 BYTE dat = 0; + 192 1 + 193 1 SDA1 = 1; //ʹÄÜÄÚ²¿ÉÏÀ­,×¼±¸¶ÁÈ¡Êý¾Ý, + 194 1 for (i=0; i<8; i++) //8λ¼ÆÊýÆ÷ + 195 1 { + 196 2 dat <<= 1; + 197 2 SCL1 = 1; //À­¸ßʱÖÓÏß + 198 2 Delay5us(); //ÑÓʱ + 199 2 dat |= SDA1; //¶ÁÊý¾Ý + 200 2 SCL1 = 0; //À­µÍʱÖÓÏß + 201 2 Delay5us(); //ÑÓʱ + 202 2 } + 203 1 return dat; + 204 1 } + 205 + 206 //********************************* + 207 + 208 void Single_Write_BH1750(uchar REG_Address) + 209 { + 210 1 BH1750_Start(); //ÆðʼÐźŠ+ 211 1 BH1750_SendByte(SlaveAddress); //·¢ËÍÉ豸µØÖ·+дÐźŠ+ 212 1 BH1750_SendByte(REG_Address); //ÄÚ²¿¼Ä´æÆ÷µØÖ·£¬ + 213 1 // BH1750_SendByte(REG_data); //ÄÚ²¿¼Ä´æÆ÷Êý¾Ý£¬ + 214 1 BH1750_Stop(); //·¢ËÍÍ£Ö¹ÐźŠ+ 215 1 } + 216 + 217 //********µ¥×Ö½Ú¶ÁÈ¡***************************************** + 218 /* + 219 uchar Single_Read_BH1750(uchar REG_Address) + 220 { uchar REG_data; + 221 BH1750_Start(); //ÆðʼÐźŠ+ 222 BH1750_SendByte(SlaveAddress); //·¢ËÍÉ豸µØÖ·+дÐźŠ+ 223 BH1750_SendByte(REG_Address); //·¢ËÍ´æ´¢µ¥ÔªµØÖ·£¬´Ó0¿ªÊ¼ + 224 BH1750_Start(); //ÆðʼÐźŠ+ 225 BH1750_SendByte(SlaveAddress+1); //·¢ËÍÉ豸µØÖ·+¶ÁÐźŠ+ 226 REG_data=BH1750_RecvByte(); //¶Á³ö¼Ä´æÆ÷Êý¾Ý + 227 BH1750_SendACK(1); + 228 BH1750_Stop(); //Í£Ö¹ÐźŠ+ 229 return REG_data; + 230 } + 231 */ + 232 //********************************************************* + 233 // + 234 //Á¬Ðø¶Á³öBH1750ÄÚ²¿Êý¾Ý + 235 // + 236 //********************************************************* + 237 void Multiple_read_BH1750(void) + 238 + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 5 + + 239 { uchar i; + 240 1 BH1750_Start(); //ÆðʼÐźŠ+ 241 1 BH1750_SendByte(SlaveAddress+1); //·¢ËÍÉ豸µØÖ·+¶ÁÐźŠ+ 242 1 + 243 1 for (i=0; i<3; i++) //Á¬Ðø¶ÁÈ¡2¸öµØÖ·Êý¾Ý£¬´æ´¢ÖÐBUF + 244 1 { + 245 2 BUF[i] = BH1750_RecvByte(); //BUF[0]´æ´¢0x32µØÖ·ÖеÄÊý¾Ý + 246 2 if (i == 3) + 247 2 { + 248 3 + 249 3 BH1750_SendACK(1); //×îºóÒ»¸öÊý¾ÝÐèÒª»ØNOACK + 250 3 } + 251 2 else + 252 2 { + 253 3 BH1750_SendACK(0); //»ØÓ¦ACK + 254 3 } + 255 2 } + 256 1 + 257 1 BH1750_Stop(); //Í£Ö¹ÐźŠ+ 258 1 Delay5ms(); + 259 1 } + 260 + 261 + 262 //³õʼ»¯BH1750£¬¸ù¾ÝÐèÒªÇë²Î¿¼pdf½øÐÐÐÞ¸Ä**** + 263 void Init_BH1750() + 264 { + 265 1 Single_Write_BH1750(0x01); + 266 1 + 267 1 } + 268 + 269 + 270 void Uart_Init() + 271 { + 272 1 TMOD = 0x20 | 0x01; + 273 1 SCON = 0x50; + 274 1 TH1 = 0xFD; + 275 1 TL1 = TH1; + 276 1 PCON = 0x00; + 277 1 EA = 1; + 278 1 ES = 1; + 279 1 TR1 = 1; + 280 1 } + 281 + 282 void us_delay(uchar t) + 283 { + 284 1 while(t--); + 285 1 } + 286 + 287 void Send_Uart(uchar value) + 288 { + 289 1 ES=0; + 290 1 TI=0; + 291 1 SBUF=value; + 292 1 while(TI==0); + 293 1 TI=0; + 294 1 ES=1; + 295 1 } + 296 + 297 void Bluetooth_Set(uchar *puf) + 298 { + 299 1 while(*puf!='\0') + 300 1 { + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 6 + + 301 2 Send_Uart(*puf); + 302 2 us_delay(5); + 303 2 puf++; + 304 2 } + 305 1 } + 306 + 307 void Detection() + 308 { + 309 1 int i = 0; + 310 1 Single_Write_BH1750(0x01); + 311 1 Single_Write_BH1750(0x10); + 312 1 delay_nms(180); + 313 1 Multiple_Read_BH1750(); + 314 1 dis_data=BUF[0]; + 315 1 dis_data=(dis_data<<8)+BUF[1]; + 316 1 userInfo.Light = (float)dis_data/1.2; + 317 1 + 318 1 userInfo.temp = Temper_change(); + 319 1 userInfo.temp /= 100; + 320 1 if(key1==0) + 321 1 { + 322 2 Delay10ms(); + 323 2 if(key1==0){ + 324 3 if(userInfo.set == 0){ + 325 4 if(userInfo.model == 0) userInfo.model = 1; + 326 4 else userInfo.model = 0; + 327 4 } + 328 3 } + 329 2 while((i<50)&&(key1==0)){ + 330 3 Delay10ms(); + 331 3 i++; + 332 3 } + 333 2 i=0; + 334 2 } + 335 1 + 336 1 if(key2==0) + 337 1 { + 338 2 Delay10ms(); + 339 2 if(key2==0){ + 340 3 if(userInfo.model){ + 341 4 if(userInfo.start == 0) userInfo.start = 1; + 342 4 else userInfo.start = 0; + 343 4 }else{ + 344 4 if(userInfo.set == 0) userInfo.set = 1; + 345 4 else userInfo.set = 0; + 346 4 cut = 0; + 347 4 } + 348 3 LcdWriteCom(0x01); //清屏 + 349 3 } + 350 2 while((i<50)&&(key2==0)){ + 351 3 Delay10ms(); + 352 3 i++; + 353 3 } + 354 2 i=0; + 355 2 } + 356 1 + 357 1 if(IN==0) + 358 1 { + 359 2 Delay10ms(); + 360 2 if(IN==0){ + 361 3 userInfo.num++; + 362 3 if(userInfo.num > 99) userInfo.num = 99; + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 7 + + 363 3 } + 364 2 while((i<50)&&(IN==0)){ + 365 3 Delay10ms(); + 366 3 i++; + 367 3 } + 368 2 i=0; + 369 2 } + 370 1 + 371 1 if(OUT==0) //��ⰴ��K1�Ƿ��� + 372 1 { + 373 2 Delay10ms(); //�������� + 374 2 if(OUT==0){ + 375 3 userInfo.num--; + 376 3 if(userInfo.num < 0) userInfo.num = 0; + 377 3 } + 378 2 while((i<50)&&(OUT==0)){ + 379 3 Delay10ms(); + 380 3 i++; + 381 3 } + 382 2 i=0; + 383 2 } + 384 1 + 385 1 if(key3==0) //��ⰴ��K1�Ƿ��� + 386 1 { + 387 2 Delay10ms(); //�������� + 388 2 if(key3==0){ + 389 3 cut++; + 390 3 if(cut >= 4) cut = 0; + 391 3 } + 392 2 while((i<50)&&(key3==0)){ + 393 3 Delay10ms(); + 394 3 i++; + 395 3 } + 396 2 i=0; + 397 2 } + 398 1 + 399 1 if(key4==0) //��ⰴ��K1�Ƿ��� + 400 1 { + 401 2 Delay10ms(); //�������� + 402 2 if(key4==0){ + 403 3 if(cut == 0){ + 404 4 userInfo.time[0].hour++; + 405 4 if(userInfo.time[0].hour >= 24) userInfo.time[0].hour = 0; + 406 4 }else if(cut == 1){ + 407 4 userInfo.time[0].min++; + 408 4 if(userInfo.time[0].min >= 59) userInfo.time[0].min = 0; + 409 4 }else if(cut == 2){ + 410 4 userInfo.time[1].hour++; + 411 4 if(userInfo.time[1].hour >= 24) userInfo.time[1].hour = 0; + 412 4 }else if(cut == 3){ + 413 4 userInfo.time[1].min++; + 414 4 if(userInfo.time[1].min >= 59) userInfo.time[1].min = 0; + 415 4 } + 416 3 while((i<50)&&(key4==0)){ + 417 4 Delay10ms(); + 418 4 i++; + 419 4 } + 420 3 i=0; + 421 3 } + 422 2 } + 423 1 } + 424 + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 8 + + 425 + 426 int getTimeResult() + 427 { + 428 1 int result = 1; + 429 1 struct Time Nowtime; + 430 1 + 431 1 Nowtime.hour = TIME[2]/16 * 10 + (TIME[2]&0x0f); + 432 1 Nowtime.min = TIME[1]/16 * 10 + (TIME[1]&0x0f); + 433 1 + 434 1 if(Nowtime.hour < userInfo.time[0].hour || Nowtime.hour > userInfo.time[1].hour) return 0; + 435 1 if(Nowtime.hour == userInfo.time[0].hour && Nowtime.min < userInfo.time[0].min) return 0; + 436 1 if(Nowtime.hour == userInfo.time[1].hour && Nowtime.min > userInfo.time[1].min) return 0; + 437 1 + 438 1 return result; + 439 1 } + 440 + 441 + 442 void Dispose() + 443 { + 444 1 + 445 1 if(userInfo.model == 0){ + 446 2 if(getTimeResult() && userInfo.Light < 100){ + 447 3 if(userInfo.num < 10 && userInfo.num > 0) LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 1; + 448 3 else if(userInfo.num >= 10 && userInfo.num < 20) LED0 = 0, LED1 = 0, LED2 = 1 ,LED3 = 1; + 449 3 else if(userInfo.num >= 20 && userInfo.num < 30) LED0 = 0, LED1 = 1, LED2 = 1 ,LED3 = 1; + 450 3 else if(userInfo.num >= 30) LED0 = 1, LED1 = 1, LED2 = 1 ,LED3 = 1; + 451 3 else LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; + 452 3 }else{ + 453 3 LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; + 454 3 } + 455 2 }else{ + 456 2 if(userInfo.start){ + 457 3 LED0 = 1, LED1 = 1, LED2 = 1 ,LED3 = 1; + 458 3 }else{ + 459 3 LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; + 460 3 } + 461 2 } + 462 1 LED4 = userInfo.model; + 463 1 } + 464 + 465 void main() + 466 { + 467 1 int i = 0; + 468 1 uchar str[10]; + 469 1 Ds1302Init(); + 470 1 Uart_Init(); + 471 1 LcdInit(); + 472 1 + 473 1 userInfo.time[0].hour = 18; + 474 1 userInfo.time[0].min = 0; + 475 1 userInfo.time[0].sec = 0; + 476 1 + 477 1 userInfo.time[1].hour = 23; + 478 1 userInfo.time[1].min = 30; + 479 1 userInfo.time[1].sec = 0; + 480 1 + 481 1 while(1) + 482 1 { + 483 2 Ds1302ReadTime(); + 484 2 LcdDisplay(); + 485 2 Detection(); + 486 2 Dispose(); + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 9 + + 487 2 sprintf(str, "%d\r\n", userInfo.temp); + 488 2 Bluetooth_Set(str); + 489 2 } + 490 1 } + 491 + 492 void LcdDisplay() + 493 { + 494 1 uint temp_data; + 495 1 if(userInfo.set == 0){ + 496 2 // TODO 显示时间 + 497 2 LcdWriteCom(0x80); + 498 2 LcdWriteData('0'+TIME[4]/16); //月 + 499 2 LcdWriteData('0'+(TIME[4]&0x0f)); + 500 2 LcdWriteData('-'); + 501 2 LcdWriteData('0'+TIME[3]/16); //日 + 502 2 LcdWriteData('0'+(TIME[3]&0x0f)); + 503 2 LcdWriteData(' '); + 504 2 + 505 2 LcdWriteData('0'+TIME[2]/16); //时 + 506 2 LcdWriteData('0'+(TIME[2]&0x0f)); + 507 2 LcdWriteData(':'); + 508 2 LcdWriteData('0'+TIME[1]/16); //分 + 509 2 LcdWriteData('0'+(TIME[1]&0x0f)); + 510 2 LcdWriteData(':'); + 511 2 LcdWriteData('0'+TIME[0]/16); //秒 + 512 2 LcdWriteData('0'+(TIME[0]&0x0f)); + 513 2 + 514 2 LcdWriteData(' '); + 515 2 LcdWriteData('0'+(TIME[5]&0x0f)); + 516 2 + 517 2 LcdWriteCom(0x80 + 0x40); + 518 2 temp_data = userInfo.Light; + 519 2 temp_data=temp_data%10000; + 520 2 LcdWriteData(temp_data/1000+0x30); + 521 2 temp_data=temp_data%1000; + 522 2 LcdWriteData(temp_data/100+0x30); + 523 2 temp_data=temp_data%100; + 524 2 LcdWriteData(temp_data/10+0x30); + 525 2 temp_data=temp_data%10; + 526 2 LcdWriteData(temp_data+0x30); + 527 2 LcdWriteData('L'); + 528 2 LcdWriteData('x'); + 529 2 LcdWriteData(' '); + 530 2 LcdWriteData(userInfo.temp / 10 + 0x30); + 531 2 LcdWriteData(userInfo.temp % 10 + 0x30); + 532 2 LcdWriteData('C'); + 533 2 + 534 2 LcdWriteData(' '); + 535 2 LcdWriteData(userInfo.num / 10 % 10 + 0x30); + 536 2 LcdWriteData(userInfo.num % 10 + 0x30); + 537 2 }else{ + 538 2 LcdWriteCom(0x80); + 539 2 LcdWriteData('0'+ userInfo.time[0].hour/10); //时 + 540 2 LcdWriteData('0'+ userInfo.time[0].hour% 10); + 541 2 LcdWriteData(':'); + 542 2 LcdWriteData('0'+userInfo.time[0].min/10); //分 + 543 2 LcdWriteData('0'+ userInfo.time[0].min % 10); + 544 2 LcdWriteData(':'); + 545 2 LcdWriteData('0'+userInfo.time[0].sec / 10); //秒 + 546 2 LcdWriteData('0'+userInfo.time[0].sec % 10); + 547 2 LcdWriteData(' '); + 548 2 + C51 COMPILER V9.56.0.0 MAIN 05/01/2022 12:19:19 PAGE 10 + + 549 2 LcdWriteData('0'+cut); + 550 2 + 551 2 LcdWriteCom(0x80 + 0x40); + 552 2 LcdWriteData('0'+ userInfo.time[1].hour/10); //时 + 553 2 LcdWriteData('0'+ userInfo.time[1].hour% 10); + 554 2 LcdWriteData(':'); + 555 2 LcdWriteData('0'+userInfo.time[1].min/10); //分 + 556 2 LcdWriteData('0'+ userInfo.time[1].min % 10); + 557 2 LcdWriteData(':'); + 558 2 LcdWriteData('0'+userInfo.time[1].sec / 10); //秒 + 559 2 LcdWriteData('0'+userInfo.time[1].sec % 10); + 560 2 } + 561 1 } + 562 + 563 + 564 void Delay10ms(void) //��� 0us + 565 { + 566 1 unsigned char a,b,c; + 567 1 for(c=1;c>0;c--) + 568 1 for(b=38;b>0;b--) + 569 1 for(a=130;a>0;a--); + 570 1 } MODULE INFORMATION: STATIC OVERLAYABLE - CODE SIZE = 589 ---- + CODE SIZE = 2027 ---- CONSTANT SIZE = 5 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- - DATA SIZE = 8 34 + DATA SIZE = 38 22 IDATA SIZE = ---- ---- - BIT SIZE = ---- ---- + BIT SIZE = ---- 1 END OF MODULE INFORMATION. diff --git a/main.OBJ b/main.OBJ index 0cf0dcd353f18903000abf7debe2d80db93519f8..8aee14c8d243f08f691b7aa3b2d8d03222ab727a 100644 GIT binary patch literal 32879 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 z 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 literal 13171 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 KAMLZ+KmIp-6Fi6j diff --git a/main.c b/main.c index 178634e..4e9990d 100644 --- a/main.c +++ b/main.c @@ -2,27 +2,51 @@ #include"lcd.h" #include"ds1302.h" #include"i2c.h" +#include "DS18B20.h" + #include #include -sbit LED0=P0^2; -sbit LED1=P0^1; -sbit LED2=P0^0; -sbit LED3=P0^4; -sbit LED4=P0^3; +#define uchar unsigned char +#define uint unsigned int + +sbit LED0=P2^5; +sbit LED1=P2^6; +sbit LED2=P2^1; + +sbit LED3=P2^4; + +sbit LED4=P2^3; sbit key1 = P1^2; sbit key2 = P1^3; +sbit key3 = P2^2; +sbit key4 = P2^7; + sbit IN = P3^7; sbit OUT = P3^6; +sbit SCL1=P1^1; +sbit SDA1=P1^0; + +int cut = 0; + +struct Time{ + int hour; + int min; + int sec; +}; + struct UserInfo{ int num; int model; + int set; int start; - int Light; + float Light; + int temp; + struct Time time[2]; }; struct UserInfo userInfo; @@ -31,6 +55,218 @@ void LcdDisplay(); void LcdDisplay1(); void Delay10ms(void); +#define SlaveAddress 0x46 //¶¨ÒåÆ÷¼þÔÚIIC×ÜÏßÖеĴӵØÖ·,¸ù¾ÝALT ADDRESSµØÖ·Òý½Å²»Í¬ÐÞ¸Ä + //ALT ADDRESSÒý½Å½ÓµØʱµØַΪ0x46£¬½ÓµçԴʱµØַΪ0xB8 +typedef unsigned char BYTE; +typedef unsigned short WORD; + +BYTE BUF[8]; //½ÓÊÕÊý¾Ý»º´æÇø +int dis_data; //±äÁ¿ + +void delay_nms(unsigned int k); +void InitLcd(); +void Init_BH1750(void); + +void WriteDataLCM(uchar dataW); +void WriteCommandLCM(uchar CMD,uchar Attribc); +void DisplayOneChar(uchar X,uchar Y,uchar DData); +void conversion(uint temp_data); + +void Single_Write_BH1750(uchar REG_Address); //µ¥¸öдÈëÊý¾Ý +uchar Single_Read_BH1750(uchar REG_Address); //µ¥¸ö¶ÁÈ¡ÄÚ²¿¼Ä´æÆ÷Êý¾Ý +void Multiple_Read_BH1750(); //Á¬ÐøµÄ¶ÁÈ¡ÄÚ²¿¼Ä´æÆ÷Êý¾Ý +//------------------------------------ +void Delay5us(); +void Delay5ms(); +void BH1750_Start(); //ÆðʼÐźŠ+void BH1750_Stop(); //Í£Ö¹ÐźŠ+void BH1750_SendACK(bit ack); //Ó¦´ðACK +bit BH1750_RecvACK(); //¶Áack +void BH1750_SendByte(BYTE dat); //IICµ¥¸ö×Ö½Úд +BYTE BH1750_RecvByte(); //IICµ¥¸ö×Ö½Ú¶Á + + +//ºÁÃëÑÓʱ************************** +void delay_nms(unsigned int k) +{ + unsigned int i,j; + for(i=0;i 99) userInfo.num = 99; @@ -126,19 +381,82 @@ void Detection() } i=0; } + + if(key3==0) //��ⰴ��K1�Ƿ��� + { + Delay10ms(); //�������� + if(key3==0){ + cut++; + if(cut >= 4) cut = 0; + } + while((i<50)&&(key3==0)){ + Delay10ms(); + i++; + } + i=0; + } + + if(key4==0) //��ⰴ��K1�Ƿ��� + { + Delay10ms(); //�������� + if(key4==0){ + if(cut == 0){ + userInfo.time[0].hour++; + if(userInfo.time[0].hour >= 24) userInfo.time[0].hour = 0; + }else if(cut == 1){ + userInfo.time[0].min++; + if(userInfo.time[0].min >= 59) userInfo.time[0].min = 0; + }else if(cut == 2){ + userInfo.time[1].hour++; + if(userInfo.time[1].hour >= 24) userInfo.time[1].hour = 0; + }else if(cut == 3){ + userInfo.time[1].min++; + if(userInfo.time[1].min >= 59) userInfo.time[1].min = 0; + } + while((i<50)&&(key4==0)){ + Delay10ms(); + i++; + } + i=0; + } + } } + +int getTimeResult() +{ + int result = 1; + struct Time Nowtime; + + Nowtime.hour = TIME[2]/16 * 10 + (TIME[2]&0x0f); + Nowtime.min = TIME[1]/16 * 10 + (TIME[1]&0x0f); + + if(Nowtime.hour < userInfo.time[0].hour || Nowtime.hour > userInfo.time[1].hour) return 0; + if(Nowtime.hour == userInfo.time[0].hour && Nowtime.min < userInfo.time[0].min) return 0; + if(Nowtime.hour == userInfo.time[1].hour && Nowtime.min > userInfo.time[1].min) return 0; + + return result; +} + + void Dispose() { - if(userInfo.start && userInfo.model){ - LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; - }else{ - if(userInfo.Light < 50 && userInfo.model == 0){ + + if(userInfo.model == 0){ + if(getTimeResult() && userInfo.Light < 100){ if(userInfo.num < 10 && userInfo.num > 0) LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 1; else if(userInfo.num >= 10 && userInfo.num < 20) LED0 = 0, LED1 = 0, LED2 = 1 ,LED3 = 1; else if(userInfo.num >= 20 && userInfo.num < 30) LED0 = 0, LED1 = 1, LED2 = 1 ,LED3 = 1; else if(userInfo.num >= 30) LED0 = 1, LED1 = 1, LED2 = 1 ,LED3 = 1; else LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; + }else{ + LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; + } + }else{ + if(userInfo.start){ + LED0 = 1, LED1 = 1, LED2 = 1 ,LED3 = 1; + }else{ + LED0 = 0, LED1 = 0, LED2 = 0 ,LED3 = 0; } } LED4 = userInfo.model; @@ -147,27 +465,99 @@ void Dispose() void main() { int i = 0; - uchar str[30]; - LcdInit(); + uchar str[10]; Ds1302Init(); Uart_Init(); + LcdInit(); + + userInfo.time[0].hour = 18; + userInfo.time[0].min = 0; + userInfo.time[0].sec = 0; + + userInfo.time[1].hour = 23; + userInfo.time[1].min = 30; + userInfo.time[1].sec = 0; + while(1) { Ds1302ReadTime(); LcdDisplay(); Detection(); - sprintf(str, "%d\r\n", userInfo.model); - Bluetooth_Set(str); Dispose(); + sprintf(str, "%d\r\n", userInfo.temp); + Bluetooth_Set(str); } } - void LcdDisplay() { - // TODO 显示时间 - LcdWriteCom(0x80); - LcdWriteData('m'); + uint temp_data; + if(userInfo.set == 0){ + // TODO 显示时间 + LcdWriteCom(0x80); + LcdWriteData('0'+TIME[4]/16); //月 + LcdWriteData('0'+(TIME[4]&0x0f)); + LcdWriteData('-'); + LcdWriteData('0'+TIME[3]/16); //日 + LcdWriteData('0'+(TIME[3]&0x0f)); + LcdWriteData(' '); + + LcdWriteData('0'+TIME[2]/16); //时 + LcdWriteData('0'+(TIME[2]&0x0f)); + LcdWriteData(':'); + LcdWriteData('0'+TIME[1]/16); //分 + LcdWriteData('0'+(TIME[1]&0x0f)); + LcdWriteData(':'); + LcdWriteData('0'+TIME[0]/16); //秒 + LcdWriteData('0'+(TIME[0]&0x0f)); + + LcdWriteData(' '); + LcdWriteData('0'+(TIME[5]&0x0f)); + + LcdWriteCom(0x80 + 0x40); + temp_data = userInfo.Light; + temp_data=temp_data%10000; + LcdWriteData(temp_data/1000+0x30); + temp_data=temp_data%1000; + LcdWriteData(temp_data/100+0x30); + temp_data=temp_data%100; + LcdWriteData(temp_data/10+0x30); + temp_data=temp_data%10; + LcdWriteData(temp_data+0x30); + LcdWriteData('L'); + LcdWriteData('x'); + LcdWriteData(' '); + LcdWriteData(userInfo.temp / 10 + 0x30); + LcdWriteData(userInfo.temp % 10 + 0x30); + LcdWriteData('C'); + + LcdWriteData(' '); + LcdWriteData(userInfo.num / 10 % 10 + 0x30); + LcdWriteData(userInfo.num % 10 + 0x30); + }else{ + LcdWriteCom(0x80); + LcdWriteData('0'+ userInfo.time[0].hour/10); //时 + LcdWriteData('0'+ userInfo.time[0].hour% 10); + LcdWriteData(':'); + LcdWriteData('0'+userInfo.time[0].min/10); //分 + LcdWriteData('0'+ userInfo.time[0].min % 10); + LcdWriteData(':'); + LcdWriteData('0'+userInfo.time[0].sec / 10); //秒 + LcdWriteData('0'+userInfo.time[0].sec % 10); + LcdWriteData(' '); + + LcdWriteData('0'+cut); + + LcdWriteCom(0x80 + 0x40); + LcdWriteData('0'+ userInfo.time[1].hour/10); //时 + LcdWriteData('0'+ userInfo.time[1].hour% 10); + LcdWriteData(':'); + LcdWriteData('0'+userInfo.time[1].min/10); //分 + LcdWriteData('0'+ userInfo.time[1].min % 10); + LcdWriteData(':'); + LcdWriteData('0'+userInfo.time[1].sec / 10); //秒 + LcdWriteData('0'+userInfo.time[1].sec % 10); + } } diff --git a/pro b/pro index db564a1402517c18c3e5aedba0572dc3960c90f3..4d048b2a29848b7e97759d77477701a2b114570a 100644 GIT binary patch literal 49170 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 CD>+I4 delta 10741 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 CALLED SEGMENT START LENGTH START LENGTH ---------------------------------------------------------------------- -?C_C51STARTUP ----- ----- ----- ----- +SEGMENT BIT_GROUP DATA_GROUP + +--> CALLED SEGMENT START LENGTH START LENGTH +-------------------------------------------------------------------------- +?C_C51STARTUP ----- ----- ----- ----- + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 3 + + +--> ?PR?MAIN?MAIN +--> ?C_INITSEG -?PR?MAIN?MAIN ----- ----- 0022H 0020H - +--> ?PR?LCDINIT?LCD +?PR?MAIN?MAIN ----- ----- 0022H 000CH +--> ?PR?DS1302INIT?DS1302 +--> ?PR?UART_INIT?MAIN + +--> ?PR?LCDINIT?LCD +--> ?PR?DS1302READTIME?DS1302 +--> ?PR?LCDDISPLAY?MAIN +--> ?PR?DETECTION?MAIN + +--> ?PR?DISPOSE?MAIN +--> ?CO?MAIN +--> ?PR?PRINTF?PRINTF +--> ?PR?_BLUETOOTH_SET?MAIN - +--> ?PR?DISPOSE?MAIN -?PR?LCDINIT?LCD ----- ----- ----- ----- +?PR?DS1302INIT?DS1302 ----- ----- ----- ----- + +--> ?PR?_DS1302WRITE?DS1302 + +?PR?LCDINIT?LCD ----- ----- ----- ----- +--> ?PR?_LCDWRITECOM?LCD -?PR?_LCDWRITECOM?LCD ----- ----- ----- ----- +?PR?_LCDWRITECOM?LCD ----- ----- ----- ----- +--> ?PR?_LCD1602_DELAY1MS?LCD -?PR?DS1302INIT?DS1302 ----- ----- ----- ----- - +--> ?PR?_DS1302WRITE?DS1302 - +--> ?CO?DS1302 - -?PR?DS1302READTIME?DS1302 ----- ----- ----- ----- +?PR?DS1302READTIME?DS1302 ----- ----- ----- ----- +--> ?CO?DS1302 +--> ?PR?_DS1302READ?DS1302 -?PR?LCDDISPLAY?MAIN ----- ----- ----- ----- +?PR?LCDDISPLAY?MAIN ----- ----- 002EH 0002H +--> ?PR?_LCDWRITECOM?LCD +--> ?PR?_LCDWRITEDATA?LCD - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 3 - - -?PR?_LCDWRITEDATA?LCD ----- ----- ----- ----- +?PR?_LCDWRITEDATA?LCD ----- ----- ----- ----- +--> ?PR?_LCD1602_DELAY1MS?LCD -?PR?DETECTION?MAIN ----- ----- 0042H 0002H +?PR?DETECTION?MAIN ----- ----- 002EH 0002H + +--> ?PR?_SINGLE_WRITE_BH1750?MAIN + +--> ?PR?_DELAY_NMS?MAIN + +--> ?PR?MULTIPLE_READ_BH1750?MAIN + +--> ?PR?TEMPER_CHANGE?DS18B20 +--> ?PR?DELAY10MS?MAIN + +--> ?PR?_LCDWRITECOM?LCD + +?PR?_SINGLE_WRITE_BH1750?MAIN ----- ----- ----- ----- + +--> ?PR?BH1750_START?MAIN + +--> ?PR?_BH1750_SENDBYTE?MAIN + +--> ?PR?BH1750_STOP?MAIN + +?PR?BH1750_START?MAIN ----- ----- ----- ----- + +--> ?PR?DELAY5US?MAIN + +?PR?_BH1750_SENDBYTE?MAIN ----- ----- ----- ----- + +--> ?PR?DELAY5US?MAIN + +--> ?PR?BH1750_RECVACK?MAIN + +?PR?BH1750_RECVACK?MAIN ----- ----- ----- ----- + +--> ?PR?DELAY5US?MAIN + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 4 + + -?PR?PRINTF?PRINTF 0020H.0 0001H.1 0042H 0014H +?PR?BH1750_STOP?MAIN ----- ----- ----- ----- + +--> ?PR?DELAY5US?MAIN + +?PR?MULTIPLE_READ_BH1750?MAIN ----- ----- ----- ----- + +--> ?PR?BH1750_START?MAIN + +--> ?PR?_BH1750_SENDBYTE?MAIN + +--> ?PR?BH1750_RECVBYTE?MAIN + +--> ?PR?BH1750_SENDACK?MAIN + +--> ?PR?BH1750_STOP?MAIN + +--> ?PR?DELAY5MS?MAIN + +?PR?BH1750_RECVBYTE?MAIN ----- ----- ----- ----- + +--> ?PR?DELAY5US?MAIN + +?PR?BH1750_SENDACK?MAIN 0020H.0 0000H.1 ----- ----- + +--> ?PR?DELAY5US?MAIN + +?PR?TEMPER_CHANGE?DS18B20 ----- ----- 0030H 0004H + +--> ?PR?DS18B20_READTEMP?DS18B20 + +?PR?DS18B20_READTEMP?DS18B20 ----- ----- 0034H 0001H + +--> ?PR?_DS18B20_WRITEBYTE?DS18B20 + +--> ?PR?DS18B20_READBYTE?DS18B20 + +?PR?_DS18B20_WRITEBYTE?DS18B20 ----- ----- 0035H 0002H + +--> ?PR?DS18B20_INIT?DS18B20 + +--> ?PR?_DELAY_MS?DS18B20 + +?PR?DS18B20_INIT?DS18B20 ----- ----- ----- ----- + +--> ?PR?_DELAY_MS?DS18B20 + +?PR?DISPOSE?MAIN ----- ----- ----- ----- + +--> ?PR?GETTIMERESULT?MAIN + +?PR?GETTIMERESULT?MAIN ----- ----- 002EH 0006H + +?PR?PRINTF?PRINTF 0020H.0 0001H.1 002EH 001CH +--> ?PR?PUTCHAR?PUTCHAR -?PR?_BLUETOOTH_SET?MAIN ----- ----- ----- ----- +?PR?_BLUETOOTH_SET?MAIN ----- ----- ----- ----- +--> ?PR?_SEND_UART?MAIN +--> ?PR?_US_DELAY?MAIN @@ -144,196 +235,525 @@ SYMBOL TABLE OF MODULE: pro (MAIN) ------- MODULE MAIN C:0000H SYMBOL _ICE_DUMMY_ - D:0080H PUBLIC P0 + B:00A0H.7 PUBLIC key4 D:0090H PUBLIC P1 D:00A0H PUBLIC P2 D:00B0H PUBLIC P3 - B:0080H.2 PUBLIC LED0 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 5 + + + B:00A0H.5 PUBLIC LED0 B:00A8H.7 PUBLIC EA - B:0080H.1 PUBLIC LED1 - B:0080H.0 PUBLIC LED2 - B:0080H.4 PUBLIC LED3 - B:0080H.3 PUBLIC LED4 - C:086DH PUBLIC _Send_Uart - C:0832H PUBLIC Uart_Init + B:00A0H.6 PUBLIC LED1 + B:00A0H.1 PUBLIC LED2 + C:1604H PUBLIC Delay5ms + B:00A0H.4 PUBLIC LED3 + C:1404H PUBLIC Multiple_read_BH1750 + B:0090H.0 PUBLIC SDA1 + B:00A0H.3 PUBLIC LED4 + C:163FH PUBLIC _Send_Uart + C:15E1H PUBLIC _Single_Write_BH1750 + C:15F3H PUBLIC Delay5us + B:0090H.1 PUBLIC SCL1 + C:15A1H PUBLIC Uart_Init + C:1631H PUBLIC BH1750_SendACK B:00B0H.7 PUBLIC IN B:00A8H.4 PUBLIC ES + C:1677H PUBLIC BH1750_RecvACK + B:00D0H.7 PUBLIC CY B:0098H.1 PUBLIC TI - C:035FH PUBLIC Detection - C:06BAH PUBLIC main + C:0D94H PUBLIC Detection + C:11F1H PUBLIC main D:0099H PUBLIC SBUF D:0087H PUBLIC PCON D:0098H PUBLIC SCON - C:0897H PUBLIC Delay10ms + C:1684H PUBLIC Delay10ms D:0089H PUBLIC TMOD - C:081AH PUBLIC _Bluetooth_Set + D:004AH PUBLIC dis_data + C:14E2H PUBLIC _delay_nms + C:1589H PUBLIC _Bluetooth_Set + C:1613H PUBLIC BH1750_Start + D:004CH PUBLIC cut D:008DH PUBLIC TH1 - D:0008H PUBLIC userInfo + C:16C2H PUBLIC Init_BH1750 + D:004EH PUBLIC userInfo D:008BH PUBLIC TL1 + C:10CCH PUBLIC getTimeResult B:0088H.6 PUBLIC TR1 - C:0464H PUBLIC Dispose - C:08D6H PUBLIC _us_delay - C:08A4H PUBLIC LcdDisplay + C:100EH PUBLIC Dispose + C:16BBH PUBLIC _us_delay + C:153EH PUBLIC _BH1750_SendByte + D:0068H PUBLIC BUF + C:1691H PUBLIC BH1750_Stop + C:1502H PUBLIC BH1750_RecvByte + C:0B11H PUBLIC LcdDisplay B:00B0H.6 PUBLIC OUT B:0090H.2 PUBLIC key1 B:0090H.3 PUBLIC key2 + B:00A0H.2 PUBLIC key3 + ------- PROC _DELAY_NMS + D:0006H SYMBOL k + ------- DO + D:0004H SYMBOL i + D:0002H SYMBOL j + ------- ENDDO + C:14E2H LINE# 90 + C:14E2H LINE# 91 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 6 + + + C:14E2H LINE# 93 + C:14ECH LINE# 94 + C:14ECH LINE# 95 + C:14EFH LINE# 96 + C:1501H LINE# 97 + ------- ENDPROC _DELAY_NMS + ------- PROC DELAY5US + C:15F3H LINE# 99 + C:15F3H LINE# 100 + C:15F3H LINE# 101 + C:15F7H LINE# 102 + C:15FBH LINE# 103 + C:15FFH LINE# 104 + C:1603H LINE# 105 + ------- ENDPROC DELAY5US + ------- PROC DELAY5MS + ------- DO + D:0006H SYMBOL n + ------- ENDDO + C:1604H LINE# 107 + C:1604H LINE# 108 + C:1604H LINE# 109 + C:1608H LINE# 111 + C:1612H LINE# 112 + ------- ENDPROC DELAY5MS + ------- PROC BH1750_START + C:1613H LINE# 117 + C:1613H LINE# 118 + C:1613H LINE# 119 + C:1615H LINE# 120 + C:1617H LINE# 121 + C:161AH LINE# 122 + C:161CH LINE# 123 + C:161FH LINE# 124 + C:1621H LINE# 125 + ------- ENDPROC BH1750_START + ------- PROC BH1750_STOP + C:1691H LINE# 130 + C:1691H LINE# 131 + C:1691H LINE# 132 + C:1693H LINE# 133 + C:1695H LINE# 134 + C:1698H LINE# 135 + C:169AH LINE# 136 + ------- ENDPROC BH1750_STOP + ------- PROC BH1750_SENDACK + B:0020H.0 SYMBOL ack + C:1631H LINE# 143 + C:1631H LINE# 144 + C:1631H LINE# 145 + C:1635H LINE# 146 + C:1637H LINE# 147 + C:163AH LINE# 148 + C:163CH LINE# 149 + ------- ENDPROC BH1750_SENDACK + ------- PROC BH1750_RECVACK + C:1677H LINE# 155 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 7 + + + C:1677H LINE# 156 + C:1677H LINE# 157 + C:1679H LINE# 158 + C:167CH LINE# 159 + C:167EH LINE# 160 + C:1680H LINE# 161 + C:1683H LINE# 163 + C:1683H LINE# 164 + ------- ENDPROC BH1750_RECVACK + ------- PROC _BH1750_SENDBYTE + D:0007H SYMBOL dat + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:153EH LINE# 169 + C:153EH LINE# 170 + C:153EH LINE# 173 + C:1540H LINE# 174 + C:1540H LINE# 175 + C:1544H LINE# 176 + C:1546H LINE# 177 + C:1548H LINE# 178 + C:154BH LINE# 179 + C:154DH LINE# 180 + C:1550H LINE# 181 + C:1554H LINE# 182 + ------- ENDPROC _BH1750_SENDBYTE + ------- PROC BH1750_RECVBYTE + ------- DO + D:0006H SYMBOL i + D:0007H SYMBOL dat + ------- ENDDO + C:1502H LINE# 188 + C:1502H LINE# 189 + C:1502H LINE# 191 + C:1504H LINE# 193 + C:1506H LINE# 194 + C:1507H LINE# 195 + C:1507H LINE# 196 + C:150BH LINE# 197 + C:150DH LINE# 198 + C:1510H LINE# 199 + C:1516H LINE# 200 + C:1518H LINE# 201 + C:151BH LINE# 202 + C:151FH LINE# 203 + C:151FH LINE# 204 + ------- ENDPROC BH1750_RECVBYTE + ------- PROC _SINGLE_WRITE_BH1750 + D:0005H SYMBOL REG_Address + C:15E1H LINE# 208 + C:15E3H LINE# 209 + C:15E3H LINE# 210 + C:15E6H LINE# 211 + C:15EBH LINE# 212 + C:15F0H LINE# 214 + ------- ENDPROC _SINGLE_WRITE_BH1750 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 8 + + + ------- PROC MULTIPLE_READ_BH1750 + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:1404H LINE# 237 + C:1404H LINE# 239 + C:1404H LINE# 240 + C:1407H LINE# 241 + C:140CH LINE# 243 + C:140EH LINE# 244 + C:140EH LINE# 245 + C:1417H LINE# 246 + C:141AH LINE# 247 + C:141AH LINE# 249 + C:141CH LINE# 250 + C:141EH LINE# 252 + C:141EH LINE# 253 + C:1423H LINE# 254 + C:1423H LINE# 255 + C:1427H LINE# 257 + C:142AH LINE# 258 + ------- ENDPROC MULTIPLE_READ_BH1750 + ------- PROC INIT_BH1750 + C:16C2H LINE# 263 + C:16C2H LINE# 264 + C:16C2H LINE# 265 + ------- ENDPROC INIT_BH1750 ------- PROC UART_INIT - C:0832H LINE# 34 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 4 - - - C:0832H LINE# 35 - C:0832H LINE# 36 - C:0835H LINE# 37 - C:0838H LINE# 38 - C:083BH LINE# 39 - C:083EH LINE# 40 - C:0841H LINE# 41 - C:0843H LINE# 42 - C:0845H LINE# 43 - C:0847H LINE# 44 + C:15A1H LINE# 270 + C:15A1H LINE# 271 + C:15A1H LINE# 272 + C:15A4H LINE# 273 + C:15A7H LINE# 274 + C:15AAH LINE# 275 + C:15ADH LINE# 276 + C:15B0H LINE# 277 + C:15B2H LINE# 278 + C:15B4H LINE# 279 + C:15B6H LINE# 280 ------- ENDPROC UART_INIT ------- PROC _US_DELAY D:0007H SYMBOL t - C:08D6H LINE# 46 - C:08D6H LINE# 47 - C:08D6H LINE# 48 - C:08DCH LINE# 49 + C:16BBH LINE# 282 + C:16BBH LINE# 283 + C:16BBH LINE# 284 + C:16C1H LINE# 285 ------- ENDPROC _US_DELAY ------- PROC _SEND_UART D:0007H SYMBOL value - C:086DH LINE# 51 - C:086DH LINE# 52 - C:086DH LINE# 53 - C:086FH LINE# 54 - C:0871H LINE# 55 - C:0873H LINE# 56 - C:0876H LINE# 57 - C:0878H LINE# 58 - C:087AH LINE# 59 + C:163FH LINE# 287 + C:163FH LINE# 288 + C:163FH LINE# 289 + C:1641H LINE# 290 + C:1643H LINE# 291 + C:1645H LINE# 292 + C:1648H LINE# 293 + C:164AH LINE# 294 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 9 + + + C:164CH LINE# 295 ------- ENDPROC _SEND_UART ------- PROC _BLUETOOTH_SET D:0001H SYMBOL puf - C:081AH LINE# 61 - C:081AH LINE# 62 - C:081AH LINE# 63 - C:0820H LINE# 64 - C:0820H LINE# 65 - C:0823H LINE# 66 - C:0828H LINE# 67 - C:082FH LINE# 68 - C:0831H LINE# 69 + C:1589H LINE# 297 + C:1589H LINE# 298 + C:1589H LINE# 299 + C:158FH LINE# 300 + C:158FH LINE# 301 + C:1592H LINE# 302 + C:1597H LINE# 303 + C:159EH LINE# 304 + C:15A0H LINE# 305 ------- ENDPROC _BLUETOOTH_SET ------- PROC DETECTION ------- DO - D:0042H SYMBOL i + D:002EH SYMBOL i ------- ENDDO - C:035FH LINE# 71 - C:035FH LINE# 72 - C:035FH LINE# 73 - C:0364H LINE# 74 - C:0367H LINE# 75 - C:0367H LINE# 76 - C:036AH LINE# 77 - C:036DH LINE# 78 - C:037AH LINE# 79 - C:037FH LINE# 80 - C:037FH LINE# 81 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 5 - - - C:038FH LINE# 82 - C:0392H LINE# 83 - C:039AH LINE# 84 - C:039CH LINE# 85 - C:03A1H LINE# 86 - C:03A1H LINE# 88 - C:03A4H LINE# 89 - C:03A4H LINE# 90 - C:03A7H LINE# 91 - C:03AAH LINE# 92 - C:03B7H LINE# 93 - C:03BCH LINE# 94 - C:03BCH LINE# 95 - C:03CCH LINE# 96 - C:03CFH LINE# 97 - C:03D7H LINE# 98 - C:03D9H LINE# 99 - C:03DEH LINE# 100 - C:03DEH LINE# 102 - C:03E1H LINE# 103 - C:03E1H LINE# 104 - C:03E4H LINE# 105 - C:03E7H LINE# 106 - C:03EFH LINE# 107 - C:0400H LINE# 108 - C:0400H LINE# 109 - C:0410H LINE# 110 - C:0413H LINE# 111 - C:041BH LINE# 112 - C:041DH LINE# 113 - C:0422H LINE# 114 - C:0422H LINE# 116 - C:0425H LINE# 117 - C:0425H LINE# 118 - C:0428H LINE# 119 - C:042BH LINE# 120 - C:0433H LINE# 121 - C:0441H LINE# 122 - C:0441H LINE# 123 - C:0451H LINE# 124 - C:0454H LINE# 125 - C:045CH LINE# 126 - C:045EH LINE# 127 - C:0463H LINE# 128 - C:0463H LINE# 129 + C:0D94H LINE# 307 + C:0D94H LINE# 308 + C:0D94H LINE# 309 + C:0D99H LINE# 310 + C:0D9EH LINE# 311 + C:0DA3H LINE# 312 + C:0DAAH LINE# 313 + C:0DADH LINE# 314 + C:0DB3H LINE# 315 + C:0DC1H LINE# 316 + C:0DDAH LINE# 318 + C:0DE1H LINE# 319 + C:0DECH LINE# 320 + C:0DEFH LINE# 321 + C:0DEFH LINE# 322 + C:0DF2H LINE# 323 + C:0DF5H LINE# 324 + C:0DFBH LINE# 325 + C:0E08H LINE# 326 + C:0E0DH LINE# 327 + C:0E0DH LINE# 328 + C:0E0DH LINE# 329 + C:0E1DH LINE# 330 + C:0E20H LINE# 331 + C:0E28H LINE# 332 + C:0E2AH LINE# 333 + C:0E2FH LINE# 334 + C:0E2FH LINE# 336 + C:0E32H LINE# 337 + C:0E32H LINE# 338 + C:0E35H LINE# 339 + C:0E38H LINE# 340 + C:0E3EH LINE# 341 + C:0E4BH LINE# 342 + C:0E50H LINE# 343 + C:0E52H LINE# 344 + C:0E5FH LINE# 345 + C:0E64H LINE# 346 + C:0E69H LINE# 347 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 10 + + + C:0E69H LINE# 348 + C:0E6EH LINE# 349 + C:0E6EH LINE# 350 + C:0E7EH LINE# 351 + C:0E81H LINE# 352 + C:0E89H LINE# 353 + C:0E8BH LINE# 354 + C:0E90H LINE# 355 + C:0E90H LINE# 357 + C:0E93H LINE# 358 + C:0E93H LINE# 359 + C:0E96H LINE# 360 + C:0E99H LINE# 361 + C:0EA1H LINE# 362 + C:0EB2H LINE# 363 + C:0EB2H LINE# 364 + C:0EC2H LINE# 365 + C:0EC5H LINE# 366 + C:0ECDH LINE# 367 + C:0ECFH LINE# 368 + C:0ED4H LINE# 369 + C:0ED4H LINE# 371 + C:0ED7H LINE# 372 + C:0ED7H LINE# 373 + C:0EDAH LINE# 374 + C:0EDDH LINE# 375 + C:0EE5H LINE# 376 + C:0EF3H LINE# 377 + C:0EF3H LINE# 378 + C:0F03H LINE# 379 + C:0F06H LINE# 380 + C:0F0EH LINE# 381 + C:0F10H LINE# 382 + C:0F15H LINE# 383 + C:0F15H LINE# 385 + C:0F18H LINE# 386 + C:0F18H LINE# 387 + C:0F1BH LINE# 388 + C:0F1EH LINE# 389 + C:0F26H LINE# 390 + C:0F36H LINE# 391 + C:0F36H LINE# 392 + C:0F46H LINE# 393 + C:0F49H LINE# 394 + C:0F51H LINE# 395 + C:0F53H LINE# 396 + C:0F58H LINE# 397 + C:0F58H LINE# 399 + C:0F5EH LINE# 400 + C:0F5EH LINE# 401 + C:0F61H LINE# 402 + C:0F67H LINE# 403 + C:0F6DH LINE# 404 + C:0F75H LINE# 405 + C:0F85H LINE# 406 + C:0F8FH LINE# 407 + C:0F97H LINE# 408 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 11 + + + C:0FA7H LINE# 409 + C:0FB1H LINE# 410 + C:0FB9H LINE# 411 + C:0FC9H LINE# 412 + C:0FD3H LINE# 413 + C:0FDBH LINE# 414 + C:0FEBH LINE# 415 + C:0FEBH LINE# 416 + C:0FFBH LINE# 417 + C:0FFEH LINE# 418 + C:1006H LINE# 419 + C:1008H LINE# 420 + C:100DH LINE# 421 + C:100DH LINE# 422 + C:100DH LINE# 423 ------- ENDPROC DETECTION + ------- PROC GETTIMERESULT + ------- DO + D:0004H SYMBOL result + D:002EH SYMBOL Nowtime + ------- ENDDO + C:10CCH LINE# 426 + C:10CCH LINE# 427 + C:10CCH LINE# 428 + C:10D0H LINE# 431 + C:10E9H LINE# 432 + C:1100H LINE# 434 + C:1124H LINE# 435 + C:1141H LINE# 436 + C:1160H LINE# 438 + C:1164H LINE# 439 + ------- ENDPROC GETTIMERESULT ------- PROC DISPOSE - C:0464H LINE# 131 - C:0464H LINE# 132 - C:0464H LINE# 133 - C:0470H LINE# 134 - C:0470H LINE# 135 - C:0473H LINE# 136 - C:048CH LINE# 137 - C:04AFH LINE# 138 - C:04CEH LINE# 139 - C:04EDH LINE# 140 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 6 - - - C:0504H LINE# 141 - C:050CH LINE# 142 - C:050CH LINE# 143 - C:050CH LINE# 144 - C:0514H LINE# 145 + C:100EH LINE# 442 + C:100EH LINE# 443 + C:100EH LINE# 445 + C:1017H LINE# 446 + C:1035H LINE# 447 + C:1058H LINE# 448 + C:1077H LINE# 449 + C:1096H LINE# 450 + C:10A9H LINE# 453 + C:10A9H LINE# 454 + C:10A9H LINE# 455 + C:10ABH LINE# 456 + C:10B1H LINE# 457 + C:10B9H LINE# 458 + C:10BBH LINE# 459 + C:10C3H LINE# 460 + C:10C3H LINE# 461 + C:10C3H LINE# 462 + C:10CBH LINE# 463 ------- ENDPROC DISPOSE ------- PROC MAIN ------- DO D:0022H SYMBOL i D:0024H SYMBOL str + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 12 + + ------- ENDDO - C:06BAH LINE# 147 - C:06BAH LINE# 148 - C:06BAH LINE# 149 - C:06BFH LINE# 151 - C:06C2H LINE# 152 - C:06C5H LINE# 153 - C:06C8H LINE# 154 - C:06C8H LINE# 155 - C:06C8H LINE# 156 - C:06CBH LINE# 157 - C:06CEH LINE# 158 - C:06D1H LINE# 159 - C:06E9H LINE# 160 - C:06F2H LINE# 161 - C:06F5H LINE# 162 + C:11F1H LINE# 465 + C:11F1H LINE# 466 + C:11F1H LINE# 467 + C:11F6H LINE# 469 + C:11F9H LINE# 470 + C:11FCH LINE# 471 + C:11FFH LINE# 473 + C:1205H LINE# 474 + C:120AH LINE# 475 + C:120EH LINE# 477 + C:1213H LINE# 478 + C:1218H LINE# 479 + C:121CH LINE# 481 + C:121CH LINE# 482 + C:121CH LINE# 483 + C:121FH LINE# 484 + C:1222H LINE# 485 + C:1225H LINE# 486 + C:1228H LINE# 487 + C:1240H LINE# 488 + C:1249H LINE# 489 ------- ENDPROC MAIN ------- PROC LCDDISPLAY - C:08A4H LINE# 166 - C:08A4H LINE# 167 - C:08A4H LINE# 169 - C:08A9H LINE# 170 + ------- DO + D:002EH SYMBOL temp_data + ------- ENDDO + C:0B11H LINE# 492 + C:0B11H LINE# 493 + C:0B11H LINE# 495 + C:0B1CH LINE# 497 + C:0B1FH LINE# 498 + C:0B2AH LINE# 499 + C:0B34H LINE# 500 + C:0B39H LINE# 501 + C:0B44H LINE# 502 + C:0B4EH LINE# 503 + C:0B53H LINE# 505 + C:0B5EH LINE# 506 + C:0B68H LINE# 507 + C:0B6DH LINE# 508 + C:0B78H LINE# 509 + C:0B82H LINE# 510 + C:0B87H LINE# 511 + C:0B92H LINE# 512 + C:0B9CH LINE# 514 + C:0BA1H LINE# 515 + C:0BABH LINE# 517 + C:0BB0H LINE# 518 + C:0BBFH LINE# 519 + C:0BCAH LINE# 520 + C:0BDCH LINE# 521 + C:0BEBH LINE# 522 + C:0BFDH LINE# 523 + C:0C0CH LINE# 524 + C:0C1EH LINE# 525 + C:0C2DH LINE# 526 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 13 + + + C:0C35H LINE# 527 + C:0C3AH LINE# 528 + C:0C3FH LINE# 529 + C:0C44H LINE# 530 + C:0C56H LINE# 531 + C:0C68H LINE# 532 + C:0C6DH LINE# 534 + C:0C72H LINE# 535 + C:0C8BH LINE# 536 + C:0C8FH LINE# 537 + C:0C92H LINE# 538 + C:0C95H LINE# 539 + C:0CA7H LINE# 540 + C:0CB9H LINE# 541 + C:0CBEH LINE# 542 + C:0CD0H LINE# 543 + C:0CE2H LINE# 544 + C:0CE7H LINE# 545 + C:0CF9H LINE# 546 + C:0D0BH LINE# 547 + C:0D10H LINE# 549 + C:0D18H LINE# 551 + C:0D1DH LINE# 552 + C:0D2FH LINE# 553 + C:0D41H LINE# 554 + C:0D46H LINE# 555 + C:0D58H LINE# 556 + C:0D6AH LINE# 557 + C:0D6FH LINE# 558 + C:0D81H LINE# 559 + C:0D93H LINE# 560 + C:0D93H LINE# 561 ------- ENDPROC LCDDISPLAY ------- PROC DELAY10MS ------- DO @@ -341,29 +761,29 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0006H SYMBOL b D:0007H SYMBOL c ------- ENDDO - C:0897H LINE# 174 - C:0897H LINE# 175 - C:0897H LINE# 177 - C:0899H LINE# 178 - C:089BH LINE# 179 - C:08A3H LINE# 180 + C:1684H LINE# 564 + C:1684H LINE# 565 + C:1684H LINE# 567 + C:1686H LINE# 568 + C:1688H LINE# 569 + C:1690H LINE# 570 ------- ENDPROC DELAY10MS ------- ENDMOD MAIN ------- MODULE LCD C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 D:0090H PUBLIC P1 - D:00A0H PUBLIC P2 - C:08B8H PUBLIC _LcdWriteData + C:16A7H PUBLIC _LcdWriteData B:0090H.6 PUBLIC LCD1602_RS B:0090H.5 PUBLIC LCD1602_RW - C:07E8H PUBLIC LcdInit + C:1557H PUBLIC LcdInit B:0090H.4 PUBLIC LCD1602_E - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 7 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 14 - C:08AEH PUBLIC _LcdWriteCom - C:073DH PUBLIC _Lcd1602_Delay1ms + C:169DH PUBLIC _LcdWriteCom + C:13EBH PUBLIC _Lcd1602_Delay1ms ------- PROC L?0015 ------- ENDPROC L?0015 ------- PROC _LCD1602_DELAY1MS @@ -372,54 +792,54 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0004H SYMBOL a D:0005H SYMBOL b ------- ENDDO - C:073DH LINE# 11 - C:073DH LINE# 12 - C:073DH LINE# 14 - C:0746H LINE# 15 - C:0746H LINE# 16 - C:0748H LINE# 17 - C:0748H LINE# 18 - C:074CH LINE# 19 - C:074EH LINE# 20 - C:0755H LINE# 22 + C:13EBH LINE# 11 + C:13EBH LINE# 12 + C:13EBH LINE# 14 + C:13F4H LINE# 15 + C:13F4H LINE# 16 + C:13F6H LINE# 17 + C:13F6H LINE# 18 + C:13FAH LINE# 19 + C:13FCH LINE# 20 + C:1403H LINE# 22 ------- ENDPROC _LCD1602_DELAY1MS ------- PROC _LCDWRITECOM D:0007H SYMBOL com - C:08AEH LINE# 31 - C:08AEH LINE# 32 - C:08AEH LINE# 33 - C:08B0H LINE# 34 - C:08B2H LINE# 35 - C:08B2H LINE# 37 - C:08B2H LINE# 38 - C:08B2H LINE# 40 - C:08B2H LINE# 41 - C:08B5H LINE# 42 - C:08B7H LINE# 43 + C:169DH LINE# 31 + C:169DH LINE# 32 + C:169DH LINE# 33 + C:169FH LINE# 34 + C:16A1H LINE# 35 + C:16A1H LINE# 37 + C:16A1H LINE# 38 + C:16A1H LINE# 40 + C:16A1H LINE# 41 + C:16A4H LINE# 42 + C:16A6H LINE# 43 ------- ENDPROC _LCDWRITECOM ------- PROC _LCDWRITEDATA D:0007H SYMBOL dat - C:08B8H LINE# 74 - C:08B8H LINE# 75 - C:08B8H LINE# 76 - C:08BAH LINE# 77 - C:08BCH LINE# 78 - C:08BCH LINE# 80 - C:08BCH LINE# 81 - C:08BCH LINE# 83 - C:08BCH LINE# 84 - C:08BFH LINE# 85 - C:08C1H LINE# 86 + C:16A7H LINE# 74 + C:16A7H LINE# 75 + C:16A7H LINE# 76 + C:16A9H LINE# 77 + C:16ABH LINE# 78 + C:16ABH LINE# 80 + C:16ABH LINE# 81 + C:16ABH LINE# 83 + C:16ABH LINE# 84 + C:16AEH LINE# 85 + C:16B0H LINE# 86 ------- ENDPROC _LCDWRITEDATA ------- PROC LCDINIT - C:07E8H LINE# 116 - C:07E8H LINE# 117 - C:07E8H LINE# 118 - C:07EDH LINE# 119 - C:07F2H LINE# 120 - C:07F7H LINE# 121 - C:07FCH LINE# 122 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 8 + C:1557H LINE# 116 + C:1557H LINE# 117 + C:1557H LINE# 118 + C:155CH LINE# 119 + C:1561H LINE# 120 + C:1566H LINE# 121 + C:156BH LINE# 122 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 15 ------- ENDPROC LCDINIT @@ -428,181 +848,180 @@ SYMBOL TABLE OF MODULE: pro (MAIN) ------- MODULE DS1302 C:0000H SYMBOL _ICE_DUMMY_ D:00B0H PUBLIC P3 - C:06F7H PUBLIC _Ds1302Write - C:0848H PUBLIC Ds1302ReadTime - C:07A3H PUBLIC Ds1302Init + C:13A5H PUBLIC _Ds1302Write + C:15B7H PUBLIC Ds1302ReadTime + C:15CDH PUBLIC Ds1302Init B:00B0H.5 PUBLIC SCLK - D:0010H PUBLIC TIME + D:0008H PUBLIC TIME B:00B0H.4 PUBLIC DSIO - C:0882H PUBLIC WRITE_RTC_ADDR - C:087BH PUBLIC READ_RTC_ADDR + C:1662H PUBLIC WRITE_RTC_ADDR + C:165BH PUBLIC READ_RTC_ADDR B:00B0H.3 PUBLIC RST - C:062FH PUBLIC _Ds1302Read + C:129AH PUBLIC _Ds1302Read ------- PROC _DS1302WRITE D:0007H SYMBOL addr D:0005H SYMBOL dat ------- DO D:0006H SYMBOL n ------- ENDDO - C:06F7H LINE# 14 - C:06F7H LINE# 15 - C:06F7H LINE# 17 - C:06F9H LINE# 18 - C:06FAH LINE# 20 - C:06FCH LINE# 21 - C:06FDH LINE# 22 - C:06FFH LINE# 23 - C:0700H LINE# 25 - C:0702H LINE# 26 - C:0702H LINE# 27 - C:0706H LINE# 28 - C:070AH LINE# 29 - C:070CH LINE# 30 - C:070DH LINE# 31 - C:070FH LINE# 32 - C:0710H LINE# 33 - C:0714H LINE# 34 - C:0716H LINE# 35 - C:0716H LINE# 36 - C:071AH LINE# 37 - C:071EH LINE# 38 - C:0720H LINE# 39 - C:0721H LINE# 40 - C:0723H LINE# 41 - C:0724H LINE# 42 - C:0728H LINE# 44 - C:072AH LINE# 45 - C:072BH LINE# 46 + C:13A5H LINE# 14 + C:13A5H LINE# 15 + C:13A5H LINE# 17 + C:13A7H LINE# 18 + C:13A8H LINE# 20 + C:13AAH LINE# 21 + C:13ABH LINE# 22 + C:13ADH LINE# 23 + C:13AEH LINE# 25 + C:13B0H LINE# 26 + C:13B0H LINE# 27 + C:13B4H LINE# 28 + C:13B8H LINE# 29 + C:13BAH LINE# 30 + C:13BBH LINE# 31 + C:13BDH LINE# 32 + C:13BEH LINE# 33 + C:13C2H LINE# 34 + C:13C4H LINE# 35 + C:13C4H LINE# 36 + C:13C8H LINE# 37 + C:13CCH LINE# 38 + C:13CEH LINE# 39 + C:13CFH LINE# 40 + C:13D1H LINE# 41 + C:13D2H LINE# 42 + C:13D6H LINE# 44 + C:13D8H LINE# 45 + C:13D9H LINE# 46 ------- ENDPROC _DS1302WRITE ------- PROC _DS1302READ D:0007H SYMBOL addr ------- DO D:0005H SYMBOL n D:0006H SYMBOL dat - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 9 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 16 D:0007H SYMBOL dat1 ------- ENDDO - C:062FH LINE# 48 - C:062FH LINE# 49 - C:062FH LINE# 51 - C:0631H LINE# 52 - C:0632H LINE# 54 - C:0634H LINE# 55 - C:0635H LINE# 56 - C:0637H LINE# 57 - C:0638H LINE# 59 - C:063AH LINE# 60 - C:063AH LINE# 61 - C:063EH LINE# 62 - C:0642H LINE# 63 - C:0644H LINE# 64 - C:0645H LINE# 65 - C:0647H LINE# 66 - C:0648H LINE# 67 - C:064CH LINE# 68 - C:064DH LINE# 69 - C:064FH LINE# 70 - C:064FH LINE# 71 - C:0654H LINE# 72 - C:0660H LINE# 73 - C:0662H LINE# 74 - C:0663H LINE# 75 - C:0665H LINE# 76 - C:0666H LINE# 77 - C:066AH LINE# 79 - C:066CH LINE# 80 - C:066DH LINE# 81 - C:066FH LINE# 82 - C:0670H LINE# 83 - C:0672H LINE# 84 - C:0673H LINE# 85 - C:0675H LINE# 86 - C:0676H LINE# 87 - C:0678H LINE# 88 + C:129AH LINE# 48 + C:129AH LINE# 49 + C:129AH LINE# 51 + C:129CH LINE# 52 + C:129DH LINE# 54 + C:129FH LINE# 55 + C:12A0H LINE# 56 + C:12A2H LINE# 57 + C:12A3H LINE# 59 + C:12A5H LINE# 60 + C:12A5H LINE# 61 + C:12A9H LINE# 62 + C:12ADH LINE# 63 + C:12AFH LINE# 64 + C:12B0H LINE# 65 + C:12B2H LINE# 66 + C:12B3H LINE# 67 + C:12B7H LINE# 68 + C:12B8H LINE# 69 + C:12BAH LINE# 70 + C:12BAH LINE# 71 + C:12BFH LINE# 72 + C:12CBH LINE# 73 + C:12CDH LINE# 74 + C:12CEH LINE# 75 + C:12D0H LINE# 76 + C:12D1H LINE# 77 + C:12D5H LINE# 79 + C:12D7H LINE# 80 + C:12D8H LINE# 81 + C:12DAH LINE# 82 + C:12DBH LINE# 83 + C:12DDH LINE# 84 + C:12DEH LINE# 85 + C:12E0H LINE# 86 + C:12E1H LINE# 87 + C:12E3H LINE# 88 ------- ENDPROC _DS1302READ ------- PROC DS1302INIT ------- DO - D:0004H SYMBOL n + D:0007H SYMBOL n ------- ENDDO - C:07A3H LINE# 90 - C:07A3H LINE# 91 - C:07A3H LINE# 93 - C:07AAH LINE# 94 - C:07ACH LINE# 95 - C:07ACH LINE# 96 - C:07BBH LINE# 97 - C:07BFH LINE# 98 + C:15CDH LINE# 90 + C:15CDH LINE# 91 + C:15CDH LINE# 93 + C:15D4H LINE# 94 + C:15D6H LINE# 95 + C:15D6H LINE# 97 + C:15DAH LINE# 98 ------- ENDPROC DS1302INIT ------- PROC DS1302READTIME ------- DO D:0003H SYMBOL n ------- ENDDO - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 10 + C:15B7H LINE# 101 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 17 - C:0848H LINE# 101 - C:0848H LINE# 102 - C:0848H LINE# 104 - C:084AH LINE# 105 - C:084AH LINE# 106 - C:0859H LINE# 107 - C:085DH LINE# 108 + C:15B7H LINE# 102 + C:15B7H LINE# 104 + C:15B9H LINE# 105 + C:15B9H LINE# 106 + C:15C8H LINE# 107 + C:15CCH LINE# 108 ------- ENDPROC DS1302READTIME ------- ENDMOD DS1302 ------- MODULE I2C C:0000H SYMBOL _ICE_DUMMY_ D:00A0H PUBLIC P2 - C:0679H PUBLIC _I2cSendByte - C:08CCH PUBLIC I2cStop - C:088EH PUBLIC Delay10us + C:1326H PUBLIC _I2cSendByte + C:16B1H PUBLIC I2cStop + C:166EH PUBLIC Delay10us B:00A0H.0 PUBLIC SDA - C:07C6H PUBLIC _At24c02Read + C:149FH PUBLIC _At24c02Read B:00A0H.1 PUBLIC SCL - C:085EH PUBLIC I2cStart - C:0801H PUBLIC _At24c02Write - C:077DH PUBLIC I2cReadByte - C:0889H SYMBOL L?0024 + C:1622H PUBLIC I2cStart + C:1570H PUBLIC _At24c02Write + C:1454H PUBLIC I2cReadByte + C:1669H SYMBOL L?0024 ------- PROC L?0023 ------- ENDPROC L?0023 - C:0889H SYMBOL L?0024 + C:1669H SYMBOL L?0024 ------- PROC DELAY10US ------- DO D:0006H SYMBOL a D:0007H SYMBOL b ------- ENDDO - C:088EH LINE# 10 - C:088EH LINE# 11 - C:088EH LINE# 13 - C:0890H LINE# 14 - C:0896H LINE# 16 + C:166EH LINE# 10 + C:166EH LINE# 11 + C:166EH LINE# 13 + C:1670H LINE# 14 + C:1676H LINE# 16 ------- ENDPROC DELAY10US ------- PROC I2CSTART - C:085EH LINE# 25 - C:085EH LINE# 26 - C:085EH LINE# 27 - C:0860H LINE# 28 - C:0860H LINE# 29 - C:0860H LINE# 30 - C:0863H LINE# 31 - C:0865H LINE# 32 - C:0868H LINE# 33 - C:086AH LINE# 34 + C:1622H LINE# 25 + C:1622H LINE# 26 + C:1622H LINE# 27 + C:1624H LINE# 28 + C:1624H LINE# 29 + C:1624H LINE# 30 + C:1627H LINE# 31 + C:1629H LINE# 32 + C:162CH LINE# 33 + C:162EH LINE# 34 ------- ENDPROC I2CSTART ------- PROC I2CSTOP - C:08CCH LINE# 44 - C:08CCH LINE# 45 - C:08CCH LINE# 46 - C:08CEH LINE# 47 - C:08CEH LINE# 48 - C:08CEH LINE# 49 - C:08D1H LINE# 50 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 11 + C:16B1H LINE# 44 + C:16B1H LINE# 45 + C:16B1H LINE# 46 + C:16B3H LINE# 47 + C:16B3H LINE# 48 + C:16B3H LINE# 49 + C:16B6H LINE# 50 + C:16B8H LINE# 51 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 18 - C:08D3H LINE# 51 ------- ENDPROC I2CSTOP ------- PROC _I2CSENDBYTE D:0005H SYMBOL dat @@ -610,136 +1029,336 @@ SYMBOL TABLE OF MODULE: pro (MAIN) D:0003H SYMBOL a D:0002H SYMBOL b ------- ENDDO - C:0679H LINE# 61 - C:067BH LINE# 62 - C:067BH LINE# 63 - C:067EH LINE# 64 - C:067EH LINE# 65 - C:067EH LINE# 66 - C:0689H LINE# 67 - C:068DH LINE# 68 - C:068DH LINE# 69 - C:068DH LINE# 70 - C:0690H LINE# 71 - C:0692H LINE# 72 - C:0695H LINE# 73 - C:0699H LINE# 74 - C:069BH LINE# 75 - C:069EH LINE# 76 - C:06A0H LINE# 77 - C:06A3H LINE# 78 - C:06A3H LINE# 79 - C:06A4H LINE# 80 - C:06AAH LINE# 81 - C:06AAH LINE# 82 - C:06ACH LINE# 83 - C:06AFH LINE# 84 - C:06B2H LINE# 85 - C:06B2H LINE# 86 - C:06B2H LINE# 87 - C:06B4H LINE# 88 - C:06B7H LINE# 89 - C:06B9H LINE# 90 + C:1326H LINE# 61 + C:1328H LINE# 62 + C:1328H LINE# 63 + C:132BH LINE# 64 + C:132BH LINE# 65 + C:132BH LINE# 66 + C:1336H LINE# 67 + C:133AH LINE# 68 + C:133AH LINE# 69 + C:133AH LINE# 70 + C:133DH LINE# 71 + C:133FH LINE# 72 + C:1342H LINE# 73 + C:1346H LINE# 74 + C:1348H LINE# 75 + C:134BH LINE# 76 + C:134DH LINE# 77 + C:1350H LINE# 78 + C:1350H LINE# 79 + C:1351H LINE# 80 + C:1357H LINE# 81 + C:1357H LINE# 82 + C:1359H LINE# 83 + C:135CH LINE# 84 + C:135FH LINE# 85 + C:135FH LINE# 86 + C:135FH LINE# 87 + C:1361H LINE# 88 + C:1364H LINE# 89 + C:1366H LINE# 90 ------- ENDPROC _I2CSENDBYTE ------- PROC I2CREADBYTE ------- DO D:0005H SYMBOL a D:0004H SYMBOL dat ------- ENDDO - C:077DH LINE# 99 - C:077DH LINE# 100 - C:077DH LINE# 101 - C:0780H LINE# 102 - C:0782H LINE# 103 - C:0785H LINE# 104 - C:0785H LINE# 105 - C:0785H LINE# 106 - C:0787H LINE# 107 - C:078AH LINE# 108 - C:078EH LINE# 109 - C:0794H LINE# 110 - C:0797H LINE# 111 - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 12 - - - C:0799H LINE# 112 - C:079CH LINE# 113 - C:07A0H LINE# 114 - C:07A2H LINE# 115 + C:1454H LINE# 99 + C:1454H LINE# 100 + C:1454H LINE# 101 + C:1457H LINE# 102 + C:1459H LINE# 103 + C:145CH LINE# 104 + C:145CH LINE# 105 + C:145CH LINE# 106 + C:145EH LINE# 107 + C:1461H LINE# 108 + C:1465H LINE# 109 + C:146BH LINE# 110 + C:146EH LINE# 111 + C:1470H LINE# 112 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 19 + + + C:1473H LINE# 113 + C:1477H LINE# 114 + C:1479H LINE# 115 ------- ENDPROC I2CREADBYTE ------- PROC _AT24C02WRITE D:0001H SYMBOL addr D:0004H SYMBOL dat - C:0801H LINE# 125 - C:0805H LINE# 126 - C:0805H LINE# 127 - C:0808H LINE# 128 - C:080DH LINE# 129 - C:0812H LINE# 130 - C:0817H LINE# 131 + C:1570H LINE# 125 + C:1574H LINE# 126 + C:1574H LINE# 127 + C:1577H LINE# 128 + C:157CH LINE# 129 + C:1581H LINE# 130 + C:1586H LINE# 131 ------- ENDPROC _AT24C02WRITE ------- PROC _AT24C02READ D:0004H SYMBOL addr ------- DO D:0005H SYMBOL num ------- ENDDO - C:07C6H LINE# 140 - C:07C8H LINE# 141 - C:07C8H LINE# 143 - C:07CBH LINE# 144 - C:07D0H LINE# 145 - C:07D5H LINE# 146 - C:07D8H LINE# 147 - C:07DDH LINE# 148 - C:07E2H LINE# 149 - C:07E5H LINE# 150 - C:07E7H LINE# 151 + C:149FH LINE# 140 + C:14A1H LINE# 141 + C:14A1H LINE# 143 + C:14A4H LINE# 144 + C:14A9H LINE# 145 + C:14AEH LINE# 146 + C:14B1H LINE# 147 + C:14B6H LINE# 148 + C:14BBH LINE# 149 + C:14BEH LINE# 150 + C:14C0H LINE# 151 ------- ENDPROC _AT24C02READ ------- ENDMOD I2C - ------- MODULE ?C?CLDPTR - C:0515H PUBLIC ?C?CLDPTR - ------- ENDMOD ?C?CLDPTR + ------- MODULE DS18B20 + C:0000H SYMBOL _ICE_DUMMY_ + D:00B0H PUBLIC P3 + C:1367H PUBLIC DS18B20_ReadByte + C:147AH PUBLIC DS18B20_Init + C:14C1H PUBLIC DS18B20_ReadTemp + B:00B0H.2 PUBLIC DS18B20 + C:12F0H PUBLIC _DS18B20_WriteByte + C:124BH PUBLIC Temper_change + C:1520H PUBLIC _delay_ms + ------- PROC _DELAY_MS + D:0006H SYMBOL x + ------- DO + D:0006H SYMBOL y + D:0004H SYMBOL z + ------- ENDDO + C:1520H LINE# 5 + C:1520H LINE# 6 + C:1520H LINE# 8 + C:1529H LINE# 9 + C:153DH LINE# 10 + ------- ENDPROC _DELAY_MS + ------- PROC DS18B20_INIT + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 20 + + + ------- DO + D:0003H SYMBOL i + ------- ENDDO + C:147AH LINE# 12 + C:147AH LINE# 13 + C:147AH LINE# 15 + C:147CH LINE# 16 + C:147EH LINE# 17 + C:1484H LINE# 18 + C:1486H LINE# 19 + C:1488H LINE# 20 + C:148BH LINE# 21 + C:148BH LINE# 22 + C:1492H LINE# 23 + C:1493H LINE# 24 + C:1499H LINE# 25 + C:1499H LINE# 26 + C:149CH LINE# 27 + C:149CH LINE# 28 + C:149CH LINE# 29 + C:149EH LINE# 30 + ------- ENDPROC DS18B20_INIT + ------- PROC DS18B20_READBYTE + ------- DO + D:0001H SYMBOL byte + D:0003H SYMBOL bi + D:0006H SYMBOL i + D:0004H SYMBOL j + ------- ENDDO + C:1367H LINE# 32 + C:1367H LINE# 33 + C:1367H LINE# 36 + C:136BH LINE# 37 + C:136BH LINE# 38 + C:136DH LINE# 39 + C:1371H LINE# 40 + C:1373H LINE# 41 + C:1377H LINE# 42 + C:137BH LINE# 43 + C:137FH LINE# 44 + C:138BH LINE# 45 + C:138FH LINE# 46 + C:1399H LINE# 47 + C:13A2H LINE# 48 + C:13A4H LINE# 49 + ------- ENDPROC DS18B20_READBYTE + ------- PROC L?0042 + ------- ENDPROC L?0042 + ------- PROC _DS18B20_WRITEBYTE + D:0007H SYMBOL dat + ------- DO + D:0035H SYMBOL i + D:0002H SYMBOL j + ------- ENDDO + C:12F0H LINE# 51 + C:12F0H LINE# 52 + C:12F0H LINE# 54 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 21 + + + C:12F3H LINE# 55 + C:12F3H LINE# 56 + C:12F5H LINE# 57 + C:12FDH LINE# 58 + C:1301H LINE# 59 + C:1307H LINE# 60 + C:1314H LINE# 61 + C:1316H LINE# 62 + C:131AH LINE# 63 + C:1325H LINE# 64 + ------- ENDPROC _DS18B20_WRITEBYTE + ------- PROC DS18B20_READTEMP + ------- DO + D:0006H SYMBOL temp + D:0007H SYMBOL tmh + D:0034H SYMBOL tml + ------- ENDDO + C:14C1H LINE# 66 + C:14C1H LINE# 67 + C:14C1H LINE# 68 + C:14C4H LINE# 70 + C:14C4H LINE# 71 + C:14C4H LINE# 72 + C:14C7H LINE# 73 + C:14CCH LINE# 75 + C:14CCH LINE# 76 + C:14CCH LINE# 77 + C:14CFH LINE# 78 + C:14D4H LINE# 80 + C:14D9H LINE# 81 + C:14DCH LINE# 82 + C:14DCH LINE# 83 + C:14DEH LINE# 84 + C:14E1H LINE# 85 + C:14E1H LINE# 86 + ------- ENDPROC DS18B20_READTEMP + ------- PROC TEMPER_CHANGE + ------- DO + D:0006H SYMBOL temper + D:0030H SYMBOL tp + ------- ENDDO + C:124BH LINE# 89 + C:124BH LINE# 90 + C:124BH LINE# 94 + C:124EH LINE# 95 + C:1254H LINE# 96 + C:1254H LINE# 97 + C:1259H LINE# 98 + C:125FH LINE# 99 + C:125FH LINE# 100 + C:125FH LINE# 101 + C:1261H LINE# 103 + C:1261H LINE# 104 + C:127BH LINE# 105 + C:1299H LINE# 106 + C:1299H LINE# 107 + C:1299H LINE# 108 + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 22 + + + ------- ENDPROC TEMPER_CHANGE + ------- ENDMOD DS18B20 + + ------- MODULE ?C?FPADD + C:000AH PUBLIC ?C?FPADD + C:0006H PUBLIC ?C?FPSUB + ------- ENDMOD ?C?FPADD + + ------- MODULE ?C?FPMUL + C:00FBH PUBLIC ?C?FPMUL + ------- ENDMOD ?C?FPMUL + + ------- MODULE ?C?FPDIV + C:0204H PUBLIC ?C?FPDIV + ------- ENDMOD ?C?FPDIV + + ------- MODULE ?C?FPCMP + C:02A3H PUBLIC ?C?FPCMP + C:02A1H PUBLIC ?C?FPCMP3 + ------- ENDMOD ?C?FPCMP + + ------- MODULE ?C?FCAST + C:0324H PUBLIC ?C?FCASTC + C:031FH PUBLIC ?C?FCASTI + C:031AH PUBLIC ?C?FCASTL + ------- ENDMOD ?C?FCAST + + ------- MODULE ?C?CASTF + C:0358H PUBLIC ?C?CASTF + ------- ENDMOD ?C?CASTF ------- MODULE PRINTF - D:0042H PUBLIC ?_PRINTF517?BYTE - D:0042H PUBLIC ?_PRINTF?BYTE - D:0042H PUBLIC ?_SPRINTF517?BYTE - D:0042H PUBLIC ?_SPRINTF?BYTE - C:0065H PUBLIC _PRINTF - C:0065H PUBLIC _PRINTF517 - C:005FH PUBLIC _SPRINTF - C:005FH PUBLIC _SPRINTF517 + D:002EH PUBLIC ?_PRINTF?BYTE + D:002EH PUBLIC ?_SPRINTF?BYTE + C:0704H PUBLIC _PRINTF + C:06FEH PUBLIC _SPRINTF ------- ENDMOD PRINTF + ------- MODULE ?C?FPROUND + C:03D9H PUBLIC ?C?FPROUND + ------- ENDMOD ?C?FPROUND + + ------- MODULE ?C?FPCONVERT + C:0408H PUBLIC ?C?FPCONVERT + ------- ENDMOD ?C?FPCONVERT + + ------- MODULE ?C?FTNPWR + C:053BH PUBLIC ?C?FTNPWR + ------- ENDMOD ?C?FTNPWR + + ------- MODULE ?C?CLDPTR + C:057BH PUBLIC ?C?CLDPTR + ------- ENDMOD ?C?CLDPTR + ------- MODULE ?C?CLDOPTR - C:052EH PUBLIC ?C?CLDOPTR + C:0594H PUBLIC ?C?CLDOPTR ------- ENDMOD ?C?CLDOPTR + BL51 BANKED LINKER/LOCATER V6.22 05/01/2022 12:24:18 PAGE 23 + + ------- MODULE ?C?CSTPTR - C:055BH PUBLIC ?C?CSTPTR + C:05C1H PUBLIC ?C?CSTPTR ------- ENDMOD ?C?CSTPTR - BL51 BANKED LINKER/LOCATER V6.22 04/29/2022 01:22:41 PAGE 13 + ------- MODULE ?C?UIDIV + C:05D3H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?SIDIV + C:0628H PUBLIC ?C?SIDIV + ------- ENDMOD ?C?SIDIV + ------- MODULE ?C?LNEG + C:065EH PUBLIC ?C?LNEG + ------- ENDMOD ?C?LNEG ------- MODULE ?C?PLDIIDATA - C:056DH PUBLIC ?C?PLDIIDATA + C:066CH PUBLIC ?C?PLDIIDATA ------- ENDMOD ?C?PLDIIDATA ------- MODULE ?C?CCASE - C:057DH PUBLIC ?C?CCASE + C:067CH PUBLIC ?C?CCASE ------- ENDMOD ?C?CCASE ------- MODULE PUTCHAR - C:0756H PUBLIC _PUTCHAR + C:142DH PUBLIC _PUTCHAR ------- ENDMOD PUTCHAR +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?INIT_BH1750?MAIN + *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_AT24C02WRITE?I2C *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_AT24C02READ?I2C -Program Size: data=77.1 xdata=0 code=2274 -LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 0 ERROR(S) +Program Size: data=95.1 xdata=0 code=5836 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/pro.build_log.htm b/pro.build_log.htm index f2f258d..a467fa6 100644 --- a/pro.build_log.htm +++ b/pro.build_log.htm @@ -19,19 +19,21 @@ CPU DLL: S8051.DLL V3.106.0.0 Dialog DLL: DP51.DLL V2.63.0.0

Project:

E:\Ŀ\ְĿ\20220428-IntelligentLighting\pro.uvproj -Project File Date: 04/29/2022 +Project File Date: 04/30/2022

Output:

Build target 'Target 1' -compiling main.c... +compiling ds1302.c... linking... +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?INIT_BH1750?MAIN *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_AT24C02WRITE?I2C *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_AT24C02READ?I2C -Program Size: data=77.1 xdata=0 code=2274 +Program Size: data=95.1 xdata=0 code=5836 creating hex file from "pro"... -"pro" - 0 Error(s), 2 Warning(s). +"pro" - 0 Error(s), 3 Warning(s). Build Time Elapsed: 00:00:00 diff --git a/pro.hex b/pro.hex index e405b29..ba1c107 100644 --- a/pro.hex +++ b/pro.hex @@ -1,173 +1,420 @@ -:0508DD0025640D0A0076 -:10083200758921759850758DFD858D8BE4F587D26C -:06084200AFD2ACD28E2201 -:0708D600AE071FEE70FA22CD -:0E086D00C2ACC2998F993099FDC299D2AC22CB -:10081A00120515FF601112086D7F051208D67401C2 -:08082A0029F9E43AFA80E92201 -:10035F00E4F542F54320923A120897209212E50BEA -:10036F00450A7007F50A750B018005E4F50AF50BD0 -:10037F00C3E5439432E54264809480501020920D7F -:10038F001208970543E54370E7054280E3E4F54221 -:10039F00F54320933A120897209312E50D450C7000 -:1003AF0007F50C750D018005E4F50CF50DC3E5435C -:1003BF009432E54264809480501020930D12089778 -:1003CF000543E54370E7054280E3E4F542F543203A -:1003DF00B74112089720B7190509E50970020508FA -:1003EF00D39463E50864809480400675080075090E -:1003FF0063C3E5439432E54264809480501020B784 -:10040F000D1208970543E54370E7054280E3E4F5D5 -:10041F0042F54320B63E12089720B616E509150996 -:10042F0070021508C3E508648094805005E4F50850 -:10043F00F509C3E5439432E542648094805010205F -:10044F00B60D1208970543E54370E7054280E3E4D4 -:04045F00F542F5432A -:010463002276 -:10046400E50D450C6009E50B450A6003020504C36C -:10047400E50F9432E50E64809480400302050CE598 -:100484000B450A600302050CC3E509940AE50864F8 -:100494008094805016E5099400E5086480948040B7 -:1004A4000AC282C281C280D284805DC3E509940AF3 -:1004B400E508648094804012E5099414E50864809A -:1004C40094805006C282C2818030C3E5099414E549 -:1004D40008648094804012E509941EE508648094C1 -:1004E400805006C282D2818011C3E509941EE508BA -:1004F40064809480400AD282D281D280D2848008DF -:10050400C282C281C280C284E50A450B24FF928361 -:0105140022C4 -:1006BA00E4F522F5231207E81207A31208321208FA -:1006CA00481208A412035F7545FF7546087547DD91 -:1006DA00850A48850B497B007A00792412005F7BE2 -:0D06EA00007A00792412081A12046480D1ED -:0A08A4007F801208AE7F6D0208B8D5 -:0C0897007F017E267D82DDFEDEFADFF6AA -:0108A3002232 -:10072C00C2958FA07F017E0012073DD2947F057E7B -:01073C0000BC -:10073D00D3EF9400EE9400400F7DC77C01DCFEDD0D -:08074D00FAEF1F70EB1E80E8BB -:010755002281 -:0A08AE00C294C29612072CC29422D5 -:0A08B800C294D29612072CC29422BB -:1007E8007F381208AE7F0C1208AE7F061208AE7F63 -:0907F800011208AE7F800208AE78 -:0E087B0081838587898B8D80828486888A8C14 -:0908C200071000012328040422A0 -:1006F700C2B300C2B500D2B300E4FEEF1392B4EF69 -:10070700C313FFD2B500C2B5000EBE08EEE4FEED7E -:100717001392B4EDC313FDD2B500C2B5000EBE08E7 -:04072700EEC2B3006B -:01072B0022AB -:10062F00C2B300C2B500D2B300E4FDEF1392B4EF32 -:10063F00C313FFD2B500C2B5000DBD08EE00E4FD37 -:10064F00A2B4E433FFC43333335480FCEEC3134CF2 -:10065F00FED2B500C2B5000DBD08E5C2B300D2B5DC -:09066F0000C2B400D2B400AF06D1 -:01067800225F -:1007A300E4FD7F8E1206F7E4FCEC90088293FF745D -:1007B300102CF8E6FD1206F70CBC07ED7D807F8E4A -:0307C3000206F734 -:10084800E4FBEB90087B93FF12062F74102BF8A69D -:05085800070BBB07EDDA -:01085D002278 -:0508890012088ED2A14F -:08088E007F017E02DEFEDFFAAD -:01089600223F -:0F085E00D2A0120889C2A012088EC2A102088E71 -:0A08CC00C2A0120889D2A002088E13 -:02067900AD07CB -:10067B00E4FBFAEDC4131313540124FF92A0ED25F0 -:10068B00E0FD120889C2A112088E0BBB08E5D2A0AF -:10069B0012088ED2A130A00F0AEAD394C840F6C23A -:0E06AB00A112088E7F0022C2A112088E7F01CC -:0106B900221E -:10077D00E4FDFCD2A012088ED2A112088EEC25E069 -:10078D00FCA2A0E433420412088EC2A112088E0D01 -:05079D00BD08E5AF04FA -:0107A2002234 -:10080100AC05A90712085E7FA0120679AF01120696 -:0908110079AF041206790208CC4B -:0207C600AC077E -:1007C80012085E7FA0120679AF0412067912085E3D -:0F07D8007FA112067912077DAD071208CCAF057D -:0107E70022EF -:030000000205A353 -:0C05A300787FE4F6D8FD7581550205EA6A -:10051500BB010689828A83E0225002E722BBFE02E4 -:09052500E32289828A83E4932217 -:10000300E5512445F8E60551227842300702784548 -:10001300E475F00112056D0205152000EB7F2ED269 -:10002300008018EF540F2490D43440D4FF30040BD5 -:10003300EF24BFB41A0050032461FFE55260021598 -:10004300520555E5557002055430070D7842E475A5 -:10005300F00112056DEF02055B0207567403D20728 -:100063008003E4C207F5518B428A438944E4F55285 -:10007300F554F555E55260077F2012003E80F57573 -:1000830053FFC201C200C202C203C205C206C208B4 -:1000930012000CFF700D3007057F0012004FAF55A3 -:1000A300AE5422B4255FC2D5C20412000CFF24D083 -:1000B300B40A00501A75F00A785230D50508B6FF15 -:1000C3000106C6A426F620D5047002D20380D924E3 -:1000D300CFB41A00EF5004C2E5D20402024FD2019A -:1000E30080C6D20080C0D20280BCD2D580BAD205ED -:1000F30080B47F2012003E2002077401B5520040F5 -:10010300F1120003FF12003E020077D208D20680EC -:1001130095120003FB120003FA120003F94A4B7015 -:100123000679207A037BFF20022EE552602A7E00A7 -:100133008E8275830012052E60060EEE655370F0F5 -:10014300C2D5EBC0E0EAC0E0E9C0E0EE120296D00F -:10015300E0F9D0E0FAD0E0FB120515FF60AAEBC08E -:10016300E0EAC0E0E9C0E012003ED0E02401F9D0AB -:10017300E03400FAD0E0FBE5530460DCD553D980CA -:10018300877BFF7A027992D202809C791080027970 -:1001930008C206C2088008D2D5790A8004790AC247 -:1001A300D5E553047002F553E4FAFDFEFF12000394 -:1001B300FC7B08200113120003FD7B1030000A12A0 -:1001C3000003FE120003FF7B20EC3382D592D5504F -:1001D30013C3E43000069FFFE49EFEE42001039D69 -:1001E300FDE49CFCE4CBF8C201EC700CCFCECDCC8B -:1001F300E824F8F870F38017C3EF33FFEE33FEED16 -:1002030033FDEC33FCEB33FB994002FB0FD8E9EBF6 -:10021300300105F8D0E0C448B201C0E00AEC4D4E0D -:100223004F78207B0070C2EAB5530040BCC0E01297 -:100233000298D0F0D0E0200104C4C0E0C4B201C0F1 -:10024300F0120027D0F0D5F0EB02007712057D0104 -:100253001453018E5800E54C00E14201924F019A7C -:0F02630044019A4900FA4301A0550184460184E1 -:100272004501844703405000E92D00ED2E01102B6B -:1002820000F123010E2003292A00A94800000108D9 -:100292003F3F3F00790AA2D5200314300509B91067 -:1002A200020404B9080104A2D52006025001042068 -:1002B20002689202B552005034C0E07F2030031928 -:1002C2007F30A20272067205500F1202EFC202C202 -:1002D20006C205C2087F30800F300503E9C0E01274 -:1002E200003E300503D0E0F9D0E0B552CC3005171E -:1002F2007F30B9100C12003E7F583004077F78809F -:1003020003B9080312003E3002057F2D02003E7F32 -:10031200202008F87F2B2006F322920280CF286E3D -:10032200756C6C2900D2011200033001F8C2017809 -:100332005230D50108F60200A92D50434958120047 -:10034200032403B405004001E490033B9312002F01 -:0D035200743A12002FD20375520402018E7E -:1005AF000206BAE493A3F8E493A34003F68001F2A2 -:1005BF0008DFF48029E493A3F85407240CC8C3334D -:1005CF00C4540F4420C8834004F456800146F6DF1C -:1005DF00E4800B01020408102040809008C2E47EE2 -:1005EF00019360BCA3FF543F30E509541FFEE49311 -:1005FF00A360010ECF54C025E060A840B8E493A3D8 -:10060F00FAE493A3F8E493A3C8C582C8CAC583CA02 -:10061F00F0A3C8C582C8CAC583CADFE9DEE780BEBA -:0108CB00002C -:10052E00BB010CE58229F582E5833AF583E0225082 -:10053E0006E92582F8E622BBFE06E92582F8E222CC -:0D054E00E58229F582E5833AF583E49322E6 -:10055B00BB010689828A83F0225002F722BBFE017F -:02056B00F32279 -:10056D00FAE6FB0808E6F925F0F618E6CA3AF6228F -:10057D00D083D082F8E4937012740193700DA3A30D -:10058D0093F8740193F5828883E473740293686021 -:06059D00EFA3A3A380DF21 -:10075600EFB40A07740D120761740A309811A8994C -:10076600B8130CC2983098FDA899C298B811F63003 -:0707760099FDC299F59922DB +:0516C70025640D0A007E +:04164D00024C00004B +:1014E200E4FDFCC3ED9FEC9E5015E4FBFA0BBB0040 +:0F14F200010AEB64794A70F50DBD00010C80E42E +:0115010022C7 +:1015F30000000000000000000000000000000000E8 +:0116030022C4 +:0E1604007F307E02EF1FAC0670011E4C70F6A8 +:0116120022B5 +:0F161300D290D2911215F3C2901215F3C2912208 +:0C169100C290D2911215F3D2900215F312 +:0E163100A2009290D2911215F3C2910215F30D +:0D167700D2911215F3A290C2911215F32228 +:10153E00E4FEEF25E0FF9290D2911215F3C29112C4 +:09154E0015F30EBE08EC0216773D +:10150200E4FFD290FEEF25E0FFD2911215F3A290F4 +:0D151200E4334207C2911215F30EBE08E843 +:01151F0022A9 +:1015E100AD071216137F4612153EAF0512153E02C6 +:0215F100169151 +:101404001216137F4712153EE4FD12150274682D5F +:10141400F8A607BD0304D2008002C2001216310DE3 +:09142400BD03E712169102160443 +:0516C2007F010215E1AB +:1015A100758921759850758DFD858D8BE4F587D2F0 +:0615B100AFD2ACD28E2285 +:0716BB00AE071FEE70FA22DA +:0E163F00C2ACC2998F993099FDC299D2AC22EB +:1015890012057BFF601112163F7F051216BB74010D +:0815990029F9E43AFA80E92285 +:100D9400E4F52EF52F7F011215E17F101215E17F86 +:100DA400B47E001214E2121404754A0085684BE5FF +:100DB4004BFE7C00E42569F54BEC3EF54AFCAD4B5B +:100DC40012031F7B9A7A997999783F1202048F59FA +:100DD4008E588D578C5612124B8E5A8F5B7C007D29 +:100DE400641206288E5A8F5B209240121684209239 +:100DF40018E55345527012E55145507007F550758A +:100E040051018005E4F550F551C3E52F9432E52EE8 +:100E140064809480501020920D121684052FE52FC3 +:100E240070E7052E80E3E4F52EF52F20935E12166D +:100E340084209336E55145506014E55545547007B8 +:100E4400F554755501801EE4F554F5558017E553A6 +:100E540045527007F5527553018005E4F552F55378 +:100E6400E4F54CF54D7F0112169DC3E52F9432E550 +:100E74002E64809480501020930D121684052FE563 +:100E84002F70E7052E80E3E4F52EF52F20B74112ED +:100E9400168420B719054FE54F7002054ED39463AD +:100EA400E54E648094804006754E00754F63C3E53B +:100EB4002F9432E52E64809480501020B70D1216C2 +:100EC40084052FE52F70E7052E80E3E4F52EF52F3A +:100ED40020B63E12168420B616E54F154F70021543 +:100EE4004EC3E54E648094805005E4F54EF54FC33F +:100EF400E52F9432E52E64809480501020B60D12B4 +:100F04001684052FE52F70E7052E80E3E4F52EF512 +:100F14002F20A24012168420A218054DE54D700220 +:100F2400054CC39404E54C648094804005E4F54C7E +:100F3400F54DC3E52F9432E52E6480948050102043 +:100F4400A20D121684052FE52F70E7052E80E3E429 +:100F5400F52EF52F30A70302100D12168430A703C7 +:100F640002100DE54D454C701A055DE55D700205F6 +:100F74005CC39418E55C64809480406BE4F55CF594 +:100F84005D8064E54D6401454C701A055FE55F7052 +:100F940002055EC3943BE55E648094804049E4F5B9 +:100FA4005EF55F8042E54D6402454C701A0563E5C9 +:100FB4006370020562C39418E562648094804027DC +:100FC400E4F562F5638020E54D6403454C70180533 +:100FD40065E56570020564C3943BE56464809480B0 +:100FE4004005E4F564F565C3E52F9432E52E64808D +:100FF4009480501020A70D121684052FE52F70E75A +:09100400052E80E3E4F52EF52F22 +:01100D0022C0 +:1010CC007D017C00E50AC4540F75F00AA4FFAEF054 +:1010DC00E50A540F7A002FF52FEA3EF52EE509C4E8 +:1010EC00540F75F00AA4FFAEF0E509540F2FF5313B +:1010FC00EA3EF530C3E52F955DE55C6480F8E52E9E +:10110C00648098404BD3E52F9563E5626480F8E5E5 +:10111C002E64809840028038E52FB55D18E52EB519 +:10112C005C13C3E531955FE55E6480F8E53064805F +:10113C00985002801BE52FB5631AE52EB56215D3C6 +:10114C00E5319565E5646480F8E530648098400489 +:08115C00E4FEFF22AE04AF0522 +:011164002268 +:10100E00E551455060030210AB1210CCEF4E700349 +:10101E000210A9E4FFFE7DC87C42AB59AA58A9571D +:10102E00A8561202A15074C3E54F940AE54E64808F +:10103E0094805016E54F9400E54E64809480400AEB +:10104E00C2A5C2A6C2A1D2A4806BC3E54F940AE585 +:10105E004E648094804012E54F9414E54E64809463 +:10106E00805006C2A5C2A6803EC3E54F9414E54E3D +:10107E00648094804012E54F941EE54E6480948007 +:10108E005006C2A5D2A6801FC3E54F941EE54E643E +:10109E008094804018D2A5D2A6800C8010E55545CC +:1010AE0054600AD2A5D2A6D2A1D2A48008C2A5C2EB +:0E10BE00A6C2A1C2A4E550455124FF92A32270 +:1011F100E4F522F5231215CD1215A1121557755CD0 +:1012010000755D12E4F55EF55FF560F561F56275F7 +:101211006317F56475651EF566F5671215B7120B50 +:1012210011120D9412100E7531FF7532167533C7F8 +:10123100855A34855B357B007A0079241206FE7B62 +:0A124100007A00792412158980D18B +:100B1100E55345527F806003020C9212169DE50C4D +:100B2100C4540F2430FF1216A7E50C540F2430FFD4 +:100B31001216A77F2D1216A7E50BC4540F2430FF00 +:100B41001216A7E50B540F2430FF1216A77F2012AF +:100B510016A7E50AC4540F2430FF1216A7E50A545C +:100B61000F2430FF1216A77F3A1216A7E509C454C5 +:100B71000F2430FF1216A7E509540F2430FF121677 +:100B8100A77F3A1216A7E508C4540F2430FF1216A6 +:100B9100A7E508540F2430FF1216A77F201216A7CD +:100BA100E50D540F2430FF1216A77FC012169DAF1A +:100BB10059AE58AD57AC561203588E2E8F2F7C2745 +:100BC1007D101205D38C2E8D2FAE2EAF2F7C037D81 +:100BD100E81205D3EF2430FF1216A7AE2EAF2F7CFB +:100BE100037DE81205D38C2E8D2FAE2EAF2F7C0006 +:100BF1007D641205D3EF2430FF1216A7AE2EAF2F5E +:100C01007C007D641205D38C2E8D2FAE2EAF2F7CF0 +:100C1100007D0A1205D3EF2430FF1216A7AE2EAFC6 +:100C21002F7C007D0A1205D38C2E8D2FE52F2430C9 +:100C3100FF1216A77F4C1216A77F781216A77F20E6 +:100C41001216A7AE5AAF5B7C007D0A120628EF246C +:100C510030FF1216A7AE5AAF5B7C007D0A12062840 +:100C6100ED2430FF1216A77F431216A77F2012161C +:100C7100A7AE4EAF4F7C007D0A1206287C007D0A8C +:100C8100120628ED2430FF1216A7AE4EAF4F020D0B +:100C91008512169DAE5CAF5D7C007D0A120628EFC1 +:100CA1002430FF1216A7AE5CAF5D7C007D0A1206F0 +:100CB10028ED2430FF1216A77F3A1216A7AE5EAFB9 +:100CC1005F7C007D0A120628EF2430FF1216A7AEC2 +:100CD1005EAF5F7C007D0A120628ED2430FF1216FC +:100CE100A77F3A1216A7AE60AF617C007D0A12069B +:100CF10028EF2430FF1216A7AE60AF617C007D0A99 +:100D0100120628ED2430FF1216A77F201216A7E540 +:100D11004D2430FF1216A77FC012169DAE62AF633D +:100D21007C007D0A120628EF2430FF1216A7AE625E +:100D3100AF637C007D0A120628ED2430FF1216A74E +:100D41007F3A1216A7AE64AF657C007D0A120628B1 +:100D5100EF2430FF1216A7AE64AF657C007D0A1246 +:100D61000628ED2430FF1216A77F3A1216A7AE66A9 +:100D7100AF677C007D0A120628EF2430FF1216A708 +:100D8100AE66AF677C007D0A120628ED2430FF12A3 +:020D910016A7A3 +:010D9300223D +:0C1684007F017E267D82DDFEDEFADFF6AF +:011690002237 +:1013DA00C2958F807F017E001213EBD2947F057E27 +:0113EA000002 +:1013EB00D3EF9400EE9400400F7DC77C01DCFEDD53 +:0813FB00FAEF1F70EB1E80E801 +:0114030022C6 +:0A169D00C294C2961213DAC294221E +:0A16A700C294D2961213DAC2942204 +:101557007F3812169D7F0C12169D7F0612169D7FEF +:091567000112169D7F8002169D01 +:0E165B0081838587898B8D80828486888A8C26 +:091651000708002412010507221C +:1013A500C2B300C2B500D2B300E4FEEF1392B4EFAE +:1013B500C313FFD2B500C2B5000EBE08EEE4FEEDC4 +:1013C5001392B4EDC313FDD2B500C2B5000EBE082D +:0413D500EEC2B300B1 +:0113D90022F1 +:10129A00C2B300C2B500D2B300E4FDEF1392B4EFBB +:1012AA00C313FFD2B500C2B5000DBD08EE00E4FDC0 +:1012BA00A2B4E433FFC43333335480FCEEC3134C7B +:1012CA00FED2B500C2B5000DBD08E5C2B300D2B565 +:0912DA0000C2B400D2B400AF065A +:0112E30022E8 +:1015CD00E4FD7F8E1213A5E4FF0FBF07FC7D807F26 +:0415DD008E0213A5C2 +:1015B700E4FBEB90165B93FF12129A74082BF8A6C4 +:0515C700070BBB07ED5E +:0115CC0022FC +:0516690012166ED2A173 +:08166E007F017E02DEFEDFFABF +:011676002251 +:0F162200D2A0121669C2A012166EC2A102166ED5 +:0A16B100C2A0121669D2A002166E44 +:02132600AD0711 +:10132800E4FBFAEDC4131313540124FF92A0ED2536 +:10133800E0FD121669C2A112166E0BBB08E5D2A019 +:1013480012166ED2A130A00F0AEAD394C840F6C292 +:0E135800A112166E7F0022C2A112166E7F0136 +:011366002264 +:10145400E4FDFCD2A012166ED2A112166EEC25E0A9 +:10146400FCA2A0E433420412166EC2A112166E0D41 +:05147400BD08E5AF0416 +:011479002250 +:10157000AC05A9071216227FA0121326AF01121381 +:0915800026AF041213260216B175 +:02149F00AC0798 +:1014A1001216227FA0121326AF041213261216223F +:0F14B1007FA1121326121454AD071216B1AF0506 +:0114C0002209 +:10152000D3EF9400EE940040147D6E7C00ED1D70AE +:0D153000011CED4C70F7EF1F70E61E80E30C +:01153D00228B +:10147A00C2B27B46AF031BEF70FAD2B2E4FB30B2C2 +:10148A00117F017E001215200BEBD3940540EF7FEC +:04149A0000227F01AC +:01149E00222B +:101367007D087C00C2B20FBF0000D2B20FBF0000E1 +:101377000FBF0000A2B2E433C43333335480FBE918 +:10138700C3134BF97E007F04EF1FAA0670011E4AA4 +:0D13970070F6ED1D70011CED4C70C9AF012A +:0113A4002226 +:0C12E40012147A7F017E001215207FCCCE +:1012F000E4FBFAC2B20536E53670020535EF13920B +:10130000B2753500753606E5361536AC3570021502 +:10131000354C70F3D2B2EFC313FF0BBB00010AEBE5 +:0513200064084A70CED4 +:0113250022A5 +:1014C100E4FFFE1212E47F441212F01212E47FBE16 +:1014D1001212F01213678F34121367EFFEE534FF17 +:0114E10022E8 +:10124B001214C1C3EE9400500DEF1F70011E630703 +:10125B00FF6306FF8000AD07AC06E412031FE4FB3F +:10126B00FA7980783D1200FB8F338E328D318C30C2 +:10127B00E4FFFE7DC87C42AB33AA32A931A8301201 +:0E128B0000FBE4FBFAF9783F12000A12035848 +:011299002232 +:100003000203C4E86480F8E933E83360110460F064 +:10001300ED33EC337009E8FCE9FDEAFEEBFF220463 +:1000230060DED3EB9FEA9EE99DE8C2E78CF0C2F75E +:1000330095F0400CE8CCF8E9CDF9EACEFAEBCFFB2A +:1000430012038F85D0F05804700320D5B3E80470F1 +:10005300075002B2D50203CE92D5EC0460F7E4CC8C +:10006300C0E0C398F8603B94186008400DD0E0FBF3 +:100073000203A6E4FBFAC9FC8028E830E406E4C9DD +:10008300FBE4CAFCE830E305E4C9CACBFCE8540747 +:100093006010F8C3E913F9EA13FAEB13FBEC13FC52 +:1000A300D8F130F52FC3E49CFCEF9BFFEE9AFEEDF5 +:1000B30099FDD0E0FBEF4E4D4C701222DB0302039F +:1000C300CBEC2CFCEF33FFEE33FEED33FDED30E7ED +:1000D300EB0203A6EF2BFFEE3AFEED39FDD0E0FB7A +:1000E30050130BBB00030203CEED13FDEE13FEEF23 +:0800F30013FFEC13FC0203A64D +:1000FB00EC4D6011E8497017ED33EC3304600DE4FF +:10010B00FCFFFEFD22E933E8330470F80203C4124E +:10011B00038F58046009E4CC24815006285009024F +:10012B0003CE2840030203CBC0E0EB4A7044B980F6 +:10013B0006D0E0FB0203BAEF4E701CBD8008EBFF4C +:10014B00EAFEE9FD80EBE98DF0A4FEE5F00201E4A7 +:10015B00E9CDF9EAFEEBFFEF89F0A4FCE5F0CE89DF +:10016B00F0A42EFFE435F0CD89F0A42DFEE435F09C +:10017B008067EF4E7005BD80D780C3EF8BF0A4ACCA +:10018B00F0EE8BF0A42CFCE435F0F8EF8AF0A42C05 +:10019B00E5F038FCE433CB8DF0A42CFCE5F03BF818 +:1001AB00EE8AF0A42CFCE5F038F8E433CF89F0A408 +:1001BB002CFCE5F038CF3400CE89F0A42FFFE5F00E +:1001CB003EFEE433C98DF0A42EFEE5F039CD8AF066 +:1001DB00A42FFFE5F03EFEE43DFD33D0E0FB5007DE +:1001EB000BBB000F0203CEEC2CFCEF33FFEE33FE08 +:0601FB00ED33FD0203A636 +:100201000203CEEC5D046005E8590470030203C4E7 +:1002110012038F580460F6EC4860F2EC7004FDFEA6 +:10022100FF22C860DB2481C85009C39860025006D0 +:100231000203CB9850CAF582E9294B4A7005AB827B +:100241000203BA75F0007C1A7880C3EF9BEE9AED39 +:1002510099400DC3EF9BFFEE9AFEED99FDE842F048 +:10026100DC23ACF0D0E0FFD0E0FED0E0FDAB82209B +:10027100E7101BEB60BAEC2CFCEF33FFEE33FEED25 +:1002810033FD0203A6E803F830E705C0F075F0007E +:10029100EF2FFFEE33FEED33FD40B830E7C280AA09 +:1002A10074F8CC6480CCC86480C8F58204604FC304 +:1002B100EB9FF5F0EA9E42F0E99D42F0E89C45F0A3 +:1002C100603C501DE5825FFFE582D313CB5BCBF42D +:1002D1002B5582FB50280ABA002409B90020088056 +:1002E1001DE5825BFBE582D313CF5FCFF4C3132FF0 +:1002F1005582FF50090EBE00050DBD00010CC3EB78 +:100301009FF5F0EA9E42F0E99D42F0E89C45F060DD +:0903110007CC4820E701B3EC22FF +:10031A0075F020800E75F010800575F0087D007E5E +:10032A00007F003392D530D50312065EEC334010BD +:10033A00EF33FFEE33FEED33FDEC33FCD5F0ED2267 +:0E034A00E5F0247EA2D513CC92E7CDCEFF22A3 +:10035800EDD2E7CD33EC3392D524814006E4FFFE9D +:10036800FDFC22FCE4CFCECDCC24E0501174FF80FC +:10037800EDC3CC13CCCD13CDCE13CECF13CF047099 +:07038800F030D5DE02065E35 +:1006A200E5452431F8E6054522782E3007027831F7 +:1006B200E475F00112066C02057B2000EB7F2ED25E +:1006C200008018EF540F2490D43440D4FF30040B30 +:1006D200EF24BFB41A0050032461FFE546600215FF +:1006E200460549E5497002054830070D782EE47544 +:1006F200F00112066CEF0205C102142D7403D20739 +:100702008003E4C207F5458B2E8A2F8930E4F54633 +:10071200F548F549E54660077F201206DD80F5754C +:1007220047FFC201C200C202C203C205C206C2081A +:100732001206ABFF700D3007057F001206EEAF49BF +:10074200AE4822B4255FC2D5C2041206ABFF24D044 +:10075200B40A00501A75F00A784630D50508B6FF7B +:100762000106C6A426F620D5047002D20380D9243D +:10077200CFB41A00EF5004C2E5D2040209DBD20161 +:1007820080C6D20080C0D20280BCD2D580BAD20547 +:1007920080B47F201206DD2002077401B5460040B6 +:1007A200F11206A2FF1206DD020716D208D2068057 +:1007B200951206A2FB1206A2FA1206A2F94A4B7081 +:1007C2000679D27A0A7BFF20022EE546602A7E0055 +:1007D2008E8275830012059460060EEE654770F0F6 +:1007E200C2D5EBC0E0EAC0E0E9C0E0EE120A3BD0BD +:1007F200E0F9D0E0FAD0E0FB12057BFF60AAEBC083 +:10080200E0EAC0E0E9C0E01206DDD0E02401F9D060 +:10081200E03400FAD0E0FBE5470460DCD547D9803C +:1008220087D20280A2120A1E60F7E5477001041205 +:1008320003D9A947600DE547600914F547120AC5B7 +:10084200EF60F3EA30E702F404C3995077EAF42543 +:10085200470430E701E404F547800D120A1E60C127 +:10086200EA054725471203D9EA7844F630E701E45E +:10087200254704D5470420050114120A3BE4C0E0D1 +:10088200120AC57844E6601320E70714F61206C57B +:10089200802204F6D0E014C0E07F001206C5E547CE +:1008A20060071206BC1547800B3005031206BCD048 +:1008B200E0020716D0E00480C5120A1E60A0E547D8 +:1008C200041203D97844EAF6E547200502600104E0 +:0508D2002404120A3BA2 +:1008D70074FF04C0E0120AC51206C5E547200502E9 +:1008E70060031206BCD0E0B547E87F451206CF7813 +:1008F70044E67F2B30E7047F2DF404C0E01206DDC9 +:10090700D0E075F00A84C0F01206C6D0E01206C621 +:10091700020716791080027908C206C2088008D239 +:10092700D5790A8004790AC2D5E547047002F547EC +:10093700E4FAFDFEFF1206A2FC7B08200113120653 +:10094700A2FD7B1030000A1206A2FE1206A2FF7B50 +:1009570020EC3382D592D55013C3E43000069FFFB5 +:10096700E49EFEE42001039DFDE49CFCE4CBF8C279 +:1009770001EC700CCFCECDCCE824F8F870F38017DB +:10098700C3EF33FFEE33FEED33FDEC33FCEB33FB0C +:10099700994002FB0FD8E9EB300105F8D0E0C448D5 +:1009A700B201C0E00AEC4D4E4F78207B0070C2EADE +:1009B700B5470040BCC0E0120A3DD0F0D0E02001AE +:1009C70004C4C0E0C4B201C0F01206C6D0F0D5F02E +:1009D700EB02071612067C07B353091A5807844C13 +:1009E700078042091E4F09264409264907994309EA +:1009F7002C55085D4608BB450827470AF25007886B +:100A07002D078C2E07AF2B07902307AD200ADB2A73 +:100A1700074848000007A7E547B4FF0375470612D4 +:100A270006A2FC1206A2FD1206A2FE1206A2FF787B +:100A37003D020408790AA2D5200314300509B9102C +:100A4700020404B9080104A2D520060250010420BB +:100A570002689202B546005034C0E07F2030031987 +:100A67007F30A20272067205500F120A94C202C2A8 +:100A770006C205C2087F30800F300503E9C0E012C7 +:100A870006DD300503D0E0F9D0E0B546CC300517D8 +:100A97007F30B9100C1206DD7F583004077F78804D +:100AA70003B908031206DD3002057F2D0206DD7F3C +:100AB700202008F87F2B2006F322920280CF7F00A8 +:100AC700B407005005243DF8E6FF22286E756C6CCC +:100AD7002900D2011206A23001F8C201784630D5AA +:100AE7000108F60207482D504349581206A224036D +:100AF700B405004001E4900AED931206CE743A1251 +:0A0B070006CED20375460402091A57 +:10038F00E9D2E7C933E833F892D5EDD2E7CD33ECB4 +:07039F0033FC5002B2D5222D +:1003A600EC30E7100FBF000C0EBE00080DBD0004B8 +:1003B6000BEB6014A2D5EB13FCED92E7FD2274FF64 +:1003C600FCFDFEFF22E480F8A2D574FF13FC7D80BD +:0303D600E480EFD1 +:1003D900F920E72824F950037907E4F42402FB18EB +:1003E900DBFDE624FB5014E9600DE4F618E604F69B +:0F03F900B40A08E4F6D9F57401F60A22C2D52237 +:10040800ED33EC3392D5FA602AB4FF33EDC2E77BC3 +:10041800FF60067A04792DE4227A04793620D5041F +:100428007A047931224E614E002B494E46002D49FF +:100438004E4600E47A08F608DAFC7B00740722E8E6 +:10044800C0E0ECC0E0EDC0E0EEC0E0EFC0E0EA756F +:10045800F010A4CAABF075F04DA42BFBE435F0FC0A +:10046800EA2410FAEB34C5FBEC34D9FCEDC2E7FF03 +:1004780075F056A4F42411C5F0F434C58FF0A42AFD +:10048800E5F03BE43CF620E71412053BD0E0FFD052 +:10049800E0FED0E0FDD0E0FC1202048014F4041267 +:1004A800053BD0E0FFD0E0FED0E0FDD0E0FC12003C +:1004B800FBD0E0F8E6FAEDD2E7CD33EC332482FB4B +:1004C800E4C3CF33CFCE33CECD33CD33DBF37B078D +:1004D80075F00A846004F6081B0AE5F0F6088FF048 +:1004E800740AA4FFACF08EF0740AA42CFEACF05091 +:1004F800010C8DF0740AA42CFDE435F0F608DBDE5F +:0305080074072253 +:10050B003F8000004120000042C80000447A0000F8 +:10051B00461C400047C35000497424004B1896807A +:10052B004CBEBC205A0E1BCA6753C21C749DC5AE71 +:10053B00FB60065407601C2323120569EB543860DB +:10054B00091205551205641200FBECF8EDF9EEFAF1 +:10055B00EFCB22EB12056480F1543803241C900579 +:10056B000BFE93FC0EEE93FD0EEE930ECE93FF223D +:0300000002116585 +:0C116500787FE4F6D8FD75816F0211ACB4 +:10057B00BB010689828A83E0225002E722BBFE027E +:09058B00E32289828A83E49322B1 +:10059400BB010CE58229F582E5833AF583E022501C +:1005A40006E92582F8E622BBFE06E92582F8E22266 +:0D05B400E58229F582E5833AF583E4932280 +:1005C100BB010689828A83F0225002F722BBFE0119 +:0205D100F32213 +:1005D300BC000BBE0029EF8DF084FFADF022E4CC0C +:1005E300F875F008EF2FFFEE33FEEC33FCEE9DECD5 +:1005F300984005FCEE9DFE0FD5F0E9E4CEFD22ED1B +:10060300F8F5F0EE8420D21CFEADF075F008EF2F64 +:10061300FFED33FD4007985006D5F0F222C398FD55 +:050623000FD5F0EA22F2 +:10062800C2D5EC30E709B2D5E4C39DFDE49CFCEEED +:1006380030E715B2D5E4C39FFFE49EFE1205D3C38D +:10064800E49DFDE49CFC80031205D330D507C3E488 +:060658009FFFE49EFE225C +:0E065E00C3E49FFFE49EFEE49DFDE49CFC22AD +:10066C00FAE6FB0808E6F925F0F618E6CA3AF6228F +:10067C00D083D082F8E4937012740193700DA3A30D +:10068C0093F8740193F5828883E473740293686021 +:06069C00EFA3A3A380DF21 +:10142D00EFB40A07740D121438740A309811A89984 +:10143D00B8130CC2983098FDA899C298B811F6301F +:07144D0099FDC299F59922F7 +:101171000211F1E493A3F8E493A34003F68001F292 +:1011810008DFF48029E493A3F85407240CC8C3337F +:10119100C4540F4420C8834004F456800146F6DF4E +:1011A100E4800B010204081020408090164DE47E7B +:1011B100019360BCA3FF543F30E509541FFEE49343 +:1011C100A360010ECF54C025E060A840B8E493A30A +:1011D100FAE493A3F8E493A3C8C582C8CAC583CA35 +:1011E100F0A3C8C582C8CAC583CADFE9DEE780BEED +:01165A00008F :00000001FF diff --git a/pro.lnp b/pro.lnp index cef81bc..49fc0dd 100644 --- a/pro.lnp +++ b/pro.lnp @@ -1,5 +1,6 @@ "main.obj", "lcd.obj", "ds1302.obj", -"i2c.obj" +"i2c.obj", +"DS18B20.obj" TO "pro" diff --git a/pro.uvgui.QY b/pro.uvgui.QY index c50c44a..de979e2 100644 --- a/pro.uvgui.QY +++ b/pro.uvgui.QY @@ -83,25 +83,25 @@ 2 3 - -1 - -1 + -32000 + -32000 -1 -1 - 133 - 585 - 2505 - 780 + 336 + 655 + 2575 + 988 0 - 556 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000000000000100000034453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF33453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF33453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6C63642E6300000000056C63642E6300000000F0A0A100FFFFFFFF36453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6473313330322E6800000000086473313330322E6800000000BCA8E100FFFFFFFF36453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6473313330322E6300000000086473313330322E63000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A00009B040000 + 794 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000008000000040000000100000034453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF33453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF33453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6C63642E6300000000056C63642E6300000000F0A0A100FFFFFFFF36453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6473313330322E6800000000086473313330322E6800000000F0A0A100FFFFFFFF36453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6473313330322E6300000000086473313330322E6300000000BCA8E100FFFFFFFF33453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C6932632E6800000000056932632E68000000009CC1B600FFFFFFFF37453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C445331384232302E680000000009445331384232302E6800000000F7B88600FFFFFFFF37453A5CCFEEC4BF5CBCE6D6B0CFEEC4BF5C32303232303432382D496E74656C6C6967656E744C69676874696E675C445331384232302E630000000009445331384232302E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A00009B040000 @@ -1795,8 +1795,8 @@ 59392 File - 2490 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000006307830303066960000000000000014000630783030306608B6C1C8A1CEC8B6A804657869740C5265636976655F7461626C650474696D650574696D65310F52696768745F6D6F746F5F73746F700E707573685F76616C5F72696768741170776D5F6F75745F6C6566745F6D6F746F0273300875735F64656C6179036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E06307830306630054750494F4106307866303030054750494F42124775695F44726177466F6E745F4E756D33320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 + 2467 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000003534441960000000000000014000454494D45035344410353434C0442595445067763736C656E0630783030306608B6C1C8A1CEC8B6A804657869740C5265636976655F7461626C650474696D650574696D65310F52696768745F6D6F746F5F73746F700E707573685F76616C5F72696768741170776D5F6F75745F6C6566745F6D6F746F0273300875735F64656C6179036375740A73656E64546F576966690B676574546F74616C4461790C74696D696E67735B695D2D3E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65B9030000 1423 @@ -1852,30 +1852,30 @@ 0 100 - 0 + 4 .\main.c - 5 - 123 - 142 + 27 + 7 + 479 1 0 lcd.h - 2 + 12 1 - 32 + 34 1 0 .\lcd.c - 0 - 60 - 74 + 4 + 71 + 121 1 0 @@ -1891,9 +1891,36 @@ .\ds1302.c + 14 + 72 + 87 + 1 + + 0 + + + i2c.h 0 - 27 - 90 + 1 + 1 + 1 + + 0 + + + DS18B20.h + 18 + 1 + 8 + 1 + + 0 + + + .\DS18B20.c + 20 + 44 + 66 1 0 diff --git a/pro.uvopt b/pro.uvopt index 301950e..f65a637 100644 --- a/pro.uvopt +++ b/pro.uvopt @@ -191,7 +191,7 @@ 1 1 1 - 1 + 0 0 0 .\main.c @@ -235,6 +235,18 @@ 0 0 + + 1 + 5 + 1 + 1 + 0 + 0 + .\DS18B20.c + DS18B20.c + 0 + 0 + diff --git a/pro.uvproj b/pro.uvproj index 3cd4b8d..dbea5f5 100644 --- a/pro.uvproj +++ b/pro.uvproj @@ -396,6 +396,11 @@ 1 .\i2c.c + + DS18B20.c + 1 + .\DS18B20.c +