并行DA实验c语言程序,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*
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语言程序结合在一起?大一期末实验...相关推荐
- 怎么样把c语言和单片机融合,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* DS18B20数字温度传感器 (温度控制) 实验连线 单片机的P3.3连接DS18B20单元的 DQ 单片机的P3.2连接继电器单元的 JIN 继电 ...
- c51语言的设计步骤,第3章节单片机c51语言程序的设计基本.ppt
第3章节单片机c51语言程序的设计基本 第3章 单片机C51语言程序设计基础 3.1 语句与流程控制 3.2 函数 3.3 本章小结 3.4 实训三 简易十字路口交通信号灯控制 教学提示 教学要求 3 ...
- 单片机交通灯灯c语言程序,关于LED模拟交通灯单片机C语言程序设计 - 全文
本文为大家带来三个关于LED模拟交通灯单片机C语言程序设计. 关于LED模拟交通灯单片机C语言程序设计一 功能说明 东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南 ...
- 两个单片机iic通讯程序_PIC单片机之DS1302时钟
大家好,通过前一期的学习,我们已经对ICD2 仿真烧写器和增强型PIC 实验板的使用方法及学习方式有所了解与熟悉,学会了如何用单片机来控制发光管.继电器.蜂鸣器.按键.数码管.RS232串口.步进电机 ...
- 单片机的c语言应用程序设计答案第六版,单片机C语言应用程序设计马忠梅课后习题答案...
<单片机C语言应用程序设计马忠梅课后习题答案>由会员分享,可在线阅读,更多相关<单片机C语言应用程序设计马忠梅课后习题答案(4页珍藏版)>请在人人文库网上搜索. 1.第一章 1 ...
- 数码管动态显示c语言,《手把手教你学51单片机-C语言》之六 中断与数码管动态显示...
中断是单片机系统重点中的重点,因为有了中断,单片机就具备了快速协调多模块工作的能力,可以完成复杂的任务.本章将首先带领大家学习一些必要的C语言基础知识,然后讲解数码管动态显示的原理,并最终借助于中断系 ...
- c语言编程过程应注意什么意思,单片机C语言编程应注意的若干问题
<单片机C语言编程应注意的若干问题>由会员分享,可在线阅读,更多相关<单片机C语言编程应注意的若干问题(4页珍藏版)>请在人人文库网上搜索. 1.单片机C语言编程应注意的若干问 ...
- 用c语言完成流水灯控制的程序设计,单片机C语言程序设计之TIMER0控制流水灯
描述 基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的.通常在所需按键数量不多时,系统常采用独立式按键.这种按键的电路配置灵活,软件结构简单 ...
- 单片机c语言常用的语句有几条,单片机C语言常用语句详解
<单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...
最新文章
- HashMap和LinkedHashMap的区别
- Spring父子容器的关系分析--用实例说话
- 每日一皮:产品经理的黑化,你听过几个?
- 理查德·汉明和他的汉明码
- linux 函数学习--kzalloc()
- lammps计算聚合物例子_LAMMPS模拟聚合物结构,非晶态聚合物变形行为的模拟,纳米线变形模拟,单轴张力模拟,晶格参数计算...
- 对弈类游戏的人工智能(3)--博弈树优化
- iOS事件处理,看我就够了~ 1
- 向SqlParameter内动态添加参数
- python PPT批量制作封面图及导出视频教程
- JWT实现接口双重认证,提供安全又不复杂的接口安全能力
- 0003 渗透测试标准
- javaScript高级程序设计-------总结随笔
- 查看java web日志_java web 日志详细
- 360 2013校园招聘笔试题(含参考答案)
- 网页css样式滚动字幕
- 蟋蟀的xss淫荡教程之如何劫持OSC用户账号
- 90后在校大学生开旅游公司创业
- 很久没来,丢一份前阵子做的 10 万连接性能测试 (fibjs, golang, nginx, nodejs)
- 加入键盘鼠标控制的代码
热门文章
- thymeltesys-基于Spring Boot Oauth2的扫码登录框架
- python3+ selenium3开发环境搭建-手把手教你安装python(详细)
- IOS不支持2017-09-09的日期格式
- Bootstrap框架(基础篇)之列表,表格,表单
- 【转】Java URL Encoding and Decoding
- C#里的三种定时器类型
- C# WebBrowser实现网页自动填表
- Bailian4040 买书问题【Ad Hoc】
- 计算广告(computational advertising)
- 独立事件、笛卡尔积与矩阵向量乘法