首页 > 其他分享 >51单片机 90g360°舵机控制

51单片机 90g360°舵机控制

时间:2023-04-23 16:02:43浏览次数:30  
标签:count __ void 初始值 51 Delay 单片机 Timer0 90g360

主函数 main

#include <REGX52.H>
#include "Delay.h"
#include "Timer0.h"

unsigned char count = 0;
unsigned char pwm;

void Timer0() interrupt 1
{    
    // 每隔0.1ms=100us进入
    TH0 = 65435 / 256;                //设置定时初始值
    TL0 = 65435 % 256;                //设置定时初始值

    if (count <= pwm)  //5=0.5ms=500us 顺时针 //15=1.5ms=1500us 逆时针
    {P0_0 = 1;}  //高电平      
    else
    {P0_0 = 0;}  //低电平
    
    count ++;
    if (count >= 200)
    {count = 0;}
}

void main()
{
    Timer_Init();
    while(1)
    {
        pwm = 5;
        Delay(2000);
        count = 0;

        pwm = 15;
        Delay(2000);
        count = 0;
    }
}

Delay.h

#ifndef __Delay_H__
#define __Delay_H__


void Delay(unsigned int xms);

#endif

Delay.c

#include <REGX52.H>
#include <intrins.h>
// 100us
// 1ms = 1000us = Delay(10)
// 20ms = 20000us = Delay(200)
void Delay(unsigned int xms)        //@11.0592MHz
{
    unsigned char i;
    while (xms--)
    {
        _nop_();
        i = 43;
        while (--i);
    }

}

Timer0.h

#ifndef __Timer0_H__
#define __Timer0_H__


void Timer_Init();        //1毫秒@11.0592MHz


#endif

Timer.c

#include <REGX52.H>

void Timer_Init()        //@11.0592MHz
{
    //设置定时器模式
    TMOD &= 0xF0;            
    TMOD |= 0x01;
    
    TF0 = 0;                //清除TF0标志
    TR0 = 1;                //定时器0开始计时
    // 65535us
    // 100us = 0.1ms 65435  TH0=0xff=65435/256,TL0=0x9b=65435%256
    // 1000us = 1ms 64535 
    // 20000us = 20ms 45535
    TH0 = 65435 / 256;                //设置定时初始值
    TL0 = 65435 % 256;                //设置定时初始值


    ET0 = 1; // 中断
    EA = 1; // 中断
    PT0 = 0; //中断优先级
}

/*  
// 定时器中断函数
void Timer0() interrupt 1
{    
    static unsigned int count;  //static 静态变量,函数结束不清零
    TL0 = 0xff;                //设置定时初始值
    TH0 = 0x9b;                //设置定时初始值
    count ++;
    if (count >= 100)
    {
        count = 0;
        P2_1 =~ P2_1;
    }
}
*/

 

标签:count,__,void,初始值,51,Delay,单片机,Timer0,90g360
From: https://www.cnblogs.com/lld76/p/17346778.html

相关文章

  • 全志v851s 的uart3 设置成普通串口收发
    本文转载自:https://bbs.aw-ol.com/topic/3281/由于UART0被设定为系统dubug输出(简单来说就是将ttyS0设定为console),所以使用UART3作为普通的串口,进行与别的设备通信。1.查看硬件电路图SCH_Schematic1_2022-11-23,查看uart3的TXRXpin脚电路图pdf路径:Yuzukilizard/Hardware/......
  • 为什么单片机编程放不下超过32万的整数?
    因为你的单片机可能是16位的,c语言16位编译器的int类型占2字节,也就是范围:-2^15~2^15-1 (-32768~32767)。32位的编译器int类型占4字节。这种情况下可以使用longint(16位编译器4字节),也可以使用循环处理整数。 ......
  • 51单片机学习笔记 STC89C52RC (05)矩阵键盘和独立键盘(轻触开关)
    按键抖动,需要消抖 原理图来自清翔电子一、独立键盘模块1.可以直接获取 P3^0对应S2 P3^1对应S3 P3^2对应S4 P3^3对应S5 的电压当轻触开关按下时,电流会流向GND,此时这一路的电压为0V,松开轻触开关,又变为5V //第一种方法:单个I/O口检测控制#include<reg51.h>sbi......
  • 正确使用 51CTO博客—Markdown 的排版事例
    这是一篇关于讲解如何正确使用51CTO博客-Markdown的排版示例,希望通过此,大家都能轻松上手,都能通过Markdown能够让自己的文章有更加出色、更清晰明了的排版。什么是MarkdownMarkdown(MD)是现在普遍使用的一种文档书写语言格式,只需用一些非常简单易记的符号,如(#*/>[]()\),......
  • 51单片机学习笔记 STC89CRC (04)数码管和锁存器
    一、数码管 点亮:共阴极给高电平,共阳级给低电平,二进制点亮顺序为  dpgfedcba想要显示1,就可以给0x06, //00000110,bc亮起显示1.0x3F,//"0"0x06,//"1"0x5B,//"2"0x4F,//"3"0x66,//"4"0x6D,//"5"......
  • 文章学习:基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破
    学习文章:英特尔×同态科技|基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破文章人工智能的安全隐患ChatGPT的成功大部分来源于海量的数据支撑和丰富的数据维度,基于13亿参数量的庞大模型,随着用户的不断涌入,ChatGPT不断迭代进化新的“知识”,而在模型表达能力的增......
  • PCF8591 AD/DA转换基于51
    #include<reg52.h>#include<intrins.h>//内部有_nop_();//IIC模拟时序实现//注意:SCL为高电平时变化SDA数据是起始或者终止信号;所以若不是起始或者终止信号,需要在SCL为低电平时变化SDA数据sbitSDA=P2^0;sbitSCL=P2^1;sbitLED=P2^3;sbitwei=P2^6;sbitdu......
  • Devu and Flowers CF451E
    Devu有n个花瓶,第ii个花瓶里有fi朵花。他现在要选择s朵花。你需要求出有多少种方案。两种方案不同当且仅当两种方案中至少有一个花瓶选择花的数量不同 #include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintM=1<<20,mod=1e9......
  • HarmonyOS Hi3518系列 环境篇①——HiSpark_IPC_DIY摄像头开箱组装
    文章目录一、硬件介绍二、组装一、硬件介绍本专栏的所有开发都基于硬件润和HiSpark_IPC_DIY摄像头(Hi3518E)开发板套件,二、组装按照说明书进行组装,挺简单的,不过中间也装反过一次。组装后的成品多角度拍了几张照片,如有正在组装的同学看到可以多对照着看。......
  • 全志v851s使用GPIO应用程序编写
    1.查看硬件电路图SCH_Schematic1_2022-11-23,查找合适的gpio作为使用pin在这里我们选取GPIOH14(注意目前开发使用这个pin作为触摸屏的pin脚,需要将触摸屏connect断开),因为可以通过排插使用杜邦线将其引出,用于连接别的设备。电路图pdf路径:Yuzukilizard/Hardware/Schematic/SCH_......