l298n电机驱动直流电机各种程序.doc_第1页
l298n电机驱动直流电机各种程序.doc_第2页
l298n电机驱动直流电机各种程序.doc_第3页
l298n电机驱动直流电机各种程序.doc_第4页
l298n电机驱动直流电机各种程序.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(1)#include#define uchar unsigned char#define uint unsigned intsbit INPUT1 = P10; /控制口sbit INPUT2 = P11;sbit INPUT3 = P12;sbit INPUT4 = P13;sbit ENA = P14; /产生PWM波sbit ENB = P15;uint MA=0,MB=0;uint SpeedA=20;/50%占空比uint SpeedB=20;void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=125;y0;y-); void main(void)delay(1000);delay(1000);INPUT1=1;INPUT2=0;INPUT3=1;INPUT4=0;TH0 = 0xF4;TL0 = 0x48;TH1 = 0xF4;TL1 = 0x48;TMOD = 0x11;TR0 = 1;TR1 = 1;ET0 = 1;ET1 = 1;EA = 1; while(1) void time0_int() interrupt 1 using 1TR0=0;TH0=0xF4;TL0=0x48;MA+; if(MA SpeedA) ENA = 1;else ENA = 0;if(MA = 40) MA = 0;TR0 = 1;void time1_int() interrupt 3 using 1TR1=0;TH1=0xF4;TL1=0x48;MB=MB + 1;if(MB SpeedB) ENB=1;else ENB = 0;if(MB = 40) MB = 0;TR1 = 1;(2)#include sbit KEY1 = P31;sbit PWM = P15;unsigned char CYCLE; /定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1msunsigned char PWM_ON ;/定义高电平时间void delay(unsigned int cnt) while(-cnt);main()unsigned char PWM_Num;/定义档位TMOD |=0x01;/定时器设置 1ms in 12M crystalTH0=(65536-1000)/256; TL0=(65536-1000)%256;/定时1mS IE= 0x82; /打开中断TR0=1;CYCLE = 10;/ 时间可以调整 这个是10步调整 周期10ms 8位PWM就是256步while(1) if(!KEY1) delay(10000); if(!KEY1) PWM_Num+; if(PWM_Num=4)PWM_Num=0; switch(PWM_Num) case 0:P1=0xFE;PWM_ON=0;break;/高电平时长 case 1:P1=0xFD;PWM_ON=4;break; case 2:P1=0xFB;PWM_ON=6;break; case 3:P1=0xF7;PWM_ON=8;break; default:break; /*/* 定时中断 */*/void tim(void) interrupt 1 using 1static unsigned char count; /TH0=(65536-1000)/256; TL0=(65536-1000)%256;/定时1mS if (count=PWM_ON) PWM = 1; /灯灭 count+;if(count = CYCLE) count=0;if(PWM_ON!=0) /如果左右时间是0 保持原来状态 PWM = 0;/灯亮 (3)/*电子电机驱动模块直流电机控制程序*/#include sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit EN1=P14;sbit EN2=P15;unsigned int pwm_H;unsigned int pwm_L;/*初始函数函数*/*日期:2012年2月2日 */*版本号 V1.2*/*说明:初始化系统,调用速度设置函数前请先初始化*/void InitSpeed()TMOD=0X01;TL0=0;TH0=0;TR0=1;ET0=1;EA=1;/*速度设置函数*/*日期:2012年2月2日 */*版本号 V1.2*/*说明:0-1000级速度,值越高速度越快*/void SetSpeed(unsigned int num) if(num8;EN1=0; /电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论