//20220924
#include <reg52.h>sbit TestPin =P1^0;//循迹,四路循迹
//LS1 LS0 MS RS0 RS1
//sbit LS1 = P2^4;
sbit LSe0 = P2^3;
sbit RSe0 = P2^1;
//sbit RS1 = P2^0;sbit LPWM0 = P1^2;
sbit LPWM1 = P1^3;
sbit RPWM0 = P1^4;
sbit RPWM1 = P1^6;//全局变量
unsigned int Timer0Delay_cnt=0;unsigned char LineStatus =0;//传感器状态,没有线,左,右,中,十字,T字,0,1,2,3,4,
unsigned char TrackLineTask =0 ;//循迹的任务标记,由按键设置=1,开始巡线//蓝牙接收到字符,左,右,前进,后退,停止,调头,开始循迹
bit cmdflag_REC=0; //接收数据的标记位
bit cmdflag=0;
unsigned char cmdnum=0; //接收数据的个数
unsigned char cmddat=0; //接收的数据
unsigned char cmdbuff[5]=0; //接收缓冲字
char cmdlist =0; //1 ,停止,2,前进,3左,4右,5后退,串口命令表
//蓝牙char LPWM0Set=0;
char LPWM1Set=0;char RPWM0Set=0;
char RPWM1Set=0;void delay(int tms)   //20ms
{int i,j;for(i=0;i<tms;i++){for(j=0;j<110;j++);}
}void main()
{TMOD=0x11; //定时器 0 工作在模式 1,16 位定时模式TH0 = 0xFF;              TL0 = 0x0B; TH1=(65535-10)/256; TL1=(65535-10)%256;ET0=1;//打开定时器0中断开关ET1=1;//打开定时器0中断开关//***********定时器2作为串口的波特率9600TL2 = RCAP2L=(65536-(11059200L /32/9600));//9600 波特率对应 FFD9,低位为 D9(65536-26)%256TH2 = RCAP2H=(65536-(11059200L /32/9600)) >> 8;// 高 位 为FF(65536-26)/256T2CON=0x34;//RCLK、TCLK、TR2 置 1SCON=0x50;//串口工作模式 1,接收使能TI=1;ES=1;EA=1;//打开总中断开关TR0=1;//打开定时器TR1=1;//打开定时器while(1){if(cmdlist ==1){LPWM0Set =10;LPWM1Set =10;RPWM0Set =10;RPWM1Set =10;}else if(cmdlist ==2){LPWM0Set =0;LPWM1Set =0;RPWM0Set =0;RPWM1Set =0;}}
}
/* 定时器0中断函数,定时器0的中断优先级,默认比定时器1的要高,除非额外设置 */
void tm0_isr() interrupt 1 using 1
{static unsigned int cnt_tim0=0; //静态变量,只定义一次。TH0 = 0xF8;                //65535-2000===3.3msTL0 = 0x2F;  cnt_tim0++;    // Timer0Delay_cnt++;//******************************第1个任务if(cnt_tim0%2==0)//3.3ms*2=6.6ms,读取一次IO口状态,循迹{if(LSe0 ==1 ){LineStatus =0;}else     if(LSe0 ==0 ){LineStatus =1;}}//******************************第2个任务if(cnt_tim0%4==0)//3.3ms*4=13.2ms,做一次循迹,读取一次串口数据,{switch(LineStatus){case 0:break;case 1:break;default:break;}if(cmdflag_REC==1) //{cmdflag_REC=0;if(cmdbuff[0]=='0'&&cmdbuff[1]=='n')//第一个字节为 0,第二个字节为 n,第三个字节为控制码,手机端发送的应该是 0nb 等switch(cmdbuff[2]){case 'f' ://小车前进cmdlist=1;break;case 'b':// 后退 backxxxbreak;case 'l':// 左转 leftxxxbreak;case 'r':// 右转 rightxxbreak;case 's':// 停止 stopxxxcmdlist=2;break;default:break;}} }//**********************20ms刷新LCD1602的数据,速度和行程//******************************第3个任务if(cnt_tim0%6==0){}//       if(cnt_tim0 >1000)cnt_tim0=0;}//定时器1中断函数,产生4路的PWM,最大是20个toc
void tm1_isr() interrupt 3
{static char cnt00=0;TH1=0xFF;TL1=0x50;cnt00++;//决定PWM的周期,也就是频率,if(cnt00>=20){cnt00=0;}//输出PWMif(cnt00<LPWM0Set)//1s=1000ms 20ms{LPWM0=1;}else{LPWM0=0;}//输出PWMif(cnt00<LPWM1Set)//1s=1000ms 20ms{LPWM1=1;}else{LPWM1=0;}//输出PWMif(cnt00<RPWM0Set)//{RPWM0=1;}else{RPWM0=0;}//输出PWMif(cnt00<RPWM1Set)//{RPWM1=1;}else{RPWM1=0;}}//串口1中断函数,
void UartIsr() interrupt 4 using 1
{if(RI) //是否接收中断{RI=0;cmddat=SBUF;if(cmddat=='0'&&(cmdnum==0)) //接收数据第一帧{cmdbuff[cmdnum]=cmddat;cmdflag=1; //开始接收数据}elseif(cmdflag==1) //如果不是第一个数据,说明帧头校验通过,就继续接收,{cmdnum++;cmdbuff[cmdnum]=cmddat;//0---1--2--0if(cmdnum>=2){cmdnum=0;cmdflag=0;cmdflag_REC=1;// 停止接收}}}}

51xunji双PWM 002 蓝牙 L9110电机驱动相关推荐

  1. windows和linux共用蓝牙鼠标,双系统共用蓝牙键鼠(win10+macOS)

    双系统共用蓝牙键鼠(win10+macOS) 前言: 在使用双系统的时候,小兵就经常遇到一个小问题:每次从一个系统启动到另外一个系统,蓝牙键鼠一直得重新连接,特别麻烦!虽然问题不大,但是总觉得心里有疙 ...

  2. 单耳蓝牙耳机怎么连接_tws蓝牙耳机p10怎么双耳连接蓝牙?我之前是单耳连...

    tws蓝牙耳机p10怎么双耳连接蓝牙?我之前是单耳连... 234游戏网友 提出于 2019-09-09 19:49:24 请问:tws蓝牙耳机p10怎么双耳连接蓝牙?我之前是单耳连... 采纳答案 ...

  3. 双馈风力发电系统,双pwm变换器控制系统,采用直接转矩输入代替风力发电机

    双馈风力发电系统,双pwm变换器控制系统,采用直接转矩输入代替风力发电机. (1)转子侧采用基于定子磁链定向的矢量控制策略,对d轴进行定向,采用双闭环控制结构,外环为速度环,内环为电流控制环. (2) ...

  4. PMSG永磁同步发电机并网仿真模型 主要包括发电机、整流器、逆变器(双pwm控制)、电网、控制、显示等部分

    PMSG永磁同步发电机并网仿真模型 (1)主要包括发电机.整流器.逆变器(双pwm控制).电网.控制.显示等部分: (2)风机最大功率跟踪mppt采用最佳叶尖速比法: (3)机侧控制(发电控制):采用 ...

  5. 永磁同步风力发电机并网逆变器设计 风机并网:发电机采用PMSG,变换器采用:双PWM变流器

    永磁同步风力发电机并网逆变器设计 风机并网:发电机采用PMSG,变换器采用:双PWM变流器,风机采用最佳叶尖速比法. 保证仿真运行可靠,波形漂亮. 整流侧采用id=0控制,逆变器采用电压外环稳定直流母 ...

  6. 双馈风力发电系统仿真,背靠背双pwm变换器控制系统,具备最大功率追踪功能

    双馈风力发电系统仿真,背靠背双pwm变换器控制系统,具备最大功率追踪功能. (1)转子侧变换器采用基于定子电压定向的矢量控制策略,有功无功解耦,具备MPPT能力,采用功率外环电流内环双闭环控制结构. ...

  7. dcmotor2双PWM的定时器分配,代码

    由于tb6612缺货,价太猛.后面需要改造一下电路.用双PWM进行控制一个电机. PWM口分配 P1–定时器1的两个通道CH1-E9 --CH2-E11 P2–定时器1的两个通道CH3-E13 -CH ...

  8. 双馈风力发电系统仿真,DFIG,采用背靠背双pwm变换器,具备最大功率追踪功能

    双馈风力发电系统仿真,DFIG,采用背靠背双pwm变换器,具备最大功率追踪功能. (1)转子侧变换器采用基于定子电压定向的矢量控制策略,有功无功解耦,具备MPPT能力,采用功率外环电流内环双闭环控制结 ...

  9. 28335的双PWM中断调试CCS实例

    目录 一.中断初始化 二.ePWM配置 三.实例效果 四.后续问题 在作为逆变器开发的软件设计人员中,为了实现逆变器50k开关频率与10k计算频率同时进行,由于基础限制,我不断摸索终于"勉强 ...

最新文章

  1. 吴恩达老师,被曝靠「教书」实现首个IPO上市,估值50亿美元
  2. 收藏 | Tensorflow实现的深度NLP模型集锦(附资源)
  3. 商业实战第三场 电视直销好记星
  4. 每日一皮:别放弃,再坚持一下就到成功的彼岸...
  5. P2831 愤怒的小鸟
  6. SAP CRM系统里关于订单货币单位为日元的一些调试和配置关键点
  7. C语言实现MATLAB 6.5中M文件的方法
  8. mysql 客户端 csv_使用mysql客户端程序远程导出csv文件
  9. php eval 二进制,PHP eval函数使用介绍
  10. mac的python怎么输入中文_无法在python IDE(Mac OS X)中输入unicode
  11. LDA主题模型(算法详解)
  12. python实现将android手机通讯录vcf文件转化为csv
  13. 最新阿尼亚二次元动漫鼠标指针安装教程+素材打包
  14. 国际首个!OpenV2X 开源社区成立,填补 5G 路侧开放基础架构(RSOI)空白
  15. # 【CrackMe】0-爆破之Acid burn
  16. 翟菜花:为什么说社区会是虚拟偶像驶向未来的新航标?
  17. 开源文档管理系统mysql_14款开源文档管理系统
  18. Nginx重写功能——location/rewrite
  19. 电影《功夫熊猫1》中的管理知识
  20. JavaScript获取法定节假日

热门文章

  1. k8s aggregated api的编写思路
  2. 关于B85M-V Plus支持AHCI驱动问题
  3. 行车电脑蓝牙ELM327 OBD使用记
  4. java画笑脸_用java编写一个颜色为红色,粗线型的笑脸和哭脸,需要继承JFrame类,用java中的绘制图形做...
  5. 第一代到第四代计算机特点应用,第一代至第四代计算机依次是什么
  6. 2022年湖北武汉安全员ABC证一年考几次?什么时候考试呢?
  7. Android 属性动画(一)新手入门
  8. 数据分析--积累--presto--一列转多行--数组分割展开
  9. 饱受ddos/cc攻击的站长朋友们,选高防服务器该选单机防御还是集群防御呢?
  10. Emscripten 安装 亲测有效