- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机温度测量系统设计
桂 林 电 子 科 技 大 学
微 机 单 片 机 接 口
设
计
报
告
指导老师: 吴 兆 华
学 生: 杨 运 泽
学 号: 092011113
桂林电子科技大学机电工程学院
《微机综合设计》设计报告
一、设计题目……………………………………………………………………1
二、设计内容与要求……………………………………………………………1
三、设计目的意义………………………………………………………………1
四、系统硬件电路图……………………………………………………………1
五、程序流程图与源程序………………………………………………………2
5.1 程序流程图……………………………………………………………2
5.2 源程序…………………………………………………………………3
六、系统功能分析与说明………………………………………………………3
6.1 总体功能实现说明……………………………………………………3
6.2 元器件的选择及功能介绍……………………………………………3
6.2.1 元器件的选择…………………………………………………3
6.2.2 元器件的功能介绍……………………………………………4
七、设计体会……………………………………………………………………8
八、参考文献……………………………………………………………………9
《温度测量系统》设计报告
一、设计题目
温度测量系统设计
二、设计内容与要求
用AT89S51单片机控制
图1:电路原理图
(2) PCB图如下:
图2:PCB图
五、程序流程图与源程序
5.1 程序流程图
图3:程序流程图
5.2 源程序
#include reg51.h // 引用标准库的头文件
#include absacc.h
#include stdio.h
#include math.h
#define uchar unsigned char
#define uint unsigned int
uchar tplsb,tpmsb; // 温度值低位、高位字节
sbit DQ = P3^5; // 数据通信线DQ
unsigned char TZ=0; // 转换后的温度值整数部分
unsigned char TX=0; // 转换后的温度值小数部分
unsigned int wd; // 转换后的温度值BCD码形式
unsigned char shi; // 整数十位
unsigned char ge; // 整数个位
unsigned char shifen; // 十分位
unsigned char baifen; // 百分位
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code tabled[]=
{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};
uchar code tablewe[]={0xfe,0xfd,0xfb,0xf7};
void delay(uint t)
{
uint i;
while(t--)
{
for (i=0;i125;i++)
}
}
/* 产生复位脉冲初始化DS18B20 */
void TxReset(void)
{
uint i;
DQ = 0;
/* 拉低约900us */
i = 100;
while (i0) i--;
DQ = 1; // 产生上升沿
i = 4;
while (i0) i--;
}
/* 等待应答脉冲 */
void RxWait(void)
{
uint i;
while(DQ);
while(~DQ); // 检测到应答脉冲
i = 4;
while (i0) i--;
}
/* 读取数据的一位,满足读时隙要求 */
bit RdBit(void)
{
uint i;//i应该有初值
bit b;
DQ = 0;
i++;
DQ = 1;
i++;i++; // 延时15us以上,读时隙下降沿后15us,DS18B20输出数据才有效
b = DQ;
i = 8;
w
文档评论(0)