红外遥控数字钟论文.docx

上传人:b****8 文档编号:10027007 上传时间:2023-05-23 格式:DOCX 页数:44 大小:317.10KB
下载 相关 举报
红外遥控数字钟论文.docx_第1页
第1页 / 共44页
红外遥控数字钟论文.docx_第2页
第2页 / 共44页
红外遥控数字钟论文.docx_第3页
第3页 / 共44页
红外遥控数字钟论文.docx_第4页
第4页 / 共44页
红外遥控数字钟论文.docx_第5页
第5页 / 共44页
红外遥控数字钟论文.docx_第6页
第6页 / 共44页
红外遥控数字钟论文.docx_第7页
第7页 / 共44页
红外遥控数字钟论文.docx_第8页
第8页 / 共44页
红外遥控数字钟论文.docx_第9页
第9页 / 共44页
红外遥控数字钟论文.docx_第10页
第10页 / 共44页
红外遥控数字钟论文.docx_第11页
第11页 / 共44页
红外遥控数字钟论文.docx_第12页
第12页 / 共44页
红外遥控数字钟论文.docx_第13页
第13页 / 共44页
红外遥控数字钟论文.docx_第14页
第14页 / 共44页
红外遥控数字钟论文.docx_第15页
第15页 / 共44页
红外遥控数字钟论文.docx_第16页
第16页 / 共44页
红外遥控数字钟论文.docx_第17页
第17页 / 共44页
红外遥控数字钟论文.docx_第18页
第18页 / 共44页
红外遥控数字钟论文.docx_第19页
第19页 / 共44页
红外遥控数字钟论文.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

红外遥控数字钟论文.docx

《红外遥控数字钟论文.docx》由会员分享,可在线阅读,更多相关《红外遥控数字钟论文.docx(44页珍藏版)》请在冰点文库上搜索。

红外遥控数字钟论文.docx

红外遥控数字钟论文

编号:

实训(论文)说明书

题目:

红外遥控数字钟

2009年12月31日

摘要

本系统设计一个基于单片机红外遥控电子钟,数据处理用MCS-51系列采用89S51单片机作为中央控制器。

数据采集部分采用集成数字时间的时、分、秒及温度传感器直接转换为二进制代码,并通过总线传送数据和发送控制指令,控制数字时间、温度传感器的读写操作。

时间、温度传感器和单片机接口只需要一个I/O口,它使用的是美国DALLAS半导体公司生产的18B20温度采集芯片。

一种红外遥控数字钟,由时钟集成电路、显示屏、蜂鸣器、分时驱动器、电源等组成,其特征是:

在现有时钟电路的基础上增设了一个可以接收和处理由红外遥控器发出的指令,由接收头、反相器、振荡器和解码集成电路等组成的,可以控制时钟集成电路、LED128*64显示屏、蜂鸣器工作状态的受控系统。

关键字:

89S51;18B20;MAX232;串行口;LED128*64

 

Abstract

Thesystemdesignofamicrocontrollerbasedinfraredremotecontrolelectronicclockdataprocessing,withtheMCS-51familyasthecentralcontrollerusing89S51microcontroller.Useofintegrateddigitaldatacollectionpartofthetime,hours,minutes,seconds,andtemperaturesensordirectlyconvertedintobinarycode,andtransmitdatathroughthebus,andsendingcontrolinstructionstocontrolthedigitaltimeandtemperaturesensortoreadandwriteoperations.Time,temperaturesensorandmicrocontrollerinterfacerequiresonlyanI/Oport,itusestheU.S.DALLASSemiconductorchipproduction18B20temperatureacquisition.Aninfraredremotecontroldigitalclockfromtheclockintegratedcircuits,display,buzzer,time-drive,powersupplyetc.,whosecharacteristicsare:

onthebasisoftheexistingclockcircuitcanbeaddedtoreceiveandprocessbyaninfraredremotecontrolthedirectivesissuedbythereceivinghead,inverter,oscillatoranddecoderintegratedcircuitsetc.,andcancontroltheclockIC,LED128*64display,buzzerworkingstatusofthecontrolledsystem.

Keywords:

89S51;18B20;MAX232;serialport;LED128*64

 

引言

    随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中红外遥控数字钟就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的红外遥控数字钟与传统的数字钟相比,具有读数方便,也具有测量温度的功能,测温准确,其输出温度采用数字显示。

该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,通过液晶128*64显示屏读出具体的时间和温度。

电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。

它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。

给出DS1302在读写中的C51程序及流程图,以及在调试过程中的注意事项。

    一种红外遥控数字钟,由红外遥控数字钟和红外遥控器共同组成,红外遥控数字钟由受控系统以及时钟集成电路,显示屏等组成,红外遥控器由编码集成电路、设定按键等组成,可以在黑暗的环境下随时显示时间,交直流两用,蜂鸣时间一经设定,便可自动运行,可广泛适用于家庭和各类公共场所。

1设计思想与总体方案

本系统要求完成对时间和环境温度的采集,对时间及温度数据的处理问题,因此,首要解决的采用何种微控制器以及何种传感器来对时间及温暖进行采集处理包括计算,其次是采集到的时间及温暖将通过何种方式去显示或通过何钟方式表达出来让人一目了然,最后要解决的是当检测到的温度超出正常或低于正常值时该做出报警反应或对外部设备作相应的控制。

1.1主控制器选型

当今单片机厂商琳琅满目,MCU品种繁多、产品性能各异。

常用的单片机有很多种:

Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、Microchip公司的PIC系列、Atmel的AT90S系列等。

不同型号的单片机功能各异、开发装置也不兼容。

我们最终选用了ATMEL公司的AT89S51单片机。

AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89S51单片机适用于许多较为复杂控制应用场合。

AT89S51单片机具有低电压供电和体积小等特点,四个端口只需要其中一个或两个口就能满足系统的设计需要,很适合便携手持式产品的设计使用;系统可用二节电池供电。

尽管AT89S51单片机现在并不是最完善最先进的单片机,但是就其功能及相关资料在市面上非常丰富,编译器已经比较优化我们对其开发环境及开发语言也相当熟悉,对于本设计来说我们完全可以选择AT89s51单片机作为主控制器。

1.2DS1302实时显示时间的软硬件

DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。

,其中,时钟的显示用LCD。

虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。

可以用老式电脑主板上的3.6V充电电池。

如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。

100μF就可以保证1小时的正常走时。

DS1302在第一次加电后,必须进行初始化操作。

初始化后就可以按正常方法调整时间。

DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。

DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。

这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。

传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。

但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。

1.3显示方案论证

方案一:

直接要数码管或者7段数码管加MAX7219驱动显示。

MAX7219驱动7段数码管采用低电压扫描驱动具有:

可以节约单片机I/O口,耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点;但是显示单一,只能显示数字和几个字母。

就本设计而言需要显示很多的操作提示信息和报警信息,数码管是难以达到的;且本设计需要单片机I/O口并不多,就AT89S51的资源来说不必要考虑单片机I/O不必要考虑I/O口资源不足的问题。

方案二:

LED点阵显示。

LED点阵可以显示多种字符以及图形,可视距离远,可用软件进行调制,有很强的兼容性以及可操作性。

但是需要占要很多系统资源来对其控制;而就AT89S51单片机的速度或系统资源来说控制LED点阵的效果并不很理想,而且LED点阵结构比较庞大,不利随身携带。

方案三:

LED液晶显示。

LCD液晶零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利控制简单等。

与数码管相比显得更为专业、漂亮;液晶显示屏以其微功耗体积小,显示内容丰富、超薄轻巧、使用方便等诸多优点,在通讯、仪器仪表、电子设备、家用电器等低功耗应用系统中得到原来越广泛的应用,使这些电子设备的人机界面变得越来越形象,目前已广泛的饿用于电子表、计算器、IC卡电话机机,液晶电视机、掌上玩具许多方面;虽然视觉范围较近,不太利于远处观察。

对于本设计来说只是做为红外遥控电子钟的温度显示及人机操作界面提示信息,不需要原距离观察,如果需要远距离观察的的话应该首选LED点阵显示。

本例结合需要及实际经济情况综合考虑使用液晶LED128*64作为时间、温度及信息显示,同时也利用AT89s51单片机自带的串行通信口与上位机个人电脑进行通信可以将大部分信息显示在电脑上。

1.4报警方案论证

方案一:

采用DS1420语音芯片可分段录放音模块,音质自然、使用方便、单片机存储、反复录音、低功耗、能够给人以直观的提示等诸多特点。

在本系统中可以要于随时提示时间和温度以及上下限播报不同报警音乐。

但是价格比较昂贵,本设计的来说可以暂时不考虑。

方案二:

采用单片机产生不同的频率信号来驱动蜂鸣器和发光二极管产生声光提示,不同的温度报警值对应不同的频率,此方案能完成声音提示功能,同时给人以提示可以类似电脑主机的蜂鸣报警,而且易于实现。

故此红外遥控电子钟的报警方案采用方案二。

1.5键盘接口的选择

在实际应用中,要求设定的上下限温度温值会随着实际情况的需要变化而变化,因此,就要根据实际的情况来改变系统的温度设定值。

作为一个系统,一旦做成产品后,就很难通过对程序的修改来完成对各项初值的设定,因而只有用按键的方式来重新对温度值进行设置。

键盘有独立式和行列式两种,独立式键盘适用于简单的键盘设置中,行列式键盘适用于复杂的键盘设置中。

对于该系统中只需要简单的对温度进行上、下限值设置,因而我们选用独立式键盘,这样的键盘编程简单、可靠。

1.6红外通信的基本原理

红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。

发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大。

滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。

1.6.1红外通信接口的硬件电路设计

单片机本身并不具备红外通信接口,但可以利用单片机的串行接口与片外的红外发射和接收电路,组成一个应用于单片机系统的红外串行通信接口,如图1所示。

1.6.2红外发送器及原理

简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。

红外发送器电路包括脉冲振荡器。

驱动管T1和T2.红外发射管D1和D2等部分。

其中脉冲振荡器由NE555定时器。

电阻(R1.R2)和电容(C1.C2)组成,用以产生38kHz的脉冲序列作为载波信号;红外发射管D1和D2选用Vishay公司生产的TSAL6238,用来向外发射950nm的红外光束。

红外发送器的工作原理为:

串行数据由单片机的串行输出端TXD送出并驱动T1管,数位“0”使T1管导通,通过T2管调制成38kHz的载波信号,并利用两个红外发射管D1和D2以光脉冲的形式向外发送。

数位“1”使T1管截止,红外发射管D1和D2不发射红外光。

若传送的波特率设为1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图4-1所示。

 

图4-1遥控连发信号波形

红外接收器红外接收电路选用Vishay公司生产的专用红外接收模块TSOP1738。

该接收模块是一个三端元件,使用单电源+5V电源,具有功耗低。

抗干扰能力强。

输入灵敏度高。

对其它波长(950nm以外)的红外光不敏感的特点,其内部结构框图如图4-2所示。

 

图4-2红外遥控系统框图

用于红外线遥控电子钟的遥控器包括至少一个按键、红外线发射部分以及分别与按键和红外线发射部分相连的遥控器控制电路,其中所述按键分别表示电子钟的各调节功能。

受红外线遥控的电子钟包括显示面、电子钟控制电路,还包括接收上述遥控器发来的各种发光信号并将发光信号传递给电子钟控制电路的红外线接收部分,而且电子钟控制电路还设有检测来自红外线接收部分的信号并执行信号所表示的电子钟的各调节功能的程序。

1.6.3红外遥控电路原理分析

当红外遥控器按下时,红外接收头接收到红外信号,单片机产生中断,在中断程序进行红外解码,再按解码值判断哪个按键按下。

通过按键值对时间进行设置。

单片机通过读取时钟芯片1302,数据完成时间显示功能,显示部分采用LED128*64显示,可以同时显示年,月,日,时,分,秒,星期及温度。

2主要电路与程序设计

2.1系统硬件的结构框图

根据时间和红外遥控电子钟设计的实际要求和设计方案的论证,系统主要由AT89S51及相关的复位电路组成的单片机最小系统、由DS18B20构成感温测温模块、由液晶显示屏LED128*64显示模块、由蜂鸣器及LED发光二级管组成声光报警单元、独立式键盘输入模块5部分电路组成。

另外为了不浪费单片机剩余资源,同时显示出采集器采集温度实时性,在此特增加了DS1302实时时钟模块与用于上位机电脑通信的MAX232电平转换驱动模块。

综上述实际总体方案电路关系框图如图2-1所示:

 

图2-1总体方案电路关系框图

2.2单片机最小系统设计

单片机作为主控制器,主要是处理各个部分重要的数并据协调各个模块正常工作的关键部件。

AT89S51单片机具有4个8为I/O口;本设计中主要是用了P0口显示模块的数据接口;P2口的P2.5、P2.6、P2.7位作为液晶屏的使能接口;P1口的P1.0、P1.1、P1.2位分别接实时钟ds1302的复位、时钟、数据引脚;P1口P1.3位作为集成数字温度传感器ds18b20的数据接口,用来对ds18b20进行读写操作; 在此特别说明虽然P0内部没有上拉电阻,但是在本设计中只是做为液晶显示屏的数据总线或地址总线;可以省去上拉电阻不接。

At89s51单片机接上相应的电源和时钟,组成单片最小系统系统如图2-2所示。

 

图2-2单片最小系统

2.3温度电路设计

Ds18b20采用一线传输协议,可以使用外部电源工作方式也可以采用寄生电源工作方式,本设计中采用外部电源工作模式,具体电路如图2-3:

 

图2-3外部电源工作模式

2.4显示电路设计

采用LED128*64液晶显示,其中Rs接p2.5、Rw接P2.6、E接p2.7;D0~D7 接p0~P7具体电路如图2-4:

 

图2-4LED128*64液晶显示

2.5声光报警电路

本电路由发光二极管和蜂鸣器构成如图2-5

 

            图2-5声光报警电路

2.6实时时钟模块

本模块由ds1302时钟芯片加晶振组成具体电路如图2-6所示

 

图2-6实时时钟电路

2.7串行通信口与RS232电平转换接口电路

本电路的核心器件是美信公司生产MAX232集成IC,配合一些电容构成,如图2-7所示

 

图2-7串行通信口与RS232电平转换接口电路

2.8键盘电路

如图2-8所示是电路的功能按键电路。

  

       

 

图2-8键盘电路

2.9红外线接收电路

如图2-9所示是电路的红外线接收电路。

图2-9红外线接收电路

3软件设计说明

本系统的执行方法是循环查询加中断执行来显示和控制时间和温度的。

键盘扫描程序是用循环查询的办法,与上位机通信采用中断的方法;这样可以进一步节省单片机的CPU资源,也可以保证实时响应外部输入。

3.1总模块的流程图

 

图3-1总模块的流程图

3.2部分主要模块的流程图

    读取温度DS18B20模块的流程

 

图9键盘扫描处理流程

图3-2部分主要模块的流程图

3.3温度转换核心及其算法

3.3.1DS18B20的内部结构

DS18B20内部功能模块如图2-3所示,主要由4部分组成:

64位光刻R0M(图3)、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。

R0M中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。

高低温报警触发器TH和TL,配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对TH,TL或配置寄存器写入。

配置寄存器中R1,R0决定温度转换的精度位数:

R1R0=’00’,9位精度,最大转换时间为93.75ms;R1R0=‘01’,10位精度,最大转换时间为187.5ms;R1R0=‘10’,11位精度,最大转换时间为375ms;R1R0=’11’,12位精度,最大转换时间为750ms;未编程时默认为12位精度。

本系统采用的也是12位的精度。

3.3.2DS18B20的内存结构

DSI8B20温度传感器的内部存储器包括一个高速暂存RAM(便笺式的内部存储器)和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。

便笺存储器包含了9个连续字节(0~8),前两个字节是测得的温度信息,字节0的内容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。

第5、6、7个字节是预留寄存器,用于内部计算。

字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。

3.3.3DS18B20的测温功能

当DSI8B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的0,1字节。

单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。

温度值格式,其中“S”为标志位,对应的温度计算:

当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。

DSI8B20完成温度转换后,就把测得的温度值与TH做比较,若T>TH或T

DSl820工作过程中的协议:

初始化->RoM操作命令->存储器操作命令->处理数据

(1)初始化

单总线上的所有处理均从初始化开始

(2)ROM操作品令

总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如

指令                                       代码

ReadROM(读ROM)                [33H]

MatchROM(匹配ROM)          [55H]

SkipROM(跳过ROM]              [CCH]

SearchROM(搜索ROM)          [F0H]

Alarmsearch(告警搜索)            [ECH]

(3)存储器操作命令

指令                                           代码

WriteScratchpad(写暂存存储器)     [4EH]

ReadScratchpad(读暂存存储器)     [BEH]

CopyScratchpad(复制暂存存储器) [48H]

ConvertTemperature(温度变换)       [44H]

RecallEPROM(重新调出)                 [B8H]

ReadPowersupply(读电源)              [B4H]

3.3.4温度转换算法及分析

由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。

温度高字节(MSByte)高5位是用来保存温度的正负(标志为S的bit11~bit15),高字节(MSByte)低3位和低字节来保存温度值(bit0~bit10)。

其中低字节(LSByte)的低4位来保存温度的小数位(bit0~bit3)。

由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取小数舍入,保留一位小数即可。

也就说,本系统的温度精确到了0.1度。

算法核心:

首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LSByte)取反加一变成原码。

处理过后把DS18B20的温度Copy到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位,百位的BCD码存入RAM中。

由于百位没有用,默认情况是置为0A,在显示屏上没有任何显示。

温度算法核心代码

//*******************************ds18b20

sbitDQ=P1^7;//定义通信端口

//延时函数

voiddelay(unsignedinti)

{

while(i--);

}

//初始化函数

Init_DS18B20(void)

{

unsignedcharx=0;

DQ=1;//DQ复位

delay(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay(80);//精确延时大于480us

DQ=1;//拉高总线

delay(14);

x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(20);

}

//读一个字节

ReadOneChar(void)

{

unsignedchari=0;

unsignedchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay(4);

}

return(dat);

}

//写一个字节

WriteOneChar(unsignedchardat)

{

unsignedchari=0;

for(i=8;i>0;

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2