求一个用单片机pwm怎么控制电机转速12V,最大电流5A的直流电机的驱动电路,需要用到PWMpwm怎么控制电机转速转速的,求大神解答

PWM_STC12C5A60S2 用 控制直流电机,PWM 转速,按键s1、s2 加速
因只 一路电 SCM 单片机开发 238万源代码下载-
&文件名称: PWM_STC12C5A60S2
& & & & &&]
&&所属分类:
&&开发工具: C-C++
&&文件大小: 16 KB
&&上传时间:
&&下载次数: 192
&&提 供 者:
&详细说明:用STC12C5A60S2控制直流电机,PWM控制转速,按键s1、s2控制加速减速
因只控制一路电机所以只用到一路PWM,若用到两路则打开另一路即可
晶振为22.1184MHz,使用其他晶振时把延时函数改一下即可。-DC motor control with STC12C5A60S2, PWM speed control, key s1, s2 control the acceleration and deceleration due to motor all the way to control only the way it is used only to PWM, if two are used to open another road to the crystal is 22.1184MHz, use of other crystal delay function to change it when you can.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&PWM控制直流电机&&...............\main.c&&...............\main.LST&&...............\main.OBJ&&...............\PWM&&...............\PWM.hex&&...............\PWM.lnp&&...............\PWM.M51&&...............\PWM.Opt&&...............\PWM.plg&&...............\PWM.Uv2&&...............\PWM_Opt.Bak&&...............\PWM_Uv2.Bak&&...............\STC12C5A60S2.h
&[]:很好,推荐下载&[]:很好,推荐下载
&近期下载过的用户:
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 这是关于应用飞思卡尔专用单片机制作智能车摄像头组的资料,内含多种算法,会有很大启发
&[] - CC2430光照传感器实验源代码,电子科技大学出品
&[] - 用STC51单片机进行PWM脉宽输出的程序.
&[] - STC12C5A60S2下的PWM驱动程序
&[] - 用单 片 机实现pwm控制小车的前进后退调速系统,使得学习单片机增加兴趣
&[] - 51单片机驱动L298N,驱动直流电机,程序经过测试。
&[] - 51单片机输出PWM信号,程序结构清楚,可调范围大,可用于直流电机调速等。
PWM信号C51源代码
&[] - STC12C5A60S2,直流减速电机,PWM调速
&[] - PID自动调节直流电机的速度。认为规定直流转多少转,通过PID算法自动控制稳定在规定的转速内!
&[] - wince开发的xbase270开发板实现电机的控制。可控制步进电机和直流电机的运转时间,是否持续运转,以及运转方向。微电机 2005年 第38卷 第3期(总第144期
伺服控制?SERVOTECHNIQUE
电动医疗床用无刷直流电机控制系统
曹爱萍,刘卫国,韩英桃
(西北工业大学自动化学院,西安 710072)
摘 要:以两个无刷直流电机为控制对象,提出了一种通过单片机和专用控制芯片实现电动床双自由度运动的控制系统。该控制系统运行可靠稳定,成本低,同时具备电动床位置记忆功能,具有广阔的市场前景。关键词:电动床;稀土永磁无刷直流电动机;专用控制芯片;单片机
中图分类号:TM361   文献标识码:A   文章编号:05)03-0056-02
BrushlessDCMotorControlSystemUsedfortheMedicalElectricBed
CAOAi-ping,LIUWei-guo,HANYing-tao
(InstiuteofAutomatization,NorthwestemPolytechnicalUniversity,Xi’an,China)
Abstract:WithtworareearthpermanentmagnetBLDCmotorsasthecontrolobjectspresentsacontrolsystemthatusesaSCMandspecialintegratedcircuitstoanTsystemcanworkreliablyandsteady.Thecostofthesystemislow.Atthesamaisusedformemorizingtheelectricbed’sposition.IthasawidemKeywords:thespecSCM
作为医疗器械的电动床,已被广泛地应用于医
院、疗养院、养老院等许多领域。当前市场上多数电动床的运动机构所采用的是有刷直流电机或异步电机。有刷直流电机存在可靠性、换向火花、机械噪声、粉尘等问题;异步电机需要220V的交流电源直接驱动,而医疗设备需要36V以下安全电压,使用无刷直流电机能从根本上解决系统以上问题,噪音小、无粉尘、可靠性高。
目前国内电动床市场进口占了很大比例。其质量较好但价格相对较高。这给国内的电动床的生产商提出了一个挑战:提高同类产品的性价比。
针对医疗电动床的应用需求,提出了一种双自由度的无刷直流电机控制系统。该控制系统由一片8051单片机作为核心控制单元、两个MC33035专用控制芯片组成两个驱动器,两个驱动器分别驱动两个电机,带动电动床的两个可调部位作上下升降运动,进而满足人体舒适姿态要求。该方案系统成本低、性能好,具有较好的应用前景。本文从控制系统结构、驱动电路设计和软件实现三个方面阐述电床
用双自由度无刷直流电机控制系统。
1 系统设计
1.1 控制系统结构
为了使医疗电动床能够进行两自由度的运动,
同时简化控制系统结构,本系统采用如图1的控制结构。该控制电路由单片机控制单元和驱动电路组成
图1 控制系统结构框图
该系统控制单元由一片8051单片机组成。它同时控制两个驱动器和两个电机工作。实现的主要功能为电动床位置记忆,并同时控制电机开?停机和正?反转。单片机同时输入两个电机的霍尔信号,可判断出电机当前的运行位置,进而可实现电动床位置信息存储。
驱动电路由两套完全相同的驱动器组成,两个驱动器分别驱动两个相同的电机。该双自由度控制
电动医疗床用无刷直流电机控制系统 曹爱萍,刘卫国,韩英桃
系统可实现人体舒适功能,两个连续并独立的可调区段,适应人体的颈,背和大小腿。双自由度电动床运动机构示意图如图2所示。这两个可调区段分别为人体背部部位和腿的弯曲部位,两个控制器控制两个电机分别驱动这两个部位作上下升降运动,以调节到满足人体舒适要求的最佳位置
1.2 驱动电路设计
系统的驱动电路如图3所示。其中,220V的交流电经变压器和整流桥变成直流电,直流电源两路给两个功率驱动电路供电,两路给两个驱动器供电,还有一路给单片机供电。一个单片机控制两套驱动机构同时工作。电机的霍尔信号经转子位置传感反馈给单片机和驱动电路,构成P调节的转速闭环控制。当电动床上升和下降到达极限位置时,电动床的限位传感器可以给控制提供一个卡位信号
图2 双自由度电动床运动机构示意图
图MOTOROLA片。,运行可靠,稳定性高,造价低,并具备一些特殊的保护功能,包括:欠压锁定,带可选时间延迟锁存关断模式的循环电流,内部过热停车,和唯一一个与微处理器控制系统相连的故障输出端等。
出于系统稳定性考虑,本设计采用了速度反馈器件MC33039。该器件与霍尔转子位置传感器信号输入端相连接,经F?V转换,得到一与速度成正比的电压信号,经阻容网络滤波电路反馈回给MC33035差分放大器负端,从而构成一个简单的P
根据用户的不同需求,可控制调节电动床的4
种姿态,即上下和俯仰。单片机实现电动床位置记忆的辅助功能。它将用户前一次调整好的舒适姿态位
置存储起来,用户无需重新调整,只需按下存储器按钮,电动床就可自动调节恢复到存储器记忆的位置。
调节器,实现电机以平稳速度运行。
控制器工作过程为:从电机转子位置检测器送来的三相位置检测信号,一方面送入MC33035,经芯片内部译码电路结合正反转控制端、起停控制端、制动控制端、电流检测端等控制逻辑信状态,经过运算后,产生逆变器MOSFET三相上、下桥臂开关器件6路原始控制信号。三相下桥PWM控制信号及三相上桥控制信号经过驱动放大后,施加到逆变器的个开关管上,使其产生出供电机正常运行所需的三相PWM电压。1.3 单片机
图4 主程序流程图
该单片机同时管理两个驱动器和两个电机工
作,实现电机的起?停、正?反转并根据输入的两个电机的霍尔信号判断电机位置,实现电动床位置记忆
(下转第86页)
微电机 2005年 第38卷 第3期(总第144期)
电流矢量分成产生磁通的电流分量和产生转矩的电流分量,电机比id=0控制时提供的输出功率更大。用电压外回路,可自动执行弱磁控制,在恒功率范围内,系统受负载情况和电机参数影响小。
目前,永磁同步电机的发展趋势主要有以下几方面:
(1)无位置传感器永磁同步电机驱动系统;
(2)具有磁场控制的永磁同步电机驱动系统;(3)轮式永磁同步电机驱动系统;
(4)动力传动一体化电机驱动系统(电机、减速
业出版社,1997
[2] KazuakiT
akizawa,TomoyukiItoh,HiroyukiSatoh.
DevelopmentofGeneration11TrctionMotorforFCV[J].EVS-17conferenceproceeding.
[3] 贾正春,许锦兴,金振荣.交流永磁同步电动机弱磁控
制[J].武汉:华中理工大学学报,1994
[4] 尹华杰,蒋豪贤,谢运祥.一种永磁同步电动机弱磁新
方案[J].广州:华南理工大学学报
[5] 尹华杰,林金铭,金振荣.永磁同步电动机的弱磁扩速
分析[J].华中理工大学学报
[6] NaomitsuUrasaki,TomonobuSenjyu,Katsumi
Uezato.influenceofalllossesonpermanentmagnetsynchronousmotordrives[J].IEEE
齿轮、传动轴);
(5)双馈电永磁同步电机驱动系统。
[1] 唐任远.现代永磁电机理论与设计[M].北京:机械工
作者简介:代颖,哈工大从事电机教学及科研工作。
(上接第57页)
,[2.[M].北京:国防工业出
功能。单片机内存为4k,具有4个记忆位置,复位功能实现位置的存和取,锁存功能实现位置锁定。最小单片机系统,程序流程图如图4所示。
,[].电机控制坟用集成电路[M].机械工业出版
[4] 庞勇.基于专用控制芯片的永磁无刷直流电机控制器
[J].微电机,1999
[5] 吴玉香.无刷直流电机在自动门控制中的应用[J].微
特电机,2002(4)
作者简介:曹爱萍(1980-),女,硕士,研究方向为电机控制仿真。
(上接第92页)
图5 记忆子程序流程图
本文介绍的以TMS320F2812为核心,带液晶显示和键盘操作的新型电机参数测试系统,实现了同时测量三相交直流电压、电流、功率及功率因数,并且可以实时利用FFT算法计算各个信号的谐波。同时可以实时显示测量电压电流的波形和频谱。本系统具有体积小、速度快、成本低、功能齐全和带有计算机通信接口等特点。
外部中断判断电机正反转信号;定时器中断判断电机是否停机;记忆子程序实现电动床位置的存和取;run子程序直接存储位置。
本文针对医疗电动床的驱动需求,给出一个由单片机、专用芯片和无刷直流电机实现电机运动的双自由度控制系统。该系统具有电路简单紧凑、响应速度快、调试方便、可靠性高、运行平稳、性价比高、具备位置记忆功能等特点,显现出广阔的市场前景。
[1] TexasInstruments.TMS320F2812datamanual.
January2003
[2] 徐伯雄,窦玉琴.电机量测[M].北京:清华大学出版
[1] 张琛.直流无刷电动机原理及应用[M].北京:机械工
(下转第74页)
看过本文章的还看过。。。
电动医疗床用无刷直流电机控制系统2_信息与通信_工程科技_专业资料。以两个无刷直......
针对医疗电动床的应用需求,提出了一种双自由度的无刷直流电机控制 系统。该控制........
目前求取反电动势常用的方 法有:(1)有限元法;(2)傅里叶变换法;(3)分段...仿真结果表明了本文提出的这种无刷直流电机控制系统的设计方 案具备有效性及控制.........
· 7 2 无刷直流电机控制系统的设计· ···...已在高级电子设备、机器人、航空航 天技术、数控装置、医疗器械、家用电器、电动车等多个领域得到广泛应用,并.........
无刷直流电动机控制系统分析_工程科技_专业资料。...如 医疗器械、仪器仪表、化工、轻纺以及家用电器等...2 反电动势 ............
(如医疗器 械、仪器仪表、化工、轻纺以及家用电器等...图 1 为无刷直流电动机控制系统的方框 图。 ..电动车无刷直流电机控制器存在的主要问题, 与用简单.........
电动护理床使用说明书 一、概述 电动护理床是医疗...二、主要结构、功能、预期用途 主要结构 电动护理...操作控制,按起坐按钮,起坐电机工作,控制床面 头部.........
13 2、1 新型无刷直流电动机系统基本结构和原理 ... 13 2、2 三相...广泛应用 在数控机床、机器人、雷达跟踪、冶金机械、纺织机械、电子电动玩具等各个 领域 .........
研究无刷直流电机的控制系统,所以驱动电机用无刷直流...—1 — 黑龙江八一农垦大学毕业设计(论文) 2 无刷...方波和 梯形波,而这时反电动势波形也为正弦波、方波.........
反电动势) 二、无刷直流电机的运行原理(运行原理、数学模型) 三、无刷直流电机...电机及其控制系统(基本控制、弱磁控制) 1 几个术语解释 2p ):电机转子中n-s.........
speed control 1 设计背景近年来,无刷直流电机已成为电动车、 医疗器械、 航空航天...2) 查阅有关资料,确定系统总体实现方 案,熟悉总体调速控制原理; 3)利用 eda.........
无刷直流电动机控制系统设计_信息与通信_工程科技_专业资料。无刷直流电动机控制系统...1 无刷直流永磁电动机与有刷直流永磁电动机的比较 ... 2 无刷直流电动机的.........
控制器是无刷直流电动机正常运行并实现各种调速伺服 控制器 功能的指挥中心 20 2 基本工作原理 永磁无刷直流 电机系统图控制电路对转子位置传感器检测的信号.........
17 2 电动车无刷直流电动机控制设计学生姓名: 学院: 学号: 专业 职称 指导老师: 摘要:无刷直流电机控制系统集电机、逆变电路、检测元件、控制软件和 硬件于一体,.........
四轴飞行器无刷直流电机... 暂无评价 4页 1下载券 混合电动汽车用无刷直流.....机结构 2、无刷直流电动机工作原理 3、无刷直流电动机电机特性 4、pwm控制技术.........
2 无刷直流电机的发展现状电动车在行驶时,由于受到交通路况的影响,通常是处...电动车无刷直流电机控制系统的软件主要用于完成电动车电压 的检测,以及是否有刹车.........
控制器是无刷直流电动机正常运行并实现各种调速伺服 功能的指挥中心特种电机及其控制 21 2 基本工作原理 永磁无刷直流 电机系统图控制电路对转子位置传感器检测.........
2 控制原理和控制策略一般的自同步无刷直流电动...至少,需要汇线电流反馈来防止 电机和驱动系统过流。...开通,180?电角度关断型,或正弦激 励和反电动势型.........
哈尔滨工程大学 硕士学位论文 直流无刷电动机控制系统的设计与仿真 姓名:赵瑞萍 ......
控制器是无刷直流电动机正常运行并实现各种调速伺服 功能的指挥中心特种电机及其控制 21 2 基本工作原理 永磁无刷直流 电机系统图控制电路对转子位置传感器检测.........
■ 相关热门内容
■ 热门推荐单片机控制直流电机_中国百科网
专题字母分类:  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  
您现在的位置: >
> 专题内容:
单片机控制直流电机
本设计以AT89C51单片机为核心,以4*4矩阵键盘做为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。一、 设计方案比较与分析:1...
小功率直流电机的单片机控制电路设计(H桥电路) 今天向大家介绍一种经济实惠的电机驱动方法他的学名叫做“H桥” 多数运用在直流电机上,只需几个三极管即可控制电机正反转 使用这种连接方式可以极大地减少I/O口的数量,又可以轻而易举的解决电机正...
性能指标: 电源电压15~30 V,最大持续输出电流5A/每个电机,短时间(10秒)可以达到10A,PWM频率最高可以用到30KHz(一般用1到10KHz)。电路板包含4个逻辑上独立的,输出端两两接成H桥的功率放大单元,可以直接用单片机控制...
性能指标: 电源电压15~30 V,最大持续输出电流5A/每个电机,短时间(10秒)可以达到10A,PWM频率最高可以用到30KHz(一般用1到10KHz)。电路板包含4个逻辑上独立的,输出端两两接成H桥的功率放大单元,可以直接用单片机控制...
Mail: Copyright by ;All rights reserved.温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(12467)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'直流电机及其驱动(整理)',
blogAbstract:'
判断是有刷还是无刷电机:
一、①如果是有刷电机的话转动电机向前转时很轻,向后转时比较重能明显感觉到有阻力。而无刷电机前后转都一样的轻。
二、看接线。有刷电机只有两根进线,即直流的正、负;而无刷电机有3根粗一点的电源线,还有5根细的霍耳线,一共是8跟线。三.查结构,拆开电机,看见碳刷是有刷直流电机,否则是无刷直流电机。
四.发电法测试  对好的直流电机可用发电法测试。用指针式万用表接在直流电机电源线上,万用表调节到低压电压档,用手慢慢转动电机轴,如果指针不动可以加快转动,指针偏转的是有刷直流电机,否则是无刷直流电机。',
blogTag:'电机驱动,pwm',
blogUrl:'blog/static/2',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:1,
permalink:'blog/static/2',
commentCount:1,
mainCommentCount:1,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}查看: 8226|回复: 2
急用,求单片机C编程,用STC89C52单片机实现直流电机的PID控制。通过PWM控制电机。...
本帖最后由 hzz 于
13:26 编辑
以下是我编好的调试好的可用的测速及显示模块,需要在此基础上加上PID调速模块。
要求如下:直流电机增量式PID的速度闭环控制。通过光电传感器回馈的脉冲(电机没转得到2脉冲)测得当前的电机转速,通过PID调节得到当前的输出PWM占空比。4位的7段码LCD显示当前速度。PID参数可我自己根据电机特性调整。(目前测速和显示程序已经编写好)
我的联系QQ:,电话:
程序编写要求:
测速和显示程序已经编好了,需要在此基础上实现直流电机的PID闭环调速。是基于STC89C52单片机的程序。
不需要仿真和电路图。
直流电机使用L298实现PWM调速的。由于单片机上没有按键,要用循环语句让电机以一个速度恒定的运行8秒,8秒后通过软件让电机转速增加一次并通过PID调速让其稳定在设定的转速值(即软件里面已经事先通过循环语句(或table语句)写好的转速设定值)附近,然后再运行个8秒之后电机速度再增加一次,如此直到增加9次后电机停止运行。整个过程直流电机通过软件实现PWM调速的。电机设定的转速分别为40,50,60,70,80,90,100,110,120r/s,每个速度各运行8秒。
至于P I D的参数KP(比例系数)&&KI(积分系数)&&KD(微分系数)参数的设定我自己通过实验调试,说是PID调速,其实我们老师要求我们只要用PI调速就可以了。所以微分环节可以不用。
电机的转速范围在40-130r/s之间把,别太高,也别低于40,不然电机转不动;
en1:表示直流电机的 使能端 当值为1(高电平)时有效,接在了单片机的P1.2引脚;
zhen1:表示直流电机的 正转信号输出端,当值为1(高电平)时有效,接在了单片机的P1.0引脚;
fan1:表示直流电机的 反转信号输出端,当值为1(高电平)时有效,接在了单片机的P1.1引脚;
光电测速传感器的 脉冲信号输出端 接的是P3.5引脚;
PWM一个周期是20
下面是已经编好的测试通过的可以测速和显示速度的程序:
#include &REG52.H&& && && && && &&&
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar a,b,c,d;
#define LED_DAT P0
sbit pin_SpeedSenser = P3^5; //速度传感器脉冲信号输出端接在T1上
#define TIME_CYLC 100 //12M晶振,定时器10ms 中断一次 我们1秒计算一次转速,1000ms/10ms = 100
#define PLUS_PER 2 //码盘的齿数 ,这里假定码盘上有2个齿,即传感器检测到2个脉冲,认为1圈
#define K 1.0& &//校准系数
sbit zhen1=P1^0;
sbit fan1=P1^1;
sbit en1=P1^2;
uchar code loops[] = {0x7f,0xbf,0xdf,0xef};& && && &//定义显示位控制驱动码
uchar code table[]={0x14,0xd7,0x4c,0x45,0x87,0x25,0x24,0x57,0x04,0x05};& && && & // 0,1,2,3,4,5,6,7,8,9 7段码表,这个单片机开发板上的LED数码管的接法和一般的有点不一样,这个表是正确的,已经测试过了&&
& && && && && && &&&
uint Tcounter = 0;& &//时间计数器
bit Flag_Fresh = 0; // 刷新标志
bit Flag_clac = 0; //计算转速标志
bit Flag_Err = 0; //超量程标志
//在数码管上显示一个四位数
void DisplayFresh();
//计算转速,并把结果放入数码管缓冲区
void ClacSpeed();
//初始化定时器
void init_timer();
//延时函数
void Delay(uint ms);
void it_timer0() interrupt 1 //定时器0中断的响应函数
TF0 = 0;& && & //定时器 T0用于数码管的动态刷新& && &
TH0 = 0xD8;& && && && &//初始化
TL0 = 0xF0;
Flag_Fresh = 1;
Tcounter++;
if(Tcounter&TIME_CYLC)
& &Flag_clac = 1;//周期到,该重新计算转速了
void it_timer1() interrupt 3 //中断地址是0x001b
TF1 = 0;& &//定时器T1用于单位时间内收到的脉冲数,要速度不是很快,T1永远不会益处
Flag_Err = 1;& &//如果速度很高,我们应考虑另外一种测速方法:脉冲宽度算转速
void main(void)
init_timer();
&&zhen1=1;& && && && && && && && && && &&&
&&Delay(30);
&&Delay(170);
if(Flag_Fresh)
& & Flag_Fresh = 0;
& & DisplayFresh();& & // 定时刷新数码管显示
& &if(Flag_clac)
& && && && &Flag_clac = 0;
& && && && &ClacSpeed(); //计算转速,并把结果放入数码管缓冲区&&
& && && && &Tcounter = 0;//周期定时清零
& && && && &TH1=TL1 = 0x00;//脉冲计数清零
& &if(Flag_Err)& && &&&//超量程处理
& && && && &//数码管显示字母'EEEE',开机时初始化为0000
& && && && &a = 0x2c;
& && && && &b = 0x2c;
& && && && &c = 0x2c;
& && && && &d = 0x2c;
& & while(1)
& &&&DisplayFresh();//等待复位,不再测速
//在数码管上显示一个四位数
void DisplayFresh()
{& && && && && && &
& && && &P2 =loops[0] ;
& && && &LED_DAT = table[a];
& && && &Delay(20);
& && && &P2 =loops[1] ;
& && && &LED_DAT =
& && && &Delay(20);
& && && &P2 =loops[2] ;
& && && &LED_DAT = table[c];
& && && &Delay(20);
& && && &P2 =loops[3] ;
& && && &LED_DAT = table[d];
& && && &Delay(20);
//计算转速,并把结果放入数码管缓冲区
void ClacSpeed()
& && && &ulong PlusC
& && && &PlusCounter = TH1*256 + TL1;
& && && &speed = K*(PlusCounter/PLUS_PER);//K是校准系数,如速度不准,调节K的大小
& && && &a = (speed/1000)%10;
& && && &b = (speed/100)%10;
& && && &c = (speed/10)%10;
& && && &d = speed%10;
void init_timer()& && && && && &&&//初始化
& && && &TMOD = 0x51; //定时10毫秒,TOT1选择软件门方式1,T0定时,T1计数,96页可查
& && && &TH0 = 0xD8;& && && && &//T0初始化
& && && &TL0 = 0xF0;&&
& && && &ET0=1;& && && && && && && &//T0中断允许
& && && &EA=1;& && && && && &//T0中断
& && && &TR0=1;& && && && && &//TO运行
& && && &TH1 = 0x00;& && && && &//T1初始化
& && && &TL1 = 0x00;&&
& && && &ET1=1;& && && && && && && &//T1中断允许
& && && &TR1=1;& && && && && &//T1运行
& && && &zhen1=1;
& && && &fan1=0;
& && && && && && && && &
void Delay(uint ms)& && && && && &//0.1ms延时函数
uchar x,y;
& &for(x=x&0;x--)
& &for(y=11;y&0;y--);
 学习学习
Powered by

我要回帖

更多关于 单片机pwm调节12v风机 的文章

 

随机推荐