扬州大学。
姓名: 徐旸
学号:090801121
班级:电科0901
完成日期:2024年1月16日。
1.系统结构:
设计任务:1)基于ds18b20的温度测量。
ds18b20是一个数字式的温度传感器,单片机可以直接读取其转换之后的温度,并在数码管上显示。
设计要求:1)基于ds18b20的温度测量要求能够在4个数码管上显示实时测量温度。比如12.34。
实现温度报警功能,假设温度超过20度就报警,并点亮一个led灯,以此提醒用户。
设计流程:1)首先理解原理图,分析清楚各个电路部分的功能作用。
2)认识熟悉各个元器件。
3)事先在万能板上布好局,放置各个元器件,其中芯片用插座代替放置。布局要做到美观整齐。
4)布局完成之后,进行电路焊接。
5)通电测试,调试程序。
二.硬件原理:
1.元器件介绍:
1)发光二级管:长脚为正,短脚为负。
肖特基二极管5819:灰色圈一极为负。
电解电容:白色区域对应的管脚为负。
2)j1:电源输入的接口。
3)j2:和计算机的rs232串口连接。
4)s1:电源开关,请用万用表来确认常闭和常开管脚。
5)rj1:排阻,一共有9个引脚,其中一个引脚与所有电阻的一端相连接,其余8个引脚分别对应8个电阻。他们的大小分别为470欧。
6)s2,s3,s4轻触按键:4各管脚有常开和常闭。一般都是使用对角线的两个引脚。
7)q1-q4:pnp三极管,将三极管有字面正对自己,管脚朝下,从左到右依次为e、b、c
8)s5:四连体的共阳极数码管。
9)电阻:包括4.7k和470欧两种。
10)rs232串口,采用db-9型号的串口。串口只需用到db9.2、db9.3和db9.5三个信号脚。
2.电路原理图:
本次课程设计的电路图包括4个模块:电源电路模块,单片机led数码管显示电路模块,串口**电路模块,ds18b20电路和ds1320电路模块。
以下为各个模块的电路原理图:
(1)电源电路模块:
电源**电路是用来给整个电路板供电,从j1接入9-15v的电压,从u1的vout输出5v电压。
(2)单片机led数码管显示电路模块:
该电路模块通过p0.1接入ds18data,接受ds18b20的温度数据,通过p0.3、p0.
4、p0.5连接ds1302的sclk、io、rst,接受ds1302的时间数据,在经过单片机程序的处理后在共阳极的数码管上显示。
(3)串口**电路模块:
串口**电路主要由max232芯片构成。串行数据信号线rxd和txd分别连接单片机的p3.0和p3.
1口。r1in和t1out将连接rs232接口,分别对应2号脚和3号脚。
(4)ds18b20电路和ds1320电路模块:
ds18b20是用来产生温度数据,传入单片机中。电路的连接很简单。
3.软件设计:
1.设计思路:
温度显示的程序里,把采集进来的数据分解成单个的为保存在数组中,然后再根据值找到对应的数码管显示值。
2.程序流程图:
3.软件c51程序:
#include <>
#include "
#define uchar unsigned char
#define uint unsigned int
#define tempshiw 2 //监控温度。
#define tempgewi 6
#define tempxshu 8
uchar code dispcode=
uchar flag = 0;
sbit dq=p0^1温度输入口。
sbit din=p2^0led小数点控制。
sbit led1=p1^0; /闹铃指示灯。
sbit led2=p1^1; /温度报警指示灯。
温度小数部分用查表法。
uchar code ditab[16]=;
uchar code scan_con[4]=;列扫描控制字。
uchar data temp_data[2]=;显示单元数据,共4个数据和一个运算暂用。
显示扫描函数。
void delay2(uint t)
for(;t>0;t--)
显示扫描函数。
scan()
char k;
for(k=0;k<4;k四位led扫描控制。
p3=scan_con[k];delay2(90);
p3=0xff;
18b20复位函数。
ow_reset(void)
char presence=1;
while(presence)dq=1;
18b20写命令函数。
/向 1-wire 总线上写一个字节。
void write_byte(uchar val)
uchar i;
for (i=8; i>0; i--)
dq = 1;
delay2(1);
18b20读1个字节函数***
/从总线上读取一个字节。
uchar read_byte(void)
uchar i;
uchar value = 0;
for (i=8;i>0;i--)
dq=1;return(value);
读出温度函数。
read_temp()
ow_reset总线复位。
write_byte(0xcc); 发skip rom命令。
write_byte(0xbe); 发读命令。
temp_data[0]=read_byte();温度低8位。
temp_data[1]=read_byte();温度高8位。
ow_reset();
write_byte(0xcc); skip rom
write_byte(0x44); 发转换命令。
温度数据处理函数。
void work_temp()
uchar n=0;
uchar doth,dotl;
uchar flag3=1,flag2=1数字显示修正标记。
if((temp_data[1]&0xf8)!=0x00)
//负温度求补码。
if(temp_data[0]>255)
display[4]=temp_data[0]&0x0f;
display[0]=ditab[display[4]];
doth=display[0]/10;
dotl=display[0]%10;
display[4]=(temp_data[0]&0xf0)>>4)|(temp_data[1]&0x07)<<4);
display[3]=display[4]/100;
display[2]=display[4]/10%10;
display[1]=display[4]%10;
if(!display[3])
单片机课程设计报告
单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....
单片机课程设计报告
韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...
单片机课程设计报告
南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...