datasheet
超过460,000+ 应用技术资源下载
null

18b20加lcd1602程序

  • 1星
  • 日期: 2015-05-31
  • 大小: 9.98KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 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++; }
更多简介内容

评论

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子