51单片机分时控制8路舵机程序

发布者:诗意世界最新更新时间:2015-05-21 来源: 51hei关键字:51单片机  分时控制  舵机程序 手机看文章 扫描二维码
随时随地手机看文章
本程序中用到的头文件 12c5a.H下载: http://www.51hei.com/f/12c5a.rar 

//分时控制舵机,采用的单片机是STC12c5a 51增强型单片机,晶振11.0592MHZ
#include <12c5a.H>   

void delay(uint16 time); 
void Timer_init();   
void Timer0(uint32 us); 

uint16 xdata pwm[8]={1500,1500,1500,1500,1500,1500,1500,1500}; 

sbit pwm1=P0^0;         
sbit pwm2=P0^1;
sbit pwm3=P0^2;
sbit pwm4=P0^3;
sbit pwm5=P0^4;
sbit pwm6=P0^5;
sbit pwm7=P0^6;
sbit pwm8=P0^7;

void main()
{
 P0M1=0;     
 P0M0=0XFF;

 Timer_init(); 
 Timer0(100);  
 delay(100);
 while(1)
 {
 ;
 }
}
void delay(uint16 time)
{
 uint16 i;
 uint16 j;
 for(i=0;i<1000;i++)
 for(j=0;j }
void Timer_init()
{
 EA=1;        //开总中断
 AUXR|=0xC0;    //T0,T1工作在1T
    TMOD|= 0x11;   //T0工作在方式1,16位
 ET0 = 1;    //开定时器0中断
}
void Timer0(uint32 us)    

 uint32 valu;
 valu=us*11;     
 valu=valu;
 valu=0xffff-valu;   

    TH0=valu>>8;    
    TL0=valu;
    TR0  = 1;     
}
void T0zd(void) interrupt 1  
{
  static uint8 i=1;
  switch(i)      
  {
  case 1:
   {
    pwm1=1;
    Timer0(pwm[0]); 
   }  break;
  case 2:
   {
     pwm1=0;   
    Timer0(2500-pwm[0]);
   }  break;
  case 3:
   {
    pwm2=1;
    Timer0(pwm[1]);
   }  break;
  case 4:
   {
    pwm2=0;
    Timer0(2500-pwm[1]);
   }  break;
  case 5:
   {
    pwm3=1;
    Timer0(pwm[2]);
   }  break;
  case 6:
   {
    pwm3=0;
    Timer0(2500-pwm[2]);
   } break;  
  case 7:
   {
    pwm4=1;
    Timer0(pwm[3]);
   } break;  
  case 8:
   {
    pwm4=0;
    Timer0(2500-pwm[3]);
   } break;  
  case 9:
   {
    pwm5=1;
    Timer0(pwm[4]);
   } break;  
  case 10:
   {
    pwm5=0;
    Timer0(2500-pwm[4]);
   } break;  
  case 11:
   {
    pwm6=1;
    Timer0(pwm[5]);
   } break;  
  case 12:
   {
    pwm6=0;
    Timer0(2500-pwm[5]);
   } break;

  case 13:
   {
    pwm7=1;
    Timer0(pwm[6]);
   } break;  
  case 14:
   {
    pwm7=0;
    Timer0(2500-pwm[6]);
   } break;

  case 15:
   {
    pwm8=1;
    Timer0(pwm[7]);
   } break;  
  case 16:
   {
    pwm8=0;
    Timer0(2500-pwm[7]);
    i=0;
   } break;

  default:break;
   
     }
    
   i++;
}  

关键字:51单片机  分时控制  舵机程序 引用地址:51单片机分时控制8路舵机程序

上一篇:基于LabVIEW和RS485通信的光伏发电实时监测系统设计
下一篇:基于C8051F的18B20程序

推荐阅读最新更新时间:2024-03-16 14:02

C51单片机定时器/计数器中断功能详细分析(一)
我们首先需要了解什么是中断? 中断是指CPU在执行某一过程中由于外界原因必须暂停现在的事情,处理别的事情,处理完了再回去执行暂停的事情。 中断的优点? 1.分时操作。 2.实时响应 3.可靠性高 中断中用到的寄存器: 中断优先级寄存器IP IP寄存器: 作用是选择优先级的,解决中断优先级问题。 PX0:外部中断0优先级设定位 PT0:定时/计数器T0优先级设定位 PX1:外部中断0优先级设定位 PT1:定时/计数器T1优先级设定位 PS :串行口优先级设定位 PT2:定时/计数器T2优先级设定位 中断允许寄存器IE IE寄存器: EX0:外部中断0允许位; E
[单片机]
C<font color='red'>51单片机</font>定时器/计数器中断功能详细分析(一)
51单片机控制SL811HS的USB主机底层驱动
引言 基于USB接口的设备使用方便,性价比高,因此在人们的工作和生活中得到了广泛的应用,如U盘,移动硬盘,光驱,USB摄像头,USB鼠标键盘等,同时,51系列单片机以其成熟的技术和高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域,因此,如果在51单片机系统中增加USB主机接口,实现对USB从机设备的控制,则该单片机系统可以充分利用现有的各种USB从机设备,大大扩展单片机系统功能。 本设计实现了在51单片机系统中增加USB主机功能,采用普通51单片机外接专用USB接口芯片的方案,这种方案虽然会使系统传输速度受到限制,而且在稳定性有所欠缺,但此方案设计灵活性高,且易于移植,为低成本产品的开发提供了广阔前景,设计中采用51单
[单片机]
51单片机流水灯控制(5种方法)
实现流程: 1. 新建一个工程(新项目) 2. 查看原理图确定需求(流水灯)对应LED引脚在单片机上的哪个引脚 3. 编写程序(通过查看原理图可以看到我们需要控制整个P2口以控制8个LED灯) 4. 编译程序,下载程序至开发板 5. 查看效果(调试) 进制转换表(因为单片机首先处理的是十六进制的数据,所以我们需要将二进制控制需求转换成十六进制去写代码): 控制代码: #include REGX52.H //头文件 #include Delay.h #include intrins.h /* ---------------------------------------------
[单片机]
<font color='red'>51单片机</font>流水灯<font color='red'>控制</font>(5种方法)
无符号双字节除以单字节(51单片机,汇编源码)
采用移位减法的算法。源码如下: 1 ;////////////////////////////////////////////////////////////////////////////// 2 ;函数: div_u16_u8 3 ;描述: 无符号双字节除以单字节 4 ;入口: (R6,R7)/(R0) 5 ;出口: (R6,R7).(R5) 6 ;注意: 余数在R5;OV=1时表示溢出 7 ;影响: A,B,R0,R5,R6,R7 8 div_u16_u8: mov r5,#0 9 mov b,#16 10 #ifdef __SPEED_P__ 11 mov a,r6
[单片机]
STM32GPIO口8种模式细致分析(类比51单片机
关于STM32GPIO口的8种工作模式,我们先引出一些问题? STM32GPIO口如果既要输入又要输出怎么办? 1、浮空输入模式 上图红色的表示便是浮空输入的过程,外部输入时0读出的就是0,外部输入时1读出的就是1,外部没有输入IO处于阻塞读不出电平状态。 用处:感觉在信号处理方面用的比较好,比如在读取一段一段的波形,可以清晰的知道什么时候是0信号,什么时候是1信号,什么时候是没有信号的。 类比:51单片机找不到类似的输入模式 2、上拉输入 上拉输入和浮空输入的区别是,上拉电阻的开关关闭了,如上图所示。IO没有输入的时候,IO电平等于VDD即1电平,当然IO输入低电平的事就是VDD和IO口形成一个闭环电路,根据分压
[单片机]
基于51单片机的光驱激光雕刻机源程序电路图+上位机
根据他人DIY 激光雕刻机 手绘原理图 画得不好勿怪,实验操中 电路原理图如下: 单片机源程序如下: /*z地址定义 50 1=x+,2=x-,3=y+,4=y- 51 前进后退步数高 52 前进后退步数低 53 54/55 字宽 56 57 弱光开关 58/59 激光强度 60 x轴速度 61 y轴速度 62 开始打印0,57 63 暂停 64 停止标志 65 66 左右标记 100开始时灰度图数据 */ #include reg52.h #define uint unsigned int #define uchar unsigned char #define N z //X速度 #define
[单片机]
基于<font color='red'>51单片机</font>的光驱激光雕刻机源<font color='red'>程序</font>电路图+上位机
关于51单片机中的RAM、SFR和位地址的问题
51单片机中_有_4EH这个位地址。 51单片机片内RAM的20H~2FH,这十六字节,可以按照“位”来寻址。 这里面共有128个“位地址”,分别为00H~7FH。 位地址4EH,是在“字节地址为29H的字节单元”中的第6位。 后记:做而论道搜集了51单片机中片内RAM的使用规范,整理如下。 MCS-51系列单片机片内RAM共有128字节,地址范围为00H~7FH。 在这128字节中,全部都可以按照字节地址进行操作(读、写或运算),直接或间接寻址方式皆可。 在这128字节中,按照使用特点,可以分成三类:工作寄存器区、位寻址区和通用数据区。 片内RAM的使用分类可见表1。 下面按照它们的功能特点,分别加以介绍。 1.工作寄存器
[单片机]
关于<font color='red'>51单片机</font>中的RAM、SFR和位地址的问题
基于51单片机之74HC165实验例程
************************** Copyright(C)CaKe ***************************************** ================================================== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== ==============**版本号 : V1.0 ============== ==============**时间 : 2014.
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved