ds1820.c

来自「51单片机时钟 和18B20 温度的 LED显示」· C语言 代码 · 共 55 行

C
55
字号
//=================================================
// 连接方法:
//		DS18S20 DQ接IOB15
//		LCD  D0~D7接IOA8~IOA15
//		LCD  EP   接IOB6
//		LCD  RWP  接IOB5
//		LCD  A0   接IOB4
//		LCD  /CS1 接IOB9  或接地也可
//==================================================

#include "SPLC501USer.h"
#include "Fun_18S20.h"

unsigned int BCD_G,BCD_S;
void BCD_Cov(unsigned int i);
extern void showtem(unsigned int i,unsigned int j);
extern void uart_operate(unsigned int uart_data);
extern unsigned int LED[10],DispEnb;
void DS1820()
{
	unsigned int i;
	i=DS18S20_Initial();
	*P_Watchdog_Clear=0x0001;
	BCD_S=0;BCD_G=0;
	__asm("FIQ OFF");
	i=DS18S20_Convert_Temp();
	__asm("FIQ ON");
	i=i>>4;
	BCD_Cov(i);
 	if(DispEnb)
 	{
 		uart_operate(0x00);								  //显示当前功能
 	    uart_operate(0x00);
 	    uart_operate(0x00);	
 	    uart_operate(LED[BCD_S]);
 	    uart_operate(LED[BCD_G]);	
 	    uart_operate(0x00);	
 	    uart_operate(0x00);	
 	    uart_operate(0x00);
 	    DispEnb=0;
 	}
}
	
void BCD_Cov(unsigned int i)
{
	unsigned int temp;
	temp=i;
	while(temp>=10)
	{
		temp=temp-10;
		BCD_S+=1;
	}
	BCD_G=temp;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?