基于红外遥控步进电机的设计
基于红外遥控步进电机的设计
基于红外遥控步进电机的设计红外遥控步进电机是一种使用红外遥控技术控制的步进电机。
步进电机是一种具有精确步进角度和良好定位特性的电机,它被广泛应用于机械、电子和自动化系统中。
红外遥控步进电机的设计主要包括以下几个方面:1.红外解码模块设计:红外解码模块用于接收红外遥控信号并解码得到相应的命令。
设计中需要考虑红外传感器的灵敏度和接收频率范围,以确保能够正确地接收和解码红外信号。
2.电机驱动电路设计:电机驱动电路用于控制步进电机的运动。
设计中应考虑步进电机的相序控制和驱动电流控制,以确保能够精确地控制步进电机的步进角度和运动速度。
3.控制电路设计:控制电路用于接收解码后的红外信号,并将其与电机驱动电路连接起来。
设计中需要考虑控制电路与红外解码模块和电机驱动电路的接口和通信协议,以确保能够准确地控制电机的运动。
4.电源电路设计:电源电路用于为红外解码模块、电机驱动电路和控制电路提供稳定的电源供应。
设计中需要考虑电源电路的稳定性和输出电流和电压的需求,以确保能够正常地供电给整个系统。
5.外壳和机械结构设计:外壳和机械结构设计主要考虑电机的安装和固定。
设计中需要考虑电机的尺寸、重量和固定方式,以确保能够有效地安装和固定电机。
在实际应用中,红外遥控步进电机可以应用于各种场景,如智能家居中的电动窗帘、电动门禁等。
通过红外遥控技术,用户可以远程控制电动装置的运动,实现自动化操作。
总结起来,基于红外遥控的步进电机设计主要包括红外解码模块设计、电机驱动电路设计、控制电路设计、电源电路设计和外壳和机械结构设计等方面。
通过这些设计,可以实现对电机的远程控制,为各种应用场景提供自动化控制的解决方案。
基于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 概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
红外遥控控制步进电机程式(可用于军舰设计)
红外遥控控制步进电机程式(可⽤于军舰设计)Ps:本程序是军舰前端控制炮台部分,后端雷达扫描程序可以给我私信索取#include#define uint unsigned int#define uchar unsigned charsbit BEEP = P2^7; //蜂鸣器控制端⼝P36sbit moto0_bit=P2^6;sbit moto1_bit=P2^5;sbit led=P2^3;/**********采⽤四相⼋拍时序**********/uchar code zz[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//电机正转时序uchar code fz[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//电机反转时序uchar tmp;uchar irtime;uchar startflag;uchar irdata[33];uchar bitnum;uchar irreceok;uchar ircode[4];uchar irprosok;uchar disp[8];uchar moto0_zzflag;uchar moto0_fzflag;uchar moto1_zzflag;uchar moto1_fzflag;uchar ser_flag;uchar re[5];uint sp_dis;uint sz_dis;uint re_int[4];uint moto0_count;uint moto1_count;/*****************************************************函数功能:延时1ms***************************************************/void delay1ms(){unsigned char i,j;for(i=0;i<10;i++)for(j=0;j<33;j++);}/*****************************************************函数功能:延时若⼲毫秒⼊⼝参数:n***************************************************/void delay(uint n){uint i;for(i=0;idelay1ms();}/*********************************************************/ void beep() //蜂鸣器响⼀声函数{uchar i;for (i=0;i<100;i++){delay1ms();BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器delay(250); //延时}/**********步进电机0正转函数**********/ void moto0_zz(){uchar i;for(i=0;i<8;i++){P0=zz[i];delay(1);}}/**********步进电机0反转函数**********/ void moto0_fz() {uchar i;for(i=0;i<8;i++){P0=fz[i];delay(1);}}/**********步进电机1正转函数**********/ void moto1_zz() {uchar i;for(i=0;i<8;i++){P1=zz[i];delay(1);}}/**********步进电机1反转函数**********/ void moto1_fz() {uchar i;for(i=0;i<8;i++){P1=fz[i];delay(1);}}void timer0init(void){TMOD|=0x02;TH0=0x00;TL0=0x00;ET0=1;EA=1;TR0=1;}void serinit(){TMOD|=0x20;TH1=0xf3;TL1=0xf3;TR1=1;SM0=0;SM1=1;PCON=0x80;REN=1;EA=1;ES=1;}void send(uchar dat) { SBUF = dat;while(!TI);TI = 0;}void int0init(void){IT0=1;EX0=1;EA=1;}void irpros(void){uchar k,i,j;uchar value;k=1;for(j=0;j<4;j++){for(i=0;i<8;i++){value>>=1;if(irdata[k]>6){value=value | 0x80; }k++;}ircode[j]=value;}irprosok=1;}void main(){uint t;timer0init();int0init();serinit();for(t=0;t<512;t++) {if(moto0_bit==0) break;moto0_zz();}for(t=0;t<512;t++) {if(moto1_bit==0) break;moto1_fz();}while(1){。
方案设计书并实现红外遥控步进电机单片机课程方案设计书
课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 设计并实现红外遥控步进电机初始条件:(1)Proteus仿真软件或XL1000综合仿真实验仪一台;(2)课程设计辅导书:1. 李群芳、张士军,单片微型计算机与接口技术, 电子工业出版社,20082.张毅刚、彭喜元、董继成,单片机原理及应用,高等教育出版社,20043. 赵晓安.,MCS-51单片机原理及应用,天津大学出版社,2001(3)先修课程:微机原理与接口技术、单片机原理。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)课程设计时间:1周;(2)本课程设计统一技术要求:按照要求对选定的设计题目进行分析,画出实现电路原理图,设计出各模块电路的功能,编写C51或汇编程序,上机调试、仿真,记录实验结果,对实验结果进行分析; (除了代码,运行结果可以打印,其他手写) (3)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献至少5篇;(4)写出本次课程设计的心得体会(至少500字)。
时间安排:课程设计时间为:6月26日至7月1日,7月2日上午答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录1.设计原理及方法11.1步进电机的工作原理11.2红外遥控器的原理11.3红外遥控步进电机的设计方法22.系统硬件线路设计22.1红外遥控及LED模块22.2步进脉冲产生模块:52.3硬件线路设计图73.程序框图84.资源分配表:95.源程序:107.心得及体会:218.参考文献:219.本科生课程设计成绩评定表221.设计原理及方法1.1步进电机的工作原理步进电机是数字控制电机,它将电脉冲信号转化为角位移,实质上是一种数字/角度转换器。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
基于单片机的红外遥控系统设计毕业设计
本科生毕业设计(论文)论文题目:基于单片机的红外遥控系统设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:本设计是基于单片机的红外遥控系统设计,设计内容包括了红外接收,红外解码和步进电机控制三大块。
如今红外遥控技术已经得到了广泛的应用;其利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强。
我们日常生活中的电视机,洗衣机,空调,航天飞机,工业现场设备等都运用了红外遥控的技术。
本设计中发射端采用专用的发射芯片来实现红外遥控码的发射,且遥控码格式是NEC标准。
接收端采用市面上流行的1838一体化红外接收头,接收到的红外信号经由1838接收头完成光/电转化和解调的工作,然后把33位的完整码发送到解码芯片中去完成解码工作。
本设计中的主芯片是STC89C52单片机,主芯片和解码芯片之间进行串行通讯。
系统启动后,解码芯片将解码后得到的8位数据码串行发送到主芯片中,然后通过主芯片来控制步进电机的正转,反转,加速,减速。
本设计中的被控对象是步进电机,步进电机最适合做数字控制。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
红外遥控及按键控制步进电机报告
目录一、红外遥控步进电机系统设计 (1)1.1系统设计原理 (1)1.2总体设计 (1)二、系统硬件模块设计 (2)2.1 红外遥控工作模块 (2)2.2 步进电机工作模块 (3)2.2.1步进电机工作原理 (3)2.2.2步进电机的动作实现原理 (3)2.3 LED数码管模块 (5)2.4 硬件设计 (5)2.4.1 步进电机驱动电路 (5)2.4.2 红外遥控驱动电路 (6)2.4.3 系统硬件电路设计图 (6)2.4.4 在XL1000上的连线图 (7)2.4.5 系统资源分配表 (7)三、系统软件设计 (8)3.1 主程序设计 (8)3.2 中断子程序设计 (9)3.3 按键控制步进电机程序 (10)3.4 红外遥控步进电机程序 (14)四、系统调试和制作 (24)五、性能分析 (25)六、心得及体会 (26)七、参考文献 (27)一、红外遥控步进电机系统设计1.1系统设计原理利用红外遥控器控制步进电机其实和用键盘控制步进电机原理类似,只不过按键是用导线传递键是否按下的信号,而红外则是利用LED发射红外线传递按键信息。
由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。
控制步进电机正、反方向转动、单步、连续、快慢等动作,原理其实并不困难。
步进电机将电脉冲信号转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。
每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。
1.2总体方案设计根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中6个按键就可满足需求,外加8位LED数码显示管即可。
红外遥控控制步进电机
唐山学院毕业设计设计题目:基于单片机的步进电机控制系统设计与实现系别:信息工程系班级:姓名:指导教师:2013年6月10 日基于单片机的步进电机控制系统设计与实现摘要步进电机是一种纯粹的数字控制电动机,是一种受电脉冲信号控制的无刷式直流电动机,是现代定位驱动装置的核心,广泛应用在机械、电力、纺织、电子、仪表、印刷以及航空航天、船舶、兵器等国防工业等领域。
基于单片机的步进电机控制系统具有稳定度高、成本低、控制方便、应用范围广等特点。
本系统是由STC89C52单片机核心处理模块,遥控器命令输入模块,ULN2003及28BYJ-48步进电机组成的电机模块,12864液晶输出模块共同组成的基于单片机的步进电机控制系统。
本设计以载波为38KHZ的红外遥控器作为用户的控制端,它的功能是把用户的命令转换为红外信号。
红外信号由TL1838接收,它可以将光信号转换为电信号,并将其发送给微控制器STC89C52。
STC89C52对电信号进行相应处理即可获得用户所发出的指令,并依此来控制28BYJ48型四相八拍电机并以12864液晶作为当前状态的显示器。
用户可以对步进电机进行加速、减速、正转、反转的控制。
本步进电机控制系统具有精度高、运行稳定、控制方便、维护简单、应用范围广等特点。
关键词:STC89C52 12864液晶步进电机红外遥控Design and Implementation of Stepper Motor Control System Based on MCUAbstractStepper motor is a kind of pure digital control motor and brushless dc motor controlled by electric pulse signal type. Stepper motor is the core of the modern orientation drive, widely used in machinery, electric power, textile, electronics, instruments, printing and aerospace, ships, weapons, and other areas of the defense industry, etc. The characteristics of the stepping motor control system based on single chip microcomputer include high stability, low cost, convenient control and wide application , etc.The stepper motor control system consists of core processor using the single chip processor, command input control module using IR remote control , display module using 12864 LCD and 28BYJ48 stepping motor module which using ULN2003 as driver.The infrared remote control with carrier for 38 KHZ is used as the control end of the user, which can convert the users’ commands into the infrared signal. The TL1838 can receive the infrared signal and convert it into electrical signal, which input to tSTC89C52.The MCU can obtain instructions of users by processing the incoming signal and control stepping motor of the 28BYJ48 type, the current status can be shown by 12864 LCD. Users could control acceleration, deceleration, forward, inversion for the stepping motor. The features of the control system of stepper motor includes high precision, stable running, convenient control and simple maintenance and wide application, etc.Key word:MCU; 12864 LCD; Stepper Motor; Infrared remote control目录1 引言 (1)2 总体设计方案 (2)2.1系统设计原理 (2)2.2总体设计框图 (2)3系统硬件模块的组成 (3)3.1单片机控制模块 (3)3.1.1 STC89C52主要结构 (3)3.1.2 STC89C52功能特性描述 (3)3.1.3 时钟电路 (6)3.1.4复位电路 (6)3.2步进电机模块 (7)3.2.1 步进电机简介 (7)3.2.2步进电机的结构 (8)3.2.3 28BYJ-48步进电机工作原理 (8)3.3ULN2003芯片概述与特点 (9)3.4红外线发射接收模块 (10)3.4.1 红外线遥控的介绍 (10)3.4.2红外通信基本原理 (10)3.4.3 红外遥控发射系统 (12)3.4.4 红外遥控接收系统 (12)3.4.5 TL1838与单片机的接口 (14)3.512864显示模块 (14)3.5.1 12864液晶的特点 (14)3.5.2 12864液晶的引脚说明 (15)3.5.3 12864液晶的读写操作 (17)3.5.4 12864液晶的控制指令 (17)3.5.5 12864液晶接口电路 (20)3.6蜂鸣器模块 (20)3.6.1 蜂鸣器介绍 (20)3.6.2 蜂鸣器的接口电路 (21)4 软件设计与调试 (22)4.1主程序流程图 (22)4.2程序设计思路 (23)4.2.1 遥控器的解码 (23)4.2.2 步进电机的控制 (23)4.2.3 显示屏的控制 (24)4.2.4 蜂鸣器的控制 (24)4.2.5 模块中的通信 (24)5 编程与下载软件 (25)5.1 Keil软件 (25)5.2STC-ISP下载软件 (26)6 硬件电路制作 (27)6.1原理图的绘制 (27)6.2电路实现的基本步骤 (27)7 结论 (30)谢辞 (31)参考文献 (32)附录 (33)1 引言步进电机是一种纯粹的数字控制电动机,又称为阶跃电机或脉冲电机[1]。
基于单片机的红外遥控步进电机的设计
通过调试能实现如下功能:
-147-
制 造
中国科技信息 2009 年第 15 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Aug.2009
(1)19H键为步进电机调速控制和角位 移的切换键,16H 键为步进电机反转按键, 0AH 键为步进电机正转按键。键值 01H~ 04H 为电机的四种速度状态或四种角位移 状态,键值 0 D H 、0 E H 为速度或角位移 微调按键,键值 15H、14H 为角位移调节 按键。
2.1 硬件组成和工作原理 红外遥控器发出红外信号后,通过红 外一体化接收头进行接收。然后将接收到 的信号送入 AT89C51 单片机的 P3.2 口,通 过软件编程,对 P3.2口接收的信号进行译 码处理。这样就可以根据译出的码字对步 进电机进行正反转、调速以及角度控制,并 且可以将译出的码字值和步进电机的状态、 速度值或角度值通过 LCD 显示出来。 整个系统划分为红外线译码模块,液 晶屏显示模块,步进电机控制模块等三个 模块,三个模块之间通过红外信号译码值
图 1 系统原理框图
红外遥控信号接收器用的是 LT0038, 它是塑封一体化红外线接收头,是一种集 红外线接收、放大、整形于一体的集成电 路,不需要任何外接元件,就能完成从红 外线接收到输出与 TTL 电平信号兼容的所 有工作,没有红外遥控信号时为高电平, 收到红外信号时为低电平,而体积和普通 的塑封三极管大小一样,它适合于各种红 外线遥控和红外线数据传输。
变压器风冷控制系统形式多样、升级 改造频繁,在安装、维护工作中,必须 掌握设备的结构原理,针对设备特点和运 行状态,制定完善的检修工艺标准,及时 消除设备缺陷,保证风冷系统的安全稳定 运行。
图 4 解码子程序流程图
利用红外技术和单片机对步进电机的无线控制
利用红外技术和单片机对步进电机的无线控制随着无线技术的发展,越来越多的设备开始采用无线控制,而在机械设备中,步进电机的无线控制更是常见,而且成本相对较低,可靠性较高。
本文将介绍如何利用红外技术和单片机对步进电机进行无线控制。
一、步进电机简介步进电机是一种带有指向性的电动机,可以控制其旋转的方向和步数,非常适合用于一些需要精准控制的场合,例如机器人控制、CNC数控机床、3D打印机等。
它的转子是通过不断改变磁场来实现旋转,适用于低速高扭矩的控制。
二、红外技术的优势红外技术是一种无线通信技术,优点是无需物理连接,使用方便,隔墙透视效果极佳,广泛应用于智能家居、电子产品等领域。
由于控制步进电机需要对其进行精准的定位和调节,红外技术可以实现精度控制。
三、单片机的作用单片机是一种集成电路,可以通过编程控制其输出和输入,是控制步进电机的重要组成部分。
单片机可以接收来自红外遥控器的信号,控制步进电机的速度和方向,帮助用户实现相应的操作。
四、无线控制步进电机的实现1、红外遥控器为了实现无线控制步进电机,用户需要首先找到一款可靠的红外遥控器。
如果自己编写红外遥控器,需要确保其稳定性和精度。
2、红外接收器在接收控制信号之前,需要选择一款品质优良的红外接收器,可以支持多个控制通道,并具有较高的解码效率,避免信号误差和延迟。
3、单片机单片机可以作为控制系统的核心,可以接收红外信号并将信号解码成二进制,然后通过控制电路生成相应的步进电机驱动信号,实现无线控制步进电机的功能。
4、电机驱动电路电机驱动电路是连接单片机和步进电机的桥梁,需要根据步进电机的规格和工作参数来设计和调节。
常见的电机驱动电路有L293D、ULN2003和A4988等,可以选择合适的电路来驱动步进电机。
5、步进电机最后,需要选择合适的步进电机,确保其匹配上述电路和电路参数,同时具有高精度、低噪音、高效率等特点。
常见的步进电机有42步、57步、86步等,可以根据实际需求进行选择。
红外遥控步进电机系统设计与实现
原文Infrared remote control stepping motor system design andimplementation0 introductionStepping motor will signal into electrical impulses for angular displacement or line open loop control elements of displacement. In the overload situation, motor speed, the stop position should take the pulse technology in the frequency of the signal and pulse count, and do not suffer the change of load effects, which add to the motor a pulse signal, motor is turned a corner step distance. So it made in speed, position control field with stepping motor control became very simple, and user application more convenient and master.With the rapid development of information technology, and wireless communications technology is to every field penetration, especially infrared communication, whether from the miniaturization, light quantify or from the safety of consideration, its feasibility is higher. This paper makes a study of the stepping motor in the manual, automatic control mode, by increasing the infrared remote control model in order to realize the stepping motor of multi-function control1 the step motor control systemsIn order to realize the stepping motor of the manual, automatic and remote control and multi-function operating mode, design of a stepping motor control system, the system of a figure. System SCT89C52 choose single chip microcomputer as the controller to 4 * 4 lose, into the keyboard and button as manual input circuit, choose DS1302 as the clock circuit, it LCD1602 as the output show circuit, the choice HS0038 for infrared receiving circuit, the PCF8591 as A/D conversion devices, sensors chose photosensitive components. Choose ULN2003 stepping drive, to model for 28 BYJ48 type stepping motor driver.Manual input circuit is mainly used to realize the parameter setting, so that in manual mode control motor is, reverse; The clock control circuit provides information on the clock, on the other hand, realize the step motor time start-up and stop; Sensor and A/D conversion according to external detection signal circuit, and realize the automatic state under different requirements step motor running; Infrared sending and receiving circuit to send and receive information control infrared remote control to send the information, and to the single chip microcomputer controller decoding, thus a controlled command. Display circuit of the system in the process of operation status information and working mode display; Single chip microcomputer controller is the core of the system components and the completion of the input signal collection, operations. Judge andprocess, and sent out the control command or output corresponding display information. Motor driving circuit control command from the receiving controller to drive stepping motor to realize days or reverse.Graph one system of the diagram2 the hardware circuit design2.1 infrared receiver and send a circuitHS0038 integrated infrared receiver when the output static high-level output, when receiving to infrared signal, according to the data output signal waveform negative pulse data signals. Infrared receiving circuit output by P3.2 mouth of single chip, using the mouth of the second function (INT0), once a infrared signal arrival, the P3.2 is pulled low, microcontroller to interrupt receiving, infrared signal processing. Its the wiring diagram shown in figure 2, which meet P3.2 port IRIN.Infrared send circuit can choose AngDa player remote controls, also can use the TV remote control. Because the system is simple, the paper AngDa player of the remote control.2.2 and stepper motor stepping drive(1) the stepping motor: 28 BYJ48 type stepping motor is four phase eight racket, the voltage of DC5 V ~ DC12 V. Four phase step motor can be on different electricity mode, common switching modes have single (single winding electricity) 4 beats (A-B-C-D-A), double (duplex winding electricity) 4 beats (AB-BC-CD-DA-AB) and eight clapRgFigure 2 infrared hookup(2) stepping drive: the ULN2003 drive, is a single chip microcomputer high voltage, high current of transistor arrays of lyndon integrated circuit, by 7 to NPN of lyndon tube with high voltage of output characteristic. ULN2003 is large current drivers array, more for single-chip microcomputer, intelligent instruments, PLC, digital output control circuit of the card, etc, can be directly drive relays for load. 5 VTTL level input, output up to 500 mA / 50 V.(3) motor driver circuit: 28 BYJ48 type stepping motor is four phase five line slow step motor, the deceleration than for all four, step Angle for (5.625/64) °. If one round, it is required to use (360/5.625) * 64 = 4096 a pulse signal. The ULN2003 driven drive port for P1.0 (A), (B), P1.1 P1.2 (C), P1.3 (D). Are turning the order-BC group AB group-CD group-DA group; Reverse the order: AB group-AD group-CD group-CB group. Stepping motor connecting diagram as shown in figure 3.C1 VOCStepping motor connecting diagram3 infrared receiver and decodingSystem software program, including the main mainly infrared interrupt procedure, A/D conversion subroutines, display A subroutine, clock control procedure and stepping motor program. Below mainly introduces the design of the infrared decoding program. 360毕业设计网 The remote control of the remote control code is produced for the 32-bit binary code, former 16 for user identification number, can distinguish different electric equipment, prevent the various types of remote control code mutual interference. The chip identification number fixed high eight address for 0 BFH, low eight address for 40 H; After 16 for eight operation codes and its FanMa.The remote control keys pressed by the same kind of periodic when the32-bit binary code, data formats including guide code, users code, data code, data FanMa, code of 32 in total. The known 8 bits of data code and 8 bits of data FanMa width and constant, for 27 ms, so have to 32 the width of the code for (18 ms + 27 ms) ~ (36 ms + 27 ms).The key is how to identify the decoding "0" and "1", the code format to accept the code shall prevail, accept a code and launch code reverse. From the definition of a we can find "0" and "1" all of ms 0.56 from low level beginning, just the high level of the width is different, so must according to the width of the high level difference "0" and "1". If ms began to delay from 0.56 0.56 ms, if read for the low level, which shows that this is a "0", and it is "1". For reliable on the safe side, delay must be more than 0.5 ms long points, but no more than 1.12 ms, generally take (1.12 ms + 0.56 ms) / 2 = 0.84 ms most reliable. Figure 4 gives the infrared receive, interrupt receiving flow chart.4 last wordThe actual operation shows that the stepping motor as executive components to SCT89C52 single chip microcomputer as the controller to manually enter button as manual input signal to infrared remote control device in the remote operation, and with the clock control and state display stepping motor control system, can easily achieve the step motor manual and automatic operation operation more reliable multi-function remotecontrol.译文红外遥控步进电机系统设计与实现0 引言步进电机将电脉冲信号转变为角位移或线位移的开环控制元件。
基于51单片机的步进电机红外控制系统的设计
文章标题:基于51单片机的步进电机红外控制系统的设计引言在现代科技发展迅速的时代,控制系统已经被广泛应用于各个领域。
其中,基于51单片机的步进电机红外控制系统的设计,不仅在工业领域有着重要的作用,同时也在家电领域、智能家居等方面得到了广泛的应用。
本文将从步进电机控制系统的设计原理、红外控制的基本概念以及基于51单片机的系统设计方案等方面展开深入探讨。
一、步进电机控制系统的设计原理步进电机是一种将电脉冲信号转换为机械位移的执行元件,其控制系统设计原理是核心。
以步进电机为执行元件的控制系统通常包括电脉冲发生电路、电流驱动电路、位置控制逻辑电路以及接口电路等模块。
在系统设计中,需要考虑步进电机的类型、工作方式、转动角度以及控制精度等因素,以选择合适的控制方案和相关元器件。
针对步进电机的控制系统设计,首先需要从硬件电路和软件控制两个方面进行综合考虑。
硬件方面需要设计合适的脉冲发生电路和驱动电路,并根据具体场景考虑相关的接口电路,以实现步进电机的控制和驱动。
而软件控制方面,则需要编写相应的控制程序,使得系统能够根据具体的控制要求进行精准的控制和调节。
二、红外控制的基本概念红外控制是一种常见的无线遥控技术,通过使用红外线传输信号来实现对设备的控制。
通常包括红外发射器和红外接收器两个部分,发射器将控制信号转换成红外信号发送出去,接收器接收红外信号并将其转换成电信号进行处理。
在实际应用中,红外控制技术已经被广泛应用于各种家电遥控器、智能家居系统以及工业自动化领域。
红外控制的基本原理是在发射器和接收器之间通过红外线进行双向通信,通过调制解调的方式进行信号的传输和解析。
设计基于红外控制的步进电机系统需要考虑红外信号的发射和接收过程,以及相关的解析算法和信号处理。
信号的稳定性、抗干扰能力以及传输距离等也是需要考虑的重要因素。
三、基于51单片机的系统设计方案在步进电机红外控制系统的设计中,选择合适的控制芯片和处理器是至关重要的。
基于红外遥控的步进电机智能控制电路设计方案
基于红外遥控的步进电机智能控制电路设计方案第一章概述步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
根据步进电机驱动方式,我们想到了用单片机输出频率,但是单片机输出电压不够,需要升压,于是在单片机的外围电路上加上高速光耦电路在去驱动步进电机,本设计最大的优点在于可以远程遥控,步进电机的转动的频率。
本课题最大的意义,是突出机电一体化(电子技术)专业的精华,弱电控制强电,强弱相结合,智能控制。
在确定设计方向后,我们这个设计小组就讨论在分步分模块设计电路,然后整体结合。
还是一步就把整个电路做出来。
在解教授的指导下,我们明白设计需要严谨,电路不能一步成功,而是一步一个脚印,步进式的设计电路,分模块做电路和写程序。
于是我们设计和调试都是分部进行的,每个成员做一个擅长的模块,然后再整体结合,虽然在结合过程中,有许多困难,但是在解教授的指导下,一一攻破。
最后设计完成液晶时间显示,红外线发射,红外线接收,输出频率。
使步进电机智能控制正常运行。
第二章系统硬件设计2.1红外线发射部分总电路红外线发射部分总电路如图2.1所示。
图2.1电路采用了AT89S52低功耗单片机,红外线发射二极管,DS1302时钟芯片,LCD1602液晶显示屏,矩阵按键。
2.2微机系统电路:AT89C52是一个低电压,高性能CMOS 8位单片机,片含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
基于STC89C52单片机红外遥控步进电机
项目名称:基于STC89C52单片机红外遥控步进电机一、摘要>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>二、关键词>>>>>>>>>>>>>>>>>>>>>>>>>>>>>三、STC89S52概述>>>>>>>>>>>>>>>>>>>>>>1.概述>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>2.主要性能>>>>>>>>>>>>>>>>>>>>>>>>>>3.单片机引脚分布图>>>>>>>>>>>>>>>>>>>四、功能描述及分析>>>>>>>>>>>>>>>>>>>>>>五、软件描述>>>>>>>>>>>>>>>>>>>>>>>>>>>1.程序流程图>>>>>>>>>>>>>>>>>>>>>>>>2.判断编码电平流程图>>>>>>>>>>>>>>>>>六、操作说明>>>>>>>>>>>>>>>>>>>>>>>>>>>七、实施步骤>>>>>>>>>>>>>>>>>>>>>>>>>>>1.步骤>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>2.PCB制作流程>>>>>>>>>>>>>>>>>>>>>>>3.原理图及电路分析>>>>>>>>>>>>>>>>>>>>八、项目制作原件清单>>>>>>>>>>>>>>>>>>>>九、项目程序>>>>>>>>>>>>>>>>>>>>>>>>>>>>十、毕业作品实物照>>>>>>>>>>>>>>>>>>>>>>> 十一、毕业设计总结>>>>>>>>>>>>>>>>>>>>>>>一、摘要随着我国工业化、信息化进程的高速发展,电子信息产业蓬勃发展,国内对单片机及其外围设备研究越来越深入,实用也越来越广泛。
题目:基于红外遥控的步进电机.03
系统结构
(二)红外接收系统 红外接收系统主要有由光敏二极管构成的红外接收
电路及单片机构成。红外接收系统硬件电路结构图如 图2-2所示。
系统结构
(三)单片机控制步进电机系统 单片机控制步进电机系统主要由单片机、液晶显示
及步进电机构成。单片机控制步进电机系统硬件电路 结构图如图2-3所示。
红外遥控步进电机课题设计要求: 1、实现红外遥控; 2、通过红外遥控,实现步进电机的正转、反 转及转速控制; 3、在液晶屏上显示出来。
设计要点
系统设计主要包括硬件和软件两大部分,依 据控制系统的工作原理和技术性能,将硬件和软 件分开设计。
硬件设计部分包括合理选择元器件、绘制电 路原理图等。
VCC
复位电路设计
RE SE T
C3
R1
VCC
10μF
10K
D1
Res et
1N414 8
四、软件程序设计
红外遥控步进电机总体程序结构图
键盘扫描程序流程图
红外发射程序流程图
红外接收程序流程图
液晶显示程序流程图
单片机控制步进电机程序流程图
毕业论文答辩
题目:基于红外遥控的步进电机控制设计
指导老师:陈锦妮 学生:崔鑫
一、概述
在目前这个科技突飞猛进的时代,科技的发展也越 来越实用化、生活化,与人类的生活息息相关,为人 类提供便捷。集很多优势和特点于一身的红外控制、 单片机、步进电机的结合必然的成为了一种趋势,红 外遥控步进电机应运而生。随着它的发展与应用,人 们的生活也将更加便捷。基于单片机的红外遥控技术 是一种无线、非接触控制技术,具有抗干扰能力强, 信息传输可靠,功耗低,成本低,易实现等显著优点, 被诸多电子设备特别是家用电器广泛采用,并越来越 多的应用到计算机系统中。本文介绍的系统可以通过 红外遥控实现对步进电机的转速和角位移的控制,并 通过液晶显示器显示出来。
单片机课程设计:遥控器控制步进电机
遥控器控制步进电机系统一、引言随着红外技术的进展,红外遥控以其安全方便的特点愈来愈受人们喜爱,本文的设计就是基于简单红外遥控而设计的,用简单的红外技术遥控步进电机,带动天车运动,以达到省时省力之目的。
二、整体设计1.接收部份图12.发射部份图2三、系统要求1.整个系统要求用4个功能键控制步进电机(天车用);2.整个系统分红外发射单元和红外接收单元;(1)红外发射单元:每按一下键即发送其键值对应的红外脉冲例如:1号键发一个脉冲2号键发二个脉冲……(2)红外接收单元:接收完相应的脉冲后,求出键值,从而转到相应的控制(进、倒、停);3.停、倒为天车遥控器,控制功能(1)天车位移距离0~50m(设步进电机转5步天车移动1m)(2) K1——1左移,0右移K2——1启动,0停止K3——给定值(十位)K4——给定值(个位)4.系统功能(1)按位移设定好给定值后,按下启动键,步进电机即可带动天车到给定的位置为止;(2)可按照预先设定值正反转(左右移动),启动/停止键进行人工控制;5.四位显示:图3前两位显示给定值(0~50m)后两位显示控制值(精准到m)四、遥控器电路图1. 红外发射电路图Proteus无法仿真红外发光二极管PH303,仿真中只画了示用意,用于产生图4所示的脉冲信号,实际电路图中,将下图的模拟PH303部份接PH303即可。
图42.红外接收电路图Proteus无法仿真红外接收管PH302,仿真中只画了示用意,用于PH303产生的红外脉冲信号,实际电路图中,将下图的模拟PH302部份接PH302即可。
图5。
红外遥控步进电机
红外控制步进电机一、引言红外线遥控是目前使用最广泛的一种通信和遥控手段。
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
1、红外遥控系统通用红外遥控系统由发射和接收两大部分组成。
应用编/解码专用集成电路芯片来进行控制操作,如图1所示。
发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。
图1 红外遥控系统原理图2、红外发射器及其编码遥控发射器专用芯片很多,本实验以日本NEC的uPD6121G组成发射电路(一般家庭用的DVD、VCD、音响都使用这种编码方式)。
当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。
这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.6 85ms、周期为2.25ms的组合表示二进制的“1”,特别注意所有波形,其接收端的与发射相反,其发射波形如图2所示。
图2 遥控码的“0”和“1”上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射,为了使接受可靠,一般发射还需发射引导码,引导码位9ms的高电平和4.5ms的低电平,如图3所示。
图3 遥控发射波形数据UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。
该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
UPD6121G最多额128种不同组合的编码。
基于步进电机的红外镜头控制组件设计
De i n o h n r r d c m e a l n o t o l g c m p n n sg f t e i f a e a r e s c n r li o n o e t
b s d o tp m o o a e n se t r
YANG n — i g, ANG a — n XI Yi — ui W U e , Ni g n n W Xio mi g, A n h , W i CHEN n Yi g
第4 2卷 第 1期
21 0 2年 1 月
激 光 与 红 外
L ER & I RAR AS NF ED
Vo. 1 42, .1 No
Jபைடு நூலகம் ay 2 1 a u r ,0 2
文 章 编 号 :0 1 0 8 2 1 ) l 0 13 10 — 7 (0 2 0 - 8 44 5 0
图1 所示 , 镜头是热像仪 的重要组成部件之一 , 镜头
中镜 片 的切换 、 移 实 现 了红 外 热 像 仪 视 场 的 变换 平
・
电子 电路 ・
基 于 步 进 电机 的红 外 镜 头 控 制 组 件 设 计
杨 宁 宁 , 晓 明, 王 夏寅 辉 , 吴 玮 , 陈 盈
( 北 光 电技 术 研 究 所 , 京 10 1 华 北 0 05)
摘
要: 镜头是热像仪的重要组成部件之一, 镜头 中镜 片的切换 、 移可实现红外热像仪视场 平
的变换和调焦。本文首先根据步进 电机 的工作原理 , 通过分析步进 电机的运 动模型和驱 动模 型 , 算 了实 际的驱 动脉 冲频 率和 驱 动 电流 。据 此 设 计 了一种 基 于 步进 电机 的红 外 镜 头控 制 计
设计并实现红外遥控步进电机单片机课程设计
2.2.2
如果给步进电机发送一个控制脉冲,它就转一步,再发送一个脉冲,它会再转一步。如果两个脉冲的间隔越短,步进电机就转得越快。调整步进电机发出的脉冲频率,就可以对步进电机进行调速,而脉冲频率可以通过软件延时和硬件定时两种方式实现。通过调用标准延时子程序产生脉冲的方法称软件延时,该法首先设置两个字节作为延时程序的入口地址,再根据需要延时的时间长短给这两个字节赋值,则单片机就会按照设置的延时时间不断地产生脉冲信号控制步进电机转动。软件延时的方法程序简单、思路清晰,而且不占用单片机的硬件资源。
步进电机可分为反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)三种。永磁式一般为两相,转矩和体积较小,步进角一般为7.5°或15°;反应是一般为三相,可实现大转矩输出,步进角一般为1.5°,但噪声和振动都很大,在欧美等发达国家在20世纪80年代已被淘汰;混合式应用最为广泛,它混合了永磁式和反应式的优点。
图表
每发送一个码,HT6221会先送出一个9ms的头码和4.5ms的间隙,然后依次送出16位的地址码(18ms~36ms)、8位数据码(9ms~18ms)和8位数据反码,如下图:
注:代码宽度算法:16位地址码的最短宽度:1.12 *16=18ms
16位地址码的最长宽度2.24ms *16=36ms
驱动电路的主要作用是实现功率放大。一般脉冲分配器输出的驱动能力是有限的,它不可能直接驱动步进电机,而须要经过一级功率放大。对于功率比较小的步进电机,厂家已经生产出了集成度较高、脉冲分配与驱动电路集成在一起的芯片,应用中只需将它的输出端与步进电机相连即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于红外遥控步进电机的设计班级:B140415摘要:随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
介绍了一种基于AT89C51单片机的红外遥控步进电机的设计,系统分为红外遥控编解码、LCD显示和驱动步进电机三个模块,设计的系统能通过遥控器来控制步进电机,并且步进电机的状态能通过LCD液晶模块实时显示出来,使人们直观的看出步进电机的运行状态。
本报告对该系统的工作原理、硬件电路和软件进行了详细介绍。
关键词:红外遥控、LCD显示、步进电机、单片机一、引言本系统是基于单片机控制的综合系统,单片机通过对红外信号的解码来实现步进电机的变速及LCD实时显示步进电机的转速。
它综合了电子技术和单片机软硬件技术,本设计采用AT89c51单片机为核心包含红外接收电路、LCD显示电路和步进电机驱动电路。
通过红外遥控器发射不同的码值来控制步进电机的正转反转、加速减速以及启动停止并通过LCD显示出步进电机的状态。
二、系统功能分析根据系统要求设计各个模块。
本设计中控制芯片采用AT89c51单片机,各个功能通过不同模块来得以实现,主要有:红外接收模块、步进电机驱动和LCD显示模块。
系统基本架构原理如图1所示图一基本架构原理图各个模块具体实现方式如下:1. 红外发射模块:本设计采用的是通过遥控器发射不同的码值,红外接收电路将接收到得信号送给单片机的外部中断0,单片机接收到信号后通过解码程序对接收到得信号进行处理,使得这些信号成为相应的码值。
经过处理后这些信号就可以去控制步进电机的正转反转、加速减速以及启动停止并在LCD上显示出来。
遥控发射器采用士兰半导体的TC9012编码芯片进行红外遥控发射电路的搭建。
TC9012是一块用于红外遥控系统中的专用发射集成电路,采用CMOS工艺制造。
它可外接32个按键,其中有三组双重按键。
工作电压在2。
其编码方式采用一帧码中含有一个引导码,16位的用户码和8位的键数据码。
键数据码的反码也同时被传送,数据反码的传送可以大大减小系统的误码率。
引导码由一个9ms的载波波形和4.5ms的关断时间构成,编码采用脉冲位置调制方式(PPM)。
利用脉冲之间的时间间隔来区分“0”和“1”。
具体的遥控发射应用电路图如图2-1.图2-2所示图2-1TC9012结构框图图2-2发射器结构原理图2. 红外接收模块:本系统采用的接收模块其核心是与TC9012相对应的1308红外接收头。
1308是一颗集接收电路、调制解调电路、低通滤波、放大电路和控制电路为一体的集成接收头,一共有三个引脚输出其中一个是电源一个是接地另一个则是输出,这样就大大方便了我们的使用。
1308内部结构如图3所示图3由于1308内部集成了强大的信号处理功能,所以在本系统中使用这个1308的接收头的时候我们只需要在外部加上一个滤波电路就可以了,这个RC滤波电路是为了滤除电源端的干扰信号。
具体应用电路图如图4所示图43. 液晶显示模块在本系统中我们采用1602字符型液晶显示模块来显示步进电机的转速、起停以及正反转等步进电机的状态。
字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块。
分4位和8位数据传输方式。
提供5*7点阵+光标和5*10点阵+光标的显示模式。
可以显示两行每行8个字符。
提供内部自动上电复位电路,+5V工作电压。
一共有16个引脚,其中一对电源引脚、一对LED背光电源引脚、LCD驱动电压引脚、一个模式选择引脚、一个读写操作引脚、一个使能引脚以及7个数据引脚。
其中LCD 驱动电压V0可通过滑动变阻器进行调节,一般V0为零伏。
具体应用电路图如图5所示图54. 步进电机驱动模块本系统采用额定电压为5VDC,相数为4相的步进电机,驱动方式为4相8拍。
一共有5跟线连接,其中红色的为电源线。
采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
由于单片机P口输出的电流比较弱不能驱动步进电机,所以要加一个ULN2003芯片来放大电流使之能驱动步进电机工作。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。
ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路。
ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
步进电机驱动电路如图6所示图6三、硬件电路设计本系统采用的核心器件是AT89C51单片机,有4个P 口,其中P1 P2 P3内部含有上拉电阻,P0口内部不含上拉电阻。
在本系统中用P0口来控制LCD液晶显示模块,p1口来控制步进电机的驱动,外部中断0(P3.2)来接3收红外控制信号。
AT89C51单片机引脚图如图7所示图7单片机复位电路的设计。
当AT89C51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
89C51单片机提供了上电复位和按键复位两种方式,本系统中采用按键复位电路。
具体复位电路如图8所示,其中C4是104陶瓷电容,C3是22uf/25V的电解电容,R1的阻值为10K欧。
单片机时钟电路的设计。
89C51提供了外部时钟电路和内部时钟电路两种方式,本系统采用11.0592MHz晶振的外部时钟电路方式,在晶振两端接2个30pf的陶瓷电容。
这两个电容成为晶振的负载电容,它会影响晶振的谐振频率和输出幅度。
具体晶振电路如图9所示图8图9四、系统软件设计本系统的软件设计分LCD显示子程序、红外解码判断子程序、步进电机控制程序和主程序组成。
整个系统采用C语言进行编写。
1. 主程序主程序包括系统的初始化、LCD子程序的调用以及定时器中断函数和步进电机控制函数组成。
系统初始化包括对LCD显示模块数据位、命令位,红外解码标志位以及步进电机停止转动的等级的定义与初始化,定时器中断函数主要设定定时器中断间隔和步进电机转动的等级,步进电机控制函数由步进电机索引函数和对索引值的加减函数组成。
系统的主程序流程图如图10所示图102. LCD子程序LCD子程序主要实现的功能是显示步进电机的状态。
LCD第一行显示静态的“B140415 08 09 23”,这个是我组三同学的学号,第二行动态的显示静态的“RANK:”和不同速度步进电机转动的等级以及正反转的标志,正反转的标志为正转为“+”,反转为“-”。
系统LCD显示子程序流程图如图11所示图113. 红外解码判断子程序红外解码判断子程序包括对码值的判断程序和外部中断0程序,红外接收电路将接收到的信号送到外部中断0,然后红外解码程序对收到的信号进行解码,若解码失败则重新进行解码,若解码成功则判断器码值,然后调用步进电机控制和LCD显示程序实现步进电机的运转和显示。
从而实现红外遥控对步进电机的控制及显示。
系统红外解码判断子程序流程图如图12所示图12五:总结该红外遥控步进电机的制作让我学会了怎样去设计一个系统,对一个系统的基本架构有了一定的认识,在通过对红外编解码电路的设计也让我对红外遥控的基本知识有了新的认识,知道了红外发码的原理掌握了红外解码程序的编写,对LCD现实模块的使用也让我对LCD有了新的认识,交接了要调节LCD的驱动电压使其达到0V左右才能让字符显示出来,通过对步进电机驱动电路的设计也让我认识到要在步进电机的P口加上拉电阻才能驱动步进电机。
总之,这次实训让我收获了很多也为我以后的工作奠定了一定的基础。
源代码:#include <reg52.h>#include <intrins.h>#define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换sbit IR=P3^2; //红外接口标志unsigned char TempData[8]; //存储显示值的全局变量char code Tab[16]="0123456789ABCDEF",zf[2]="-+";unsigned char irtime;//红外用全局变量bit irpro_ok,irok,f;unsigned char IRcord[4];unsigned char irdata[33];sbit A1=P1^0; //定义步进电机连接端口sbit B1=P1^1;sbit C1=P1^2;sbit D1=P1^3;#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电#define RS_CLR RS=0#define RS_SET RS=1#define RW_CLR RW=0#define RW_SET RW=1#define EN_CLR EN=0#define EN_SET EN=1#define CHECK_BUSY#define DataPort P0unsigned char Speed=1;bit StartFlag,zfFlag;sbit RS = P2^4; //定义端口sbit RW = P2^5;sbit EN = P2^6;void DelayUs2x(unsigned char t);void DelayMs(unsigned char t);void Ir_work(void);void Ircordpro(void);void TIM0init(void);void Init_Timer1(void);void EX0init(void);/*------------------------------------------------判忙函数------------------------------------------------*/ bit LCD_Check_Busy(void){#ifdef CHECK_BUSYDataPort= 0xFF;RS_CLR;RW_SET;EN_CLR;_nop_();EN_SET;return (bit)(DataPort & 0x80);#elsereturn 0;#endif}/*------------------------------------------------写入命令函数------------------------------------------------*/ void LCD_Write_Com(unsigned char com){// while(LCD_Check_Busy()); //忙则等待DelayMs(5);RS_CLR;RW_CLR;EN_SET;DataPort= com;_nop_();EN_CLR;/*------------------------------------------------写入数据函数------------------------------------------------*/void LCD_Write_Data(unsigned char Data){//while(LCD_Check_Busy()); //忙则等待DelayMs(5);RS_SET;RW_CLR;EN_SET;DataPort= Data;_nop_();EN_CLR;}/*------------------------------------------------清屏函数------------------------------------------------*/void LCD_Clear(void){LCD_Write_Com(0x01);DelayMs(5);}/*------------------------------------------------写入字符串函数------------------------------------------------*/void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s){if (y == 0){LCD_Write_Com(0x80 + x); //表示第一行}else{LCD_Write_Com(0xC0 + x); //表示第二行}while (*s){LCD_Write_Data( *s);s ++;}/*------------------------------------------------写入字符函数------------------------------------------------*//* void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data){if (y == 0){LCD_Write_Com(0x80 + x);}else{LCD_Write_Com(0xC0 + x);}LCD_Write_Data( Data);}*//*------------------------------------------------初始化函数------------------------------------------------*/void LCD_Init(void){LCD_Write_Com(0x38); /*显示模式设置*/DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);DelayMs(5);LCD_Write_Com(0x38);LCD_Write_Com(0x08); /*显示关闭*/LCD_Write_Com(0x01); /*显示清屏*/LCD_Write_Com(0x06); /*显示光标移动设置*/DelayMs(5);LCD_Write_Com(0x0C); /*显示开及光标设置*/}/*void speed1(void){if(Speed<14)Speed++;TempData[0]=zf[f];TempData[1]=Tab[Speed/10];TempData[2]=Tab[Speed%10];}void speed2(void){if(Speed>1)Speed--;TempData[0]=zf[f];TempData[1]=Tab[Speed/10];TempData[2]=Tab[Speed%10];}*//*------------------------------------------------主函数------------------------------------------------*/main(){unsigned int i=512;//旋转一周时间EX0init(); //初始化外部中断TIM0init();Init_Timer1();LCD_Init(); //初始化液晶DelayMs(20); //延时有助于稳定LCD_Clear(); //清屏LCD_Write_String(0,0,"B140415 08 09 23");LCD_Write_String(0,1,"RANK:");Coil_OFF;while(1)//主循环{if(irok) //如果接收好了进行红外处理 {Ircordpro();irok=0;}if(irpro_ok) //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等{Ir_work();}}}/*------------------------------------------------定时器0初始化------------------------------------------------*/void TIM0init(void)//定时器0初始化{TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00; //重载值TL0=0x00; //初始化值 256微秒ET0=1; //开中断TR0=1;}/*------------------------------------------------定时器初始化子程序------------------------------------------------*/void Init_Timer1(void){TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响//TH1=0x00; //给定初值//TL1=0x00;EA=1; //总中断打开ET1=1; //定时器中断打开TR1=1; //定时器开关打开}/*------------------------------------------------外部中断0初始化------------------------------------------------*/void EX0init(void){IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2)EX0 = 1; //使能外部中断EA = 1; //开总中断}/*------------------------------------------------定时器0中断处理------------------------------------------------*/void tim0_isr (void) interrupt 1{irtime++; //用于计数2个下降沿之间的时间}/*------------------------------------------------定时器中断子程序------------------------------------------------*/ void Timer1_isr(void) interrupt 3{static unsigned char times,i;TH1=(65536-500)/256; //重新赋值 1msTL1=(65536-500)%256;if(StartFlag){if(zfFlag==0){if(times==(20-Speed)){times=0;switch(i){case 0:Coil_A1;i++;break;case 1:Coil_B1;i++;break;case 2:Coil_C1;i++;break;case 3:Coil_D1;i++;break;case 4:i=0;break;default:break;}}times++;}else{if(times==(20-Speed)){times=0;switch(i){case 0:Coil_D1;i++;break;case 1:Coil_C1;i++;break;case 2:Coil_B1;i++;break;case 3:Coil_A1;i++;break;case 4:i=0;break;default:break;}}times++;}}// 调用数码管扫描}/*------------------------------------------------外部中断0中断处理作用:接收信号,并存储到数组中------------------------------------------------*/void EX0_ISR (void) interrupt 0 //外部中断0服务函数{static unsigned char i; //接收红外信号处理static bit startflag; //是否开始处理标志位if(startflag){if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms i=0;irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1irtime=0;i++;if(i==33)//存储33位2个字节的用户码,1个字节数据码,一个字节数据码反码,一位同步位{irok=1;//处理完毕标志为1i=0;}}else{irtime=0;startflag=1;}}/*------------------------------------------------键值处理------------------------------------------------*/void Ir_work(void)//红外键值散转程序{switch(IRcord[2])//判断第三个数码值{case 0x40: {if(Speed<14)Speed++;TempData[0]=zf[f];TempData[1]=Tab[Speed/10];TempData[2]=Tab[Speed%10];}break;case 0x44:{if(Speed>1)Speed--;TempData[0]=zf[f];TempData[1]=Tab[Speed/10];TempData[2]=Tab[Speed%10];}break;case 0x43:{ Coil_OFF;TempData[0] = zf[f];TempData[1] = Tab[0];TempData[2] = Tab[0];StartFlag=0;LCD_Write_String(5,1,TempData);} break;case 0x09:{ TempData[0] = zf[f];TempData[1] = Tab[Speed/10];TempData[2] = Tab[Speed%10];StartFlag=1;}break;case 0x07: { if(f==1){ DelayMs(200);Coil_OFF;} f=0;TempData[0]=zf[f];zfFlag=0;}break;case 0x15: { if(f==0){ DelayMs(200);Coil_OFF;} f=1;TempData[0]=zf[f];zfFlag=1;}break;default:break;}if(StartFlag)LCD_Write_String(5,1,TempData);irpro_ok=0;//处理完成标志}/*------------------------------------------------红外码值处理------------------------------------------------*/void Ircordpro(void)//红外码值处理函数{unsigned char i, j, k;unsigned char cord,value;k=1;for(i=0;i<4;i++) //处理4个字节{for(j=1;j<=8;j++) //处理1个字节8位{cord=irdata[k];if(cord>7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差value|=0x80;if(j<8){value>>=1;}k++;}IRcord[i]=value;value=0;}irpro_ok=1;//处理完毕标志位置1}void DelayUs2x(unsigned char t){while(--t);}/*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/ void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}。