单片机实训可调电子钟温控系统报告Word格式文档下载.docx

上传人:b****6 文档编号:20035985 上传时间:2023-01-16 格式:DOCX 页数:27 大小:519.07KB
下载 相关 举报
单片机实训可调电子钟温控系统报告Word格式文档下载.docx_第1页
第1页 / 共27页
单片机实训可调电子钟温控系统报告Word格式文档下载.docx_第2页
第2页 / 共27页
单片机实训可调电子钟温控系统报告Word格式文档下载.docx_第3页
第3页 / 共27页
单片机实训可调电子钟温控系统报告Word格式文档下载.docx_第4页
第4页 / 共27页
单片机实训可调电子钟温控系统报告Word格式文档下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

单片机实训可调电子钟温控系统报告Word格式文档下载.docx

《单片机实训可调电子钟温控系统报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实训可调电子钟温控系统报告Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。

单片机实训可调电子钟温控系统报告Word格式文档下载.docx

温度传感器

PNP:

PNP型三极管RES:

电阻SOUNDER:

蜂鸣器

注:

因为Proteus中,三极管无法仿真,所以仿真原理图中没有加三极管,在实际电路中蜂鸣器和LED加三极管驱动电路。

原件说明:

1、DS18B20芯片介绍DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。

它具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

以上特点使DS18B20非常适用于远距离多点温度检测系统。

(1)、DS18B20外形及引脚说明

图1-2DS18B20外形及引脚图在TO-92和SO-8的封装中引脚有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:

(a)GND:

地;

(b)DQ:

单线运用的数据输入输出引脚;

(c)VDD:

可选的电源引脚。

(2)、DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。

高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。

初始时,温度寄存器被预置成-55℃,每当计数器1从预置开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。

初始时,计数器1预置的是与-55℃相对应的一个预置值。

以后计数器1每一个循环的预置数都由斜率累加器提供。

为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。

计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。

DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。

在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;

若高于0.25℃,最低位就置1;

若高于0.75℃时,温度寄存器的最低位就进位然后置0。

这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±

1/2LSB,即0.25℃。

温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。

测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。

DS18B20测量温度时使用特有的温度测量技术。

DS18B20内部的低温度系数振荡器能产生稳定的频率信号;

同样的,高温度系数振荡器则将被测温度转换成频率信号。

当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。

芯片内部还有斜率累加器,可对频率的非线性度加以补偿。

测量结果存入温度寄存器中。

一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。

2、STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口,内置4KBEEPROM,MAX810复位电路,3个16位定时/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

[1]

各引脚的标注,利于自制元件库

STC89C52RC单片机:

8K字节程序存储空间;

512字节数据存储空间;

内带2K字节EEPROM存储空间;

可直接使用串口下载;

AT89S52单片机:

256字节数据存储空间;

没有内带EEPROM存储空间;

参数

1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]

2.工作电压:

5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)

3.工作频率范围:

0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz

4.用户应用程序空间为8K字节

5.片上集成512字节RAM

6.通用I/O口(32个),复位后为:

P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片

8.具有EEPROM功能

9.共3个16位定时器/计数器。

即定时器T0、T1、T2

10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒

11.通用异步串行口(UART),还可用定时器软件实现多个UART

12.工作温度范围:

-40~+85℃(工业级)/0~75℃(商业级)

13.PDIP封装

五、实训任务

1.在Proteus环境下建立原理图。

2.在Keil环境下编写程序实现电子钟和温度显示。

3.系统功能要求:

(1)使用四位LED数码管显示器实现小时、分钟显示,小时和分钟之间用小数点隔开,秒的显示利用最后一位数字的小数点代表秒。

小时调整使用按键K1实现,分钟调整使用按键K2实现。

当K3按下时显示DS18B20所测温度。

其他附加功能不限。

(2)扩展功能:

在完成功能

(1)的基础上可利用蜂鸣器实现整点报时,超温报警等功能。

4.用Altium软件印刷电路板,焊接电路板,完成硬件电路的焊接烧写程序,完成系统功能要求。

六、软件设计

1.主程序流程图

图1主程序流程图

图2.1s中断服务子程序流程图

2.电子时钟:

利用定时器T0实现1s定时,T0设置为方式1,时间50ms,利用软件计数20次,实现1s定时。

中断服务子程序流如图2

参考以上流程图编写程序。

使用Proteus和Keil仿真。

使用定时器中断T0实现。

图3.显示子程序流程图图4.按键扫描子程序流程图

3.显示子程序流程图:

参考以上流程图3,编写显示时间的子程序或函数。

小时和分钟之间利用显示器的小数点隔开,秒的显示用显示器最后一位的小数点来表示,1秒闪一次。

使用Proteus和Keil仿真调试。

4.按键扫描子程序功能:

扫描按键K1、K2和K3,当K1按下时,小时加1,当K2按下时分钟加1,使用K3实现,时间/温度切换显示。

按以下流程图4编写程序。

七、程序调试

1、在Keil环境下,建立新项目,把源程序导入,并生成HEX文件。

2、在Proteus环境下,画好仿真电路图,并把单片机导入hex文件并进行仿真。

3、K0:

复位显示,K1:

调整小时,K2:

调整分钟,K3:

显示温度。

4、时钟显示:

到整点时,蜂鸣器响,时钟为几点时,蜂鸣器就响几声。

按一下K3,显示即时温度。

八、仿真电路

实验结果分析:

调试过程遇到仿真时显示数码管没显示,调时按钮没反应,经检查发现问题很多,有编程时仿真器没设置好,仿真电路下拉电阻不适合,数码管极性不对等,经老师指导和同学之间的讨论问题得以解决,仿真成功。

制作电子时钟电路硬件时发现真实应用与仿真有所区别,还要考虑单片机使能端的电频,所用电阻的大小,各电器元件的位置和电路走线等问题。

九、用Protel软件画出电路图和PCB印刷电路板

十、实训心得:

经过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。

相信这对我们以后的学习和工作都会有很大的帮助。

我们一定要在最短的时间里对这些不足加以改正!

首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。

这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。

换是我们认识

到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。

特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦!

单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是费城必要的。

实训中,我们每个人都作了单片机/温控系统的实验,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。

更让我们体会到了单片机手动的开

始平台的完善与成熟。

只要你有想法,单片机就有可能让他成为现实。

这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。

这对我以后的工作一定会有帮助

的。

在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一厅的了解,这是一笔不错的收获。

通过这几天的实训,使我的感触很深,真实“条条大路通罗马”,要达到目的,不同的人就有不同的方法。

只要你的方法不错!

五花八门都可以,而且是各有特色。

走出来的结果都有各自的独到之处。

在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。

在试训中有苦有甜,刚开始,在我们焊完PCB板之后,竟能不能正常工作,在细心检查问题,才了解到单片机没有接地,在解决这个问题之后,终于可以工作了。

还有就是焊接三极管、排阻、DS18B20时,要注意引脚的位置。

当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。

感觉很欣慰,有一丝丝的甜意,几天的实训使自己的思维逻辑也有了小小的进步。

附录一:

原件清单

名称

属性

引脚

数量

瓷片电容

30pF

2

--

1

电解电容

10uF

电阻

1K

13

4位共阳LED数码管

12

-

3

4

AT89S52

40

晶体振荡器

12MHz

松香

1盒

导线

1段

40针管座

焊锡

排阻

9

附录二

FLAGBIT00H

FLAG1BIT01H

DQEQUP3.3

LED1EQUP2.0

LED2EQUP2.1

LED3EQUP2.2

LED4EQUP2.3

LEDEQUP0

ORG0000H

LJMPSTART

ORG000BH

LJMPTIMER0

ORG0100H

START:

MOVR0,#70H

MOVR7,#07H

INIT:

MOV@R0,#00H

INCR0

DJNZR7,INIT

MOVTMOD,#01H;

1S定时程序

MOVTH0,#3CH

MOVTL0,#0B0H

MOVR4,#14H

SETBET0

SETBEA

SETBTR0

MAIN:

LCALLSCAN

LCALLKEYSCAN

LCALLLOUD

SJMPMAIN

LOUD:

MOVTMOD,#11H

MOVTH1,#0FCH

MOVTL1,#0DEH

SETBET1

SETBEA

MOVA,76H

MOVB,#0CH

DIVAB

MOVA,B

CJNEA,#0,LL1

MOV7FH,#12

AJMPLOOP1

LL1:

MOV7FH,A

LOOP1:

JNBFLAG1,LOUDOUT

CLRP3.4

LCALLDELAY50MS

SETBP3.4

DEC7FH

MOVA,7FH

CJNEA,#0,LOOP1

LOUDOUT:

CLRFLAG1

RET

DELAY50MS:

LCALLSCAN

TIMER0:

PUSHACC

PUSHPSW

CLRET0

CLRTR0

MOVTH0,#3CH

SETBTR0

DECR4

CJNER4,#10,DTT1

SETBFLAG

DTT1:

CJNER4,#00H,OUTT0

CLRFLAG

;

DJNZR4,OUTT0

MOVR4,#14H

INC74H

MOVA,74H

CJNEA,#3CH,OUTT0;

判断秒值是否达到60

MOV74H,#00H

INC75H

MOVA,75H

判断分钟值是否达到60

MOV75H,#00H

INC76H

SETBFLAG1

MOVA,76H

CJNEA,#18H,OUTT0;

判断小时是否达到24

MOV76H,#00H

OUTT0:

POPPSW;

中断程序

POPACC

RETI

SCAN:

MOVA,75H;

LED显示程序

MOVB,#0AH

DIVAB

MOV72H,A

MOV73H,B

MOVB,#0AH

MOV70H,A

MOV71H,B

CLRP2.0;

单独显示6位,小时十位

MOVA,70H

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL1MS

SETBP2.0;

单独显示6位,小时个位

CLRP2.1

MOVA,71H

SETBP2.1;

单独显示6位,小时与分钟之间点

CLRP2.1

MOVA,#7FH

MOVP0,A

单独显示6位,分钟十位

CLRP2.2

MOVA,72H

SETBP2.2;

单独显示6位,分钟个位

CLRP2.3

MOVA,73H

JNBFLAG,DSP

CLRACC.7

DSP:

SETBP2.3;

单独显示6位,秒跳点

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;

“0~9”,“-”的共阳极字段码

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

DL20MS:

KEYSCAN:

CLREA

JNBP1.0,KEYSCAN0

JNBP1.1,KEYSCAN1

JNBP1.2,KEYSCAN2

KEYOUT:

SETBEA

KEYSCAN0:

LCALLDL20MS

JBP1.0,KEYOUT

INC76H

CJNEA,#18H,KEYOUT

MOV76H,#00H

SJMPKEYOUT

KEYSCAN1:

JBP1.1,KEYOUT

INC75H

MOVA,75H

CJNEA,#3CH,KEYOUT

MOV75H,#00H

KEYSCAN2:

JBP1.2,KEYOUT

MOVP0,#0FFH

MOVP2,#0FFH

MOVP3,#0FFH

LOOP:

LCALLGET_TEMPER

LCALLDISP

LJMPLOOP

WR18B20:

MOVR0,#8H

CLRC

WR1:

CLRDQ

MOVR1,#6H

DJNZR1,$

RRCA

MOVDQ,C

MOVR1,#23

SETBDQ

NOP

DJNZR0,WR1

RE18B20:

MOVR0,#30H

MOVR1,#2

RE00:

MOVR2,#8

RE01:

MOVR3,#09

RE10:

DJNZR3,RE10

MOVC,DQ

MOVR3,#23

RE20:

DJNZR3,RE20

DJNZR2,RE01

MOV@R0,A

INCR0

DJNZR1,RE00

GET_TEMPER:

LCALLRST18B20

MOVA,#0CCH

LCALLWR18B20

MOVA,#44H

LCALLRST18B20

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1