资源简介
多点温度采集系统 有8个采集点 DS18B20 51C实现,课程设计
代码片段和文件信息
#include
#include
#define DATA P1 //1602驱动端口
//ROM操作命令
#define READ_ROM 0x33 //读ROM
#define SKIP_ROM 0xCC //跳过ROM
#define MATCH_ROM 0x55 //匹配ROM
#define SEARCH_ROM 0xF0 //搜索ROM
#define ALARM_SEARCH 0xEC //告警搜索
//存储器操作命令
#define ANEW_MOVE 0xB8 //重新调出E^2数据
#define READ_POWER 0xB4 //读电源
#define TEMP_SWITCH 0x44 //启动温度变换
#define READ_MEMORY 0xBE //读暂存存储器
#define COPY_MEMORY 0x48 //复制暂存存储器
#define WRITE_MEMORY 0x4E //写暂存存储器
//数据存储结构
typedef struct tagTempData
{
unsigned char btThird; //百位数据
unsigned char btSecond; //十位数据
unsigned char btFirst; //个位数据
unsigned char btDecimal; //小数点后一位数据
unsigned char btNegative; //是否为负数
}TEMPDATA;
TEMPDATA m_TempData;
//引脚定义
sbit DQ = P2^7; //数据线端口
sbit RS= P2^0;
sbit RW= P2^1;
sbit E= P2^2;
//DS18B20序列号通过调用GetROMSequence()函数在P1口读出(读8次)
const unsigned char code ROMData1[8] = {0x28 0x33 0xC5 0xB8 0x00 0x00 0x00 0xD7}; //U1
const unsigned char code ROMData2[8] = {0x28 0x30 0xC5 0xB8 0x00 0x00 0x00 0x8E}; //U2
const unsigned char code ROMData3[8] = {0x28 0x31 0xC5 0xB8 0x00 0x00 0x00 0xB9}; //U3
const unsigned char code ROMData4[8] = {0x28 0x32 0xC5 0xB8 0x00 0x00 0x00 0xE0}; //U4
const unsigned char code ROMData5[8] = {0x28 0x34 0xC5 0xB8 0x00 0x00 0x00 0x52}; //U5
const unsigned char code ROMData6[8] = {0x28 0x35 0xC5 0xB8 0x00 0x00 0x00 0x65}; //U6
const unsigned char code ROMData7[8] = {0x28 0x36 0xC5 0xB8 0x00 0x00 0x00 0x3C}; //U7
const unsigned char code ROMData8[8] = {0x28 0x37 0xC5 0xB8 0x00 0x00 0x00 0x0B}; //U8
//判断忙指令
void Busy()
{
DATA = 0xff;
RS = 0;
RW = 1;
while(DATA & 0x80)
{
E = 0;
E = 1;
}
E = 0;
}
//写指令程序
void WriteCommand(unsigned char btCommand)
{
Busy();
RS = 0;
RW = 0;
E = 1;
DATA = btCommand;
E = 0;
}
//写数据程序
void WriteData(unsigned char btData)
{
Busy();
RS = 1;
RW = 0;
E = 1;
DATA = btData;
E = 0;
}
//清屏显示
void Clear()
{
WriteCommand(1);
}
//初始化
void Init()
{
WriteCommand(0x0c); //开显示无光标显示
WriteCommand(0x06); //文字不动,光标自动右移
WriteCommand(0x38); //设置显示模式:8位2行5x7点阵
}
//显示单个字符
void DisplayOne(bit bRow unsigned char btColumn unsigned char btData bit bIsNumber)
{
if (bRow) WriteCommand(0xc0 + btColumn);
else WriteCommand(0x80 + btColumn);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-08-27 10:51 应用实例10 多点温度采集系统\
文件 96258 2012-03-09 20:08 应用实例10 多点温度采集系统\Last Loaded 多点温度采集系统.DBK
文件 7602 2012-03-09 19:53 应用实例10 多点温度采集系统\MCU.c
文件 13920 2012-03-09 20:08 应用实例10 多点温度采集系统\MCU.LST
文件 17799 2012-03-09 20:08 应用实例10 多点温度采集系统\MCU.OBJ
文件 6376 2005-03-22 15:22 应用实例10 多点温度采集系统\STARTUP.A51
文件 14048 2012-03-09 20:08 应用实例10 多点温度采集系统\STARTUP.LST
文件 749 2012-03-09 20:08 应用实例10 多点温度采集系统\STARTUP.OBJ
文件 3816 2012-03-09 19:54 应用实例10 多点温度采集系统\多点温度测量.hex
文件 16010 2012-03-09 20:08 应用实例10 多点温度采集系统\多点温度采集系统
文件 96258 2012-03-10 14:01 应用实例10 多点温度采集系统\多点温度采集系统.DSN
文件 3816 2012-03-09 20:08 应用实例10 多点温度采集系统\多点温度采集系统.hex
文件 67 2012-03-09 20:08 应用实例10 多点温度采集系统\多点温度采集系统.lnp
文件 19920 2012-03-09 20:08 应用实例10 多点温度采集系统\多点温度采集系统.M51
文件 1020 2012-03-10 15:54 应用实例10 多点温度采集系统\多点温度采集系统.Opt
文件 248 2012-03-10 16:08 应用实例10 多点温度采集系统\多点温度采集系统.plg
文件 3030 2012-03-10 15:54 应用实例10 多点温度采集系统\多点温度采集系统.PWI
文件 2155 2012-03-09 20:47 应用实例10 多点温度采集系统\多点温度采集系统.Uv2
文件 1014 2012-03-09 20:47 应用实例10 多点温度采集系统\多点温度采集系统_Opt.Bak
文件 0 2012-03-09 19:50 应用实例10 多点温度采集系统\多点温度采集系统_Uv2.Bak
- 上一篇:UML建模课程设计
- 下一篇:APK加固及签名工具绿色版
评论
共有 条评论