资源简介
PIC单片机 18B20温度传感器和六位数码管显示温度结果,其中整数部分2位,小数部分4位
代码片段和文件信息
//目的:熟悉DS18B20的使用
//六位数码管显示温度结果,其中整数部分2位,小数部分4位
//每次按下RB0键后进行一次温度转换。
//硬件要求:把DS18B20插在18B20插座上
// 拨码开关S10第1位置ON,其他位置OFF
// 拨码开关S5、S6全部置ON,其他拨码开关全部置OFF
#include
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
#define uch unsigned char //给unsigned char起别名 uch
# define DQ RA0 //定义18B20数据端口
# define DQ_DIR TRISA0 //定义18B20D口方向寄存器
# define DQ_HIGH() DQ_DIR =1 //设置数据口为输入
# define DQ_LOW() DQ = 0; DQ_DIR = 0 //设置数据口为输出
unsigned char TLV=0 ; //采集到的温度高8位
unsigned char THV=0; //采集到的温度低8位
unsigned char TZ=0; //转换后的温度值整数部分
unsigned char TX=0; //转换后的温度值小数部分
unsigned int wd; //转换后的温度值BCD码形式
unsigned char shi; //整数十位
unsigned char ge; //整数个位
unsigned char shifen; //十分位
unsigned char baifen; //百分位
unsigned char qianfen; //千分位
unsigned char wanfen; //万分位
unsigned char table[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};
//0-9的显示代码
//------------------------------------------------
//延时函数
void delay(char xchar y)
{
char z;
do{
z=y;
do{;}while(--z);
}while(--x);
}
//其指令时间为:7+(3*(Y-1)+7)*(X-1)如果再加上函数调用的call 指令、页面设定、传递参数花掉的7 个指令。
//则是:14+(3*(Y-1)+7)*(X-1)。
//--------------------------------------------------
//结果显示函数
void display()
{
TRISA=0X00; //设置A口全为输出
PORTD=table[shi]; //显示整数十位
PORTA=0x3e;
delay(1070);
PORTD=table[ge]&0X7F; //显示整数个位,并点亮小数点
PORTA=0x3d;
delay(1070);
PORTD=table[shifen]; //显示小数十分位
PORTA=0x3b;
delay(1070);
PORTD=table[baifen]; //显示小数百分位
PORTA=0x37;
delay(1070);
PORTD=table[qianfen]; //显示小数千分位
PORTA=0x2f;
delay(1070);
PORTD=table[wanfen]; //显示小数万分位
PORTA=0x1f;
delay(1070);
}
//------------------------------------------------
//系统初始化函数
void init()
{
ADCON1=0X07; //设置A口为普通数字口
TRISA=0X00; //设置A口方向为输出
TRISD=0X00; //设置D口方向为输出
}
//-----------------------------------------------
//复位DS18B20函数
reset(void)
{
char presence=1;
while(presence)
{
DQ_LOW() ; //主机拉至低电平
delay(270); //延时503us
DQ_HIGH(); //释放总线等电阻拉高总线并保持15~60us
delay(28); //延时70us
if(DQ==1) presence=1; //没有接收到应答信号,继续复位
else presence=0; //接收到应答信号
delay(260);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6416 2008-11-03 20:58 ds18b20\ds18b20.c
文件 3205 2007-03-15 22:26 ds18b20\ds18b20.hex
..AD... 0 2008-10-25 22:40 ds18b20
----------- --------- ---------- ----- ----
9839 4
- 上一篇:wordpress网站微信\\QQ客服插件
- 下一篇:安全移除u盘小插件强烈推荐
相关资源
- 51单片机驱动DS1302时间模块+DS18B20温度
- PIC单片机uart通信
- PIC单片机开发平台软件
- 基于PICPIC18F452的步进电机控制系统
- PIC单片机 IIC通信 proteus仿真文件图
- PIC单片机SPI通信 带proteus仿真
- DS18B20温度传感器源码
- pic汇编程序,主要是供初学者学习p
- dspic单片机电机控制
- PIC16F877A和LCD1602液晶显示以及mpx4250压
- PIC单片机的复位系统模块
- pic单片机反汇编软件
- pic单片机实现的频率计
- PIC单片机的EEPROM读写及说明
- PIC单片机控制风扇马达
- pic单片机CCP捕捉
- DS18B20温度传感器Protues仿真
- 郭天祥10天学会PIC单片机.
- 基于单片机和ds18b20温度传感器的温度
- ds18b20温度传感器工作原理及其应用电
- 51单片机Protues,仿真DS18b20温度传感器
- STM8S003读取DS18B20温度传感器
- 用51单片机驱动DS1302时间模块+DS18B20温
- PIC单片机温度控制
- 基于PIC单片机的风光互补路灯照明控
- PIC单片机主机和从机SPI通信
- PIC单片机应用开发24例——基于
- PIC单片机之SPI总线篇
- PIC单片机ICSP接口电路的设计
- PIC单片机SPI通信的设计
评论
共有 条评论