本例程晶振为32M
#include
#define uint unsigned int
void drive();
void delay(uint);
sbit pwm=P2^0;
uint set; //set为舵机转角标志位
unsigned char angle; //angle为舵机PWM变化打角
void Time0_Init() //中断初始化
{
TMOD=0X01;
IE=0X82;
TH0=(65536-58)/256;
TL0=(65536-58)%6;
TR0=1;
}
void main() //主函数
{
set=0;
angle=23; // 改变angle的值可以改变舵机的占空比
Time0_Init();
for(;;)
{
drive();
}
}
void drive() //电机驱动例程,改变占空比
{
angle=12;
delay(800);
angle=52;
delay(800);
angle=135;
delay(800);
}
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void T0_time()interrupt 1 //100HZ,10MS
{
TH0=(65536-58)/256;
TL0=(65536-58)%6;
if(set
pwm=1;
else
pwm=0;
set++;
if(set>385) set=0; //舵机占空比
}
关键字:51单片机 IO模拟 PWM控制 舵机转向
引用地址:
51单片机IO模拟PWM控制舵机转向
推荐阅读最新更新时间:2024-03-16 14:47
51单片机的FIFO(先入先出)循环队列实现
////////////////////////////////////////////////////////// // 文件:config.h ////////////////////////////////////////////////////////// #ifndef __CONFIG_H #define __CONFIG_H //这一段无需改动 //This segment should not be modified #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif typedef unsigned char
[单片机]
基于51单片机的半导体激光器电源控制系统的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
基于51单片机的数字测速系统的设计方案
0 引言 本方案所设计的基于霍尔元件的脉冲发生器要求成本低,构造简单,性能好。在电气控制系统中存在着较为恶劣的电磁环境,因此要求产品本身要具有较强的抗干扰能力。系统主要由AT89S52 单片机处理系统、电机、传感器检测单元、信号处理单元和显示系统等几个部分组成。 1 总体方案设计 对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。霍尔元件测速法是利用霍尔开关元件测转速的。 霍尔开关元件内含稳压电路、霍尔电势发生器、放大器、施密特触发器和输出电路。输出电平与TTL 电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,每当一个
[单片机]
51单片机学习笔记:合并1602和12864液晶排插接口
今天成功合并1602和12864液晶排插接口! 码出来分享下 上面这2个图是1602和12864液晶的排插接口,一般的单片机开发板上都会有 仔细观察发现他们的插口大多是相同的, 对于第三脚的对比度调节,1602和12864液晶在硬件上是相反的(1602是低电位方向对比度增强,12864是高电位方向对比度增强), 但他们接口位置相同,所以一个10K左右的3脚电位器就可以满足要求! 接法如12864中的接法,规格取10K的 456这3个脚一模一样,1602第5脚接地是让1602一直工作在写入模式, 原始的接口和12864是一样的, 那么只要在我们以前的代码中添加一条LCD1602WR=0就搞定了 然后8个数据口又
[单片机]
51单片机与MXA2500GL的振动信号分布式检测
C8051F020单片机性能特点 CYGNAL的C8051F020是集成模拟、数字信号的混合信号系统级SOC(System On Chip)单片机,与目前常用的51系列单片机指令集完全兼容。采用100脚TQFP封装,体积小,运算速度快。它采用CYGNAL公司的专利CIP- 5l微处理器内核。CIP-5l在提升805l速度上采取了新的途径,即设法在保持CISC结构及指令系统不变的情况下,对指令运行实行流水作业。在这种模式中,废除了机器周期的概念,指令以时钟周期为运行单位。平均每个时钟可以执行完l条单周期指令,从而大大提高了指令运行速度。 与805l相比,C8051F020在相同时钟下单周期指令运行速度为原来的12倍,整个指令
[单片机]
51单片机实验7:矩阵按键
开发板矩阵按键模块电路图如下: 开发板数码管模块电路图如下: 矩阵按键扫描原理: 方法一:逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。 方法二:行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。 在本程序中,扫描矩阵按键采用行列扫描的方式!
[单片机]
51单片机定时/计数器详解(工作原理及模式、应用)
51单片机是基础入门的一个单片机,还是应用最广泛的一种。本文主要介绍51单片机定时/计数器,首先介绍了51单片机定时/计数器的工作原理,其次介绍了51单片机定时/计数器的工作模式,最后阐述了51单片机定时/计数器的应用,具体的跟随小编一起来了解一下吧。 51单片机的定时/计数器的概念 单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,只要相邻两个计数脉冲之间的时间间隔相等,则计数值就代表了时间的流逝,因此,单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单
[单片机]
C51单片机 的定时器学习笔记
/*-------------------------------------------------------*/ /* -------------author: robinson_911 -------------------------*/ /* -------------date:2014年2月 -------------------------*/ /* -------------content:关于串口 定时器程序 -----------*/ // 在22.1184MHZ下,通过定时器0,每1s通过串口发送数据 /*---------------------------------------------------
[单片机]