基于单片机的红外无线控制
红外无线数据传输系统的设计与实现-毕业论文

摘要红外无线数据传输系统是一种利用红外线作为传输媒介的无线数据传输方式,它相对于无线电数据通信具有功耗低、价格便宜、低电磁干扰、高保密性等优点,目前发展迅猛,尤其是在近距离无线数据通信中得到广泛的运用.本文主要介绍基于51单片机的红外无线数据传输系统的原理.在硬件设计原理的介绍中,主要分析了系统中NE555数据调制电路、红外发射电路、红外接收电路、DS18B20温度传感器电路、单片机外围电路以及声光报警电路。
在系统软件设计的介绍中,我们主要分析单片机串口通信协议、控制温度传感器采集数据、对数据的编解码;而液晶显示部分软件则是为了具有更好的人机交互界面。
通过调试后,本系统基本达到预期要求,1、正确实现双机通信功能,在2400波特率下通信距离达到7米左右;2、具有在超时通信不畅的情况下进行报警提示功能;3、具有自动搜寻一帧数据起始位的功能,这样可以有效防止外界的干扰;4、通过串口可以与PC机实现正确通信,可以作为计算机的红外无线终端,完成数据的上传和下放.因此本系统具有广阔的实用价值。
关键词:AT89S52单片机;数据采集;红外通信;调制解调;串口通信AbstractInfrared wireless data transmission system is a wireless data transfer method that uses infrared as a transmission medium, Compared with the radio data communication,it has many advantages in power consumption, Production costs,electromagnetic interference,and the confidentiality. At present,this technology is developing rapidly,In particular, It is widely used in short—range wireless data communications,In this paper,we are introduced infrared wireless data transmission system’s theory that based on the single—chip microcomputer 51. In the hardware design principle introduction,We mainly analysis the system's data modulation circuit of NE555, infrared transmitter,IR receiver circuit, DS18B20 temperature sensor circuit,microcontroller peripheral circuits, as well as sound and light alarm circuit。
基于51单片机红外遥控电机课程设计说明书

课程实训报告课程名称:单片机与接口技术实训题目:红外控制直流电机正反转任务书一、实训任务设计一款基于AT89C51单片机用红外遥控控制电机的正反转加减速。
二、设计要求1. 基本要求1).用无线模块控制电机的正反转加减速,实现自动化控制。
2).通过对AT89C51单片机的编程,实现直流电机的正反转,加减速。
3).写出详细的设计报告。
4).给出全部电路和源程序。
2. 发挥部分1).可通过PC机,对系统编程,实现直流电机转速的快慢。
摘要随着科技的不断进步,人们进入了无线电时代,它为我们的生活带来了极大的方便。
像现在的移动电话,无线网络,无线鼠标,无线键盘等都已经融入了我们的生活当中。
从我们身边的电子产品就可以看出我们已经进入了无线电时代。
本设计就是一款基于AT89C51的用无线模块控制的电机的正反转以及它的加减速。
这非常适应于在工厂使用,特别是在工业控制中。
可以想象,机器在工厂运转时,我们只需要用无线遥控来控制电机的转速以及它的转向,这样我们就可以在远处来控制了,用不着再跑到电机的旁边来控制开关,为工厂生产带来了极大的方便。
软件上采用C51编程,主要编写了主程序,直流电机驱动程序,中断程序延时程序等。
经过调试,实现了对电机的控制。
关键词:AT89C51 L298 PWM 直流电机无线模块目录第一章绪论 (5)1.1 概述 (5)1.2 设计目的 (5)1.3 设计任务和内容 (5)第二章总体设计及核心器件简介 (7)2.1总体设计 (7)2.2 AT89C51 (7)2.3 L298 (9)引脚介绍: (10)2.4 伺服电机介绍 (11)2.5 PT2262/PT2272 (12)第三章单元电路模块设计 (17)3.1 复位电路 (17)3.2时钟电路 (18)3.3电机驱动电路图 (18)3.4PWM调速系统设计 (19)第四章软件编程设计 (21)4.1 设计思想 (21)4.2 流程图 (21)4.3源程序 (22)第五章设计心得和存在问题 (26)第一章绪论1.1 概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
基于STC89C51单片机的红外遥控智能家居系统设计

基于STC89C51单片机的红外遥控智能家居系统设计1. 本文概述阐述问题:我会指出当前智能家居系统中存在的问题,以及为什么需要基于STC89C51单片机的解决方案。
提出解决方案:接着,我会概述STC89C51单片机在智能家居系统中的作用以及红外遥控技术的优势。
文章结构:我会简要介绍文章的结构,说明接下来的章节将如何展开。
随着科技的不断进步,智能家居系统逐渐成为现代家庭生活的一部分,它们通过提高居住环境的舒适性、安全性和便利性,极大地提升了人们的生活质量。
现有的智能家居系统在集成性、成本效益和用户交互体验方面仍存在不足。
为了解决这些问题,本文提出了一种基于STC89C51单片机的红外遥控智能家居系统设计方案。
STC89C51单片机以其较低的成本、丰富的功能和良好的稳定性,成为实现智能家居控制的理想选择。
结合红外遥控技术,该系统不仅能够实现远程控制家电设备,还能通过简单的编程实现个性化的家居自动化场景,从而为用户提供更加灵活和智能的居住体验。
本文将首先介绍智能家居系统的基本概念和发展趋势,然后详细阐述STC89C51单片机的工作原理及其在智能家居系统中的应用。
接着,本文将描述红外遥控技术的原理,并展示如何将其与STC89C51单片机结合,实现对家居设备的智能控制。
本文将通过一个实际的系统设计案例,展示该设计方案的可行性和实用性。
2. 相关技术综述单片机技术:介绍STC89C51单片机的基本特性,包括其处理能力、内存、IO端口等,并说明其在智能家居系统中的应用优势。
红外通信技术:概述红外通信的基本原理,包括信号的调制、传输和解码过程,以及红外技术在遥控设备中的优势。
智能家居系统架构:描述智能家居系统的一般架构,包括控制中心、通信协议、传感器和执行器等组成部分。
现有智能家居解决方案:简要回顾市场上已有的智能家居解决方案,分析它们的特点和局限性。
设计挑战与创新点:讨论在设计基于STC89C51单片机的红外遥控智能家居系统时面临的技术挑战,以及本设计相对于现有技术的创新之处。
单片机STM32F103C8T6的红外遥控器解码系统设计

单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
51单片机-毕业设计基于单片机设计的红外线遥控器

ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire学生毕业设计(论文)报告系别:专业:班号:学生姓名:学生学号:设计(论文)题目:基于单片机设计的红外线遥控器指导教师:设计地点:起迄日期:ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire常州信息职业技术学院电子与电气工程学院毕业设计论文毕业设计(论文)任务书专业电子信息工程班级电子085 姓名傅浩一、课题名称:基于单片机设计的红外线遥控器二、主要技术指标:1.遥控距离:0~10m2.额定工作电压:直流3V(普通5号干电池2节);红外光平均辐照度≥40μW/cm2;指向性(辐照度为20μW/cm2)≥30度3.欠压条件下(直流2.4v):红外光平均辐照度≥20μW/cm2,指向性(辐照度为10μW/cm2)≥30度三、工作内容和要求:1.以AT89C2051单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点2.遥控发射器通过对红外光发射频率的控制来区别不同的操作3.遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程四、主要参考文献:[1] 梅丽凤,王艳秋,张军等. 单片机原理及接口技术,北京:清华大学出版社,2004年.[2] 戴峻峰,付丽辉. 多功能红外线遥控器的设计,传感器世界.2002,8(12):16~18.[3] 李光飞,楼然苗,胡佳文等. 单片机课程设计实例指导,北京:北京航空航天出版社,2004年.[4] 苏长赞. 红外线与超声波遥控,北京:人民邮电出版社.1995年.学生(签名)2010 年 5 月7 日指导教师(签名)2010 年5 月10 日教研室主任(签名)2010 年5 月10 日系主任(签名)2010 年5 月12 日ping primary school fire safety systems to e nha nce fire safety, prote ction of public property and t he life and property safety of teacher s and students, school fire safety into day-to-day ma nagement, is devel opi ng the following fire safety system. 1, strengt hen fire safety educati on of the whole school. Accordi ng to the re quireme nts of the Fire S ervices A ct, so t hat everyone has of keeping fire control safety, pr otecting fire control facilities, fire preve ntion, reports of fire毕业设计(论文)开题报告设计(论文)题目基于单片机设计的红外线遥控器一、选题的背景和意义:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。
基于51单片机的红外线控制系统 2

单片机原理结课项目项目题目基于51单片机的红外线控制系统基于51单片机的红外线控制系统一、概述:红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。
由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以在设计红外线遥控器时,不必要像无线电遥控器那样,每套( 发射器和接收器) 要有不同的遥控频率或编码( 否则,就会隔墙控制或干扰邻居的家用电器) ,所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。
这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方面。
由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。
基于51单片机的红外线控制系统。
要求通过单片机发送和接红外信号程序,根据接收的信号,执行有关动作的系统,能够实现近距离的无线通。
二、硬件设计1. 系统框图2. 电路原理图电路由五个模块构成(最小系统模块、红外接收模块、数码管显示模块、编程下载模块、电源模块)1) 最小系统STC12C5410AD 单片机红外接收头红外遥控器复位电路时钟振荡电路数码光显示最小系统由stc12c5410ad单片机,按键复位电路,时钟振荡电路构成。
a.电源电源采用5V直流电供电。
b.时钟、复位电路本电路选用12MHz晶振。
2)红外接收模块3)显示模块三、软件设计1.红外编解码原理红外线发射编码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制‘0’;以脉宽为0.565ms、间隔1.658ms、周期为2.25ms的组合表示二进制‘1’;红外接收头接收的信号和发射编码相反;一组编码由一个引导码,四个字节数据组成;引导码由9ms的高电位和4.5ms的地电位组成。
基于单片机的红外通信系统设计

基于单片机的红外通信系统设计1 简介红外通信是指利用红外线进行信息传输的一种无线通讯方式。
其传输距离在10米以内,速度较快,常用于遥控器、智能家居、安防监控等领域。
本文将介绍基于单片机的红外通信系统设计。
2 系统原理红外通信系统需包含红外发射器、红外接收器和处理器三个部分。
通信原理是将信息编码成红外信号,通过红外发射器发出,再由红外接收器接收,经过解码后传输到处理器中处理。
3 系统设计步骤3.1 红外接收器电路设计红外接收器采用红外管接收器,其特点是灵敏度高,在不同角度能接收到较远的红外信号。
红外管接收器与电路板焊接,电路板再选用较长的电线接到处理器的端口上。
3.2 红外发射器电路设计红外发射器采用红外二极管,其工作电压一般为1.2-1.4V。
通过接通1kHz以上的方波信号控制二极管的导通,使其发出红外光。
为保证其稳定性和较远的有效距离,需在电路中添加反向电流保护二极管。
3.3 处理器设计处理器选用常用的单片机,如AT89C51等。
单片机内置了红外通信模块,可用来发送和接收红外信号。
同时,还需通过编程实现对红外信号的解码和编码,实现信息传输与处理。
4 系统测试测试时,可用遥控器模拟发送红外信号,系统接收并解码后显示在液晶屏幕上。
测试距离一般在10米以内,且需保持天空无其它遮挡物。
5 总结基于单片机的红外通信系统设计,具有灵敏度高、速度快、传输距离短等特点。
其应用广泛,在智能家居、安防监控、车载通信等领域均有应用。
但需注意遮挡物的影响,以及信号干扰等问题。
基于单片机的红外报警系统的设计

传感器课程设计基于单片机的红外报警系统的设计考核成绩:2016年6月目录一.绪论 (1)1.1发展概况与设计背景 (1)二.设计要求 (2)三.基本原理 (3)3.1 AT89C51的结构 (3)3.2 AT89C51的引脚结构 (3)3.3热释电红外传感器的原理 (5)3.4人体热释电传感器的原理 (6)四.硬件电路设计 (7)4.1主电路的设计 (7)4.1 红外防盗报警电路总原理图 (7)4.2 时钟电路的设计 (7)4.3 复位电路的设计 (8)4.4 发光二极管报警电路的设计 (8)4.5声音报警电路的设计 (9)五.系统软件的设计 (10)5.1主程序工作流程图 (10)六.结论 (11)七.心得体会 (12)八.参考文献 (13)附录 (14)一.绪论1.1发展概况与设计背景随着社会经济的飞速发展,但是社会的治安问题也越来越凸显出来,各种入室抢窃、偷盗事件时有发生。
人们对其住宅的要求也越来越高,表现在不仅希望拥有舒适的住所,而且对安全性、智能性等方面也提出了更高的要求。
这时,传统的家庭住宅显然己经远远不能满足人们的需求。
人们迫切需要一种智能型的家庭防盗报警系统,面对种种治安问题,我们需要利用现代科技技术来保护我们的自身财产。
在此设计防盗报警系统,它是利用探测器装置对建筑物内外重要地点和区域进行布防、探测。
当探测器探测到非法入侵,报警器工作状态变为报警状态,产生报警声。
日常生活中应用的报警装置有目标明显反映迟钝等现象。
目前市面上装备主要有压力触发式防盗报警器、开关电子防盗报警器和压力遮光触发式防盗报警器等各种报警器,但是这几种比较常见的报警器都存在或多或少的缺点。
为了解决这些问题和要求,本设计采用了一种简单的红外探测报警装置,而且性能更良好,设计中采用被动热释红外探测地方法设计热释红外的报警系统。
本设计的报警系统所使用的红外线是不可见光,并且有很强的隐蔽性和保密性,因此在防盗、警戒等安保装置中得到了广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国矿业大学徐海学院技能考核培训姓名:陈思彤学号: 22110838 专业:信息11-2班题目:基于单片机的红外无线控制专题:音乐播放器指导教师:有鹏老师翟晓东老师设计地点:电工电子实验室时间: 2014 年 4 月通信系统综合设计训练任务书学生姓名陈思彤专业年级信息11-2班学号22110838设计日期:2014年4 月5日至2014 年4 月10 日设计题目:基于单片机的红外无线控制设计专题题目:音乐播放器设计主要内容和要求:1. 主要内容:单片机内部结构红外遥控解码C语言程序设2. 功能扩展要求实现音乐播放器的功能指导教师签字:摘要:近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。
红外线技术也被广泛应用于各个电子领域,先设计一种基于单片机的红外遥控的简易音乐播放器。
通信蜂鸣器来发声,来完成音乐播放器的功能。
该系统可实现对音乐播放的远距离遥控,且结构简单,速度快,抗干扰能力强。
通过本次课程设计,我对单片机中断系统等知识有了进一步的了解,对单片机的相关知识做到理论联系实际。
关键词:单片机,中断系统,红外遥控,音乐播放目录1 绪论 (4)1.1概述 (4)1.2功能 (4)2 硬件电路 (5)2.1总体设计方 (5)2.2单片机最小系统 (5)2.3红外遥控收发电路 (5)2.3.1 红外遥控发射电路 (6)2.3.2 红外遥控接收电路 (7)2.4蜂鸣器电路 (7)2.5 LED指示灯电路 (8)3软件编程 (9)3.1 C语言实现系统设计 (9)3.2乐谱的改编 (10)参考文献 (11)附录 (12)1 绪论1.1概述本设计采用红外线来遥控蜂鸣器使其播放音乐,红外遥控是如今广泛使用的一种通信和遥控手段;红外线遥控利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强;因此红外遥控设备已经广泛的应用在如今的电气设备的数据交互和设备控制中。
利用单片机演奏时音乐爱好者的兴趣之一,应用的范围也比较广泛。
所谓音乐播放器由单片机进行信息处理,再经过信号放大,由蜂鸣器发出乐曲声。
详细说来,演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。
这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。
众所周知,周期为频率的倒数,可以通过音符的频率计算出周期;因此演奏时,要根据音符的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。
本文比较详细地介绍了音乐播放器的工作原理、设计思路、硬件的选择及相关作用、软件的实现方法以及详细的程序清单。
1.2功能本设计以单片机为核心实现红外遥控音乐播放器功能,主要完成功能为四首歌曲的选择播放、暂停、暂停后断点播放,播放下一曲,播放上一曲以及流水灯显示音符等功能。
本设计中使用常见的红外遥控器进行控制,使用其中的1、2、3、4四个数字键(对应功能选择1、2、3、4四首歌曲),频道加、减两个按键(对应功能上一曲、下一曲),静音键(对应功能暂停),以及确定键(对应功能播放歌曲)2 硬件电路2.1总体设计方图1系统组成框图本系统以AT89S52单片机为控制核心,以遥控器作为控制元件,以蜂鸣器作为执行器件。
通过按下遥控器相应按键向单片机发送控制信息(红外信号),单片机红外接收器收到该红外信号后进行解码然后通过P3.2口将解码后的控制信息送入单片机,单片机通过P2.5口控制蜂鸣器播放音乐2.2单片机最小系统2.3红外遥控收发电路红外线遥控是目前使用最广泛的一种通信和遥控手段。
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
工遥控器AT89S52 单片机音乐播放业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
常用的红外遥控系统一般分发射和接收两个部分。
应用编/解码专用集成电路芯片来进行控制操作,如下图所示。
发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
图2红外线遥控系统框图2.3.1 红外遥控发射电路发射部分的主要元件为红外发光二极管。
它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。
目前大量的使用的红外发光二极管发出的红外线波长为940nm左右。
遥控器的基本组成如图所示。
它主要由形成遥控信号的微处理器芯片、晶体振荡器、放大晶体管、红外发光二极管以及键盘矩阵组成。
图4遥控器电路图工作原理:微处理器芯片IC1内部的振荡器通过2、3脚与外部的振荡晶体X 组成一个高频振荡器,产生高频振荡信号。
此信号送入定时信号发生器后进行分频产生正弦信号和定时脉冲信号。
正弦信号送入编码调制器作为载波信号;定时脉冲信号送致扫描信号发生器、键控输入编码器和指令编码器作为这些电路的时间标准信号。
IC1内部的扫描信号发生器产生五种不同时间的扫描脉冲信号,由5~9脚输出送至键盘矩阵电路。
当按下某一键时,相应于该功能按键的控制信号分别由10~14脚输入到键控编码器,输出相应功能的数码信号。
然后由指编码器输出指令码信号,经过调制器调制在载波信号上,形成包含有功能信息的高频脉冲串,由17脚输出经过晶体管BG放大,推动红外线发光二极管D发射出脉冲调制信号2.3.2 红外遥控接收电路红外线遥控接收器的作用是将接收到的红外线遥控信号,经过放大、解调和整形后输出功能指令信号,送至微处理器进行识别和处理。
2.4蜂鸣器电路蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
2.5 LED指示灯电路3软件编程3.1 C语言实现系统设计单片机应用系统的程序设计有两种方法:一种是基于汇编语言的,另一种是基于C语言的。
汇编语言程序的机器代码生成效率高,但可读性较差,而C语言程序的可读性和可移植性远超过汇编语言。
用C语言编写单片机应用程序,不用具体组织、分配存储器资源和处理端口数据,但对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。
C语言具有以下主要特点:①语言简洁,使用方便灵活。
它是程序设计语言中规模最小的语言之一。
ANSI标准C语言只有32个关键字,9种流程控制语句。
②程序可移植性好。
③表达能力强。
具有丰富的数据结构类型和多种运算符。
用户可灵活采用多种数据类型和使用各种运算符,实现复杂运算。
④表达方式灵活。
利用C语言的多种运算符可组成各种表达式,还可采用多种方法来获得表达式的值,使程序设计具有更大的灵活性。
⑤可进行结构化程序设计。
C语言以函数作为程序设计的基本单位,非常适合结构化程序设计。
⑥可直接操作计算机硬件。
C语言具有直接访问机器物理地址的能力,C51的编译器都可直接对单片机内部的SFR和I/O端口进行操作,可以直接访问片内、片外存储器,还可以进行各种为操作。
⑦生成的目标代码质量较高。
3.2乐谱的改编单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。
这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。
众所周知,周期为频率的倒数,可以通过音符的频率计算出周期;演奏时,要根据音符的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。
在此程序中,通过两个数据表存放了事先算好的、各种音符频率所对应的、半周期的定时时间初始值。
低音、中音、高音和超高音,四个八度共28个音符。
演奏乐曲时,就根据音符的不同数值,从表中找到定时时间初始值,送入定时器即可控制音调。
10参考文献[1] 华成英.童诗白.模拟电子技术基础[M] 北京:高等教育出版社,2006 :12-3[2] 赵亮.单片机C语言编程与实例[M]. 北京:人民邮电出版社, 2003:3-432[3] 瞿贵荣.15通道红外遥控电路[J].实用电子制作,2005,(7):10.[4] 陈燕春. 学习型14路红外遥控开关[J]. 单片机开发与应用, 2005, (6): 22-25[5]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2006:3:1-12附录附录1:程序#include <REGX51.H>#include <intrins.h>#include "delay.h"#include "decode.h"#define uchar unsigned char#define uint unsigned int#define Font_code P0 //字符码写地址#define reg_code P2 //字位码写地址sbit speaker=P2^5;#define LED P1code unsigned char shuzu[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};unsigned char timer0h,timer0l,time;//世上只有妈妈好数据表6,2,3,code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0};code unsigned char sszymmh1[] = {5, 2, 2, 3, 2, 1, 5, 2, 1, 1, 3, 4,6, 2, 2, 1, 3, 1, 6, 2, 1, 5, 2, 4,5,2,2, 1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,1,2,4,6,2,2,1,3,2,1,3,4,7,2,2,6,2,1,7,2,1,1,3,4,6,2,1,7,2,1,1,3,1,6,2,1,6,2,1,5,2,1,3,2,1,1,2,1,2,2,4,5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,1,2,4,0, 0, 0};code unsigned char sszymmh2[]={6,2,1,7,2,1,1,3,3,7,2,1,1,3,2,3,3,2,7,2,6,3,2,1,6,2,3,5,2,1,6,2,2,1,3,2,5,2,6,3,2,2,4,2,3,3,2,1,4,2,2,1,3,2,3,2, 4,1,3,1,7,2,1,6,2,1,5,3,2,6,2,1,7,2,2,5,2,2,6,2,6,1,3,1,2,3,1,3,3,3,2,3,1,3,3,2,2,3,6,5,2,1,5,2,1,1,3,3,7,2,1,1,3,2,3,3,2,3,3,8,6,2,1,7,2,1,1,3,2,7,2,2,2,3,1,2,3,1,1,3,3,5,2,1,5,2,4,4,3,2,3,3,2,2,3,2,};code unsigned char sszymmh3[]={6,2,2,1,3,2,2,3,2,1,3,1,7,2,1,6,2,2,1,3,2,2,3,3,1,3,1/2,6,2,1/2,6,2,2,1,3,2,1,3,2,7,2,2,6,2,4,6,2,2,1,3,2,2,3,2,1,3,1,6,2,1,5,2,2,6,2,1,5,2,1,4,2,2,5,2,2,6,2,2,1,3,2,4,2,2,5,2,2,6,2,2,5,2,1,4,2,1,2,2,6, 6,2,2,1,3,2,2,3,2,1,3,1,7,2,1,6,2,2,1,3,2,2,3,3,1,3,1/2,6,2,1/2,6,2,2,1,3,2,1,3,2,7,2,2,6,2,4,6,2,2,1,3,2,2,3,2,1,3,1,6,2,1,5,2,2,6,2,1,5,2,1,4,2,2,5,2,2,6,2,2,1,3,2,4,2,2,5,2,2,6,2,2,5,2,1,4,2,1,2,2,6, 0,0,0};// 音阶频率表高八位code unsigned char FREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,i0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,} ;// 音阶频率表低八位code unsigned char FREQL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};code uchar Show_Tab[]={0xC0,/*0*/0xF9,/*1*/0xA4,/*2*/0xB0,/*3*/0x99,/*4*/0x92,/*5*/0x82,/*6*/0xF8,/*7*/0x80,/*8*/0x90,/*9*/0x88,/*A*/0x83,/*b*/0xC6,/*C*/0xA1,/*d*/0x86,/*E*/0x8E /*F*/};code uchar S_Tab[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char Display_Buffer[8]; //显示缓冲区uchar bit_con; //字位码扫描计数器extern unsigned char key_value; //键值extern bit key_flg; //按钮按下标志extern bit cycle_flg; //循环标志void delay(unsigned char t){unsigned char t1;unsigned long t2;for(t1=0;t1<t;t1++){for(t2=0;t2<8000;t2++){;}}TR1=0;}void t0int() interrupt 3{TR1=0;speaker=!speaker;TH1=timer0h;TL1=timer0l;TR1=1;}void song(){TH1=timer0h;TL1=timer0l;TR1=1;delay(time);}void main(){unsigned char k,i,j,z;TMOD=0x10; //置CT0定时工作方式1EA=1;ET1=1;//IE=0x82 //CPU开中断,CT0开中断delay_nus(1);delay_nms(1);reg_code = 0xff; //关闭显示for(bit_con=0;bit_con<8;bit_con++) Display_Buffer[bit_con] = Show_Tab[0]; bit_con = 0;Timer0init();//定时器0初始化EX0init(); //外部中断初始化while(1){j=0;if(key_flg) //解码生效,把遥控码值转移到显示区,数据码两位显示{key_flg = 0;Display_Buffer[0] = Show_Tab[(key_value & 0xf0) >> 4];Display_Buffer[1] = Show_Tab[key_value & 0x0f];switch(z){case 0:{lop: i=0;while(i<10000){ //音乐数组长度,唱完从头再来k=sszymmh[i]+7*sszymmh[i+1]-1;if (i%3==0){j=sszymmh[i];LED=shuzu[j-1];}if (key_value==0x47) {while(1){if (key_value==0x44)break;}}if (key_value==0x19){goto lop;break;}timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh[i+2];i=i+3;song();if (key_value==0x0c){ key_value=0;z=0;break;}if (key_value==0x18){ key_value=0;z=1;break;}if (key_value==0x5e) { key_value=0;z=2;break;}if (key_value==0x08){ key_value=0;z=3;break;}if (key_value==0x40){ key_value=0;z=3; break;}if (key_value==0x43){ key_value=0;z=1; break;}}};break;case 1:{lop1: i=0;while(i<1000){ //音乐数组长度,唱完从头再来k=sszymmh1[i]+7*sszymmh1[i+1]-1;if (i%3==0){j=sszymmh[i];LED=shuzu[j-1];}if (key_value==0x47){while(1){if (key_value==0x44)break;}}if (key_value==0x19){goto lop1;break;}timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh1[i+2];i=i+3;song();if (key_value==0x0c){ key_value=0;z=0;break;}if (key_value==0x18){ key_value=0;z=1;break;}if (key_value==0x5e){ key_value=0;z=2;break;}if (key_value==0x08){ key_value=0;z=3;break;}if (key_value==0x40){ key_value=0;z=0; break;}if (key_value==0x43){ key_value=0;z=2; break;}}};break;case 2:{lop2: i=0;while(i<1000){ //音乐数组长度,唱完从头再来k=sszymmh2[i]+7*sszymmh2[i+1]-1;if (i%3==0){j=sszymmh2[i];LED=shuzu[j-1];}if (key_value==0x47){while(1){if (key_value==0x44)break;}}if (key_value==0x19){goto lop2;break;}timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh2[i+2];i=i+3;song();if (key_value==0x0c){ key_value=0;z=0;break;}if (key_value==0x18){ key_value=0;z=1;break;}if (key_value==0x5e){ key_value=0;z=2;break;}if (key_value==0x08){ key_value=0;z=3;break;}if (key_value==0x40){ key_value=0;z=1; break;}if (key_value==0x43){ key_value=0;z=3; break;}}};break;case 3:{lop3: i=0;while(i<1000){ //音乐数组长度,唱完从头再来k=sszymmh3[i]+7*sszymmh3[i+1]-1;if (i%3==0){j=sszymmh2[i];LED=shuzu[j-1];}if (key_value==0x47){while(1){if (key_value==0x44)break;}}if (key_value==0x19){goto lop3;break;}timer0h=FREQH[k];timer0l=FREQL[k];time=sszymmh3[i+2];i=i+3;song();if (key_value==0x0c){ key_value=0;z=0;break;}if (key_value==0x18){ key_value=0;z=1;break;}if (key_value==0x5e){ key_value=0;z=2;break;}if (key_value==0x08){ key_value=0;z=3;break;}if (key_value==0x40){ key_value=0;z=2; break;}if (key_value==0x43){ key_value=0;z=0; break;}}};break;}}}}附录2:电路板。