- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AT89S52与 DS18B20数字温度传感器测试
结束
/************************************************
***********************
* 采用四位共阴极数码管琒 R42056K,P1 口接数码管段码。
P0.0 接第一位
* P0.1 接第二位, p0.2 接第三位, p0.3 接第四位。
* 单片机 AR89S52,晶振 7.3728M
* DS18B20 接 P2.0 。
*
*************************************************
**********************/
#include
#include
#define uchar unsigned char
#define uint unsigned int
/************************************************
***********************
* DS18B20 数据口 DQ
* 共阴极数码管
* 共阴极数码管带小数点
*************************************************
**********************/
//#define DQ RC1
//#define DQ_HIGH() TRISC1=1
//#define DQ_LOW() TRISC1=0;DQ=0
//__CONFIG(0x3B31);
sbit DQ=P2^0;
//const uchar
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
// 0x07,0x7f,0x6f};
unsigned char code table[]={// 共阴极 0~f 数码管编码
0x3f,0x06,0x5b,0x4f, //0~3
0x66,0x6d,0x7d,0x07, //4~7
0x7f,0x6f,0x77,0x7c, //8~b
0x39,0x5e,0x79,0x71 //c~f
};
//const uchar
table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
// 0x87,0xff,0xef};
const uchar table1[]={
0xbf,0x86,0xdb,0xcf,//0-3
0xe6,0xed,0xfd,0x87,//4-7
0xff,0xef//8-9
};
uint temper;// 温度值缓存
uchar a1,a2,a3,a4;// 数码管每个位上显示的数字
uchar time=0;// 延时缓存
uchar TH; // 判断负值
void delay(uint x);
void delayus(uint,uchar);
void init();// 初始化
void disp(uchar num1,uchar num2,uchar num3,uchar
num4);// 正值显示
void disp1(uchar num1,uchar num2,uchar num3);// 负
值显示
void write_byte(uchar date);
void delayms(uchar i); // 误差 -0.651041666667us
uchar read_byte();
void get_tem();// 获取温度
void delay20us();
void delay30us();
void delay45us();
void delay70us();
void delay750us();
void delay500us();
void InitTimer0(void);
void delay20us(void) // 误差 -0.46875us
{
unsigne
文档评论(0)