- 博客(0)
- 资源 (1)
空空如也
18b20温度计c程序
这是个18b20的温度计的接线图
#include "reg52.h"
#include "intrins.h" //_nop_();延时函数用
#define Disdata P0 //段码输出口
#define discan P1 //扫描口
#define uchar unsigned char
#define uint unsigned int
sbit DQ="P1"^6; //温度输入口
sbit DIN="P0"^7; //LED小数点控制
uint h;
//
//
//*******温度小数部分用查表法**********//
uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
//
uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
/* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-" */
uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字
uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放
uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用
//
//
//
/***********11微秒延时函数**********/
//
void delay(uint t)
{
for(;t>0;t--);
}
//
/***********显示扫描函数**********/
scan()
{
char k;
for(k=0;k<4;k++) //四位LED扫描控制
{
Disdata="dis"_7[display[k]];
if(k==1){DIN=0;}
discan="scan"_con[k];delay(90);discan=0xff;
}
}
//
//
2009-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人