宁 波 工 程 学 院
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与讨论
课程设计报告
课
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
题 目: 用ADC0808设计的调温报警器
学 院 名 称: 电子与信息工程学院
专 业:
学生 姓名:
学生 姓名:
学生 姓名:
指 导 教 师:
目录
第一章 技术指标
1.1整体功能要求
1.2系统框图
1.3设计条件
第二章 整体方案设计
1. 整体方框图及原理
第三章 单元电路设计
3.1单片机模块
3.2数码管模块
3.3 ADC0808
第四章 仿真
第五章 设计小结
5.1 设计任务完成情况
5.2 问题及改进
5.3心得体会
附录
参考文献
第一章 技术指标
1. 整体功能要求
( 1) .根据读取的温度进行调节温度。( 2) .温度显示功能 利用 LED 数码管显示温度 (3) .报警功能 当温度超过设定的上下限温度 报警灯闪烁 且发出不 同频率的声音报警(4). 本例 ADC0808 仅作为外部调温器,由单片机读入温度数值后, 转换成两位 10 进制
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示的温度值,输出到数码管显示,并与预设的警 报温度对比,在不高于警报温度时,LED 灯成流水灯闪烁,当高于警 报温度后, 单片机控制 LED 进行警报闪烁提示并控制蜂鸣器发出声音 警报,从而达到温控警报功能。
2.系统设计框图,如图1
图1系统框图
电路主要由 AT89C52 单片机 上拉电阻 DS18B20 温度传感器 LED 数码管 蜂鸣器和两个 LED 灯组成 利用 Proteus 仿真软件。 搭 建硬件电路如图 1 所示 在设计中利用温度传感器 DS18B20 测取温 度信息 通过单片机与传感器进行通信 读取温度信息并写入
控制信息 温度上下限 利用单片机的 P0 口控制 LED 数码管来 显示温度 当温度超过设定的上下限温度时 利用单片机的 P3.7 控制 蜂鸣器发出报警声 同时报警灯会亮
3.设计条件
软件要求:uVision,protuse仿真软件
具体的器件模块:
1.单片机模块
2.数码管模块
3.ADC0808
流程设计:
1.报警子程序框图
2.扬声器发生器子程序流程图
3.主程序流程图
第二章 整体方案设计
1.整体方框图及原理:如图2原理框图
图2原理框图
第三章 单元电路设计
1. 单片机模块,如图3
图3
单片机模块:作为系统的整体控制器,通过 P3.3 管脚与 DS18B20 单 总线通信,获取环境温度,显示到数码管,并与预设的报警温度比较, 当不超过报警温度时,控制 LED 呈流水灯闪烁,当高于报警温度时, 控制 LED 频繁闪烁,并控制蜂鸣器发出固定频率声音报警。
2. 数码管模块,数码管图4
图4
数码管用来显示当前的温度值。
3. ADC0808,如图5
图5
作为外部调温器,系统并没有真正读取外部温度
第四章 仿真
1. Keil 软件环境下进行芯片的型号选择 AT89C51 编写 C 程序并保存之 后利用 Keil 编译器编译调试编译成功后生成 HEX 文件 程序经 Keil 软件编译通过后 就可利用 Protues 软件进行仿真了。绘制好的仿真电路中用鼠标左键单击单片机弹出 Edit Commponent 对话框在 Programe File 中载入已经生成的 HEX 文件 然后单击 OK 按钮保存 设计 最后单击运行按钮即可进行功能仿真。 运行时 LED 数码管将显示外部温度 调节,ADC0808 改变外界温度 时 新的温度将刷新显示在 LE D 数码管上 当温度超过设定的上下限 时 会发出不同频率的报警声。
第五章 设计小结
5.1 设计任务完成情况
通过为期两周的课程设计,完成了本次设计的技术指标,刚开始设计的时候,将整个设计分成若干个模块,再将各模块窜接起来。然后进行检查,仿真,修改,最后完成设计。
5.2 问题及改进
在设计实验中碰到的主要问题是如何实现在低于60度或大于160度时,蜂鸣器和发出声音而报警。
5.3心得体会
通过本次设计实际操作,设计是我们将来必需的技能,这次设计恰恰给我们提供了一个应用自己所学知识的机会,从到图
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
馆查找资料到对电路的设计对电路的调试再到最后电路的成型,都对我所学的知识进行了检验。主要学习到了设计的模块化在实际的设计里面相当的重要,在一个设计中我们无法一次性将整个设计完全的考虑进去,必须不断的修改,修改的前提不能牵扯到太多的设计布局,那么这就是模块化的优势。还学到了很多元器件的使用方法,以及需要注意的问题,这都是通过本次实际设计操作学到的,这里不再一一敖述。但是最重要的是团队的配合能力,因为一个人的力量是有限的,大家的能力是无穷大的,我想通过此次设计主要的还是锻炼大家的团队实践能力,次要的才是知识掌握程度。
附录
AT89C51
简要说明:AT89C51是一块单片机,在硅片上集成了各种部件的微型计算机。这些部件包括中央处理器CPU,数据存储器RAM,程序存储器ROM,定时器/计数器和多种I/O接口电路。
显示数码管
简要说明:能显示4位的数码管
程序:
#include
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]= {0x3f, 0x06, 0x5b, 0x4f, 0x66,0x6d, 0x7d, 0x07, 0x7f,0x6f};
uchar Temperature[]= {0,0,0};
sbit ST =P2^5;
sbit OE =P2^7;
sbit EOC =P2^6;
sbit CLK = P2^4;
sbit H_LED = P3^0;
sbit L_LED =P3^1;
sbit BEEP =P3^7;
uchar t=0;
void DelayMS(uint x)
{
uchar i;
while(x--) for(i= 0 ; i < 120 ; i ++ ) ;
}
void Show_Temperature()
{
uchar i,DSY_IDX[]={0xF7,0xFB,0xFD};
for(i=0;i<3;i++)
{
P0 =DSY_CODE[Temperature[i]] ;
P2 &= DSY_IDX[i];
DelayMS(5);
P2 |=0x0F;
}
}
void main()
{
uchar d;
IE = 0x8a;
TMOD =18;
TH0 =245;
TL0 = 0;
TH1 =(65536 - 1000)/256;
TL1= (65536 - 1000)%256;
TR0 = 1;
H_LED =L_LED =1 ;
while(1)
{
ST = 0;ST =1;ST = 0;
while(1)
{
if(EOC == 1)
{
OE = 1;
d = P1;
OE = 0;
Temperature[2] = d/100;
Temperature[1] = d%100/10;
Temperature[0] = d%10;
Show_Temperature();
if(d<60)
{
TR1 = 1;L_LED = !H_LED;
}
else
if(d>160)
{
TR1= 1;H_LED = !L_LED;
}
else
{
TR1 =0; H_LED = L_LED = 1;
}
break;
}
}
}
}
void T0_INT() interrupt 1
{
CLK =~CLK ;
}
void T1_INT() interrupt 3
{
TH1 = (65536 - 1000) / 256;
TL1 = (65536- 1000) %256;
BEEP = ~BEEP;
if(L_LED == 0)
{if (++t !=150) return; }
else
{if (++t !=60) return;}
t = 0;
DelayMS(20);
}
参考文献
彭伟《单片机C语言程序设计实训100例》