首页资源分类编程语言C/C++ > 18b20加lcd1602程序

18b20加lcd1602程序

已有 445110个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:18b20

    分    享:

    文档简介

    18B20加1602程序,能精确到小数点后1位

    文档预览

    /******************************************************************************* * 标题: 试验1602上显示温度 * * * *********************************************************************************/ #include #include #define NOP() _nop_() /* 定义空指令 */ #define _Nop() _nop_() /*定义空指令*/ typedef unsigned char BYTE; //用BYTE代替unsigned char typedef unsigned int WORD;//WORD代替unsigned int typedef bit BOOL ;//用BOOL代替bit sbit rs = P2^3; //复位端 sbit rw = P2^4; //写数据端 sbit ep = P2^5; //使能端 void HC595SendData(unsigned int SendVal); void delay(unsigned int i); //SPI IO sbit D18B20=P3^7; void TempDelay (unsigned char idata us); void Init18b20 (void); void WriteByte (unsigned char idata wr); //单字节写入 void read_bytes (unsigned char idata j); unsigned char CRC (unsigned char j); void GemTemp (void); void Config18b20 (void); void ReadID (void); void TemperatuerResult(void); void Read_R(); bit flag; unsigned int idata Temperature; unsigned char idata temp_buff[9]; //存储读取的字节,read scratchpad为9字节,read rom ID为8字节 unsigned char idata id_buff[8]; unsigned char idata *p,TIM; unsigned char idata crc_data; unsigned long LedOut[6],LedNumVal; /************************************************************ *Function:延时处理 *parameter: *Return: *Modify: *************************************************************/ void TempDelay (unsigned char idata us) { while(us--); } /************************************************************ *Function:18B20初始化 *parameter: *Return: *Modify: *************************************************************/ void Init18b20 (void) { D18B20=1; _nop_(); D18B20=0; TempDelay(80); //delay 530 uS//80 _nop_(); D18B20=1; TempDelay(14); //delay 100 uS//14 _nop_(); _nop_(); _nop_(); if(D18B20==0) flag = 1; //detect 1820 success! else flag = 0; //detect 1820 fail! TempDelay(20); //20 _nop_(); _nop_(); D18B20 = 1; } /************************************************************ *Function:向18B20写入一个字节 *parameter: *Return: *Modify: *************************************************************/ void WriteByte (unsigned char idata wr) //单字节写入 { unsigned char idata i; for (i=0;i<8;i++) { D18B20 = 0; _nop_(); D18B20=wr&0x01; TempDelay(3); //delay 45 uS //5 _nop_(); _nop_(); D18B20=1; wr >>= 1; } } /************************************************************ *Function:读18B20的一个字节 *parameter: *Return: *Modify: *************************************************************/ unsigned char ReadByte (void) //读取单字节 { unsigned char idata i,u=0; for(i=0;i<8;i++) { D18B20 = 0; u >>= 1; D18B20 = 1; if(D18B20==1) u |= 0x80; TempDelay (2); _nop_(); } return(u); } /************************************************************ *Function:读18B20 *parameter: *Return: *Modify: *************************************************************/ void read_bytes (unsigned char idata j) { unsigned char idata i; for(i=0;i 0; i--) for(j = 200; j > 0; j--); } /************************************* [ t1 (10ms)中断] 中断 *************************************/ void T1zd(void) interrupt 3 { TH1 = 0xD8; //10 TL1 = 0xF0; TIM++; }

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。