⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是一个厅在DS18B20数字温度计的C程序
💻 C
字号:
//==================================================================================
//预定义包含文件
//==================================================================================
#include <reg51.h>
#include <intrins.h>
#include <ds18b20.c>
//=================================================================================================
sbit clk_led=P0^3;//定义数码管时钟线
sbit dat_led=P0^2;//定义数码管数据线
//=================================================================================================
code unsigned char number[]={0x11,0xD7,0x32,0x92,      /* 0 1 2 3  */
				 			   0xD4,0x98,0x18,0xD3,      /* 4 5 6 7  */
				 			   0x10,0x90,0x50,0x1C,      /* 8 9 A B  */
                 			   0x39,0x16,0x38,0x78,      /* C D E F  */
							  };

//==================================================================================================
void shift(unsigned char b)//数码管送数程序,依次向送数码管送8bit数
{
  unsigned char i;
  for(i=0;i<8;i++)
  {
  clk_led=0;                   //时钟线清零
  if(!(b&0x80))dat_led=0;      //数据线送0,与、判断,往数据线送最高位 0x80为二进制数:10000000
  else dat_led=1;			   //数据线送1
  clk_led=1;                   //上跳
  clk_led=0;                   //下跳
  dat_led=0;                   //dat清零,确保数据的准确性
  b=b<<1;                  //左移一位
  }
}
//==================================================================================================

//数码管送数子程序
//例如要向数码管送10000,则调用方式为:shiftn(10000);
void shiftn(unsigned long int c)//
{
	shift(number[(int)(c%10)]);//送个位
	if(c>9){shift(number[(int)(c%100/10)]);}//送十位
	if(c>99){shift(number[(int)(c%1000/100)]);}//送百位
	if(c>999){shift(number[(int)(c%10000/1000)]);}//送千位
	if(c>9999){shift(number[(int)(c%100000/10000)]);}//送万位
	if(c>99999){shift(number[(int)(c%1000000/100000)]);}//送十万位
	if(c>999999){shift(number[(int)(c%10000000/1000000)]);}//送百万位
	shift(0xff);//送暗
}

main()
{
long int i;
while(1)
	{
	shiftn(readtemp());
	for(i=0;i<10000;i++);
	}
}

⌨️ 快捷键说明

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