《基于PWM原理的红外遥控电机设计-毕业设计.doc》由会员分享,可在线阅读,更多相关《基于PWM原理的红外遥控电机设计-毕业设计.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 测控仪器设计课程设计 测控技术与仪器课程设计题目名称: 基于PWM原理的红外遥控电机设计 专业班级: 测控1202班 学生姓名: 王柏林 学 号: 201223030228 指导教师: 刘伍丰 成绩:评语:指导老师签名: 日期: 1测控技术与仪器课 程 设 计课程设计名称 基于PWM原理的红外遥控电机设计 专 业 班 级 : 测控1202班 学 生 姓 名 : 王柏林 学 号 : 201223030228 指 导 教 师 : 刘伍丰 小 组 成 员 : 张延庆 张凯福 李准 胡腾飞 课程设计时间: 2015-6-292015-7-10 33 测控仪器设计 课程设计任务书学生姓名王柏林专业班级
2、测控1202班学号201223030228题 目基于PWM原理的红外遥控电机设计课题性质工程设计课题来源自拟指导教师刘伍丰主要内容(参数)本设计是基于PWM原理,通过定时器和中断产生可以调节的PWM波,然后通过无线将控制电机的指令代码传送给MCU,从而使MCU完成相应的的操作如下:1、遥控电机启动停止2、遥控电机加速3、遥控电机减速4、遥控控制电机正转5、遥控控制电机反转任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程
3、序。第7-8天:程序调试。第9-12天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确。主要参考资料(1)张迎新.单片微型计算机原理、应用及接口技术M.国防工业出版社,2009.(2)单片机原理与接口技术(作者:赵嘉蔚,)出版社:清华大学出版社(3)C语言程序设计学习辅导 (作者:谭浩强)出版社:清华大学出版社任务分工学生1:张延庆 软件编写 学生2:胡腾飞 原理图绘制学生3:王博林 硬件设计 学生4:张凯福 资料查询 学生5:李准 调试整理 目录1直流电机的调速分析及研究意义61.1 直流电机调速原理61.2 PWM基本原理及其实现方法71.2.1 PWM基
4、本原理71.2.2 实现方法81.3 控制程序设计92.系统硬件设计92.1 系统方案92.2功能简介92.3主要内容102.4电机调速控制模块112.4.1 方案选择112.4.2 PWM调速工作方式112.5系统分析与硬件设计112.5.1设计部分分析122.5.2直流电机驱动电路设计132.6红外遥控电路设计132.6.1 红外系统方框图132.6.2 系统功能需求142.6.3 红外发射电路142.6.4 红外检测接收电路152.7 设计所需部分器件162.8应用软件的编制、调试163. 系统软件的设计163.1 电机控制系统程序的总体设计163.2 红外遥控器的程序设计173.2.1
5、 遥控码的发射173.2.2 红外接收194.系统的电路原理图21总结体会22参考文献22附录23摘要 本文介绍了基于红外遥控电机控制系统的设计,讲述了直流电机调速的相关知识以及PWM调速的基本原理和实现方法。直流电机具有优良的调速特性,调速平滑,方便,调速范围广,过载能力大,能承受频繁的冲击负载,可实现频繁的快速启动、制动和反转;能满足生产过程中自动化系统各种不同的特殊运行要求。电机控制系统采用红外遥控控制是电气传动的发展方向之一。采用红外遥控控制后,整个电机系统体积小、结构简单、可靠性高、操作维护方便,电动机稳态运转时转速精度可达到较高水平。本设计方案基于市场的需求,结合红外遥控设计简单,
6、操作方便,成本低廉等特点,采用了51单片机作为遥控发射接收芯片,HS0038作为红外一体化接收发射管,在此基础上设计了一个简单的红外遥控直流电机系统。本设计实现了直流电机的几项基本功能:启动、停止、加速、减速、正转、反转。关键词:PWM;直流电机调速;红外无线遥控1直流电机的调速分析及研究意义1.1 直流电机调速原理 根据励磁方式不同,直流电机分为自励和他励两种类型。不同励磁方式的直流电机机械特性曲线有所不同。对于直流电机来说,人为机械特性方程式为: (1.1)式中UN ,- 额定电枢电压、额定磁通量; ,-与电机有关的常数; ,-电枢外加电阻、电枢内电阻; ,理想空载转速、转速降。分析(1.
7、1)式可得当分别改变UN、 和Rad时,可以得到不同的转速n,从而实现对速度的调节。由于=,当改变励磁电流If时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流If,和磁通量只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻Rad时,会使机械特性变软,导致电机带负载能力减弱。对于他励直流电机来说,当改变电枢电压时UN,分析人为机械特性方程式,得到人为特性曲线如图1-1。如图1-1所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒
8、定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。改变电枢电压可通过多种途径实现,如晶闸管供电速度控制系统、大功率晶体管速度控制系统、直流发电机供电速度控制系统及晶体管直流脉宽调速系统等。图1-1直流电动机机械特性曲线 图1-2 电枢电压“占空比”与平均电压关系1.2 PWM基本原理及其实现方法1.2.1 PWM基本原理 PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统
9、中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为: =* (1.2) 式中,Vd-电机的平均速度; Vmax-电机全通电时的速度(最大); D=t1/T-占空比。 由公式1-2可见,当我们改变占空比时D=t1/T,就可以得到
10、不同的电机平均速度 ,从而达到调速的目的。严格地讲,平均速度Vd与占空比D=t1/T并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系.1.2.2 实现方法PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍利用单片机对PWM信号的软件实现方法。STC89C51单片机具有两个定时器T0和T1。通过控制定时器初值T0和T1,从而可以实现输出口输出不同占空比的脉冲波形。由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方
11、式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为f,定时器/计数器为N位,则定时器初值与定时时间的关系为: (1.3)式中,T- 定时器定时初值; N-一个机器周期的时钟数。N随着机型的不同而不同。在应用中应根据具体的机型给出相应的值。这样,我们可以通过设定不同的定时初 值 ,从而改变占空比D=t1/T,进而达到控制电机转速的目的。1.3 控制程序设计控制程序的设计有两种方法:软件延时法和计数法。软件延时法的基本思想是:首先求出占空比D=t1/T,再根据周期T分别给电机通电M个单位时间t0,所以M=t0/t1。然后,再
12、断电M个单位时间,所以M=t2/t0 。改变M和M的值,从而也就改变了占空比D。计数法的基本思想是:当单位延时个数M求出之后,将其作为给定值存放在某存储单元中。在通电过程中,对通电单位时间t0的次数进行计数,并与存储器的内容进行比较。若不相等,则继续输出控制脉冲,直到计数值与给定值相等,使电机断电。软件采用定时中断进行设计。如图2-12所示,单片机上电后,系统进入准备状态。当按动按钮后,执行相应的程序,根据P2.6或P2.7输出的高电平决定直流电机的正反转。根据不同的加、减速按钮,调整P2.6或P2.7输出高低电平时的占空比,从而可以控制P2.6或P2.7输出高低电平时的延时时间,进而控制电压
13、的大小来决定直流电机转速。 2.系统硬件设计2.1 系统方案 本设计以STC89C51单片机为核心,以红外遥控器的5个按键作为输入达到控制直流电机的停止、加速、减速、正转、反转。在设计中,采用PWM技术对电机进行控制,通过对占空比的改变达到调速的目的。2.2功能简介直流电动机具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、停止和反转;能满足生产过程自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现自动化,结构简单,可靠性高,操作维护方便,电动机稳态运转时
14、转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于单片机性能优越,具有较佳的性能价格比,所以单片机在工业过程及设备控制中得到日益广泛的应用。PWM调速系统与可控整流式调速系统相比有下列优点:由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好:同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。本文所介绍的系统就是一个采用典型的开环调速原理组成的单片机PWM调速系统。2.3主要内容 采用单片机构成的直流电动机数字PWM调速系统,其控制核心主要由
15、51单片机、电源模块、电机驱动电路、按键(加速、减速、停止、正转、反转)、直流电机组成。系统采用L298N芯片作为PWM驱动直流电动机的供电主回路。单片机通过软件处理输出PWM信号, 实现了直流电动机的速度控制,在运行中获得了良好的动静态性能。在介绍了基于单片机用PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现方法。重点介绍了基于STC89C51单片机的用软件产生PWM信号的途径,并介绍了一种独特的通过软件定时中断实现PWM信号占空比调节的方法。由于单片机的驱动能力不强,驱动直流电机需要很强的电流所以必须有外围的驱动电路,因此本设计采用L298芯片放大单片
16、机微弱的电流。 控制原理:以STC89C51单片机为核心的直流电机控制系统控制,由软件转换成PWM信号,并由P1.4、P1.5输出,经驱动电路输出给电机,从而控制电机得电与失电。软件采用定时中断进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P2.6为高电平实现电机正转,P1.4为高电平时实现电机反转。根据不同的加减速按钮,调整P1.4/ P1.5输出高低电平时的预定值,从而可以控制P1.4/ P1.5输出高低电平时的占空比,进而控制电压的大小。控制程序应用于电机的加减速。2.4电机调速控制模块2.4.1 方案选择方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的
17、目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用驱动芯片L298N驱动直流电机,L298N具有驱动能力强,外围电路简单等优点,因此我们采用方案三。2.4.2 PWM调速工作方式方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电
18、动机的转向和转速。方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了方案二。2.5系统分析与硬件设计 键盘向单片机输入相应控制指令,由单片机通过P1.4与P1.5其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、驱动电动机控制电路,实现电动机转向与转速的控制,电动机正转,反转,加速,减速、停止。总体设计方案的硬件部分详细框图如图2-1所示:图2-1 系统硬件框图2.5.1设计部
19、分分析1、STC89C51 STC89C51内有8位的CPU、4K的ROM程序存贮器,128个字节RAM数据存贮器,4个8位并行口,2个16位定时器T0和T1,一个异步串行口UART。STC89C51是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造。另外,STC89C51可降至0HZ静态逻辑操作,支持两种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切停止工作,直到下一个中断或硬件复位为止。2、复位电路及时钟电路复位电路和时
20、钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。 图2-2上电复位 图2-3手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。2.5.2直流电机驱动电路设计 由于单片机P3口输出的电压最高才有5V,难以直接驱动直流电机。所以我们需要使用恒压恒流桥式2A驱动芯片L298N来驱动电机。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.57V电压。4脚VS接电源电压,VS电压范围VIH为2.546V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻
21、,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。同时需要加四个二极管在电机的两端,防止电机反转的时候产生强大的冲击电流烧坏电机。具体驱动电路如下图2-9:2.6红外遥控电路设计2.6.1 红外系统方框图(1) 发射端电路:由单片机系统、红外发射电路及红外遥控按键,电源电路等组成。其设计原理图如下:图2-4 遥控器方框图2.6.2 系统功能需求本遥控系统要求用单片机作为控制芯片制作一个遥控器,使一个单片机系统能
22、被遥控操作。本系统要求遥控器能够实现直流电机的启停、加速、减速、正转、反转功能。用STC89C51来作主芯片控制,采用红外接收头,具有红外遥控功能。2.6.3 红外发射电路本遥控发射器采用码分制遥控方式,码分制红外遥控就是指令信号产生电路以不同的脉冲编码(不同的脉冲数目及组合)代表不同的控制指令。在确定选择STC89C51作为本设计发射电路核心芯片和点触式开关作为控制键后,加上一个简单红外发射电路和12M晶体振荡器便可实现红外发射。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。
23、目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通二极管相同,只是颜色不同。 图2-5 红外发射电路2.6.4 红外检测接收电路 在接收过程中,脉冲通过光学滤波器和红外二极管转换为40KHZ的电信号,此信号经过放大,检波,整形,解调,送到解码与接口电路,从而完成相应的遥控功能。接收电路如图 通常,红外遥控器将遥控信号(二进制脉冲码)调制在40KHZ的载波上,经缓冲放大后送至红外发光二极管,产生红外信号发射出去。将上述的遥控编码脉冲对频率为40KHZ的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。 根据遥控信号编码和发射过程,遥控信号的识
24、别即解码过程是去除40KHZ载波信号后识别出二进制脉冲码中的0和1。由ST89C51单片机、一体化红外接收头、还原调制和红外发光管驱动电路组成。 接收部分主要元件是红外接收管,它是一种光敏二极管(实际上是三极管,基极为感光部分)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。2.7 设计所需部分器件变压器、单片机STC89C51、直流电机驱动芯片L298N、12MHZ晶振、7805、四位共阳数码管、电容、电阻、红外遥控器、5V直流电动机等。2.8应用软件的编制、调试使用Keil 软件工具时,项目开发流程和其它软件
25、开发项目的流程极其相似。(1) 创建一个项目,从器件库中选择目标器件,配置工具设置。(2) 用C语言或汇编语言创建源程序。(3) 用项目管理器生成应用。(4) 修改源程序中的错误。(5) 测试,连接应用。3. 系统软件的设计3.1 电机控制系统程序的总体设计 利用P2口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的电平的持续时间,达到使电机正转、反转、加速、减速、停转等目的。由软件编程从P1.4/P1.5管脚产生PWM信号,经驱动电路输出给电机,从而控制电机得电与失电。软件采用延时法进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P1.4为高电平时实现电机正转,P
26、1.5为高电平时实现电机反转。根据不同的加减速按钮,调整P1.4/ P1.5输出高低电平时的占空比,从而可以控制P1.4/ P1.5输出高低电平时的有效值,进而控制电机的加减速。其总体流程图如图3-1示:图3-1 总体程序流程图3.2 红外遥控器的程序设计3.2.1 遥控码的发射(1)遥控码的发射当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码得脉冲个数,再调制成40KHZ方波由红外线发光管发射出去。通常,红外遥控是将遥控信号(二进制脉冲码)调调制在40KHZ的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。为了提高抗干扰性能和降低电源消耗,将上述的遥控编码脉冲
27、对频率为40KHZ(周期为26us)的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。红外信号发射过程:首先装入发射脉冲个数(发射时为3ms脉冲,停发时为1ms脉冲),此时若发射脉冲个数为1则返回主程序,若不为1则发1ms脉冲,然后停发1ms脉冲,这样结束整个发射过程。在实践中,采用红外线遥控时,由于受遥控距离、角度等影响,使用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。(2) 发射端程序流程图图3-2 遥控发射主程序流程图图3-3 遥控发射器遥控码发射程序流程图3.2.2 红外接收 遥控接收部分的主程序及初始化及延时过程如下:
28、首先初始化,然后判断是否有按键按下,若有,则发送相应信号;若无按键按下,则返回。(1) 接收端程序流程图图3-4 遥控接收器主程序流程图(2) 中断过程:首先判断低电平脉宽是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并对低电平脉冲计数,接下来看判断高电平买宽度是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序,此时中断返回。图3-5 遥控接收器中断程序流程图4.系统的电路原理图图4-1红外信号接收图图4-2电路原理图总结和体会 经过努力,我们终于完成这次课程设计任务。在这次的单片机课程设计中我感觉受益匪浅,
29、不用说我在其中学到的新知识是多么有价值,也不用说它拓宽了我多少的眼界,只是说它让我的能力得到了提高就已足以成为我努力付出的回报。通过课程设计,我增强了对单片机的理解,学会查寻资料比较方案,学会单片机的设计计算;进一步提高分析解决实际问题的能力,创造一个动脑动手独立开展电路实验的机会,锻炼分析解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。做程序设计时,有些指令读不懂,不会用,要翻书上网查看,所亮的灯不是所预想的,经过仔细检查发现程序赋值问题并解决。同时也做出了实物,基本上实现了直流电机的停止、加速、减速以及转向控制
30、。个人感觉其中还有许多不够完善的地方,例如:对红外遥控器控制时加速和减速控制不能连续进行,另外,电机驱动电路的设计也不是很成熟。通过此次设计,我们的学习能力和解决问题的信心都得到了提高。在设计的过程中,遇到了很多困难,但是在查阅了很多有关书籍和向同学请教后终于解决了。通过这次设计,我不仅对理论有了更深一步的认识,还培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。参考文献(1)张迎新.单片微型计算机原理、应用及接口技术M.国防工业出版社,2009.(2)单片机原理与接口技术(作者:赵嘉蔚,)出版社:清华大学出版社(3)C语言程序设计学习辅导 (作者:谭浩强)出版社:清华大
31、学出版社附录1实物图2程序#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit IR=P32; /红外接口标志#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换#define uint unsigned intsbit LATCH1=P26;/定义锁存使能端口 段锁存sbit LATCH2=P27;/ 位锁存sbit INPUT1 = P10; /控制口sbit INPUT2 = P11;sbit INPUT3 = P12;sbit INPUT4 = P13;sbit ENA = P14; /产生PWM波sb
32、it ENB = P15;uint MA=0,MB=0,JIAN=20;static int flag=1,JIA=20;uint SpeedA=20;/50%占空比uint SpeedB=20;/*- 全局变量声明-*/unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char irtime;/红外用全局变量bit irpro_ok,irok;unsigned char IRcord4;unsigned char irdata33;/*-
33、函数声明-*/void Ir_work(void);void Ircordpro(void);/*- 延时函数-*/void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=125;y0;y-);/*- 定时器0中断处理-*/void tim0_isr (void) interrupt 1 using 1 irtime+; /用于计数2个下降沿之间的时间/*- 外部中断0中断处理-*/void EX0_ISR (void) interrupt 0 /外部中断0服务函数 static unsigned char i; /接收红外信号处理 static bit
34、 startflag; /是否开始处理标志位 if(startflag) if(irtime=33)/引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; else irtime=0; startflag=1; /*- 定时器0初始化-*/void TIM0init(void)/定时器0初始化 TMOD=0x02;/定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x00; /初始化值 ET0=1;
35、/开中断 TR0=1; /*- 定时器1初始化-*/void time1_init() interrupt 3 using 1TR1=0;TH1 = (65536-10000)/256;TL1 = (65536-10000)%256;MA=MA + 1;if(flag=1) ENB=0;if(MA JIA) ENA=1;else ENA = 0;if(MA = 40) MA = 0;else ENA=0;if(MA JIA) ENB=1;else ENB = 0;if(MA = 40) MA = 0;TR1 = 1;/*- 外部中断0初始化-*/void EX0init(void) IT0 =
36、 1; /指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; /使能外部中断 EA = 1; /开总中断/*- 键值处理-*/void Ir_work(void)/红外键值散转程序 switch(IRcord2)/判断第三个数码值 case 0x0c:ET1 = 1;ENA=1;DataPort=dofly_DuanMa1;break;/1 显示相应的按键值 case 0x18:ET1 = 0;ENA=0;DataPort=dofly_DuanMa2;break;/2 case 0x5e:flag=1;DataPort=dofly_DuanMa3;break;/3 case 0
37、x08:flag=0;DataPort=dofly_DuanMa4;break;/4 case 0x1c:JIA+;DataPort=dofly_DuanMa5;break;/5 case 0x5a:JIA-;DataPort=dofly_DuanMa6;break;/6 case 0x42:DataPort=dofly_DuanMa7;break;/7 case 0x52:DataPort=dofly_DuanMa8;break;/8 case 0x4a:DataPort=dofly_DuanMa9;break;/9 default:break; irpro_ok=0;/处理完成标志 /*- 红外码值处理-*/void Ircordpro(void)/红外码值处理函数 unsigned char i, j, k; unsigned char cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7)/大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value|=0x80; if(j=1; k+; IRcordi=value; value=0; irpro_ok=1;/处理完毕标志位置1/*- 主函数-