毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

单片机数字温度计设计电路图和汇编程序 第6页

更新时间:2009-7-13:  来源:毕业论文
单片机数字温度计设计电路图和汇编程序 第6页
DS18B2的外部电路图
根据设计要求,传感器的电路图如图3.10所示。 
图3.10
第四节  数字温度计总体电路图

单片机AT8051是本系统的核心部分,它控制着数据显示、温度检测存储数据等功能。根据以上各功能模块得到应用电路总原理图。第三章  数字温度计软件设计
     第一节 各部分程序设计流程

一、 主程序设计
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。系统主程序首先对系统进行初始化,
包括设置定时器、中断和端口;然后
显示开机画面。由于单片机没有停止
指令,所以可以设计系统程序不断地
循环执行上述显示结果。其程序流程
如图4所示。
二、温度值读取程序设计
读出温度子程序的主要功能是读
出RAM中的9字节,在读出时需进
行CRC校验,校验有错时不进行温
度数据的改写。其程序流程图如图5。
三、温度值转换程序设计
温度转换命令子程序主要是发温
度转换开始命令,当采用12位分辨率
时转换时间约为750毫秒,在本程序
设计中采用1秒显示程序延时法等待
转换的完成。
四、计算温度程序设计
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图1.6。

五、 显示数据刷新程序设计
显示数据刷新子程序主要时
对显示缓冲器中的显示数据进行
刷新操作,当最高显示位为零时
将符号显示位移入下一位。程序
流程图如图1.7。
第二节 温度计源程序
//通过DS18B20测试当前环境温度, 并通过液晶显示器显示当前温度值, 目前显示范围: 0.0~ +99.9度
#include<AT8051.H>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define DATAPORT P0             //定义P0口为Lcd数据口
#define SETTEMP P1             //定义P1口为设定温度
#define SELECT P2             //定义P2口为选择信号
sbit L1 = P1^1;              //灯作为电机
sbit L2 = P1^2;
sbit L3 = P1^3;
sbit DQ = P3^4;             //定义DS18B20通信端口
char Num[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//0~9对应16进制数
int temp1,temp2,ID=0,set=0,blink;
int temp1=27,xs=5;         //定义整数和小数
unsigned int max,mid,min,flag;
///下面是小板的地址///大板对应为0xc700,0xc600,0xc500///
#define lcd_data XBYTE[0xe000]      //显示数据端口
#define lcd_sel XBYTE[0xc000]      //显示器选择端
#define key_addr XBYTE[0xa000]     //按键端口
uchar d[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0x0F8,0x80,0x90};
//仿真时用到
/*********延时>K*1ms,*////*12.000mhz>11.0596有误差********/
void delayms(int ms)
{
    uchar i;
while(ms--)
{
   for(i=250;i>0;i--);
 }www.youerw.com
}
/***********ds18b20延迟子函数(晶振11.0596MHz )*******/
void delay_18B20(unsigned int i)
{
while(i--);
}
/**********ds18b20初始化函数**********************/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1;             //DQ复位 ds18b20通信端口
delay_18B20(8);     //稍做延时
DQ = 0;             //单片机将DQ拉低
delay_18B20(80);    //精确延时 大于 480us
DQ = 1;             //拉高总线
delay_18B20(4);
x=DQ;   //稍做延时后,如果x=0则初始化成功;x=1则初始化失败
delay_18B20(20);
}
/***********ds18b20读一个字节**************/
unsigned char ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

单片机数字温度计设计电路图和汇编程序 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。