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

/*

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();

}

}

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

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

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

  2. c语言不用第三个变量 实现两个数的对调,下面程序功能是不用第三个变量,实现两个数对调操作 ....docx...

    下面程序功能是不用第三个变量,实现两个数对调操作 ... [3.1]下面程序的功能是不用第三个变量,实现两个数的对调操作.#include main(){ int a,b:scanf("%d ...

  3. 大一c语言操作题期末考答案,大一期末考试c语言操作题答案

    <大一期末考试c语言操作题答案>由会员分享,可在线阅读,更多相关<大一期末考试c语言操作题答案(13页珍藏版)>请在人人文库网上搜索. 1.ball.c#include std ...

  4. 两个hc05蓝牙模块在两块单片机上通信(附完整代码)

    目录 第一步:进入AT模式 第二步:同时插在电脑上实现通信 第三步:单片机上通信 代码链接 所需材料:两个hc05蓝牙,两个usb转串口模块,两块单片机 第一步:进入AT模式 接线图如下所示 HC-0 ...

  5. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?

    51单片机,STM32单片机用汇编或者C语言,现在基本都用C语言编程,Arduino有自己的编程环境,用户也是用C语言编程. 51单片机的编程 51单片机进入中国比较早,在早前用汇编编程比较多,我在上 ...

  6. 单片机数码管从00到99C语言_MSP430单片机轻松入门与实践 — 畅学单片机

    简介 本课程是MSP430单片机学习者从入门到深入的一套经典视频教程,以初学者为对象,从零开始手把手教你学习MSP430单片机,循序渐进地基于理论讲解并结合实验项目实战开发,讲解当前最热门的MSP43 ...

  7. 单片机c语言应用100例第3版课后答案,单片机C语言应用100例(第3版)(含光盘1张)...

    基 础 篇 第1章 单片机概述及实验器材介绍2 1.1 单片机概述2 1.1.1 单片机的定义.分类与内部组成2 1.1.2 单片机应用系统的结构及其工作过程5 1.1.3 单片机的应用6 1.2 单 ...

  8. c语言数码管流动显示一个数,51单片机数码管动态显示 - 数码管动态扫描显示01234567程序(三种方案)...

    数码管动态扫描显示01234567程序二--51单片机动态显示共阳数码管01234567 原理图 c语言程序 程序如下: #include #define uint unsigned int #def ...

  9. C语言学习路线,思维脑图,学单片机的一定要知道

    C语言学习路线,思维脑图,学单片机的一定要知道 接着前几期内容继续对单片机怎么学习来做一个了解! 对单片机程序有概念之后,就要进修C语言了. 想要进修C语言,首先应该学好计算机根底.里面的很多概念以及 ...

最新文章

  1. zookeeper安装和使用 windows环境(转)
  2. java office 集成开发_Office文件格式突变,促使Java和Office更完美集成
  3. Linux怎么对当前目录提权,linux提权方法(不断总结更新)
  4. 王者荣耀连接不上服务器最新赛季排名,王者荣耀新赛季连掉三段 初期不能打排位是有原因的...
  5. Xcode 4.4 的新特性 | LLVM 4.0 的新语法
  6. 代码能不能不要写得这么烂?!
  7. oracle查询cpu占用率高,解决oracle进程CPU占用过高问题
  8. JavaScript回调函数的高手指南
  9. 24.QTreeWidget的用法
  10. 两个iphone怎么大量传照片_外出旅行、出差时,同品牌手机如何实现面对面零流量秒传照片?...
  11. 修改vscode 窗口字体大小和编辑窗口字体大小
  12. C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果。
  13. FFT【快速傅里叶变换】FWT【快速沃尔什变换】
  14. 【图文说明】屏幕录像专家如何安装、录制小文件的录像
  15. snownlp中文文本情感分析
  16. 【SpringBoot深入浅出系列】SpringBoot之集成JUnit5进行单元测试
  17. 基于博弈论的诱饵路由设计及实现
  18. 冷门短视频带货玩法,零门槛赚钱项目
  19. java 数据库异常,数据库常见异常
  20. 快速掌握阿里云 OSS

热门文章

  1. 一个html可以有几个h1,关于html:HTML5大纲和多个H1 SEO
  2. static_cast与dynamic_cast转换
  3. 作为刚開始学习的人应该怎样来学习FPGA
  4. PostgreSQL的执行计划分析
  5. 浏览器的两种模式quirks mode 和strict mode
  6. html5鼠标点击弹出层,jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
  7. idea怎么和mysql连接并执行_IDEA配置mysql数据库的操作
  8. mie散射理论方程_亚琛工业大学 计算化学方向 之OPT学习笔记第一部分第一节 静态光散射...
  9. javastring转long的方法_被JDK坑的没商量?来试试这些方法吧
  10. pythonclasses_Python中的Classes和Metaclasses详解