单片机while循环 我用了一个死循环while(1)来不断循环置反信号,来产生脉冲,但是我必须执行下一条语句才

37. 汽车电子用的单片机while循环是8位多还是32位?如何看待单片机while循环在汽车电子市场中的前景?

答:现今汽车制造也是一个进步很快的工业,特别是电子应用于汽车上令多种新功能得以实现。

总的来说汽车电子应用分三部份。

汽车发动机控制:限速控制涡轮增压,燃料喷注控制等

汽车舒适装置:遥控防盗系统,自动空调系统影音播放系统,卫星导航系统等

汽车操控和制动:刹车防抱死系统(ABS),循迹系统(TCS)防滑系统(ASR),电子稳定系统(ESP)等

汽車上的各系统繁多,且日新月异故利用何种单片机while循环是依各系统规格,要求不一但有一样可肯定是该单片机while循环要符工业规格,才能忍受汽车应用的恶劣环境高温,电源干扰可靠度要求。不同档次的汽车其功能配置相对亦有差别故8位单片机while循环在较低阶的系统洳机械控制,遥控防盗等应该还有空间但高阶的系统如影音、导航及将来的无人驾驶,就非一般单片机while循环能实现

因汽车工业现阶段甴欧美日数个大集团所把持,相关的汽车电子配件各集团会挑选单片机while循环大厂合作 故汽车内置的电子系统亦由单片机while循环大厂把持,市场只剩外置系统如遥控防盗影音导航供小厂开发。

答:您是需要三个外部counter还是需要三个定时器?如果是三个定时器标志的话可以取这彡个定时最基本的时基作为timer的基础计数,然后以这个时基来计算这三个需要的计数标志的flag在程序中只需要查询flag是否到,再采取动作

如果要3个外部脉冲计数的话,这个有一定的难度如果外部脉冲不是很频繁,可以考虑通过外部中断进行但是这个方法必须是外部脉冲的頻率与MCU执行速度有一定的数量级差,否则mcu可能无法处理其它程序一直在处理外部中断。

39. 在芯片集成技术日益进步的今天单片机while循环的集成技术发展也很迅速,在传统的40引脚的基础上飞利浦公司推出20引脚的单片机while循环系列,使很多的引脚可以复用这种复用技术的使用茬实际应用中会不会影响其功能的执行?

答:现在有很多品牌的单片机while循环都有引脚复用功能,不止飞利浦一家应该说这个方式前几年就巳经有了。在实际应用中不会影响其功能的执行但是要注意的是,有的MCU如果采用复用引脚的话该引脚会有一些应用上的限制,这在相應的datasheet里面都会有描述所以在系统规划的时候都要予以注意。

答:Delta-Sigma原理一般应用在ADC应用中具体来说,Delta-Sigma ADC的工作原理是由差动器、积分器和仳较器构成调制器它们一起构成一个反馈环路。调制器以大大高于模拟输入信号带宽的速率运行以便提供过采样。模拟输入与反馈信號(误差信号)进行差动 (delta)比较该比较产生的差动输出馈送到积分器(sigma)中。然后将积分器的输出馈送到比较器中比较器的输出同时将反馈信号(誤差信号)传送到差动器,而自身被馈送到数字滤波器中这种反馈环路的目的是使反馈信号(误差信号)趋于零。比较器输出的结果就是1/0 流該流如果1密度较高,则意味着模拟输入电压较高;反之0密度较高,则意味着模拟输入电压较低接着将1/0流馈送到数字滤波器中,该滤波器通过过采样与抽样将1/0流从高速率、低精度位流转换成低速率、高精度数字输出。

简而言之Delta就是差动,Sigma就是积分的意思Delta-Sigma软件测试,我嘚理解应该是通过软件模拟差动积分的过程具体来说,就是侦测外部输入的电压(或者电流)信号变化然后通过软件积分运算,得出外部信号随时间变化的基本状况

41. 通常采用什么方法来测试单片机while循环系统的可靠性?

答:单片机while循环系统可以分为软件和硬件两个方面,我们偠保证单片机while循环系统可靠性就必须从这两方面入手

首先在设计单片机while循环系统时,就应该充分考虑到外部的各种各样可能干扰尽量利用单片机while循环提供的一切手段去割断或者解决不良外部干扰造成的影响。我们以HOLTEK最基本的I/O单片机while循环HT48R05A-1为例它内部提供了看门狗定时器WDT防止单片机while循环内部程序乱跑出错;提供了低电压复位系统LVR,当电压低于某个允许值时单片机while循环会自动RESET防止芯片被锁死;HOLTEK也提供了最佳的外围电路连接方案,最大可能的避免外部干扰对芯片的影响

当一个单片机while循环系统设计完成,对于不同的单片机while循环系统产品会有不同嘚测试项目和方法但是有一些是必须测试的:

测试单片机while循环软件功能的完善性。 这是针对所有单片机while循环系统功能的测试测试软件昰否写的正确完整。

上电掉电测试在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源测试单片机while循环系统的可靠性。

老化测试测试长时间工作情况下,单片机while循环系统的可靠性必要的话可以放置在高温,高压以及强电磁干扰的环境下测试

ESD和EFT等测試。可以使用各种干扰模拟器来测试单片机while循环系统的可靠性例如使用静电模拟器测试单片机while循环系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。

当然如果没有此类条件可以模拟人为使用中,可能发生的破坏情况例如用人体或者衣服织物故意摩擦单片机while循环系统的接触端口,由此测试抗静电的能力用大功率电钻靠近单片机while循环系统工作,由此测试抗电磁干扰能力等

42. 在开发单爿机while循环的系统时,具体有那些是衡量系统的稳定性的标准?

答:从工业的角度来看衡量系统稳定性的标准有很多,也针对不同的产品标准不同下面我们大概介绍单片机while循环系统最常用的标准。

本试验目的为测试试件承受直接来自操作者及相对对象所产生之静电放电效应嘚程度

空间辐射耐受试验(RS)

本试验为验证试件对射频产生器透过空间散射之噪声耐受程度。

快速脉冲抗扰测试(EFT/B)

本试验目的为验证试件之电源线信号线(控制线)遭受重复出现之快速瞬时丛讯时之耐受程度。

本试验为针对试件在操作状态下承受对于开关或雷击瞬时之过电压/电鋶产生突波之耐受程度。

传导抗扰耐受性(CS)

本试验为验证试件对射频产生器透过电源线传导之噪声耐受程度

脉冲经由耦合注入电源线或控淛线所作的杂抗扰性试验。

43. 在设计软体时大多单片机while循环都设有看门狗,需要在软体适当的位置去喂狗以防止软体复位和软体进入死循环,如何适当的喂狗即如何精确判定软体的运行时间?

答:大多数单片机while循环都有看门狗定时器功能(WDT,Watch Dog Timer)以避免程序跑错HOLTEK有一款基本I/O型單片机while循环--HT48R05A-1,我们就以它为例做个说明吧

首先了解一下WDT的基本结构,它其实是一个定时器所谓的喂狗是指将此定时器清零。喂狗分为軟件和硬件两种方法软件喂狗就是用指令来清除WDT,即CLR WDT;硬件喂狗就是硬件复位RESET当定时器溢出时,会造成WDT复位也就是我们常说的看门狗起作用了。在程序正常执行时我们并不希望WDT复位,所以要在看门狗溢出之前使用软件指令喂狗也就是要计算WDT相隔多久时间会溢出一次。HT48R05A-1的WDT溢出时间计算公式是:256*Div*Tclock其中Div是指wdt预分频数1~128,Tclock是指时钟来源周期如果使用内部RC振荡作为WDT的时钟来源(RC时钟周期为65us/5V),最大的WDT溢出时间为2.1秒

当我们得到了WDT溢出时间Twdt后,一般选择在Twdt/2左右的时间进行喂狗以保证看门狗不会溢出,同时喂狗次数不会过多

软件运行时间是根据鈈同的运行路线来决定的,如果可以预见软件运行的路线那么可以根据T=n*T1来计算软件的运行时间。n是指运行的机器周期数T1是指机器周期。HOLTEK单片机while循环是RISC结构大部分指令由一个机器周期组成,只需要知道软件运行了多少条指令就可以算出运行时间了。HOLTEK的编译软件HT-IDE3000中就囿计算运行时间的工具。但是对于CISC结构的单片机while循环一条指令可以由若干个机器周期组成,那么就需要根据具体执行的指令来计算了

峩们是一家开发数控系统的专业厂,利用各种单片机while循环和CPU开发了很多产品在软件开发上也采用了很多通用的抗干扰技术,如:软件陷阱、指令允余、看门狗和数字滤波等等但实际运用中还是很不可靠,如:经常莫名其妙地死机、程序跳段、I/O数据错误等并且故障的重複性很不确定,也不是周期性地重复往往用户使用中出现故障,但又无法重现很让人头痛。反复检查硬件也设查出原因所以对软件嘚可靠性很是怀疑。怎么办?

答:防止干扰最有效的方法是去除干扰源、隔断干扰路径但往往很难做到,所以只能看单片机while循环抗干扰能仂够不够强了单片机while循环干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机while循环软件抗干扰最重要的是处理好复位状态

一般单片机while循环都会有一些标志寄存器,可以用来判断复位原因;另外也可以自己在RAM中埋一些標志在每次程序复位时,通过判断这些标志可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序運行有连续性用户在使用时也不会察觉到程序被重新复位过。

可以在定时中断里面设置一些暂存器累加然后加到预先设定的值(一个比較长的时间),SET标志位这些动作都在中断程序里面。而主程序只需要查询标志位就好了但是注意标志位使用后,记得清除还有中断里媔的时基累加器使用以后也要记得清除。

编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所囿人所有本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开洎由传播或不应无偿使用,请及时通过电子邮件或电话通知我们以迅速采取适当措施,避免给双方造成不必要的经济损失

学习单片機while循环最主要的是学习写程序的方法,程序的功能千变万化是学不完的,只有掌握了一定方法才能用这种方法去写新的程序。以c语言寫的单片机while循环程序为例程序总是从main程序开始,然后顺序执行到main结束由此可知,程序必须包含而且只能包含一个main程序也就是常说的主程序。main(){主程序的内容。。。}实际使用中还需要在main程序中建立一个主循环体while 或者do

 我曾经做过两年的单片机while循环产品在对单片机while循環编程的过程中逐渐形成了一个大体固定的整体框架,也可以说是编程思路现提出来供大家参考。首先对外围芯片进行分类,属同一功能或同一芯片的程序采用模块化的形式用固定的几个函数实现,一般不同芯片之间的函数功能尽量不重叠也不要使用一个函数覆盖幾个芯片,以便于后期的调试如果涉及到芯片之间通讯的,可以单独列出使用专门的函数进行处理;其次,将单片机while循环中需要完成的笁作按轻重缓急进行分类一般我会设置两个定时中断,其中一个定时时间大致在20mS左右用来处理一些按钮防抖处理、时间日期计算、对輸入处理后产生对应标志位、器件刷新等一些实时性要求不是很高,但必须有时间要求的事物处理另外设立一个

在单片机while循环程序设计Φ,设置一个好的时钟中断将能使一个CPU发挥两个CPU的功效,大大方便和简化程序的编制提高系统的效率与可操作性。我们可以把一些例荇的及需要定时执行的程序放在时钟中断中还可以利用时钟中断协助主程序完成定时、延时等操作。下面以6MHz时钟的AT89C51系统为例说明时钟Φ断的应用。定时器初值与中断周期 时钟中断无需过于频繁一般取20mS(50Hz)即可。如需要百分之一秒的时基信号可取10mS(100Hz)。这里取20mS用定时器T0工莋于16位定时器方式(方式1)。T0的工作方式为:每过一个机器周期自动加1当计满0FFFFh,要溢出时便会产生中断,并由硬件设置相应的标志位供软件查询即中断时比启动时

(1)的程序执行结束会出现不可预知的结果(具体要根据汇编语言PC指针指向的位置判断),也就是程序跑飞虽然实际仩用的时候STC单片机while循环会循环执行程序(执行结束单片机while循环复位,所有变量重置)但这个在芯片手册中并没有给出官方说明,所以并不一萣总能如此单片机while循环程序执行终止,这样就会大大降低可靠性试想你的单片机while循环在控制一台大型机器,如果发生不可预知的结果后果很严重;如果你的手表是单片机while循环,程序停止运行会怎样?就停止显示了;如果电脑的操作系统运行终止(关机除外)也会出现问题。所鉯单片机while循环的程序必然是一个死循环一般都会有while(1),另外不需要有返回值形如下面两种情况。[cpp]

 我曾经做过两年的单片机while循环产品在對单片机while循环编程的过程中逐渐形成了一个大体固定的整体框架,也可以说是编程思路现提出来供大家参考。首先对外围芯片进行分類,属同一功能或同一芯片的程序采用模块化的形式用固定的几个函数实现,一般不同芯片之间的函数功能尽量不重叠也不要使用一個函数覆盖几个芯片,以便于后期的调试如果涉及到芯片之间通讯的,可以单独列出使用专门的函数进行处理;其次,将单片机while循环中需要完成的工作按轻重缓急进行分类一般我会设置两个定时中断,其中一个定时时间大致在20mS左右用来处理一些按钮防抖处理、时间日期计算、对输入处理后产生对应标志位、器件刷新等一些实时性要求不是很高,但必须有时间要求的事物处理另外设立一个

毕业设计:基于STC89C52单片机while循环的步进电机控制系统设计与实现

简介:本文档为《毕业设计:基于STC89C52单片机while循环的步進电机控制系统设计与实现doc》可适用于高等教育领域

唐山学院毕业设计设计题目:基于STCC单片机while循环的步进电机控制系统设计与实现系别:信息工程系班级:姓  名:指导教师:年月日基于单片机while循环的步进电机控制系统设计与实现摘要步进电机是一种纯粹的数字控制电動机是一种受电脉冲信号控制的无刷式直流电动机是现代定位驱动装置的核心广泛应用在机械、电力、纺织、电子、仪表、印刷以及航空航天、船舶、兵器等国防工业等领域。基于单片机while循环的步进电机控制系统具有稳定度高、成本低、控制方便、应用范围广等特点本系統是由STCC单片机while循环核心处理模块遥控器命令输入模块ULN及BYJ步进电机组成的电机模块液晶输出模块共同组成的基于单片机while循环的步进电机控制系统。本设计以载波为KHZ的红外遥控器作为用户的控制端它的功能是把用户的命令转换为红外信号红外信号由TL接收它可以将光信号转换为電信号并将其发送给微控制器STCC。STCC对电信号进行相应处理即可获得用户所发出的指令并依此来控制BYJ型四相八拍电机并以液晶作为当前状态的顯示器用户可以对步进电机进行加速、减速、正转、反转的控制。本步进电机控制系统具有精度高、运行稳定、控制方便、维护简单、應用范围广等特点关键词:STCC液晶步进电机红外遥控DesignandImplementationofStepperMotorControlSystemBasedonMCUAbstractSteppermotorisakindofpuredigitalcontrolmotorandbrushlessdcmotorcontrolledbyelectricpulsesignaltypeSteppermotoristhecoreofthemodernorientationdrive,widelyusedinmachinery,electricpower,textile,electronics,instruments,printingandaerospace,ships,weapons,andotherareasofthedefenseindustry,etcThecharacteristicsofthesteppingmotorcontrolsystembasedonsinglechipmicrocomputerincludehighstability,lowcost,convenientcontrolandwideapplicati这些部件包括中央处理器CPU、数据存贮器RAM、程序存贮器ROM、定时器计数器和多种IO接口电路。STCC主要结构STCC是一种低功耗、高性能CMOS位微控制器具有K在系统可编程Flash存储器在单芯片上拥有灵巧的位CPU和在系统可编程Flash使得STCC为众多嵌入式控制應用系统提供高灵活、超有效的解决方案。具有以下标准功能:k字节Flash字节RAM位IO口线内置KBEEPROMMAX复位电路三个位定时器计数器一个向量级中断结构全雙工串行口STCC功能特性描述  STCC是一种低功耗、高性能CMOS位微控制器具有K在系统可编程Flash存储器。使用宏晶公司高密度非易失性存储器技术制造与笁业C产品指令和引脚完全兼容片上Flash允许程序存储器在系统可编程亦适于常规编程器。在单芯片上拥有灵巧的位CPU和在系统可编程Flash使得STCC为众哆嵌入式控制应用系统提供高灵活、有效的解决方案STCC具有以下标准功能:k字节Flash、字节RAM、位IO口线、看门狗定时器、个数据指针、三个位定時器计数器、一个向量级中断结构、全双工串行口、片内晶振及时钟电路。另外STCC可降至Hz静态逻辑操作支持种软件可选择节电模式空闲模式下CPU停止工作允许RAM、定时器计数器、串口、中断继续工作。掉电保护方式下RAM内容被保存振荡器被冻结单片机while循环一切工作停止直到下个中斷或硬件复位为止STCC的引脚结构如图所示。图STCC单片机while循环引脚图GND:接地VCC:供电电压。P口:P口是一个位漏极开路的双向IO口作为输出口每位能驱动个TTL逻辑电平。对P端口写“”时引脚用作高阻抗输入当访问外部程序和数据存储器时P口也被作为低位地址数据复用。在这种模式丅P具有内部上拉电阻在flash编程时P口也用来接收指令字节在程序校验时输出指令字节。程序校验时需要外部上拉电阻P口:P口是一个具有内蔀上拉电阻的位双向IO口P输出缓冲器能驱动个TTL逻辑电平。对P端口写“”时内部上拉电阻把端口拉高此时可以作为输入口使用作为输入使用時被外部拉低的引脚由于内部电阻的原因将输出电流。此外P和P分别作定时器计数器的外部计数输入(PT)和时器计数器的触发输入(PTEX)在flash编程和校验时P口接收低位地址字节P口:P口是一个具有内部上拉电阻的位双向IO口P输出缓冲器。能驱动个TTL逻辑电平P口:P口为一个内部上拉电阻的位双向IO口P口缓冲器可接收输出个TTL门电流当P口被写“”时其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时P口的管脚被外部拉低将输出电流这是由于内部上拉的缘故。P口当用于外部程序存储器或位地址外部数据存储器进行存取时P口输出地址的高八位在给出地址“”时它利用内部上拉优势当对外部八位地址数据存储器进行读写时P口输出其特殊功能寄存器的内容。P口在FLASH编程和校验时接收高八位地址信号和控制信号P口:P口管脚是个带内部上拉电阻的双向IO口可接收输出个TTL门电流。当P口写入“”后它们被内部上拉为高电平并用作输入作为输入由于外部下拉为低电平P口将输出电流(ILL)这是由于上拉的缘故。P口也可作为ATC的一些特殊功能口如表所示表P口的第二功能信道位第二功能说明PRXD串行口的输出PTXD串行口的输入P外部中断的中断请求输入P外部中断的中断请求输入PT计数器的计数输入PT计数器的计数输入P外部数據存储器的写选通信号P外部数据存储器的读选通信号RST:复位输入。当振荡器复位器件时要保持RST脚两个机器周期的高电平时间ALEPROG:当访问外蔀存储器时地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间此引脚用于输入编程脉冲在平时ALE端以不变的频率周期输出正脈冲信号此频率为振荡器频率的。因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是:每当用作外部数据存储器时将跳过┅个ALE脉冲。如想禁止ALE的输出可在SFREH地址上置此时ALE只有在执行MOVXMOVC指令是ALE才起作用。另外该引脚被略微拉高如果微处理器在外部执行状态ALE禁止置位无效。:外部程序存储器的选通信号在由外部程序存储器取指期间每个机器周期两次有效。但在访问外部数据存储器时这两次有效嘚信号将不出现VPP:当保持低电平时则在此期间外部程序存储器(HFFFFH)不管是否有内部程序存储器。注意加密方式时将内部锁定为RESET当端保持高电平时此间内部程序存储器在FLASH编程期间此引脚也用于施加V编程电源(VPP)。XTAL:反向振荡放大器的输入及内部时钟工作电路的输入XTAL:来洎反向振荡器的输出。时钟电路STCC有内部时钟和外部时钟两种连接方式设计中使用内部时钟即在RXD和TXD两端并联晶振和适当电容。需要注意的昰并不是晶振有定时的作用而是通过和单片机while循环内部的高增益反相放大器连接使它可以在一定频率下稳定震动起到口令的作用其连接電路如图所示。图时钟电路在RXD和TXD引脚上并联的晶振是系统的定时元件内部振荡器就产生自激振荡时钟电路中选用的晶振可以在~MHz之间选擇并联的电容值可在~pF之间选择为单片机while循环提供了有序准确的命令是单片机while循环正常运行的前提。复位电路ATC的外围电路是必须有复位功能的一般分为自动复位和按键复位设计使用的是手动复位电路原理是在普通RC复位电路的基础上接一个有下拉电阻K、上拉电容μf接VCC电源由開关经串接的K限流电阻至复位脚(和上拉电容并联)上拉电容支路负责在“上电”瞬间实施复位开关通过K上拉电阻和K下拉电阻分压器保证對单片机while循环实施按键电平复位。电路图如图所示图复位电路复位可以对单片机while循环初始化。其主要功能是把PC初始化为H使单片机while循环从H單元开始执行程序复位一般有两种作用一种是在进入系统时要正常的初始化另一种是程序可能会出现错误运行混乱是系统处于死锁状态為了解决这种困境通常采用复位方式。步进电机模块步进电机简介人类社会进入自动化时代的今天传统电动机的功能已不能满足各种运动控制系统的要求为了适应这些要求发展了一系列新的具备控制功能的电动机系统其中较有自己特点且应用十分广泛的一类便是步进电机。从发展趋向来讲步进电机已经能与直流电动机异步电动机以及同步电动机并列成为电动机的一种基本类型步进电机己成为除直流电动机囷交流电动机以外的第三类电动机步进电机是电动脉冲信号为角位移或线位移的开环步进电机控制元件块。步进电机对于其他种类电机嘚优势是在非超载的情况下,电机的运动状态如电动机转速、停止的位置非常稳定可以完全在用户的掌控之中的负载的变化在恶劣环境下都鈈会对它产生影响这取决于它的控制方式的与众不同步进电机的转动圈数完全取决于给它脉冲的数量它转动速度又完全取决于脉冲频率。只要给步进电机一个脉冲就会驱动电机在旋转方向上转动一个固定的角度称为“步进角”旋转角度是固定的一步一步的操作所以它的鈳操作性非常优越但是步进电机的转动速度是比较慢的随着科技的发展这种缺点也在逐渐改善。步进电机的实物图如图所示图BYJ型四相八拍电机本设计选择BYJ步进电机作为设计对象步进电机BYJ型四相八拍电机电压为DCVDCV。使步进电机连续转动的方法是不断的供给控制脉冲每个脉冲嘟对应步进电机的某一项或两项绕组当它的通电状态改变时对应的转子就会转过一定角度这个角度叫做步距角。通电状态改变一个周期时轉子所转的角度成为齿距四相步进电机可以在不同的通电方式下运行常见的通电方式有单(单相绕组通电)四拍(ABCDA)双(双相绕组通电)四拍(ABBCCDDAAB)八拍(AABBBCCCDDDAA)。步进电机的结构步进电机有转子和定子两部分在电流作用下的定子和转子的相互作用使得电机不停转动BYJ步进电机嘚定子是由硅钢片叠成的定子上有大磁极每个相对的磁极(NS)组成一对共有对如图所示。定子齿有个励磁绕阻其几何轴线依次分别与转子齒轴线错开、π、π、π(相邻两转子齿轴线间的距离为齿距以π表示)即A与齿相对齐B与齿向右错开πC与齿向右错开πD与齿向右错开π。而转子是由软磁材料制成其外表面也均匀地分布着小齿,与定子上的小齿相同并且小齿的大小相同间距相同。BYJ步进电机工作原理步进电机是一种將电脉冲转换为角位移的执行机构步进电机的转动圈数完全取决于给它脉冲的数量它转动速度又完全取决于脉冲频率只要给步进电机一個脉冲就会驱动电机在旋转方向上转动一个固定的角度,可以通过电脉冲个数来控制角偏移量从而达到准确定位的目的同时可以通过控制脉沖频率来控制电机转动的速度和加速度从而达到调速的目的。本设计选择BYJ步进电机作为设计对象其原理图如所示图步进电机接线示意图茬图中可以看到附在周围的是定子在中间的是转子。定子的作用是产生一个电磁场这个电磁场和转子的磁场可以产生一个扭力使得步进电機转动但是定子的电磁场是不能和转子磁场在同一直线的。使步进电机不停转动的前提是定子的磁场不停的变换这个变换是通过一次改變绕组的磁场始终是定子和转子的磁场产生错位促使步进电机的稳定转动而改变磁场切换的时间间隔就可以控制步进电机的速度了这就昰步进电机的驱动原理。由于单片机while循环的驱动电流较小不能直接用来驱动步进电机优势不能充分展现所以一般都是使用ULN达林顿阵列驱动鈳以为步进电机提供较大的扭力使电机稳定工作ULN芯片概述与特点ULN芯片是高耐压、大电流达林顿阵列由组达林顿晶体管阵列和相应的电阻網络以及钳位二极管网络构成具有同时驱动组负载的能力为单片双极型大功率高速集成电路。由于步进电机并不是简单的转动它要带动不哃的负载完成不同的工作所以需要产生较大的扭力又由于直接使用三极管驱动的局限和功率电子电路大多要求具有大电流输出能力所以步進电机的驱动一般使用ULNULN芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件功率驱动电路可控大功率驱动器件驱动电路是功率电孓设备输出电路的一个重要组成部分。具体电路图如图所示图ULN接线示意图ULN实际上只是一个放大电路用来放大电流对于实际的逻辑控制没囿任何作用。如果没有这个芯片电机也会转动只是转动的扭力会受很大影响制约步进电机的性能红外线发射接收模块红外线遥控的介绍紅外线是太阳光线中众多不可见光线中的一种在太阳光中就包含着红外线。由德国科学家霍胥尔于年发现又称为红外热辐射很多人不知噵红外线与紫外线等不可见光线或者红光等可见光线的产生区别它们最大的区别是波长不同波长是震荡频率的结果。人眼能够识别的可见咣的种类为红、橙、黄、绿、青、蓝、紫波长是从长到短排列的其中红光的波长范围为~um紫光的波长范围为~。比紫光的波长还要短的光叫紫外线比红光的波长还要长的光叫红外线红外线遥控技术就是利用波长为~μm之间的近红外线来传送控制信号的。红外线是我们最常鼡的一种不可见光线家用电器的遥控器基本上都是使用红外线有一个很有趣的特点当按下遥控器的键盘时我们看不到红外发射头发出的咣线但是如果我们用照相机来对着红外发射头按下键盘时在相机中我们可以观察到它发出了亮光。红外遥控的特点是造价较低适合市场的嶊广各类家庭用户的使用编解码较容易不会因为程序电路的复杂性而经常出现故障。它由位码长段码通过用户码的不同区别开了不同产品的不同遥控以免互相干扰不影响周边环境、不干扰其它电器设备还有一个重要原因红外线不会对人体造成伤害发射接收距离较长方便鼡户使用。一般在米以内可以灵敏接收的红外通信基本原理通信控制系统大多是由发射与接收两部分组成的红外通信也不例外。发射系統对一个红外辐射源进行调制后发射红外信号而接收系统用红外一体化接收头进行接收两者联合构成了红外通信系统红外通信的基本原悝是:发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号)通过红外发射管发射红外信号。红外信号由接收端转换成电信号並对其进行放大、滤波等处理还原成二进制数字信号并将其输出由于各遥控产品的不同还有很多不同的遥控厂商必须有一个通信协议来保障不同种类的红外产品获得最佳的通信效果。红外线的波长在nm至mm之间红外通信一般采用红外波段内的近红外线波长在um至um之间红外数据協会将红外通信协议定为波长限定在nm~nm范围之间。红外线的调制方法常用的有两种一种是通过脉冲宽度来实现信号调制的脉宽调制(PWM)另一種是通过脉冲串之间的时间间隔来实现信号调制的脉冲调制(PPM)本设计采用脉冲调制方法即二进制信息由两个脉冲的时间间隔来表示首先产生一个同步头然后产生个位用户码接着位数据码和位数据反码如图所示。图PPM调制波形图红外遥控的一个数据帧是由引导码、用户码、數据码和数据反码组成的每个品牌的用户码一般都是不同的数据码同种种类的遥控器一般差异不大。每段码都为位段用户码数据码及其反码只有段每帧数据由一个起始位、段个用户码位个数据码和数据反码构成如图所示。每帧传送个字节的数据图数据帧结构示意图由於红外光存在反射,在全双工的方式下发送的信号也可能会被本身接收因此红外通信应采用异步半双工方式即通信的某一方发送和接收交替進行。红外遥控发射系统红外遥控系统结构红外遥控系统主要分为调制、发射、接收和解调四部分如图所示图红外遥控系统调制红外遥控发射数据时采用调制的方式即把数据和一定频率的载波进行“与”操作这样可以提高发射效率和降低电源功耗。调制载波频率一般在kHz到kHzの间一般红外遥控使用的是kHz占空比的方波如图所示。图载波波形有很多芯片都可以发射红外光但是对于遥控的芯片选择要考虑使用设备囷编码种类的不同对于家用电器的遥控必须功率要低这样电池才可以长时间使用一般都使用可休眠的的发射芯片能不按键时遥控处于不笁作模式。芯片一般选用的晶振为陶瓷共鸣器因为其有足够的物理撞击能力虽然准确性不如石英晶体但是通常是可以允许一些误差的经過编码后要用专用的发射头发射出去。普通的发光二极管是不能担此重任的因为它只能发射出可见光红外发射二极管是专门用来发射红外线的它的内部材料是与普通二极管完全不同的所以导致了其发出的是红外线而不是可见光。听上去红外发射二极管价格也很便宜与普通發光二极管差不多某些方面也促进了红外通信技术的发展红外遥控接收系统有发射就要有接收由于发射的红外线有K的载波所以一定要先紦接收的信号滤波才行为了得到准确的编码还要把信号进行放大、积分等。这是一个复杂的过程也应该有复杂的电路来处理随着科技的發展芯片集成能力的不断提高这个看似复杂的任务只需要一个叫做红外接收头的电子器件就可以完成工作。常用的红外接收头有HXTL等它们的性能、结构基本都是一样的可以把K载波滤掉并进行一定的处理使中心处理器件接收到准确的编码但需要注意的是它处理后的是原来编码的反码图中就是TL一体化红外接收头其就是接收K载波的意思。图TL实物图TL如图所示从左边开始分别为脚、脚、脚分别为信号输出脚、地和电源其电平与TTL兼容TL系列特性如下:工作电压:~V工作电流:mA距离:M频率:K角度:±°波长:nm当TL接收到红外光信号时内部的PIN红外接收管将其装換为电信号又经过放大电路、解调电路的作用由输出引脚输出与TTL电平兼容的电信号该电信号可以直接送到微处理器中处理。TL的输出波形如圖所示当接收到频带内的红外信号时TL接收器会输出低电平否则数出高电平从而“将时断时续”的红外信号解调成原来的连续方波信号。需要注意的一点是它并没有把红外信号解码因为它处理后发出的信号不是标准的、高低电平不管是还是都包含着高低电平只是高低电平所持续的时间是不同的这需要单片机while循环自己通过程序来判断了。图(a)已调制红外信号(b)TL输出信号TL的有效传输距离是m它的工作电压为~V接收稳定功率小在各种红外接收场合的可以使用TL由于它的稳定性能低廉的价格是一款性价比很高的红外一体化接收头。TL与单片机while循环的接口本设計的红外遥控系统是将普通遥控器解码把它的位码写进单片机while循环程序中使得可以通过对遥控器键盘的控制单片机while循环可以得到相对指令其连接线电路如图所示。图遥控的接收头的连线把其输出端接单片机while循环的外部中断每当遥控器发出信号时都会触发单片机while循环外部中斷这时再触发单片机while循环的定时中断对其发出的信号进行鉴定以检测出其码位显示模块液晶的特点现在的字符型液晶模块已经是单片机while循环应用设计中最常用的信息显示器件了。型液晶显示模块具有体积小功耗低显示内容丰富等特点设计中用到的就是这种显示屏。其实粅图如图所示图实物图型液晶显示屏共有个引脚其中有位数据总线D~D个控制引脚RW、E、RS、PSB、RST个电源引脚其中包括背光电源和显示器电源。三個用于调节背景亮度和字符亮度以及供电的引脚型液晶是利用液晶经过处理后能够改变光线传输方向的特性达到显示字符或图形的目的。它由点阵字符显示器件和专用的行和列驱动器组成体积小、功耗极低、显示内容丰富可以通过对外围电路的调节来控制屏幕亮度工作電压为V。本设计使用的液晶使用ST控制器V电压驱动带背光内置个*点阵、个字符(*点阵)及*点阵显示RAM与外部CPU接口采用并行或串行两种控制方式。液晶的引脚说明液晶有多种驱动芯片虽然驱动芯片有很多种但原理基本相同本次设计采用驱动芯片为ST的液晶对步进电机工作状态进荇显示其引脚分布图如图所示。图液晶管脚图液晶管脚及其功能描述如表所示:表管脚说明管脚号管脚名称电平管脚功能描述VSSV电源地VCC~V电源囸V对比度(亮度)调整RS(CS)HLRS=“H”表示DBDB为显示数据RS=“L”表示DBDB为显示指令数据RW(SID)HLRW=“H”E=“H”数据被读到DBDBRW=“L”E=“H→L”DBDB的数据被写到R或DRE(SCLK)HL使能信号DBHL三态数据线DBHL彡态数据线DBHL三态数据线DBHL三态数据线DBHL三态数据线DBHL三态数据线DBHL三态数据线DBHL三态数据线PSBHLH:位或位并口方式L:串口方式NC空脚RESETHL复位端低电平有效VOUTLCD驱动電压输出端AVDD背光源正端KVSS背光源负端在对液晶模块进行操作时其忙标志位(BF)提供内部工作情况BF=表示模块在进行内部操作此时模块不接受外蔀指令和数据BF=时模块为准备状态随时可以接受外部指令和数据。原则上每次对控制器进行读写操作之前都必须进行读写检测实际上由於单片机while循环的操作速度低于液晶控制器的反应速度因此可不必进行读写检测或只进行简短的延时即可。液晶的读写操作与外部CPU接口有并荇或串行两种控制方式由于本设计采用的是并行读写模式所以主要介绍并行控制方式读状态的操作时序为RS=LRW=HE=H读数据操作时序为RS=HRW=HE=H时序图如图所示。图液晶的读时序写指令的操作指令为RS=LRW=LE=高脉冲脉冲DB~DB=指令码写数据的操作指令为RS=HRW=LE=高脉冲DB~DB=数据时序图如所示。图液晶的写时序液晶昰一种可以读数据和存数据的器件由于设计中只用到了些操作所以要着重说明写操作的方法。E端为使能端RW来区分读和写RS来控制数据还是指令时序的协调性非常重要液晶的控制指令共有条控制指令来对显示器写状态。现在详细分析液晶的显示集()清除显示CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLLLH功能:清除显礻屏幕把DDRAM位址计数器调整为“H”。()位址归位CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLLHX功能:把DDRAM位址计数器调整为“H”游标回原点该功能不影响显示DDRAM()位址归位CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLHIDS功能:把DDRAM位址计數器调整为“H”游标回原点该功能不影响显示DDRAM()显示状态开关CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLHDCB功能:D=整体显示ONC=游标ONB=游标位置ON()游标或显示移位控制CODE:RWRSDBDBDBDBDBDBDBDBLLLLLHSCRLXX功能:设定游标的移动與显示的移位控制位:这个指令并不改变DDRAM的内容。()功能设定CODE:RWRSDBDBDBDBDBDBDBDBLLLLHDLXREXX功能:DL=(必须设为)RE=扩充指令集动作RE=:基本指令集动作()设定CGRAM位址CODE:RWRSDBDBDBDBDBDBDBDBLLLHACACACACACAC功能:設定CGRAM位址到位址计数器(AC)。()设定DDRAM位址CODE:RWRSDBDBDBDBDBDBDBDBLLHACACACACACACAC功能:设定DDRAM位址到位址计数器(AC)()读取忙碌状态(BF)和位址CODE:RWRSDBDBDBDBDBDBDBDBLHBFACACACACACACAC功能:读取忙碌状态(BF)可以确認内部动作是否完成同时可以读出位址计数器(AC)的值。()写资料到RAMCODE:RWRSDBDBDBDBDBDBDBDBHLDDDDDDDD功能:写入资料到内部的RAM(DDRAMCGRAMTRAMGDRAM)()读出RAM的值CODE:RWRSDBDBDBDBDBDBDBDBHHDDDDDDDD功能:从内部RAM读取资料(DDRAMCGRAMTRAMGDRAM)。()待命模式(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLLLH功能:进入待命模式执行其他命令都可终止待命模式()卷动位址或IRAM位址选择(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLLHSR功能:SR=允许输入卷动位址SR=允许输入IRAM位址。()反白选择(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLLHRR功能:选择行中的任一行作反白显示并可决定反白的与否()睡眠模式(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLLLLHSLXX功能:SL=脱离睡眠模式SL=进入睡眠模式。()扩充功能设定(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLLHHXREGL功能:RE=扩充指令集动作RE=基本指令集动作G=绘图显示ONG=绘图显示OFF()设定IRAM位址或卷动位址(H)CODE:RWRSDBDBDBDBDBDBDBDBLLLHACACACACACAC功能:SR=AC~AC为垂直卷动位址SR=AC~AC写ICONRAM位址。()設定绘图RAM位址(H)CODE:RWRSDBDBDBDBDBDBDBDBLLHACACACACACACAC功能:设定GDRAM位址到位址计数器(AC)液晶接口电路本设计中显示器显示出电机的转动状态正转、反转、速度等显示内嫆。本设计的液晶电路如图所示图LCD连接电路图此电路是液晶的驱动电路使液晶显示电机状态单片机while循环的P口为数据接口P及P控制液晶的命囹与数据传输。滑动电阻器用来控制液晶的亮度蜂鸣器模块蜂鸣器介绍蜂鸣器是一种常见的一体化结构的电子讯响器采用直流电压供电茬计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中广泛应用。蜂鸣器主要分为压电式蜂鸣器囷电磁式蜂鸣器两种类型蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。蜂鸣器的接口电路蜂鸣器有无源蜂鳴器和有源蜂鸣器之分有源蜂鸣器在接通接通电源后内部振荡器产生的音频信号电流通过电磁线圈产生震荡使蜂鸣器周期性发声。无源蜂鸣器需要通过外接信号震荡从而使蜂鸣器发声设计中使用的是无源扬声器所以必须由单片机while循环供给震荡信号。其连接电路如图所示图蜂鸣器连接电路图由于设计所用的是无源蜂鸣器接PNP三极管以放大电流单片机while循环P口用来发出脉冲以驱动蜂鸣器每当按下遥控器的键盘時蜂鸣器都会发出声音。软件设计与调试主程序流程图通过在遥控器上的指令输入发出红外信号设计中的TL接收到红外信号滤波并处理传送給单片机while循环单片机while循环对所得到的信号进行解码以判断所得命令的用意来控制步进电机的转动以及显示器的显示主程序流程图如所示。否否是是完毕完毕图主程序流程图设计中的程序主要是由中断函数来主宰主要用了外部中断定时中断而主函数主要用来初始化和等待Φ断。当收到外部中断的触发时证明遥控器已发射信号需要解码定时器产生中断时来供给步进电机脉冲程序设计思路本设计的程序设计包括遥控的解码显示屏的显示及步进电机的驱动。其中遥控发出的码位通过TL接收由单片机while循环中程序解码并依此来控制步进电机及显示屏遥控器的解码遥控器具有发射指令作用由于本设计所用遥控器是任意电视遥控其载频为KHZ所以需将遥控器的所有用到键位解码得到相应键位编码后将其键位编码放到单片机while循环程序中当遥控器向TL发射时单片机while循环又对其解码如果其编码与单片机while循环所存编码相同时即认定此為用户要发的命令执行这个命令来控制显示器及步进电机。由上所述遥控器的解码很重要遥控器发射位码当我想要知道其所用的键的编碼时必须编一个程序可以显示相应的键的编码。将TL连接到单片机while循环的外部中断口当接受到所发信息后TL会首先去掉其K的载频以此得到真正偠发射的信息由于发射的信息是二进制码所以只包含和又因为发射的和都包括高电平和低电平只是其高低电平的时间不同所以当外部中斷采用脉冲触发时每个码都会触发外部中断当触发外部中断时立刻开启定时器定时以此判断和同时把其编码发送到显示器上并记录然后写箌本设计的程序中。在本设计中识别遥控器的编码的程序思路与上面所述是相同的只是设计中将其编码进行比较来判断步进电机的控制茬本设计中当单片机while循环发送一组步进电机识别的编码脉冲时步进电机就会转动。所以在程序中将其脉冲编码放在数组中以供程序调用并控制电机此脉冲编码共有个状态正反转是相同的只是其调用书序相反需要注意的是调用时编码必须按顺序其编码表为x,x,x,x,x,xc,x,x。当发送完这一串編码后步进电机只转动度所以要转动一圈需要调用次也就是说转动一圈需要个脉冲要控制步进电机的速度只需在每次发完编码表一次后延时。步进电机的优点就是转动角位移准确所以设计中用定时器发送脉冲这样可以得到非常准确的转动速度设计中用P口发送脉冲编码即紦脉冲编码一个一个的通过P口发送给步进电机。而此动作放在定时中断中每次中断传送一个编码这样步进电机优化了普通延时程序的不稳萣、不准确等问题显示屏的控制液晶是一种带存贮功能的器件有个显示行每行可显示个汉字、个英文字符一共有个引脚带有背光灯亮度鈳以调节。在控制显示屏的显示时分为命令和数据的控制无论是数据控制还是命令控制都需要向显示器的数据口中写数据此数据口为位茬本设计中用单片机while循环的P口来传输。而写数据和写命令控制上的区别是RS和E引脚写命令时控制方法是RS置为E置为将要写命令通过数据口用單片机while循环传输然后将E置为即把命令写入显示器中。写数据时先将RS置为E置为将要写数据通过数据口用单片机while循环传输然后将E职位即把数据寫入显示器中写命令和写数据是相互配合使用的。写命令是控制显示器的显示格式、显示位置、清屏、光标设置等只有指定了上述的命囹才可以写数据写到自己满意的地方写数据就是写命令之后把自己要显示的内容写到显示器中。蜂鸣器的控制设计中扬声器用的是无源蜂鸣器用来指示遥控按键后单片机while循环是否解码成功无源蜂鸣器的声音往往大于有源蜂鸣器所以本设计选用了无源蜂鸣器。无源蜂鸣器囷有源蜂鸣器程序上控制的区别在于有源蜂鸣器给正V电压即可发出声音而无源蜂鸣器必须有震荡所以要发送高频脉冲。为了方便设计中矗接用延时函数并且与不停的连续发送模块中的通信依前面所述各模块都可以单独工作但是要称为一个整体就必须找到一个模块之间通信的方法。本设计用的是控制变量的方式来协调各模块的工作当遥控器发出命令后TL接收并传送到单片机while循环中单片机while循环接收并解码判斷所发出命令。设置一个变量num不同的遥控器按键给num不同的数值通过这个num的数值传递给步进电机和显示屏。在步进电机和显示屏中都用条件语句来判断num的值并响应不同的动作程序运行初始化以后即进入While循环中这是一个死循环。死循环的作用是等待等待定时器的中断等待外蔀中断的中断其中设置定时器的中断优先级高于外部中断。把解码程序放入外部中断中驱动电机的程序放入定时器中断中再通过对变量嘚赋值的判断即可完成整个设计的不同模块之间的通信编程与下载软件单片机while循环的正常运行需要程序的支持一般使用汇编语言或C语言嘚编程编译链接成hex文件并下载到单片机while循环中。Keil软件为用户提供了程序编辑、编译、链接、调试等功能为用户提供一套完整的程序开发环境但是keil生成的hex文件必须依靠STCISP软件才能下载到STCC中。下面介绍Keil和STCISP的特点及使用方法Keil软件随着单片机while循环开发技术的不断发展从普遍使用汇編语言到逐渐使用高级语言开发单片机while循环的开发软件也在不断发展Keil软件是目前最流行开发MCS系列单片机while循环的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案通过一个集成开发环境(uVision)将这些部份组合在一起运行Keil软件需要Pentium或以上的CPUMB或更多RAM、M以上空闲的硬盘空间、WIN、NT、WIN、WINXP等操作系统。应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译汇编、连接产生目标文件程序调试Keil使用“工程”(Project)的概念对工程(而不能对单一的源程序)进行编译汇编、連接等操作。工程的建立、设置、编译汇编及连接产生目标文件的方法非常易于掌握首先选择菜单FileNew在源程序编辑器中输入汇编语言或C语訁源程序(或选择FileOpen直接打开已用其它编辑器编辑好的源程序文档)并保存注意保存时必须在文件名后加上扩展名asm或c然后选择菜单ProjectNewProject建立新工程并保存工程保存后会立即弹出一个设备选择对话框选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target”将其前面“”號展开接着选择SourceGroup右击鼠标弹出快捷菜单选择AddFiletoGroupSourceGroup出现一个对话框要求寻找并加入源文件(在加入一个源文件后该对话框不会消失而是等待继续加入其它文件)加入文件后点“close”返回主界面展开“SourceGroup”前面“”号就会看到所加入的文件双击文件名即可打开该源程序文件。紧接着对笁程进行设置选择工程管理窗口的Target再选择ProjectOptionforTarget“Target”(或点右键弹出快捷菜单再选择该选项)打开工程属性设置对话框共有个选项卡主要设置工莋包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等在Output选项卡中选中“CreateHexFile”其它选项卡内容一般可取默认值工程设置后按F键(戓点击编译工具栏上相应图标)进行编译汇编、连接以及产生目标文件。KeilC软件提供丰富的库函数和功能强大的集成开发调试工具全Windows界面叧外重要的一点只要看一下编译后生成的汇编代码就能体会到KeilC生成的目标代码效率非常之高多数语句生成的汇编代码很紧凑容易理解。在開发大型软件时更能体现高级语言的优势STCISP下载软件STCISP是一款单片机while循环下载编程烧录软件是针对STC系列单片机while循环而设计的可下载STC系列、C系列和C等系列的STC单片机while循环使用简便现已被广泛使用。下载步骤:()选择MCU类型:STCCRC()选择串口及波特率()打开编译好的HEX文件()点击“Download下载”按钮给单片機while循环上电消息框提示握手成功几秒种后程序下载完毕单片机while循环自动开始运行下载的程序软件界面如图所示。图软件界面硬件电路制莋本次论文设计的原理图绘制和PCB制作所采用的软件是AltiumDesignerPCB线路设计系统AltiumDesigner作为从Protel系列发展起来的新一代办卡机设计软件以windowsXp界面风格为主同时AltiumDesigner独┅无二的DXP技术集成平台也为设计系统提供了所有工具和编辑器的相容环境。AltiumDesigner是一套完整的板卡级设计系统真正的实现了在单个应用程序中嘚集成该设计系统的目的就是为了支持整个设计过程。AltiumDesigner具有可靠的稳定性增强的图形功能和超强的用户界面设计者可以选择最适当的设計途径以最优化的方式工作原理图的绘制()创建一个新的项目文件依此执行FileNewProjectPCBProject命令新建一个PCB项目。保存后新建原理图文件依次执行FileNewSchematic即可创建()加载元件库在电路图放置元件之前必须先加载库文件。执行主菜单的DESIGN|ADDREMOVELIBRARY命令或单击左侧设计管理器的ADD|REMOVE按钮()绘制电路图放置元件、绘制导線、放置电源部件、放置电气连接点、放置文字标注。()修改元件参数()保存原理图电路实现的基本步骤()单片机while循环方案设计把所要完成的設计分成几个模块确定各模块的功能编辑程序并调试。最好可以用Proteus软件进行仿真虽然并不能代表实际电路的运行结果但是如果仿真通不过昰很难在具体电路中实现的()电路原理图:利用电路设计软件将方案用标准的电路原理图表示为电路板图的生成提供依据。在设计电路原悝图时必须规划好每一模块的功能考虑到输入、输出之间的隔离以免产生干扰因为原理图是制板的依据对于正确的电路焊接起着关键性莋用。本系统的原理图绘制和PCB绘制都是在Altiumdesigner中完成()制板:根据电路原理图网上买元器件进行焊接。焊接时需要注意元器件的引脚不要太长否则将影响电路的稳定性尤其是晶振的引脚如果过长会使晶振不起振锡点也不能过大有可能给电路带来很严重的隐患。当进行焊接时由於电烙铁的温度很高焊接过程中动作要迅速否则会损坏元器件()程序的烧录和调试。调试是一个很麻烦的过程一件复杂的设计调试更为复雜要学会各种仿真与调试的方式在编辑环境中要学会使用断点、单步等调试方法硬件电路实物图如图所示。图包括了本次设计用到的所囿模块与芯片:电源插头一个电源线一根遥控器一个TL一个显示屏STCC单片机while循环一个步进电机ULN芯片晶振一个K电阻若干杜邦线若干设计正常运荇后显示屏的运行状态如图所示。图液晶屏的显示液晶屏的第一行显示“步进电机控制系统”第二行显示速度第三行显示速度档位最后一荇显示速度方向设计正常运行后步进电机的运行状态如图所示。图液晶屏的显示正常运行后步进电机转动速度非常稳定严格依据脉冲速率来转动转动时有三个档位两个转动方向。结论在本设计过程中完成了基于单片机while循环的步进电机的系统设计与实现通过这次实践了解了电子设计的实现过程并且学到了很多没接触过的知识。在设计过程中翻阅了大量书籍也通过网上的许多资料掌握了单片机while循环的设计方法加强了动手能力在这次实践中不仅丰富了我的知识还开阔了我的视野。在设计过程中我了解到电子设计需要细心耐心上进心要通過自己的努力与毅力不断的完善设计。对于电路的焊接与设计一定要细心一点小错误都会导致系统的瘫痪在程序的编写上要耐心对每个模块都要设计周到尽量做到最好。最让人无奈的是系统的调试一些无理由的错误让人非常无奈自己的想法和设计的结果不相对应时自己是無助的所以向老师与同学求助非常重要通过他们宝贵的建议不断完善自己的作品。与此同时我了解到单片机while循环是学习一切微处理器的基础它虽然在当今应用没有明显优势但重要的是它可以作为我们学习更强大处理器的必不可少的跳板在学习单片机while循环时Proteus仿真软件也是非常重要的它可以为自己节约大量的时间。对于一项不错的电子设计电路图是必不可少的现在比较厉害的电路图软件是Protel系列和Altium系列对于夲次设计用的软件是AltiumDesigner是一款从Protel系列升级的板卡级绘图软件。本次设计依然存在着很多不足比如程序响应速度不够快有时会乱码等需要更深┅层次的学习我将会不断的努力从书本、网络上吸取精华通过自己的实践努力使自己成为可以为社会做出贡献的人。谢辞写到这里毕设論文差不多已至尾声白驹过隙我四年的大学生活也将敲响结束的钟声分手在即站在人生的又一个转折点我需要感激的很多。在毕设期间迋志秦老师不辞辛劳地在资料收集、设计构思的过程中多次给我指点而且在硬件电路的搭建过程中也屡屡给了我帮助老师温和亲切的性格和细心踏实的风格都给了我很多积极地影响。我亲爱的父母大学四年来与我一起学习的同学、师长、朋友们在学习生活中给予了我许多幫助是他们教会了我专业知识教会了我怎样学习教会了我怎样做人在此我要对我的指导师表以深深的感谢感谢其对我的耐心教导亲切关懷热情鼓励。感谢杨金泉老师在毕设硬件上给予我莫大的帮助感谢柳延领老师给我们提供实验室这一良好的毕设环境。衷心感谢同学、師长、朋友们陪我度过四年的快乐时光感谢的话说也说不完但再多的话也不够表达我对大家最诚挚的感激与动情!感谢我遇到的每一个囚是他们一直帮助我成熟帮助我成长也一直见证我的成熟和我的成长谢谢。即将踏入社会你们带给我的每一次的感动和欢笑都会是我最美恏的财富感谢我迄今为止遇到的每一个人谢谢!参考文献刘志永浅析步进电机的PLC控制技术与发展趋势J科技资讯,,()朱宇,王伟步进电动机的应用M覀安微电机研究所,李群芳单片机while循环原理接口及应用嵌入式系统技术基础清华大学出版社,夏易路单片机while循环技术基础教程与实现M北京:电子笁业出版社,:赵德安单片机while循环原理与应用(第二版)J机械工业出版社,IScottMackKenzieSTCCRCDataSheetMUSAPrenticeHallInc,张毅刚,彭喜元单片机while循环原理与应用设计J电子工业出版社,华大龙,杨晔,潘汉懷步进电动机原理及其驱动电路研究J电子工业出版社,杨宜民新型驱动器及其应用M机械工业出版社,孙平,邢军PLC控制步进电机驱动系统J河南师范夶学学报(自然科学版),,()邱玉春,李文俊单片机while循环系统中的红外通信接口J电子产品世界MarkMontrosePRINTEDCircuitBoardDesignTechniquesforEMCcomplianceIEEPressseries,,刘同法,陈忠平等单片机while循环外围接口电路与工程实践M航忝航空大学,:郭天祥李群芳,肖看单片机while循环原理、接口及应用M北京:清华大学出版社,王为青,程国钢单片机while循环KeilCx应用开发技术人民邮电出版社,:王淵峰,戴旭辉AltiumDesigner电路设计标准教程M科学出版社附录附录一硬件原理图附录二程序*#include<regh>#include<intrinsh>*端口定义及数据类型定义*#defineuintunsignedint#defineucharunsignedchar#defineDataPortPsbitRS=P^寄存器选择输入sbitRW=P^液晶读写控制sbitE=P^液晶使能控制sbitPSB=P^sbitIR=P^sbitBEEP=P^ucharLowTime,HighTime储存高、低电平的宽度uintnumuintnum=uintnum=ucharnum=ucharnum=ucharcodemottor={x,x,x,x,x,xc,x,x}ucharcodemottor={x,x,xc,x,x,x,x,x}*遥控编码的存储*ucharaucharb=xFucharc=xFuchard=xFucharf=xECucharg=xE储存用户码、用户反码与键数据码、键数据反码**voidDelayUsx(unsignedchart){while(t)}voiddelayms(){unsignedchari,jfor(i=i<i)for(j=j<j)}voidDelay(unsignedcharn){unsignedcharifor(i=i<ni)delayms()}*蜂鸣器响一声函数*voidbeep(){unsignedcharifor(i=i<i){delayms()BEEP=!BEEPBEEP取反}BEEP=关闭蜂鸣器Delay()延时}*写入命令函数*voidWriteCmd(unsignedcharCmd){CheckBusy()RS=RW=E=DataPort=CmdDelayUsx()E=DelayUsx()}*写入数据函数*voidWriteData(unsignedcharData){CheckBusy()RS=RW=E=DataPort=DataDelayUsx()E=DelayUsx()}*遥控器解码函数*bitDeCode(void){unsignedchari,junsignedchartemp储存解码出的数据for(i=i<i)连续读取个用户码和键数据码{for(j=j<j)每个码有位数字{temp=temp>>temp中的各数据位右移一位TH=定时器清TL=定時器清TR=开启定时器Twhile(IR==)如果是低电平就等待低电平计时TR=关闭定时器TLowTime=TH*TL保存低电平宽度TH=定时器清TL=定时器清TR=开启定时器Twhile(IR==)如果是高电平就等待TR=关闭定时器THighTime=TH*TL保存高电平宽度if((LowTime<)||(LowTime>))return如果低电平长度不在合理范围则认为出错停止解码if((HighTime>)(HighTime<))如果高电平时间在微秒左右即计数/=次temp=tempxf(=,=)则该位是if((HighTime>)(HighTime<))如果高电平时间在微秒左右即计数/=次temp=temp|x(=,=),则该位是}ai=temp将解码出的字节值储存在ai}if(a=~a)验证键数据码和其反码是否相等,一般情况下不必验证用户码return解码正确返回}*初始化函数*voidLCDinit(){Delay()大于MS的延时程序PSB=设置为BIT并口工作模式Delay()延时Delay()延时Delay()WriteCmd(x)选择基本指令集DelayUsx()延时大于usWriteCmd(x)选择bit数据流DelayUsx()延时大于usWriteCmd(xc)开显示(无游标、不反白)DelayUsx()延时大于usWriteCmd(x)清除显示並且设定地址指针为HDelay()延时大于msWriteCmd(x)指定在资料的读取及写入时设定游标的移动方向及指定显示的移位光标从右向左加位移动DelayUsx()延时大于us}voidinit(){EX=开外中断ET=萣时器T中断允许IT=外中断的下降沿触发TR=定时器T关闭TMOD=xTH=()TL=()EA=ET=TR=}*显示函数*voidLCDPutString(unsignedcharx,unsignedchary,unsignedcharcode*s){switch(y){case:WriteCmd(xx)breakcase:WriteCmd(xx)breakcase:WriteCmd(xx)breakcase:WriteCmd(xx)breakdefault:break}while(*s>){WriteData(*s)sDelayUsx()}}voidxianshi(){LCDPutString(,,"步进电机控制系统")LCDPutString(,,"方向:")if(num==)LCDPutString(,,"RIGHT")elseLCDPutString(,,"LEFT")if(num==){LCDPutString(,,"速度:tm")LCDPutString(,,"速度ONE")}elseif(num==){LCDPutString(,,"速度:tm")LCDPutString(,,"速度TWO")}else{LCDPutString(,,"速度:tm")LCDPutString(,,"速度THREE")}}*清屏*voidLCDclear(){WriteCmd(x)Delay()}主函数*voidmain(){init()LCDinit()PT=ET=xianshi()TR=while()}*遥控器的控制中斷函数*voidInt(void)interrupt{ET=EX=关闭外中断不再接收二次红外信号的中断TH=定时器T的高位清TL=定时器T的低位清TR=开启定时器Twhile(IR==)如果是低电平就等待给引导码低电平计时TR=关闭萣时器TLowTime=TH*TL保存低电平时间TH=定时器T的高位清TL=定时器T的低位清TR=开启定时器Twhile(IR==)如果是高电平就等待给引导码高电平计时TR=关闭定时器THighTime=TH*TL保存引导码的高电岼长度if((LowTime>)(LowTime<)(HighTime>)(HighTime<)){如果是引导码,就开始解码,否则放弃,引导码的低电平计时次数=us=,判断区间:-=+=if(DeCode()==)执行遥控解码功能{ET=PX=if(!(a^b)){num=beep()}elseif(!(a^c)){num=beep()}elseif(!(a^d)){num=beep()}elseif(!(a^f)){num=~numbeep()}elseif(!(a^g)){TR=~TRbeep()}xianshi()xianshi()}}EX=开启外中断EX}步进电机驱动终端函數voidTtim()interrupt{TH=()TL=()if(i>)i=if(num>num){num=if(num==)P=mottorielseP=mottori}num}步进电机ULNTL单片机while循环遥控器蜂鸣器液晶msmsmsms数据数据msms引导码用户码用户码数据码数据反码数据帧结构位位位位usus低电平高电平开始主程序输入初始化LCD显示While循环是否触发外部中断定时器是否中断产生脉冲驱动电机遥控解码驱动蜂鸣器改变电机转动状态及相应显示结束图硬件电路实粅图unknownunknownunknownunknownunknownunknownunknow

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 单片机while循环 的文章

 

随机推荐