标题: 用15f104w通过IO口高低电平变化来控制舵机采用12M晶振 [打印本页]

作者: 37it    时间: 2016-11-26 17:17
标题: 用15f104w通过IO口高低电平变化来控制舵机采用12M晶振
#include <reg52.h>             //头文件
unsigned int scale;//占空比控制变量
sbit out1=P3^3;
sbit key1=P3^5;
sbit key2=P3^4;
unsigned int n=50,key2f=0;//延时循环变量
unsigned int kf0=1;//按键用的标志位
unsigned int kt0=0;//按键用的标志位
unsigned int num=0;
void main(void){
    TMOD=0x02;//定时器0,工作模式2(0000,0010),8位定时模式
    TL0 = 0xF6;        //设置定时初值   10微妙
    TH0 = 0xF6;        //设置定时重载值
    TR0=1;//启动定时器
    ET0=1;//允许定时器0中断
    EA=1;//允许总中断
    while(1){
        if(key2==0){
                num=0;
                scale=50;            
        }
        if(key1==0){//当按键1按下
            if(kf0){//当标志位kf0=1的时候进行
                    kf0=0;//标志位kf0=0
                    kt0=1;//标志位kt0=0
                    num++;
              }
        }else{//当按键松开
           if(kt0){//当标志位kt0=1的时候进行
                kf0=1;//标志位kf0=1
                kt0=0;//标志位kt0=0
           }
        }//按键1结束
        scale=num+50;        
    }
}
void timer0() interrupt 1{//定时器0 0中断服务程序
    static unsigned int tt;//tt用来保存当前时间在一秒中的比例位置
    tt++;//每10微妙增加1
    if(tt==300){//2.5毫秒的时钟周期
        tt=0;//使tt=0,开始新的PWM周期
        out1=0;
    }
    if(scale==tt){//按照当前占空比铁环输出为高电平
        out1=1;
    }
}



作者: 我要单片机    时间: 2019-11-22 11:23
能分享一下吗
作者: 嬴梁    时间: 2019-11-25 10:14
感觉挺高级的,很实用的感觉




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1