红外光通信装置-电赛报告

合集下载

红外光通信装置设计与总结报告

红外光通信装置设计与总结报告

红外光通信装置设计与总结报告摘 要 随着计算机与通信技术的飞速发展,计算机通信得到广泛应用,硬件技术可谓是日新月异,其总体趋势向着高集成、高稳定性、高速和高性价比方向发展。

而红外无线通信系统装置则是目前应用较为广泛的通信形式。

该红外通信系统通过将音频信号调制在465KHZ 的载波上,然后再经红外发射电路发射出去,在接受指令时通过红外接收管接受红外信号,经选频放大电路和滤波电路完成解调,最后通过功率放大电路经扬声器还原声音。

另一方面,本实验利用PIC18f4520进行信息的采集和处理,利用放大电路跟内置A/D 转换芯片,对温度进行测量并显示在1602上。

一丶方案设计信号的调制方式有三种,即调幅、调频、调相其中调频调制具有比幅度调制调频率高、带宽宽、抗干扰强,同时比调相方式经济等特点。

锁相环技术(PLL )是一种能自动跟踪输入信号相位的闭环自动控制系统。

该技术在频率调制方面应用十分广泛,遍及广播、电视、雷达、导航、计算机及仪表等领域。

锁相环集成电路CD4046( 能跟踪输入信号相位的闭环自动控制系统)是一种低频多功能单片机数字锁相环集成电路,最高工作频率1.3MHz,电源电压3~18V 。

与类似的双极性单片锁相环集成电路相比,功耗仅为其数百分之一,因而它在频率调制与解调、频率合成、电视机彩色副波提取、FM 立体声解码、遥控系统、频率的编码和译码等诸多方面均得到了应用。

集成环路部件以其低成本、性能优良、使用简便而得到了青睐。

本文介绍了集成锁相环cd4046在频率的调制与解调方面的应用。

基于频率调制和锁相环技术的优点,本文在文献【1】的基础上介绍一种应用锁相环和红外技术制作而成,采用频率调制方式,用红外线传送音频信号的调频红外无线耳机。

该耳机具有供电方式多样,传输距离10m 以内,音质较好,红外信号基本不受电磁干扰,性价比高等特点。

二丶 设计框图(1)设计框图思路发射部分 接收部分(2)设计细节框图发射机接收机三丶电路设计调制电路音频信 号预放大电 路 CD4046调制 红外线二极管发射 接受信号并放大CD4046解调 功放电路电路当从9脚输入载波信号Ui时,从4脚可输出受输入信号调制的调频信号Uo,由于调频时VCO有一定的频偏,所以不需要12脚外接电阻,仅用R5和C6确定、VCO的中心频率fo如果对频偏有要求,则根据实际需要选择12脚电阻。

红外线通信装置 开题报告书

红外线通信装置  开题报告书

信距离 2m,如图 2 所示。语音通信质量要求同基本要求(3)。中继转发节点采用
1
5V 直流单电源供电,电路见图 3.串接的毫安表用来测量其供电直流电流。
语音信号
红外光
红外发射装置
中继转发节
温度传感

2m
2m 红外光

温度显示
红外接收装
耳机

图 2:红外光通信中继转发装置方框图
在满足发挥部分(2)要求的条件下,尽量减小中继转发节点供电电流。
低频信号源输入,频率围为 300~3400Hz。
3)接受的声音应无明显的失真。当发射端输入语音信号改为 800Hz 单音信号
时,在 8 欧电阻负载上,接收装置的输出电压有效值不小于 0.4V。不改变电路状态,
见笑发射端输入信号的幅度至 0V,采用低频毫伏表(低频毫伏表为有效值显示,频率
响应围低端不大于 10Hz、高端不小于 1MHz)测量此时接收装置输出端噪声电压,
接收电路的红外线接收二极管是一种光敏二极管,我们在使用的时候要给红外接 收二极管加反向偏压,它才能正常工作而获得高的灵敏度。由于红外发光二极管需 要的发射功率较小,红外接收二极管收到的信号较弱,所以在红外线的接收端要增 加高增益放大电路,也就是说我们需要使用放大倍数较高的功率放大器来放大我们 接收到的电信号,使我们之后再耳机或是扬声器听到的声音和输入的声音信号差别 不大。
读书不大于 0.1V。如果接收装置设有静噪功能,必须关闭功能进行上述测试。
4) 当接收装置不能接收发射端发射的信号时,要用发光管指示。
3、发挥部分
1)增加一路数字通道,实时传输发射端环境温度,并能在接受端显示。数字信
号传输延时不超过 10s。温度测量误差不超过 2℃。语音信号和数字信号能同时传输。

红外通信行业报告范文

红外通信行业报告范文

红外通信行业报告范文红外通信行业报告。

红外通信是一种利用红外线进行数据传输的技术,它在现代通信领域中扮演着重要的角色。

本报告将对红外通信行业的发展现状、市场规模、技术趋势和未来发展进行分析和展望。

首先,我们来看红外通信行业的发展现状。

随着智能手机、智能家居等智能设备的普及,红外通信技术得到了广泛的应用。

通过红外线,设备可以进行无线数据传输,实现遥控操作、数据传输等功能。

目前,红外通信技术已经成熟,应用范围广泛,涵盖了消费电子、工业自动化、安防监控等多个领域。

其次,我们来分析红外通信行业的市场规模。

据统计数据显示,红外通信市场规模逐年增长,2019年全球红外通信市场规模达到了数十亿美元。

随着5G技术的普及和智能设备的快速发展,红外通信市场有望进一步扩大。

特别是在智能家居、智能医疗、智能交通等领域,红外通信技术将有更广阔的应用前景。

接下来,我们谈谈红外通信技术的趋势。

随着技术的不断进步,红外通信技术也在不断升级。

目前,红外通信技术已经实现了高速传输、低功耗、长距离传输等特点。

未来,随着红外通信技术的进一步发展,我们有望看到更多创新应用的出现,比如红外通信与人工智能、大数据等技术的结合,将为红外通信行业带来新的增长点。

最后,我们展望红外通信行业的未来发展。

红外通信技术将继续在智能设备、智能制造、智能城市等领域发挥重要作用。

随着5G时代的到来,红外通信技术有望在更多领域得到应用,比如在智能交通中的车辆间通信、智能医疗中的远程医疗等方面。

同时,随着技术的不断进步,红外通信技术的成本也将进一步降低,推动红外通信市场规模的进一步扩大。

综上所述,红外通信行业具有广阔的发展前景,市场规模不断扩大,技术不断升级。

随着智能设备的普及和5G技术的发展,红外通信技术将在更多领域发挥重要作用,为人们的生活和工作带来更多便利。

我们有理由相信,红外通信行业将迎来更加美好的未来。

2013电子设计大赛F题-红外通信

2013电子设计大赛F题-红外通信

2013年全国大学生电子设计竞赛红外光通信装置(F题)2013年9月7日摘要设计红外通信收发系统,该系统由信号产生模块、红外光发送模块和红外光接收模块三部分构成,实现对信号的产生、发送、接收以及实现对信号的功率放大。

掌握系统的原理,用Altium designer软件绘制原理图并生成PCB 板,然后实际操作搭建电路板。

系统主要由信号产生电路,红外光发射系统,红外光接收系统三个模块构成,由音乐芯片构成的信号产生电路发出电信号,通过发送系统转化为光信号发送,通过接收系统接受光信号并将其转化为电信号,再通过喇叭将其重新转化为语音信号,实现红外光通信的全过程。

首先主要用LM386芯片构成音乐产生电路,发出电信号,由于发出的信号比较微弱,所以需要再经过一个分压式共射电路适当放大信号,并通过LED红外发送管转化为光信号发送。

?信号经接收管接收后,通过运放电路得到较高的输出功率,驱动喇叭发出音乐芯片的音乐。

利用放大器LM386、AD623、AD8608可以得到200的增益,驱动喇叭得到所需功率。

AbstractDesign of infrared communication transceiver system, the system module, the infrared light generated by the signal of sending module and infrared receiving module, realize the signal producing, sending, receiving, and realize the signal of power amplifier. The principle of control system, with Altium designer software map principle and generate the PCB, and then practical building circuit boards. System is mainly composed of signal generation circuit, infrared launch system, the infrared receiving system three modules, which composed the music chip issue electrical signal circuit, by sending system is converted into optical signals to send, receive light signals by receiving system and convert it into electrical signals, then convert it to speech signal over the loudspeaker, realize the whole process of infrared communication. First mainly with LM386 circuit chip music, send electrical signals, because the signals are faint, so need to pass a partial pressure type radio appropriate amplified signals, and through the LED infrared transmitting tube into the light signal transmission. Signal after receiving tube, high output power is obtained by op-amp circuit, drive the horn music chip music. Using amplifier LM386, AD623, AD8608 can get the gain of 200, and drive the horn to get the required power.目录1系统方案 (4)1.1 发射管的论证与选择 (4)1.2 输入端运放的论证与选择 (4)1.3 信号传输的论证与选择 (4)1.4 功率放大器的论证与选择 (6)1.5 温度信号的获取与传输 (6)1.6 显示模块 (6)2系统理论分析与计算 (6)2.1 语音信号的放大与接受 (6)2.2 温度信号的接受 (6)2.3 传输距离的测试 (6)3电路与程序设计 (6)3.1电路的设计 (6) (6) (7) (7) (8) (8) (8)3.2程序的设计 (9) (9) (9) (10)4测试方案与测试结果 (10)4.1测试方案 (10)4.2 测试条件与仪器 (10)4.3 测试结果及分析 (10)5总结 (11)附录1:电路原理图 (12)附录2:源程序 (13)红外光通信装置(F题)1、系统方案论证:总体系统由信号产生电路、红外光发射系统、红外光接收系统三个模块构成,由音乐芯片构成的信号产生电路发出电信号,通过发送系统转化为光信号发送,通过接收系统接收光信号并将其转化为电信号,再通过喇叭将其重新转化为语音信号,实现红外光通信的全过程。

红外光通信装置 设计报告

红外光通信装置 设计报告

红外光通信装置设计报告红外光通信装置设计要求 (1)基本实现方案分析 (2)2.1模拟调制方案 (2)方式1:调幅 (2)方式2:调频 (2)2.2数字调制方案 (2)3. 红外通信信道测试和数字调制方案选择 (3)3.1发送管接收管性能测试 (3)3.1数字调制方案选择 (3)4.硬件电路设计 (4)4.1 AD输入部分 (4)4.2 DA输出部分 (5)4.3 红外发送部分 (6)4.4 红外接收部分(技术难点) (6)4.6 MIC接收电路 (7)5.软件设计 (8)5.1基本工作方式 (8)5.4数字通信方式 (8)5.2发送模式 (8)5.3接收模式 (9)5.4转发模式 (9)红外光通信装置设计要求设计一款红外通讯装置,可以传送频率范围为300~3400Hz的语音信号和数字信号。

基本实现方案分析2.1模拟调制方案方式1:调幅原理:红外发送端发送固定频率的红外信号,利用声音信号对红外信号进行幅度调制。

优点:方案简单,纯模拟电路即可实现。

缺点:1)抗干扰特性较差,很容易受外界光强影响。

2)传输距离较近,距离变远后声音变小,接收效果明显下降,噪声增大。

3)很难实现产地数字信号的功能。

方式2:调频原理:红外发送端发送一定幅度的红外信号,利用声音信号对红外信号的频率进行调制。

优点:1)抗干扰性比调幅方案好2)不怕信号衰减,传输距离比调幅方案远。

缺点:1)调频发送和调频接收电路复杂,调试难度大。

2)很难实现产地数字信号的功能。

2.2数字调制方案原理:把声音信号首先按照一定速率进行AD采样量化,然后把AD采样值通过红外发送给接收端,接收端再按照采样速率进行重现声音。

优点:1)因为传输过程为数字信号,信号的抗干扰特性好,不怕信号远距离衰减。

2)红外传输的为数字信号,所以可以把其他数字信号一起发送,从而达到同时传送数字信号和声音信号的功能。

3)因为传输的是数字信号,所以系统调试相对模拟电路可能会简单些。

电子设计大赛F题红外通信

电子设计大赛F题红外通信

2013年全国大学生电子设计比赛红外光通讯装置( F 题)2013年9月7日纲要设计红外通讯收发系统,该系统由信号产生模块、红外光发送模块和红外光接收模块三部分组成,实现对信号的产生、发送、接收以及实现对信号的功率放大。

掌握系统的原理,用 Altium designer 软件绘制原理图并生成 PCB 板,而后实质操作搭建电路板。

系统主要由信号产生电路,红外光发射系统,红外光接收系统三个模块组成,由音乐芯片组成的信号产生电路发出电信号,经过发送系统转变为光信号发送,经过接收系统接受光信号并将其转变为电信号,再经过喇叭将其从头转变为语音信号,实现红外光通讯的全过程。

第一主要用 LM386 芯片组成音乐产生电路,发出电信号,因为发出的信号比较轻微,所以需要再经过一个分压式共射电路适合放大信号,并经过 LED 红外发送管转化为光信号发送。

?信号经接收管接收后,经过运放电路获得较高的输出功率,驱动喇叭发出音乐芯片的音乐。

利用放大器 LM386 、AD623 、 AD8608能够获得200的增益,驱动喇叭获得所需功率。

AbstractDesign of infrared communication transceiver system,the system module, the infrared light generated by the signal of sending module and infrared receiving module,realize the signal producing, sending,receiving,and realize the signal of power amplifier.The principle of control system, with Altium designer software map principle and generate the PCB, andthen practical building circuit boards. System is mainly composed ofsignal generation circuit,infrared launch system,the infrared receiving system three modules, which composed the music chip issueelectrical signal circuit, by sending system is converted into opticalsignals to send, receive light signals by receiving system and convertit into electrical signals, then convert it to speech signal over theloudspeaker,realize the whole process of infrared communication.First mainly with LM386 circuit chip music, send electrical signals, becausethe signals are faint, so need to pass a partial pressure type radioappropriate amplified signals,and through the LEDinfrared transmitting tube into the light signal transmission. Signal after receiving tube,high output power is obtained by op-amp circuit, drive the horn musicchip music. Using amplifier LM386, AD623, AD8608can get the gain of200, and drive the horn to get the required power.目录1 系统方案 (4)1.1 发射管的论证与选择 (4)1.2 输入端运放的论证与选择 (4)1.3 信号传输的论证与选择 (4) (6)...6...6 26 (6)66 3 (6)...6 67 .7 (8)88 3.2 (9)...9...9..10 4..10 (10)..10 ..10 5 (11)112 213红外光通讯装置( F 题)11①② 22输 3.4KHz 正弦波距离能够达到 2m,幅值可达几百毫伏。

红外光通信课程设计报告

红外光通信课程设计报告

苏州科技学院红外光通信装置课程设计报告院系:电子信息工程班级:姓名:指导老师:红外光通信一、红外光通信的定义红外线通信是一种廉价、近距离、无线、低功耗、保密性强的通讯方案,主要应用于近距离的无线数据传输,也有用于近距离无线网络接入。

从早期的IRDA规范(115200bps)到ASKIR(1.152Mbps),再到最新的FASTIR(4Mbps),红外线接口的速度不断提高,使用红外线接口和电脑通信的信息设备也越来越多。

红外线接口是使用有方向性的红外线进行通讯,由于它的波长较短,对障碍物的衍射能力差,所以只适合于短距离无线通讯的场合,进行“点对点”的直线数据传输,因此在小型的移动设备中获得了广泛的应用。

二、红外光通信的特点红外通信技术适合于低成本、跨平台、点对点高速数据连接,尤其是嵌入式系统。

其主要应用:设备互联、信息网关。

设备互联后可完成不同设备内文件与信息的交换。

信息网关负责连接信息终端和互联网。

红外通信技术是在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持其特点主要有:主要优点如下:(1)通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发。

(2)主要是用来取代点对点的线缆连接。

(3)新的通信标准兼容早期的通信标准。

(4)小角度(30度锥角以内),短距离,点对点直线数据传输,保密性强。

(5)传输速率较高,4M速率的FIR技术已被广泛使用,16M速率的VFIR技术已经发布。

红外数据通信技术的缺点:(1)受视距影响其传输距离短;(2)要求通信设备的位置固定;(3)其点对点的传输连接,无法灵活地组成网络等。

但是这些缺点并没有给IRDA的应用带来致命的障碍,红外技术已在手机和笔记本电脑等设备上得到了广泛的应用。

三、红外光通信的技术原理红外线可分为三部分,即近红外线,波长为0.75~1.50μm之间;中红外线,波长为1.50~6.0μm之间;远红外线,波长为6.0~l000μm 之间。

红外光通信装置实训报告

红外光通信装置实训报告

一、引言随着科技的不断发展,无线通信技术已经成为人们生活中不可或缺的一部分。

红外光通信作为一种新型的无线通信方式,具有传输速度快、抗干扰能力强、成本低廉等优点,在智能家居、物联网等领域具有广泛的应用前景。

本次实训旨在通过设计、制作和测试红外光通信装置,掌握红外光通信的基本原理和实际应用。

二、实训目的1. 了解红外光通信的基本原理和特点;2. 掌握红外光通信装置的设计与制作方法;3. 提高动手能力和实际操作技能;4. 熟悉红外光通信在实际应用中的优势与挑战。

三、实训内容1. 红外光通信原理红外光通信是利用红外线作为载波,通过调制和解调技术实现信息传输的一种通信方式。

红外线是一种波长在780nm至1mm之间的电磁波,具有传输速度快、抗干扰能力强、成本低廉等优点。

2. 红外光通信装置设计本次实训设计的红外光通信装置主要包括以下模块:(1)红外发射模块:将语音信号进行调制,通过红外发射管发射出去;(2)红外接收模块:接收红外发射模块发射的红外信号,并将其解调为语音信号;(3)中继转发模块:将接收到的信号进行放大、滤波和转发,以实现长距离传输;(4)电源模块:为整个装置提供稳定的电源供应。

3. 红外光通信装置制作根据设计要求,制作红外光通信装置的具体步骤如下:(1)选取合适的红外发射管和红外接收管;(2)设计电路原理图,并选用合适的电子元器件;(3)焊接电路板,连接各个模块;(4)调试各个模块,确保装置正常运行。

4. 红外光通信装置测试(1)测试红外发射模块:调整发射功率,确保信号传输稳定;(2)测试红外接收模块:调整接收灵敏度,确保信号接收质量;(3)测试中继转发模块:调整转发增益,确保信号传输距离;(4)测试整个装置:进行语音通信,观察通信质量。

四、实训结果与分析1. 实训结果经过设计与制作,成功完成了红外光通信装置的搭建。

测试结果显示,装置在传输距离2m内,语音信号无明显失真,通信质量良好。

2. 实训分析(1)红外发射模块:通过调整发射功率,可以改变信号传输距离。

红外光通信系统实训报告

红外光通信系统实训报告

一、实训背景随着信息技术的飞速发展,无线通信技术已成为人们生活中不可或缺的一部分。

红外光通信作为一种新兴的无线通信技术,具有传输速度快、抗干扰能力强、保密性好等特点,在军事、工业、医疗等领域具有广泛的应用前景。

为了提高学生对红外光通信技术的了解和掌握,本实训旨在通过实际操作,让学生熟悉红外光通信系统的组成、工作原理和调试方法。

二、实训目的1. 了解红外光通信系统的基本组成和工作原理;2. 掌握红外光通信系统的主要技术参数和性能指标;3. 学会红外光通信系统的调试方法;4. 培养学生的动手能力和团队协作精神。

三、实训内容1. 红外光通信系统原理介绍红外光通信系统主要由发射器、接收器、调制解调器、传输介质等组成。

发射器将电信号调制为光信号,通过传输介质传输到接收器,接收器将光信号解调为电信号。

2. 红外光通信系统硬件设计实训中,我们使用以下硬件设备:(1)红外发射器:采用850nm波长红外发光二极管作为发射器件;(2)红外接收器:采用850nm波长红外光敏二极管作为接收器件;(3)调制解调器:采用单片机(如STM32)作为控制核心,实现数字通信;(4)传输介质:采用光纤或空气作为传输介质;(5)电源:为红外发射器、接收器和单片机提供电源。

3. 红外光通信系统软件设计实训中,我们使用以下软件:(1)Keil uVision:用于编写和编译单片机程序;(2)Proteus:用于仿真和调试单片机程序;(3)MATLAB:用于分析和处理信号。

4. 红外光通信系统调试(1)硬件调试:连接红外发射器、接收器和单片机,确保各部件正常工作;(2)软件调试:编写和编译单片机程序,实现数字通信功能;(3)信号处理:使用MATLAB对信号进行分析和处理,优化系统性能。

四、实训结果与分析1. 红外光通信系统性能指标(1)传输距离:在无明显失真条件下,最大传输距离可达5m;(2)传输速率:采用串行通信方式,传输速率可达9600bps;(3)抗干扰能力:红外光通信系统具有较强的抗干扰能力,适用于恶劣环境;(4)保密性:红外光通信系统采用数字通信方式,具有较强的保密性。

红外光通信报告

红外光通信报告

摘要
本题目要求设计一个红外光通信装置,能够定向并实时传输语音和温度信息。

语音信号通过功率放大后,与经过ASK调制的温度信号相加,由红外发射管实现定向传输。

红外接收端接收到的信号经过低通滤出音频信号,再经过功率放大,重新恢复语音信号;通过高通滤出温度的ASK信号,再经过放大,整流,低通滤波,波形整形,以非相干解调的方式还原温度信号,并由单片机处理和显示。

在2m传输距离下,语音信号无明显失真,可以实时准确传输发射端的环境温度。

整个系统抗干扰性强,满足基础部分要求和部分发挥部分要求。

关键词:红外通信ASK 非相干解调。

红外光通信装置设计报告

红外光通信装置设计报告

2013年全国大学生电子设计竞赛红外光通信装置设计报告(F题)【本科组】2013年9月7日目录一、前言 (1)二、系统方案设计 (2)(一)设计原理 (2)1、红外红外线的特点 (2)2、红外线发射和接收 (2)(二)设计方案 (3)整体方案图 (3)(三)单元电路设计 (4)1、发射端 (4)(1)音频发射端电路图 (4)(2)数字信号发射端 (4)(3)发射部分用到的元器件及其相关参数 (5)2、接收端 (5)三、红外通信接口的硬件电路设计 (5)1、红外发送器 (6)2、NE555时基电路芯片 (6)3、红外发射二极管 (7)四、调试与测试 (8)1、红外发射模块通信的调试与测试 (8)2、红外接收模块通信的调试与测试 (8)五、系统软件设计 (8)系统软件设计整体流程图 (8)六、测试方案与测试结果 (11)(一)测试方案 (11)(二)测试条件与仪器 (11)(三)测试结果 (11)七、结语 (11)八、参考文献 (11)九、附录 (12)1、程序 (12)2、系统结构原理图 (13)红外光通信装置设计报告(F题)一、前言本设计利用已学电路知识,将电路分成红外发射模块、红外接收模块、环境温度传输模块三个模块,完成了红外光通信收发系统设计,以话筒为输入信号,由发送电路调试后,再由输入电路的红外接收管接收,经由(LM-386)放大,高通滤波器过滤后,在喇叭(耳机)中听到输入的语音。

关键词:红外通信;发射;接收;温感;The design used the knowledge of circuit , and it has been divided into three parts as infrared emission circuit module, the infrared receiving module, and temperature transmission module , then we completed the design of infrared communication transceiver system, we used microphone to input signal, the debugging by sending circuit and then received by the input circuits of infrared receiving tube, via (LM - 386) amplifier, filter high-pass filter, I we could heard a voice input in the horn (headphones).二、 系统方案设计(一)设计原理1、红外红外线的特点人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫。

2013全国电子设计大赛无线红外语音传输系统解析

2013全国电子设计大赛无线红外语音传输系统解析

2013年全国大学生电子设计竞赛红外光通信装置(F题)【本科组】2013年9月7日摘要:随着科技的进步,无线电通信技术得到了前所未有的发展,而红外无线数据通信相对于无线电数据通信具有低功耗、低价格、低电磁干扰、高保密性等优点,目前发展迅猛,尤其在近距离无线数据通信中得到了广泛的应用.尤其是随着编码调制技术的发展,红外无线数据通信的数据速率越来越高,成为许多移动设备、室内办公设备以及手持设备无线数据通信的一个重要途径。

本系统通过红外光通信装置将语音信号和环境温度无线传输出来,接收端口显示温度并将语音信号从耳机传出。

环境温度由STM32单片机检测,语音信号和数字信号能同时传输。

关键词:红外光通信,无线传输,STM32单片机Abstract:With the advancement of technology, wireless communication technology has been an unprecedented development, and infrared wireless data communications relative to the radio data communication with low power consumption, low price, low electromagnetic interference, high security, etc., is currently developing rapidly, especially in in the short-range wireless data communication has been widely used. Especially with the coding and modulation technology, infrared wireless data communications increasingly high data rates, as many mobile devices, office equipment, and handheld devices indoor wireless data communication is an important way. The system communication device via infrared light and ambient temperature voice signal wireless transmission out, the receiving port display temperature and outgoing voice signal from the headphones. The ambient temperature detected by the STM32 MCU, voice signals and digital signals can be transmitted simultaneously.Key words:infrared optical communications, wireless transmission, STM32 microcontroller目录一、方案比较及论证 (1)1.1 控制器的选择与论证 (1)1.2 功率放大器的选择与论证 (1)1.3 显示模块的选择与论证 (1)二、系统理论分析与计算 (2)2.1 系统整体设计 (2)2.2 系统工作原理 (2)三、电路设计 (3)3.1 红外发射电路 (3)3.2 红外接收电路 (4)3.3 功率放大器电路 (5)3.4 电源模块电路 (5)四、系统测试方案与测试结果 (6)4.1 测试方案 (6)4.2 测试条件与仪器 (6)4.3 测试结果及分析 (6)4.3.1 接收装置能否接收发送的信号 (6)4.3.2 检测环境温度能否传送 (7)4.3.3 红外光通信中继转发节点测试(发射与中继节点距离2m) (7)五、设计总结 (7)附录 (9)附录一:STM32核心板原理图 (9)附录二:部分程序 (10)附录三:实物图 (11)参考文献 (12)红外光通信装置(F题)【本科组】一、方案比较及论证1.1 控制器的选择与论证方案一:采用STM32F103,STM32F103价格便宜,应用范围广,功能强大,处理速度快,抗静电抗干扰强,低功耗,内部集成7个定时器,2个12位ADC,9个通信接口。

电赛练习第一次题目

电赛练习第一次题目

题目一:红外/激光光通信装置一、任务:设计并制作一个红外/激光光通信装置。

二、要求:1.基本要求(1)红外光通信装置利用红外发光管和红外光接收模块作为收发器件,用来定向传输语音信号,传输距离大于1m,如图1所示。

图1 红外光通信装置方框图(2)传输的语音信号可采用话筒或Φ3.5mm的音频插孔线路输入。

(3)接收的声音应无明显失真。

(4)当接收装置不能接收发射端发射的信号时,要用发光管指示。

2.发挥部分(1)增加一路数字信道,实时传输发射端环境温度,并能在接收端显示。

(2)数字信号传输时延不超过10s。

温度测量误差不超过2℃。

语音信号和数字信号能同时传输。

(2)其它特色与创新。

三、说明1.本装置的通信信道必须采用红外光信道,不得使用其他通信装置。

发射端及转发节点必须采用分立的红外发光管作为发射器件,安装时需外露发光管,以便检查。

不得采用内部含有现成通信协议的红外光发射芯片或模块。

2.测试时,自备MP3或录音机及音频连接线。

题目二:频率补偿电路一、任务:设计并制作一个频率补偿电路,补偿“模拟某传感器特性的电路模块”(以下简称“模拟模块”)的高频特性。

电路结构如图1所示。

图1 电路结构二、要求:1.基本要求(1) 按图1所示组装“模拟模块”电路,其中正弦波电压信号发生器可使用普通函数信号发生器。

在开关K接V s的条件下达到如下要求:①V s为200Hz、峰峰值为10V时,“模拟模块”输出V b没有明显失真。

②以200Hz为基准,V b的−3dB高频截止频率为4.5 kHz ± 0.5 kHz。

(2) 设计并制作频率补偿电路,使之达到如下要求:①频率为200Hz时的电压增益A(200Hz)=|V o/V s|=1± 0.05。

②以电压增益A(200Hz)为基准,将A(f)=|V o/V s|的−3dB高频截止频率扩展到大于50kHz。

③以电压增益A(200Hz)为基准,频率0~35kHz范围内的电压增益A(f)的波动在±20%以内。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013年全国大学生电子设计竞赛红外光通信装置(F题)【本科组】2013年9月6日目录摘要 (3)1.系统方案设计 (5)1.1设计任务 (5)1.2方案的设计与论证 (5)1.2.1红外光通信装置总体方案设计 (5)1.2.2单片机模块的选择 (6)1.2.3红外发射接收装置模块的选择 (7)1.2.4语音采集模块方案的选择 (7)2.单元硬件电路设计 (7)2.1发射部分电路的设计 (7)2.2中转部分电路的设计 (8)2.3接收部分电路的设计 (8)3.程序设计 (9)3.1发射装置程序流程图 (9)3.2接收装置程序流程图 (10)4.系统测试 (10)5.理论分析与计算 (11)6.结论 (12)参考文献 (12)附录 (13)摘要随着红外技术的发展,红外光通信已经成为越来越普及的无线通信方式。

在本次设计作品中,红外光通信装置采用红外光传输及无线工作机制,其组成结构主要包括:红外发射装置、中继转发节点、红外接收装置三部分组成。

红外发射装置主要是由声音采集系统经单片机存储后发射,红外接收装置接收到的信息经单片机存储后再经过D/A转换播放。

通过采用A/D,D/A 转换的方法达到了本次作品设计的目的。

在电子消费领域当中,红外产品的使用较为普遍,它多用于简单的近距离控制,如家电、玩具、各种抄表系统、工业控制、娱乐设施等领域。

所以,其具有很强的现实意义。

关键词:红外通信发射接收 A/D转换 D/A转换AbstractWith the development of infrared, and infrared optical communication has become more and more popular way of wireless communication.This design works, infra-red communication devices use infrared light transmission and wireless working mechanisms, its composition include: infrared emitting device, relay node, an infrared receiver unit is composed of three parts. Infrared Launcher corresponds with sound collection system by single-chip computer memory after the launch, IR receiver receives the information via a single-chip storage, and then after d/a conversion play. Through the use of a/d,d/a conversion way to achieve the purpose of the production design.In the field of consumer electronics, using infrared products are more prevalent, it is used for simple control at close range, such as household appliances, toys, metering systems, industrial control, recreational facilities, and other fields. So, it has a lot of practical significance.Key words: Infrared Communication launch receive A/D conversion D/A conversion1系统方案设计1.1设计任务根据命题要求,设计并制作一个红外光通信装置。

红外光通信装置利用红外发光管和红外接收模块作为收发器件用来定向传输语音信号,传输距离为2m.传输的语音信号频率范围为300–3400HZ,接收的声音应无明显失真。

此外,增加一路数字信道,实时传输发射端环境温度,并能在接收端显示。

数字信号传输时延不超过10s,温度测量误差不超过2℃,语音信号和数字信号能同时传输。

同时,设计并制作一个红外光通信中继转发节点,以改变通信方向90℃,延长通信距离2m,中继转发节点采用5V直流单电源供电,尽量减小转发节点供电电流。

1.2方案的设计与论证1.2.1红外光通信装置总体方案设计整套方案主要由红外发射装置、中继转发节点、红外接收装置三部分组成。

先把传输进红外发射装置的声音经过放大电路进行放大,然后由STC12C5A08S2单片机自身带有的A/D转换功能把模拟信号转换为数字信号对放大之后的语音进行采集,同时把采集到的数字信号存储到STC12C5A08S2单片机中。

然后,经555定时器电路产生38K载波,并利用三极管对单片机中存储的数据和555定时器产生的38K载波进行调制到达中继转发节点,并由1838红外接收头进行解调,接着把解调后的信号编码发送给中继点上的单片机STC11F04E,并由此单片机对其数据进行取反。

再由555定时器电路产生38K载波,利用三极管对经单片机取反后的数据和38K载波进行调制,之后到达接收点。

到达接收点的信号经STC12C5A08S2进行解码,送给 TLC5615CP芯片构建的D/A转换电路把数字信号转换为模拟信号,最后再将此模拟信号发送给耳机,并由耳机播放。

采用此方案的框图如下:温度、音频1.2.2单片机模块的选择方案一:传统51系列是的单片机,受其结构本身的限制很大,尤其模拟功能部件的增加更显困难,而且运行速度很慢,功耗比较高,抗干扰能力也不是很强。

方案二:STM32系列具有一流的外设、低功耗、最大的集成度、简单的结构和易用的工具,是ARM 公司的高性能Cortex-M3内核。

但我们对此系列的单片机的编程操作不太熟练。

方案三:宏晶芯片STC12C5A08S2是增强型的51系统单片机,具有一个时钟,高速、高可靠、宽电压、增加第二复位功能脚和外部掉电检测电路,采用低功耗设计,最重要的是其内部有AD 外设和45K 的EEPROM,我们可由此进行模数转换和信息存储。

STC11F04E 单片机超强抗干扰,超强抗静电,速度快,输入/输出口多,超低功耗,在系统可编程,无需编程器,无需仿真器,放大系统单片机发送中继转发节点显示温度音频信号A/D 采集单片机存储红外接收装置单片机存储 DAC 播放温度信号可远程升级。

由于对于中继点低功耗的要求,所以把此单片机用于中继转发节点。

基于我们对各种系列单片机运用的熟练程度和此次作品中所要实现的各项基本功能,我们决定在此方案设计中采用方案三。

1.2.3红外发射接收装置模块的选择方案一:红外模拟信号。

这种方法速度快,能达到实时传输效果。

但是,在传输过程中,噪音比较大,容易受干扰。

而且,传输的距离也比较近。

方案二:红外数字信号。

将要发射出去的模拟信号转换成数字信号,将数字信号送给红外发射电路,经该电路的调制转变成红外光信号在空中传输,到达中继转发节点后,转发到红外接收电路,接收电路收到该红外光信号,经过该电路的解调,将此红外光信号还原成可被单片机或其他处理系统处理的信号,由单片机或其他处理系统内部处理得到原来的数据编码。

比较方案一和方案二,又考虑到我们对模拟部分的知识和数字部分的知识的掌握程度,我们决定选择方案二。

1.2.4语音采集模块方案的选择方案一:采用语音编解码芯片。

这种方法失真度小,信噪比较低,数据量大。

但在数字图像处理中,由于数据量大,算法难度高,因此实时性成为技术难点之一。

而且,在传输过程中所运用的1838红外接收头传输信息速度慢,而语音编码解码芯片数据量过大,与后续装置不协调。

方案二:采用A/D,D/A转换装置。

先把模拟信号转换为数字信号,再经中继转换节点在通信协议的控制下把数字信号转换为模拟信号。

比较两种方案,并基于现实的情况,此模块选择方案二。

2单元硬件电路设计2.1发射部分电路的设计发射部分主要由双运放NE5532组成的放大器、STC12C5A08S2单片机和NE555定时器构建的电路组成。

其电路图如图1:图12.2中转部分电路的设计中转部分主要由1838红外接收头、STC11F04E单片机NE555定时器、三极管等搭建的电路组成,其电路图如图2:图22.3接收部分电路的设计接收部分主要由1838红外接收头、STC12C5A08S2单片机、TLC5615数模转换器、TL431可控精密稳压源等搭建的电路组成。

其电路图如图3:图 33 程序设计系统程序主要由发射装置程序和接收装置程序两部分组成。

系统程序流程图如下所示。

3.1初始化采集信号单片机存储存储结束?读存储发送NY开始读存储结束?结束YN3.2接收装置程序流程图开始初始化接收单片机存储N接收完成?Y读存储ND/A转换结束?Y结束4 系统测试传输距离测试:传输距离传输情况1m 良好2m 良好3m 良好4m 良好中继点电流大小:100MA左右温度误差:1°C无发射信号时无噪音800HZ信号输出0.3V有信号时8个LED闪烁,无信号时LED不闪烁5 理论分析与计算本系统使用数字信号传输,编码规则自定,具体如下:每串数据有1.5MS高电平,2MS低电平的引导码高电平时间0.5低电平时间0.6MS代表二进制数0高电平时间1.0MS代表二进制数1传输波形如图:波形1波形2波形36 结论本系统功能上和参数上都达到了题目的要求,基本上完成了题目的各项设计。

并按照要求完成了其发挥部分,可以精确的显示温度,也可以利用中继点进行转接,但是声音信号传输延时较大。

优点:本系统采用数字信号传输数据,能够最大限度的减少干扰且传输距离较长,适用于信息量较少、环境干扰较大的情况传输数据。

本系统的不足:由于红外数字信号传输使用38K载波频率,很大程度上限制了数据传输的速度,所以本系统不适合音频等数据量较大的数据传输。

所以本系统还有较大的提升空间,如声音信号使用模拟信号传输、温度信号使用数字信号传输能达到声音信号和温度信号实时传输。

参考文献[1]阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2006.[2]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出版社,2006.[3]黄智伟.全国大学生电子设计竞赛技能训练(第2版)[M].北京:北京航空航天大学,2011.[4]代万辉,陈松方.全国电子设计大赛培训宝典[M].北京:北京航空航天大学,2012.[5]求是科技.8051系列单片机C程序设计完全手册[M].北京:人民邮电出版社,2006.[6]杨欣,王玉凤,刘湘黔.电子设计从零开始[M].北京:清华大学出版社2005. 附录:源程序//*************************send message**************************//#include "STC12C5A60S2.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned chartypedef unsigned char BYTE;typedef unsigned int WORD;uchar codestr1[]={0x28,0xA6,0x4A,0x0E,0x05,0x00,0x00,0x84};//ROM 1 uchar codestr2[]={0x28,0xA5,0x86,0x40,0x04,0x00,0x00,0x80};//ROM 2 sbit D1=P3^7;sbit DQ=P3^3;/*Define ISP/IAP/EEPROM command*/#define CMD_IDLE 0 //Stand-By#define CMD_READ 1 //Byte-Read#define CMD_PROGRAM 2 //Byte-Program#define CMD_ERASE 3 //Sector-Erase/*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/#define ENABLE_IAP 0x80 //if SYSCLK<30MHzsfr ADC_DATA = 0XBD;sfr ADC_LOW = 0XBE;sbit CS=P2^0;sbit SCLK=P2^1;sbit DIN=P2^2;sbit left = P1^0;double j;uchar flag,t;void Delay(BYTE n);void IapIdle();BYTE IapReadByte(WORD addr);void IapProgramByte(WORD addr, BYTE dat);void IapEraseSector(WORD addr);uchar tvalue;//温度值void Delay999ms() //@30.000MHz{unsigned char i, j, k;_nop_();_nop_();i = 114;j = 226;k = 60;do{do{while (--k);} while (--j);} while (--i);}/******************************ds1820 *********************/ void Delay1us() //@30.000MHz{unsigned char i;i = 5;while (--i);}void Delay10us() //@30.000MHz{unsigned char i;_nop_();_nop_();i = 72;while (--i);}void Delay48us() //@30.000MHz{unsigned char i, j;i = 2;j = 99;do{while (--j);} while (--i);}void Delay700us() //@30.000MHz {unsigned char i, j;i = 21;j = 106;do{while (--j);} while (--i);}void Delay1ms() //@30.000MHz {unsigned char i, j;i = 30;j = 43;do{while (--j);} while (--i);}void rst_Ds18b20(){DQ=1;Delay1us();DQ=0;Delay700us();//延迟700usDQ=1;Delay1ms();}void writeDs18b20(uchar date)//写数据{uchar i;DQ=1;Delay1us();for (i=0;i<8;i++){DQ=0;Delay10us();DQ=date&0x01;Delay48us();DQ=1;date>>=1;Delay1us();}}uchar readDs18b20() //读数据{uchar i,date;DQ=1;_nop_();for(i=0;i<8;i++){DQ=0;Delay10us();DQ=1;Delay1us();Delay1us();date>>=1;if(DQ==1)date=date+0x80;Delay48us();}return date;}void MatchromDs18b20(uchar a) //匹配ROM{char j;writeDs18b20(0x55); //发送匹配ROM命令if(a==1){for(j=0;j<8;j++)writeDs18b20(str1[j]); //发送18B20的序列号,先发送低字节}if(a==2){for(j=0;j<8;j++)writeDs18b20(str2[j]); //发送18B20的序列号,先发送低字节}uint read_temp(uchar z)/*读取温度值并转换*/{uchar a,b;rst_Ds18b20();if(z==1)MatchromDs18b20(1); //匹配ROM 1if(z==2)MatchromDs18b20(2); //匹配ROM 2writeDs18b20(0x44);//*启动温度转换*/// delay(1000);rst_Ds18b20();if(z==1)MatchromDs18b20(1); //匹配ROM 1if(z==2)MatchromDs18b20(2); //匹配ROM 2writeDs18b20(0xbe);//*读取温度*/a=readDs18b20();b=readDs18b20();tvalue=((a>>4)|(b<<4));return(tvalue);}void DAC(uchar w) //转换,将数据写入芯片{int a;CS=0;for(a=0;a<12;a++){SCLK=1;_nop_();_nop_();if((w&0x80)!=0)//判断写入数据从第一位开始,看是否有数据输入DIN=1;//将信号1写入芯片中elseDIN=0;//将0写入芯片中_nop_();_nop_();SCLK=0;//开启下一个写入数据w<<=1;CS=1; //关闭芯片}void Timer1Init(void) //142微秒@24.000MHz {AUXR &= 0xBF; //定时器时钟12T模式TMOD &= 0x0F; //设置定时器模式TMOD |= 0x10; //设置定时器模式TL1 = 0x7A; //设置定时初值TH1 = 0xFE; //设置定时初值TF1 = 0; //清除TF1标志TR1 = 1; //定时器1开始计时}/*----------------------------initialization function----------------------------*/void init(){EA = 1; //开总中断ET1 = 1; //开定时器1中断PT1 = 1; //定时器1中断设为高优先级P1M0 = 0XFF;P1M1 = 0;P1ASF = 0X01; //设置P1.0作为输入Timer1Init();}/*----------------------------Software delay function----------------------------*/void Delay7us() //@30.000MHz{unsigned char i;i = 50;while (--i);}/*----------------------------Software delay function----------------------------*/void Delay(BYTE n){WORD x;while (n--){x = 0;while (++x);}}/*----------------------------Disable ISP/IAP/EEPROM functionMake MCU in a safe state----------------------------*/void IapIdle(){IAP_CONTR = 0; //Close IAP functionIAP_CMD = 0; //Clear command to standby IAP_TRIG = 0; //Clear trigger register IAP_ADDRH = 0x80; //Data ptr point tonon-EEPROM areaIAP_ADDRL = 0; //Clear IAP address to prevent misuse}/*----------------------------Read one byte from ISP/IAP/EEPROM areaInput: addr (ISP/IAP/EEPROM address)Output:Flash data----------------------------*/BYTE IapReadByte(WORD addr){BYTE dat; //Data bufferIAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_READ; //Set ISP/IAP/EEPROM READ commandIAP_ADDRL = addr; //Set ISP/IAP/EEPROM address lowIAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address highIAP_TRIG = 0x5a; //Send trigger command1(0x5a)IAP_TRIG = 0xa5; //Send trigger command2(0xa5)_nop_(); //MCU will hold here until ISP/IAP/EEPROM operation completedat = IAP_DATA; //Read ISP/IAP/EEPROM data IapIdle(); //Close ISP/IAP/EEPROM functionreturn dat; //Return Flash data}/*----------------------------Program one byte to ISP/IAP/EEPROM areaInput: addr (ISP/IAP/EEPROM address)dat (ISP/IAP/EEPROM data)Output:-----------------------------*/void IapProgramByte(WORD addr, BYTE dat){IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_PROGRAM; //Set ISP/IAP/EEPROM PROGRAM commandIAP_ADDRL = addr; //Set ISP/IAP/EEPROM address lowIAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address highIAP_DATA = dat; //Write ISP/IAP/EEPROM data IAP_TRIG = 0x5a; //Send trigger command1(0x5a)IAP_TRIG = 0xa5; //Send trigger command2(0xa5)_nop_(); //MCU will hold here until ISP/IAP/EEPROM operation completeIapIdle();}/*----------------------------Erase one sector areaInput: addr (ISP/IAP/EEPROM address)Output:-----------------------------*/void IapEraseSector(WORD addr){IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_ERASE; //Set ISP/IAP/EEPROM ERASE commandIAP_ADDRL = addr; //Set ISP/IAP/EEPROM address lowIAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address highIAP_TRIG = 0x5a; //Send trigger command1(0x5a)IAP_TRIG = 0xa5; //Send trigger command2(0xa5)_nop_(); //MCU will hold here until ISP/IAP/EEPROM operation completeIapIdle();}void Delay100us() //@30.000MHz{unsigned char i, j;i = 3;j = 232;do{while (--j);} while (--i);}/*----------------------------擦除eeprom----------------------------*/void Eraseeeprom(){uint i;double a;a=0;for(i = 0; i <90; i++){a = 512+a;IapEraseSector(a); //Erase current sector}}/***********************************************sendmess****** ********************************//************************************************************* *********************************//***************************************发送红外数据**************************/void send(uchar date){uchar i;/*************发送验证信息*************/TR0=0;TH0 = 0xF1;TL0 = 0x5A; //装入初值设置波延时为1.5ms D1 = 1; //发送1.5ms的高电平TR0 = 1; //启动定时器0while(!TF0); //等待TF0 = 0;TH0 = 0xEC;TL0 = 0x78;D1 = 0; //发送2ms的低电平while(!TF0); //等待TF0 = 0;/**************发送数据****************/for(i=0;i<8;i++){TL0 = 0x1E; //设置定时初值 0.5MSTH0 = 0xFB; //设置定时初值TR0=1;D1=1;while(!TF0);TF0=0;if(date&0x01){TL0 = 0x3C; //设置定时初值 1MS 发1TH0 = 0xF6; //设置定时初值}else{TL0 = 0x24; //设置定时初值 0.6MS 发0TH0 = 0xFA; //设置定时初值 TH0 = 0xFD; //0为窄的低电平,持续时间 0.6ms}D1=0;while(!TF0); //等待TF0 = 0;date=date>>1;}TL0 = 0x1E; //设置定时初值 0.5MSTH0 = 0xFB; //设置定时初值TR0=1;D1=1;while(!TF0);TF0=0;D1=0;/************************************结尾**************************/TH0 = 0x0EC; //延时2msTL0 = 0x078;TR0=1;while(!TF0);TF0=0;TR0=0;}void sendtem(uchar date){uchar i;/*************发送验证信息*************/TR0=0;TH0 = 0xF1;TL0 = 0x5A; //装入初值设置波延时为1.5ms D1 = 1; //发送1.5ms的高电平TR0 = 1; //启动定时器0while(!TF0); //等待TF0 = 0;TH0 = 0xE2;TL0 = 0xB4;D1 = 0; //发送3ms的低电平while(!TF0); //等待TF0 = 0;/**************发送数据****************/for(i=0;i<8;i++){TL0 = 0x1E; //设置定时初值 0.5MSTH0 = 0xFB; //设置定时初值TR0=1;D1=1;while(!TF0);TF0=0;if(date&0x01){TL0 = 0x3C; //设置定时初值 1MS 发1TH0 = 0xF6; //设置定时初值}else{TL0 = 0x24; //设置定时初值 0.6MS 发0TH0 = 0xFA; //设置定时初值 TH0 = 0xFD; //0为窄的低电平,持续时间 0.6ms}D1=0;while(!TF0); //等待TF0 = 0;date=date>>1;}TL0 = 0x1E; //设置定时初值 0.5MSTH0 = 0xFB; //设置定时初值TR0=1;D1=1;while(!TF0);TF0=0;D1=0;/************************************结尾**************************/TH0 = 0x0EC; //延时2msTL0 = 0x078;TR0=1;while(!TF0);TF0=0;TR0=0;}/*********************************************main************ ******************************************/void main(){read_temp(2);Delay999ms();/*******************sendinit**********************/AUXR &= 0x7F; //定时器时钟12T模式TMOD &= 0xF0; //设置定时器模式TMOD |= 0x01; //设置定时器模式TR0=0;/**************************************************/ sendtem(read_temp(2));Eraseeeprom(); //擦除EEPROMflag = 0;j =t=0;init();while (1);}void timer1() interrupt 3{// send(0x55);TL1 = 0x7A; //设置定时初值TH1 = 0xFE; //设置定时初值ADC_CONTR= 0xe8;Delay7us(); //@24.000MHzif(flag == 0){IapProgramByte(j, ADC_DATA); ////写EEPROMj++;if(j == 46079){flag = 1;j = 0;}}ADC_CONTR= 0x80;if(flag == 1){while(j!=46079){send(IapReadByte(j));j++;t++;if((t%500)==0){t=0;sendtem(read_temp(2));}}while(1);// DAC(IapReadByte(j)); //读EEPROM并DAC转化/* j++;if(j == 46079){Eraseeeprom(); //擦除EEPROM*/flag = 0;j = 0;}}------------------------------------------------------------------------------------------------------------------------------------ //*************************receive******************************// #include "STC12C5A60S2.h"#include "intrins.h"#define uchar unsigned char#define uint unsigned chartypedef unsigned char BYTE;typedef unsigned int WORD;uchar code str[]="Temperature";/*Define ISP/IAP/EEPROM command*/#define CMD_IDLE 0 //Stand-By#define CMD_READ 1 //Byte-Read#define CMD_PROGRAM 2 //Byte-Program#define CMD_ERASE 3 //Sector-Erase/*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/#define ENABLE_IAP 0x80 //if SYSCLK<30MHzsbit CS=P2^0;sbit SCLK=P2^1;sbit DIN=P2^2;sbit re=P3^2;sbit test=P0^0;sbit test1=P0^1;sbit lcden=P3^4;sbit lcdrs=P3^5;double LowTime, HighTime;//储存高、低电平的宽度 0-65535uchar mess;uchar tem;double j;uchar flag,ge,shi;void Delay(BYTE n);void IapIdle();BYTE IapReadByte(WORD addr);void IapProgramByte(WORD addr, BYTE dat);void IapEraseSector(WORD addr);/*************************lcd1602程序**************************/ void Delay4ms() //@30.000MHz{unsigned char i, j;i = 117;j = 184;do{while (--j);} while (--i);}void writeCommend_Lcd(uchar com)//写指令{lcdrs=0;P0=com;lcden=1;Delay4ms();lcden=0;Delay4ms();}void writeData_Lcd(uchar date)//写数据{lcdrs=1;P0=date;lcden=1;Delay4ms();lcden=0;Delay4ms();}void init_Lcd()//初始化设置1602{uchar i;lcden=0;writeCommend_Lcd(0x38);writeCommend_Lcd(0x0c);writeCommend_Lcd(0x06);writeCommend_Lcd(0x01);writeCommend_Lcd(0x80);for(i=0;i<11;i++){writeData_Lcd(str[i]);}writeCommend_Lcd(0x80+14);writeData_Lcd(0xdf);writeData_Lcd(0x43);}void display(uchar date){shi=date/10;ge=date%10;writeCommend_Lcd(0x80+12);writeData_Lcd(0x30+shi);writeData_Lcd(0x30+ge);}/***********************************************DAC*************** ********************************//***************************************************************** ********************************/void Delay120us() //@30.000MHz{unsigned char i, j;i = 4;j = 125;do{while (--j);} while (--i);}void DAC(uchar w) //转换,将数据写入芯片{int a;CS=0;for(a=0;a<12;a++){SCLK=1;_nop_();_nop_();if((w&0x80)!=0)//判断写入数据从第一位开始,看是否有数据输入 DIN=1;//将信号1写入芯片中elseDIN=0;//将0写入芯片中_nop_();_nop_();SCLK=0;//开启下一个写入数据w<<=1;}CS=1; //关闭芯片}/**********************************************************EEPROM* ********************************//***************************************************************** ********************************//*----------------------------Disable ISP/IAP/EEPROM functionMake MCU in a safe state----------------------------*/void IapIdle(){IAP_CONTR = 0; //Close IAP functionIAP_CMD = 0; //Clear command to standbyIAP_TRIG = 0; //Clear trigger registerIAP_ADDRH = 0x80; //Data ptr point to non-EEPROM areaIAP_ADDRL = 0; //Clear IAP address to prevent misuse}/*----------------------------Read one byte from ISP/IAP/EEPROM areaInput: addr (ISP/IAP/EEPROM address)Output:Flash data----------------------------*/BYTE IapReadByte(WORD addr){BYTE dat; //Data bufferIAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_READ; //Set ISP/IAP/EEPROM READ command IAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high IAP_TRIG = 0x5a; //Send trigger command1 (0x5a) IAP_TRIG = 0xa5; //Send trigger command2 (0xa5) _nop_(); //MCU will hold here untilISP/IAP/EEPROM operation completedat = IAP_DATA; //Read ISP/IAP/EEPROM dataIapIdle(); //Close ISP/IAP/EEPROM functionreturn dat; //Return Flash data}/*----------------------------Program one byte to ISP/IAP/EEPROM areaInput: addr (ISP/IAP/EEPROM address)dat (ISP/IAP/EEPROM data)Output:-----------------------------*/void IapProgramByte(WORD addr, BYTE dat){IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_PROGRAM; //Set ISP/IAP/EEPROM PROGRAM commandIAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high IAP_DATA = dat; //Write ISP/IAP/EEPROM dataIAP_TRIG = 0x5a; //Send trigger command1 (0x5a) IAP_TRIG = 0xa5; //Send trigger command2 (0xa5) _nop_(); //MCU will hold here untilISP/IAP/EEPROM operation completeIapIdle();}/*----------------------------Erase one sector areaInput: addr (ISP/IAP/EEPROM address)Output:-----------------------------*/void IapEraseSector(WORD addr){IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait timeIAP_CMD = CMD_ERASE; //Set ISP/IAP/EEPROM ERASE commandIAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high IAP_TRIG = 0x5a; //Send trigger command1 (0x5a) IAP_TRIG = 0xa5; //Send trigger command2 (0xa5) _nop_(); //MCU will hold here untilISP/IAP/EEPROM operation completeIapIdle();}/*----------------------------擦除eeprom----------------------------*/void Eraseeeprom(){uint i;double a;a=0;for(i = 0; i <90; i++){a = 512+a;IapEraseSector(a); //Erase current sector}}/****************************************************************接收*******************************************/void init_ex0(){EA = 1; //开总中断EX0 = 1; //开外部中断0PX0 = 1; //外部中断0设为高优先级IT0 = 1; //设为INT0下降沿触发方式}bit DeCode(void){uchar i,temp;for(i=0;i<8;i++) //每个码有8位数字{temp=temp>>1; //temp中的各数据位右移一位,因为先读出的是低位数据TH0=0; //定时器清0TL0=0; //定时器清0TR0=1; //开启定时器T0while(re==0) ;//如果是低电平就等待低电平计时TR0=0; //关闭定时器T0LowTime=TH0*256+TL0; //保存低电平宽度TH0=0; //定时器清0TL0=0; //定时器清0TR0=1; //开启定时器T0while(re==1); //如果是高电平就等待TR0=0; //关闭定时器T0HighTime=TH0*256+TL0; //保存高电平宽度if((LowTime<800)||(LowTime>1600))return 0; //如果低电平长度不在合理范围,则认为出错,停止解码if((HighTime>1200)&&(HighTime<1850)) //如果高电平时间在600微秒左右,{temp=temp&0x7f; //则该位是0}if((HighTime>2000)&&(HighTime<3000)) //如果高电平时间在1000微秒左右,{temp=temp|0x80; //则该位是1}}mess=temp;return 1;}void Delay999ms() //@30.000MHz{unsigned char i, j, k;_nop_();_nop_();i = 114;j = 226;k = 60;do{do{while (--k);} while (--j);} while (--i);}/***********************************************main************** *******************************/void main(){init_Lcd();mess=0;Eraseeeprom(); //擦除EEPROMflag = 0;j =0;tem = 29;TMOD = 0x01;TR0=0;init_ex0();while (1){// display(tem);// Delay999ms();}}/**********************红外线触发中断处理函数**********************/void ex0() interrupt 0{// display(mess);EX0=0; //关闭外中断0,不再接收二次红外信号的中断,只解码当前红外信号TH0=0; //定时器T0的高8位清0TL0=0; //定时器T0的低8位清0TR0=1; //开启定时器T0while(re==0);//如果是低电平就等待TR0=0;LowTime=TH0*256+TL0; //保存低电平时间TH0=0; //定时器T0的高8位清0TL0=0; //定时器T0的低8位清0TR0=1; //开启定时器T0while(re==1); //如果是高电平就等待// test1=0;TR0=0; //关闭定时器T0HighTime=TH0*256+TL0; //保存引导码的高电平长度// test=0;if((LowTime>3000)&&(LowTime<4500)){//P0=0xaa;if((HighTime>4500&&HighTime<5600)){if(flag == 0){DeCode(); // 执行遥控解码功能P0=mess;IapProgramByte(j, mess); ////写EEPROMj++;if(j == 20000){flag = 1;j = 0;}}if(flag == 1){while(1){while(j!=20000){DAC(IapReadByte(j)); //读EEPROM并DAC 转化Delay120us();j++;}j=0;// P0=0xaa;}Eraseeeprom(); //擦除EEPROMflag = 0;j = 0;}}else if((HighTime>6800&&HighTime<8300)){if(flag==0){DeCode();tem=mess;display(tem);// Delay999ms();}}}EX0=1; //开启外中断EX0}//*************************程序END******************************//。

相关文档
最新文档