电动自行车驱动控制系统_毕业设计.doc

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电动自行车驱动控制系统 TOC \o 1-4 \h \u 目 录 #includetimer.h #includePWM.h unsigned char PWM0_TEMP= 128; //占空比设置,赋初值0x80 50%占空比 unsigned char duty_cycle; unsigned char KEY1_F,KEY2_F,KEY3_F,KEY4_F; //按键标志位 unsigned char START_F = 0; //设置完成,启动标志位 void Motor_Ctr_Int(void) { DIR = 0; //初始化方向 设IR=1正 DIR=0反 PWM_DIS; //初始化时不输出PWM } void PID_Adjust(void) //PWM调节函数 { if(START_F==1) { PWM_DAC(PWM0_TEMP); //更新PWM参数,改变输出占空比 duty_cycle=PWM0_TEMP*100/255; //占空比计算 } } void Key(void) { static unsigned int key1_cnt,key2_cnt,key3_cnt,key4_cnt; //按键有效计数 if( KEY1 == 0 ) { ++key1_cnt; //按键去抖 if( key1_cnt == 5 ) { KEY1_F = 1; } } else key1_cnt= 0; if( KEY2 == 0 ) { ++key2_cnt; if( key2_cnt == 5 ) { KEY2_F = 1; } } else key2_cnt= 0; if( KEY3 == 0 ) { ++key3_cnt; if( key3_cnt == 5 ) { KEY3_F = 1; } } else key3_cnt= 0; if( KEY4 == 0 ) { ++key4_cnt; if( key4_cnt == 5 ) { KEY4_F = 1; } } else key4_cnt= 0; } void Key_symbol_process(void) { static unsigned char key4_flag; //按键状态标志 if( KEY1_F ) { KEY1_F = 0; PWM0_TEMP++; //加速 } if( KEY2_F ) { KEY2_F = 0; PWM0_TEMP--; //减速 } if( KEY3_F ) { KEY3_F = 0; DIR=~DIR; //方向切换 } if( KEY4_F ) { KEY4_F = 0; key4_flag++; //通过标志位,设置个十百千设置 if(key4_flag==1) //KEY4-P3^5-ET1按第1次 { PWM_EN; // 启动 START_F = 1; } if(key4_flag==2) //KEY4-P3^5-ET1按第2次 { START_F = 0; MOTOR_STOP; //快速制动 key4_flag = 0; } } } 4.2 PWM调速与测速程序设计 4.2.1 PCA捕获模式 STC12C5A60S2D系列单片机中的PCA可编程计数器阵列含有一个特殊的16位定时器,它可与2个16位捕获/比较模块相连。每个模块可编程工作在4种模式下,即:上升/下降沿捕获、软件定时器、高速输出或可调制脉冲输出。设计时,可将模块0连接到P3.7(CEX0/PCA0/PWM0),模块1连接到P3.5(CEX1/PCA1/PWM1)。由于寄存器CH和CL的内容是正在自由递增计数的16位PCA定时器的值,因此,PCA定时器可作为2个模块的公共时间基准,并可通过编程工作在1/12振荡频率、1/2振荡频率、定时器0溢出或ECI脚的输入(P3.4)。定时器的计数源由CMOD?SFR的CPS1和CPS0位来确定。? ??要使PCA模块工作在图4-2所示的捕获模式,寄存器CCAPMn中的CAPNn和CAPPn至少应有一位必须置1。对模块的外部CEXn输入(包括CEX0/P3.7、CEX1/P3.5、CEX2/P2.0、CEX3/P2.4口)的跳变进行采样时,若采样到有效跳变,其P

文档评论(0)

weidameili + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档