89C51单片机课程设计报告书

上传人:鲁** 文档编号:484220287 上传时间:2023-01-15 格式:DOC 页数:17 大小:203.54KB
返回 下载 相关 举报
89C51单片机课程设计报告书_第1页
第1页 / 共17页
89C51单片机课程设计报告书_第2页
第2页 / 共17页
89C51单片机课程设计报告书_第3页
第3页 / 共17页
89C51单片机课程设计报告书_第4页
第4页 / 共17页
89C51单片机课程设计报告书_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《89C51单片机课程设计报告书》由会员分享,可在线阅读,更多相关《89C51单片机课程设计报告书(17页珍藏版)》请在金锄头文库上搜索。

1、摘要摘 要: 随着现代工农业技术的发展与人们对生活环境要求的提高,人们也迫切需要检测与控制温度。本文通过采用蜂鸣器作为电声元件的温度报警器的设计,阐明了该装置进行设计与制作的具体过程与方法。这种温度报警器结构简单,可操作性强,应用广泛。工作时,温度测量围为538。当前环境温度若超过设定的高温临界温度,由单片机发出报警信号,从而防止带来的不必要的损失。造成高温火灾有:电气线路短路、过载、接触电阻过大等引发高温或火灾;静电产生高温或或火灾;雷电等强电侵入导致高温或火灾;最主要是机房电脑、空调等用电设备长时间工作,导致设备老化,空调发生故障,而不能降温;因此机房所属的电子产品发热快,在短时间机房温度

2、升高超出设备正常温度,导致系统瘫痪或产生火灾,这时温度报警系统就会发挥应有的功能。关键词:STC89C51单片机,数字控制,温度计,DS18B20目 录摘要11 设计要求与方案论证31.1 设计要求31.2基本方案31.2.1 单片机芯片的选择31.2.2 温度传感器设计32 主要元件介绍42.1 STC89C51介绍42.1.1 STC89C51引脚介绍42.1.2单片机最小系统:52.2 DS18B20传感器介绍52.2.1 DS18B20引脚介绍62.2.2 DS18B20的部结构62.3 数码管介绍72.3.1 数码管概述73 软件部分83.1程序流程图83.2 程序.8结论15参考文

3、献16附录 原理图17 / 1 设计要求与方案论证1.1 设计要求基本围0-99;数码管直读显示;扩展功能:可以任意设定温度的上下限报警功能。1.2 基本方案 单片机芯片的选择由于单片机具有以下的很多优点,被我们选定为制作该作品的首选芯片单片机特点:(1)高集成度,体积小,高可靠性 (2)控制功能强 (3)低电压,低功耗,便于生产便携式产品 (4)易扩展 (5)优异的性能价格比 本设计采用STC89C51芯片作为硬件核心。STC89C51部具有8KB ROM 存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,可以通过串口下载数据。 温度传感器设计温度传感器是温度测量仪表的核

4、心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料与电子元件特性分为热电阻和热电偶两类。温度传感器的发展大致经历了以下三个阶段;(1)传统的分立式温度传感器(含敏感元件);(2)模拟集成温度传感器/控制器;(3)智能温度传感器。国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较麻烦。进而考虑到用温度传感器,

5、在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2 主要元件介绍2.1 STC89C51介绍 STC89C51引脚介绍 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片振荡电路的输入端XTAL2(Pin20):片振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSE

6、N(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的外部选通,接低电平从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。可编程输入/输出引脚(32根)STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P

7、3.7图1:STC89C51封装图 单片机最小系统当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机部就执行复位操作,按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源VCC接通而实现的。最小系统如图2所示。图2 单片机最小系统电路电路以STC89C51单片机最小系统为控制核心,测温电路由DS18B20提供,输入部分采用三个独立式按键S1、S2、S3。数码管显示部分。具体电路连接,见附录1。2.2 DS18B20传感器介绍DS18B20引脚介绍图3:DS18B20引脚各引脚功能为:I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,

8、外接上拉电阻后,常态下呈高电平。UDD是可供选用的外部电源端,不用时接地,GND为地,NC空脚。DS18B20的部结构DS18B20的部结构主要包括7部分:寄生电源、温度传感器、64位激光(loser)ROM与单线接口、高速暂存器(即便筏式RAM,用于存放中间数据)、TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度上下限值、存储和控制逻辑、位循环冗余校验码(CRC)发生器。图4:DS18B20部结构2.3 数码管介绍数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个

9、“8”可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 数码管概述图5:数码管数码显示器是一种由LED发光二极

10、管组合显示字符的显示器件,它使用了8个Led发光二极管,其中七个用于显示字符,一个显示小数点,所以通称为七段发光二极管数码显示器。4位一体数码管,其部段已连接好,引脚如图所示(数码管的正面朝自己,小数点在下方)。a、b、c、d、e、f、g、dp为段引脚,S1、S2、S3、S4分别表示四个数码管的位。3 软件设计3.1 程序流程图图6:程序流程图3.2 程序#include #define uint unsigned int#define uchar unsigned char /宏定义#define SET P3_1 /定义调整键#define DEC P3_2 /定义减少键#define A

11、DD P3_3 /定义增加键#define BEEP P3_6 /定义蜂鸣器#define ALAM P1_2/定义灯光报警#define DQ P3_7 /定义DS18B20总线I/Obit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P05; /小数点uchar x=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signed char shangxian=38; /上限报警温度,默认值为38signed char xiaxian=5; /下

12、限报警温度,默认值为 5/uchar code LEDData=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;uchar code LEDData=0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B;=/=DS18B20=/*延时子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x

13、=0; DQ = 1; /DQ复位 Delay_DS18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 Delay_DS18B20(80); /精确延时,大于480us DQ = 1; /拉高总线 Delay_DS18B20(14); x = DQ; /稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20);/*读一个字节*/unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); return(dat);/*写一个字节*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat=1; /*读取温度*/unsigned int ReadTemperatur

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号