该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*

DS18B20数字温度传感器 (温度控制)

实验连线

单片机的P3.3连接DS18B20单元的 DQ

单片机的P3.2连接继电器单元的 JIN

继电器单元的JZ连接GND

继电器单元的JK连接DS18B20单元的 HOT

*/

#include

#include

#include

#define SETVAL 30 //设定温度值

xdata unsigned char CS8279C _at_ 0xfff1;

xdata unsigned char CS8279D _at_ 0xfff0;

sbit HOT = P3^2;

sbit DQ = P3^3;

unsigned char LedBuf[6] = {21,21,21,21,21,21}; //显示缓冲

code unsigned char LedMap[] = //LED字形代码表

{

0x0c, 0x9f, 0x4a, 0x0b, 0x99, 0x29, 0x28, 0x8f, 0x08, 0x09, //0~9

0x04, 0x97, 0x42, 0x03, 0x91, 0x21, 0x20, 0x87, 0x00, 0x01, //0.~9.

0xfb, 0xff //'-', ' '

};

//延时函数, 对于11.0592MHz时钟, 例i=10,约延时10ms.

void delay(unsigned int t)

{

for(; t>0; t--);

}

//对DS18B20的初始化

unsigned char Reset_DS18B20(void)

{

unsigned char presence;

DQ = 1; _nop_(); _nop_();

DQ = 0; delay(50); // 550us

DQ = 1; delay(6); // 66us

presence = DQ; delay(50);

if (presence) //为1初始化失败,为0初始化成功

return 0x00;

else

return 0x01;

}

//读一个字节

unsigned char ReadOneChar(void)

{

unsigned char i, dat = 0;

for(i=8; i>0; i--)

{

dat>>=1;

DQ = 1; _nop_(); _nop_();

DQ = 0; _nop_(); _nop_(); _nop_(); _nop_(); //4us

DQ = 1; _nop_(); _nop_(); _nop_(); _nop_(); //4us

if(DQ) dat |= 0x80;

delay(6); //66us

}

DQ = 1; _nop_();

return(dat);

}

//写一个字节

void WriteOneChar(unsigned char dat)

{

unsigned char i;

for (i=8; i>0; i--)

{

DQ = 1; _nop_(); _nop_();

DQ = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_();//5us

DQ = dat & 0x01; //最低位移出

delay(6); //66us

dat >>= 1;

}

DQ = 1; _nop_();

}

//启动ds1820转换

void DS1820_start(void)

{

Reset_DS18B20();

WriteOneChar(0xCC); //勿略地址

WriteOneChar(0x44); //启动转换

}

//读温度值

unsigned int ReadTemperature(void)

{

unsigned int i;

unsigned char buf[9];

Reset_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器

for(i=0; i<9; i++)

buf[i] = ReadOneChar(); //读9位温度值

i = buf[1];

i <<= 8;

i |= buf[0];

return i;

}

//8279显示

void disp8279(void)

{

unsigned char i, j = 0x85;

for(i=0; i<6; i++)

{

CS8279C = j--;

CS8279D = LedMap[LedBuf[i]];

}

}

void main(void)

{

float temp;

int value;

//初始化8279

CS8279C = 0x00; //8个8位显示

CS8279C = 0x32; //设分频初值

CS8279C = 0xdf; //清显示

while( !(CS8279C & 0x80) ); //等待8279就绪

LedBuf[0] = 21; //第1位不显示

HOT = 1; //初始时不加热

while(1)

{

DS1820_start(); //启动转换

delay(80);

temp = ReadTemperature() * 0.0625; //读温度值

if(temp < 0)

LedBuf[1] = 20; //第2位显示负号

else

LedBuf[1] = 21; //第2位不显示

value = temp * 100 + (value > 0? 0.5 : -0.5); //大于0加0.5, 小于0减0.5

value = abs(value);

//设置值

LedBuf[0] = (SETVAL % 100) / 10;

LedBuf[1] = SETVAL % 10;

//实测值

LedBuf[4] = (value % 10000) / 1000;

LedBuf[5] = ((value % 1000) / 100);

if(value / 100 < SETVAL) HOT = 0; //开始加热

else HOT = 1; //停止加热

disp8279();

}

}

并行DA实验c语言程序,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...相关推荐

  1. 怎么样把c语言和单片机融合,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* DS18B20数字温度传感器 (温度控制) 实验连线 单片机的P3.3连接DS18B20单元的 DQ 单片机的P3.2连接继电器单元的 JIN 继电 ...

  2. c51语言的设计步骤,第3章节单片机c51语言程序的设计基本.ppt

    第3章节单片机c51语言程序的设计基本 第3章 单片机C51语言程序设计基础 3.1 语句与流程控制 3.2 函数 3.3 本章小结 3.4 实训三 简易十字路口交通信号灯控制 教学提示 教学要求 3 ...

  3. 单片机交通灯灯c语言程序,关于LED模拟交通灯单片机C语言程序设计 - 全文

    本文为大家带来三个关于LED模拟交通灯单片机C语言程序设计. 关于LED模拟交通灯单片机C语言程序设计一 功能说明 东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南 ...

  4. 两个单片机iic通讯程序_PIC单片机之DS1302时钟

    大家好,通过前一期的学习,我们已经对ICD2 仿真烧写器和增强型PIC 实验板的使用方法及学习方式有所了解与熟悉,学会了如何用单片机来控制发光管.继电器.蜂鸣器.按键.数码管.RS232串口.步进电机 ...

  5. 单片机的c语言应用程序设计答案第六版,单片机C语言应用程序设计马忠梅课后习题答案...

    <单片机C语言应用程序设计马忠梅课后习题答案>由会员分享,可在线阅读,更多相关<单片机C语言应用程序设计马忠梅课后习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第一章 1 ...

  6. 数码管动态显示c语言,《手把手教你学51单片机-C语言》之六 中断与数码管动态显示...

    中断是单片机系统重点中的重点,因为有了中断,单片机就具备了快速协调多模块工作的能力,可以完成复杂的任务.本章将首先带领大家学习一些必要的C语言基础知识,然后讲解数码管动态显示的原理,并最终借助于中断系 ...

  7. c语言编程过程应注意什么意思,单片机C语言编程应注意的若干问题

    <单片机C语言编程应注意的若干问题>由会员分享,可在线阅读,更多相关<单片机C语言编程应注意的若干问题(4页珍藏版)>请在人人文库网上搜索. 1.单片机C语言编程应注意的若干问 ...

  8. 用c语言完成流水灯控制的程序设计,单片机C语言程序设计之TIMER0控制流水灯

    描述 基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的.通常在所需按键数量不多时,系统常采用独立式按键.这种按键的电路配置灵活,软件结构简单 ...

  9. 单片机c语言常用的语句有几条,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...

最新文章

  1. HashMap和LinkedHashMap的区别
  2. Spring父子容器的关系分析--用实例说话
  3. 每日一皮:产品经理的黑化,你听过几个?
  4. 理查德·汉明和他的汉明码
  5. linux 函数学习--kzalloc()
  6. lammps计算聚合物例子_LAMMPS模拟聚合物结构,非晶态聚合物变形行为的模拟,纳米线变形模拟,单轴张力模拟,晶格参数计算...
  7. 对弈类游戏的人工智能(3)--博弈树优化
  8. iOS事件处理,看我就够了~ 1
  9. 向SqlParameter内动态添加参数
  10. python PPT批量制作封面图及导出视频教程
  11. JWT实现接口双重认证,提供安全又不复杂的接口安全能力
  12. 0003 渗透测试标准
  13. javaScript高级程序设计-------总结随笔
  14. 查看java web日志_java web 日志详细
  15. 360 2013校园招聘笔试题(含参考答案)
  16. 网页css样式滚动字幕
  17. 蟋蟀的xss淫荡教程之如何劫持OSC用户账号
  18. 90后在校大学生开旅游公司创业
  19. 很久没来,丢一份前阵子做的 10 万连接性能测试 (fibjs, golang, nginx, nodejs)
  20. 加入键盘鼠标控制的代码

热门文章

  1. thymeltesys-基于Spring Boot Oauth2的扫码登录框架
  2. python3+ selenium3开发环境搭建-手把手教你安装python(详细)
  3. IOS不支持2017-09-09的日期格式
  4. Bootstrap框架(基础篇)之列表,表格,表单
  5. 【转】Java URL Encoding and Decoding
  6. C#里的三种定时器类型
  7. C# WebBrowser实现网页自动填表
  8. Bailian4040 买书问题【Ad Hoc】
  9. 计算广告(computational advertising)
  10. 独立事件、笛卡尔积与矩阵向量乘法