wd.c

来自「基于51单片机的点阵显示设计源代码加仿真」· C语言 代码 · 共 81 行

C
81
字号
#include <at89x51.h>
#include "led.h"
unsigned char init=0;
unsigned int temp=0;
unsigned int x=0,y=0;
void delay(unsigned char t)
{
	 while(--t);
}
void delay_50us(unsigned int t)
{
	 unsigned char j;
	 for(;t>0;t--)
	 for(j=19;j>0;j--);
}

void init_device(void)
{
	 P2_4=1;
	 delay_50us(1);	//88us
	 P2_4=0;
	 delay_50us(12);	 //736
	 P2_4=1;
	 delay(30);	   //142us
	 if (P2_4==0) init=1;
	 delay_50us(5);
}
void write_8bit(unsigned char write_dat)
{
	 unsigned char i=0;
	 for (i=0;i<8;i++)
	 {
	 	 P2_4=0;
		 P2_4=write_dat&0x01;
		 delay_50us(2);	   //61
		 P2_4=1;
		 write_dat=write_dat>>1;
	 }
}
unsigned char read_8bit(void)
{
	 unsigned char read_dat=0,i=0;
	 for (i=0;i<8;i++)
	 {
		 
		 P2_4=0;
		 read_dat>>=1;
		 P2_4=1;
		 delay(1);
		 if (P2_4) read_dat|=0x80;
		 delay_50us(2);	  //52
	 }
	 return (read_dat);
}
unsigned char temperature(void)
{
	 unsigned char wd_l8=0,wd_h8=0,wd=0;
	 
	 init_device();
	 write_8bit(0xCC);
	 write_8bit(0x44);
	 delay_50us(16);
	 init_device();
	 write_8bit(0xCC);
	 write_8bit(0xBE);
	 wd_l8=read_8bit();
	 wd_h8=read_8bit();
	 wd_l8=wd_l8>>4;
	 wd_h8=wd_h8<<4;
	 wd=wd_l8|wd_h8;
	 return (wd);
}
	
void wd_t(void)
{
	 P2_4=1;	 
	 temp=temperature();
	 x=temp/10;
     y=temp-10*x;
	 
}

⌨️ 快捷键说明

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