51单片机-遥控器控制舵机

发布者:幸福梦想最新更新时间:2021-08-30 来源: eefocus关键字:51单片机  遥控器  控制舵机 手机看文章 扫描二维码
随时随地手机看文章

1.题目要求


我们在第九章第2讲第一个例程“按键控制舵机桨”的基础上,实现用红外遥控器的前三行按键控制舵机桨停留在我们想要的位置,这样就实现了无线遥控控制机械结构运动的简单功能。


2.main.c测试代码


#include

#include //详见第六章第8讲

#include     //详见第八章第11讲

#include //详见第十三章第2讲

  

sbit PWMOUT=P1^7;

u8  highval = 10;

void main()

{

    LED_Init();          //初始化LED硬件模块

    EA = 1; 

    InitInfrared();      //初始化红外接收功能

    TIM0_Init(100,34);   //定时0.1ms,舵机专用,34是微调使定时精度更高,每次微调都由中断函数里的内容而决定

    ShowNumber(highval);

    

    while (1)

    {

        if (irflag)      //接收到红外数据时刷新显示

        {

            irflag = 0;  

      

            //以下是遥控器第一行按键

            if(ircode[2]==0x45)highval=5;   

            if(ircode[2]==0x46)highval=7; 

            if(ircode[2]==0x47)highval=10;

      

            //以下是遥控器第二行按键

            if(ircode[2]==0x44)highval=12;

            if(ircode[2]==0x40)highval=14;

            if(ircode[2]==0x43)highval=16;  

      

            //以下是遥控器第三行按键

            if(ircode[2]==0x07)highval=19;

            if(ircode[2]==0x15)highval=22;

            if(ircode[2]==0x09)highval=24;

      

            ShowNumber(highval);  

        }  

    }

}

    

void TIM0_IRQHandler() interrupt 1

    static  u8 pwm=0;

    TH0 = T0RH;              //重新加载重载值

    TL0 = T0RL;

    

    pwm++;

    if(pwm>=200)pwm=0;       //pwm在0~199之间间隔0.1ms变化,周期为20ms

    

    if(pwm%10==0)SEG_Scan(); //间隔1ms刷新数码管

    

    if(pwm    else PWMOUT=0;

}


关键字:51单片机  遥控器  控制舵机 引用地址:51单片机-遥控器控制舵机

上一篇:51单片机-电位器控制舵机
下一篇:51单片机-温度传感器与串口

推荐阅读最新更新时间:2024-11-10 09:11

delphi与51单片机串行通信
说明:可能前面几次首发不太准确 //delphi源码 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SPComm, StdCtrls; type TFCOMM = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Memo1: TMemo; Comm1: TComm; procedure FormShow(Se
[单片机]
利用51单片机的LED点阵输出生日快乐
Led点阵原理图 D0-D7口接在74HC595芯片上,芯片的输入端口为P34、P35、P36端口; 控制每一列的为P00-P07端口 LED点阵工作原理 根据点阵原理图,P00-P07接低电平,D0-D7接高电平时led点亮,由于单片机控制端口有限,于是只能每次点亮一列,逐列扫描,利用人眼的视觉暂留形成同时点亮的现象。将要点亮的LED灯标记为1,每一列根据D0-D7的高低电平,转换成2进制数,再转换成16进制数,于是得到每一个汉字所对应的数组,通过74HC595移位输出(这里可以通过IC资料查看74HC595工作原理编程)。 程序代码
[单片机]
利用<font color='red'>51单片机</font>的LED点阵输出生日快乐
CEPARK 51单片机DS18B20测试程序
/********************************************************************** * 文件名称: CEPARK 51 V2.0开发板 * 程序版本: V1.0 * 技术支持:http://bbs.cepark.com *CEPARK http://bbs.cepark.com/viewthread.php?tid=34&fromuid=6136 * Cepark暑期51在线免费培训用程序---活动报名地址: http://bbs.cepark.com/viewthread.php?tid=14228&fromuid=6136 ********************
[单片机]
采用冒泡法编写51单片机排序程序
试设计一个子程序,其功能为将(R0)指出的内部RAM中6个单字节正整数按从小到大的次序重新排列。 ;======================================== 最佳答案: 下列程序使用冒泡法排序,经过KEIL仿真测试通过。 ORG 0000H ;------------------------下面先准备6个数字 MOV 40H, #8AH MOV 41H, #3BH MOV 42H, #0B9H MOV 43H, #47H MOV 44H, #29H MOV 45H, #0AFH CALL SORT6 ;调用排序子程序 SJMP $ ;停止,此时可以
[单片机]
51单片机】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
原理 设置1602屏幕的对比度的时候我们能够看到5*8的点阵,其实液晶显示的都是字符的字模(下图),而CGROM里面都是已经定义好的,只能读不能写,而RAM是可以读写的所以我们只要将我们自定义的字符字模写入对应的CGRAM中就好,CGRAM一共有8个对应的地址分别为(0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78),因为每个字模对应8行所以每写完一个字模以后要加8,按照指令写入CGRAM时需要加0x40所以对应地址就如上了,然而其实CGRAM的实际地址是0x00-0x07所以在后面写入数据的时候需要按照实际地址来写入。CGROM中的字模也是同样的原理 字模代码:1602显示模式为5*
[单片机]
【<font color='red'>51单片机</font>】1602自定义字符原理及示例(”汉“、爱心及摄氏度示例)
51单片机-定时中断与LED闪烁
这次说定时与中断,有人说,掌握了定时与中断,就掌握了一个单片机80%的功能;也有人说,中断是一个单片机的灵魂。这两句话无一不在强调中断的重要性,就让我们认识一下,中断到底是什么。 根据百度百科的定义:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。 举个例子,我正在吃饭呢,忽然老婆大人发话了,说在网上看上一个包,挺好的,让我帮着付款,于是我停下吃饭说好,去帮着付款,付完款,继续吃饭。 这个过程中,我是CPU;吃饭是主程序;老婆大人说话,触发了中断;我说好,安慰
[单片机]
51单片机STC89C52控制LED跑马灯左移(使用C51自带库_crol_()实现)
/*-----------------------包含头文件区域-------------------------*/ #include reg52.h //单片机头文件 #include intrins.h //C51自带库头文件 /*-----------------------函数声明区域---------------------------*/ void delay(unsigned int xms);//延时函数声明 /*-----------------------主函数区域-----------------------------*/ void main() { unsigned char i;/
[单片机]
MCS-51单片机定时器/计数器基础详述
MCS-51子系列单片机有2个定时器/计数器,即定时器/计数器0和1,52子系列单片机(8032/8052)除了有上述2个定时器/计数器外,还有一个定时器/计数器2,后者的功能比前两者强。 1 定时器/计数器0和1 在专用寄存器TMOD(定时器方式)中,有一个控制位(C/T),分别用于控制定时器/计数器0和1是工作在定时器方式还是计数器方式。 1. 输入信号基本要求:24个振荡周期,即两个机器周期; 2. 作为定时器时,计数速率是 振荡频率/12; 3. 由定时器/计数器模式控制寄存器设置工作方式。 2 定时器/计数器2(自己阅读) 定时器/计数器2是一个具有16位自动重装载或捕获能力的定时器/计数器。专用寄存器
[单片机]
MCS-<font color='red'>51单片机</font>定时器/计数器基础详述
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved