单片机课程设计报告

发布 2022-10-06 08:20:28 阅读 3723

扬州大学。

姓名: 徐旸

学号: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 二 课程设计...