找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3769|回复: 0
收起左侧

C52通过按键控制电机转速

[复制链接]
ID:129358 发表于 2016-7-5 21:40 | 显示全部楼层 |阅读模式

#include <reg52.h>        //
#define uint unsigned int
#define uchar unsigned char
sbit s1=P3^5;//加速按键
sbit s2=P3^3;//减速按键
sbit fm=P3^6;//接蜂鸣器
uchar pwm,num;
void delay(uint ms)        //
{
    uchar i;
    while(ms--)
    {
        for(i=0;i<120;i++);
    }
}

void bee()             //蜂鸣器函数
{
        fm=0;
        delay(100);
        fm=1;
        delay(100);
}


void keyscan()        //按键扫描函数
{
    if(s1==0)
    {
        delay(50);
        if(s1==0)
        {
                if(pwm<32)
                {
                    pwm++;
                  delay(100);
                }
                else
                    bee();
        }
    }
    if(s2==0)
    {
        delay(50);
        if(s2==0)
        {
                if(pwm>1)
                {
                    pwm--;
                  delay(100);
                }
                else
                    bee();
        }
    }
}


void init1()        //定时器1初始化
{
    TMOD=0x11;
    TH1=(65536-500)/256;
    TL1=(65536-500)%256;
    EA=1;
    ET1=1;
    TR1=1;
   
}
void t1() interrupt 3        //中断服务函数
{
    TR1=0;
    TH1=(65536-500)/256;
    TL1=(65536-500)%256;
    num++;
    if(num>32)
    {num=0;}
    if(num<=pwm)
    {
        P1=0x00;
    }
    else
    {
        P1=0x0f;
    }
    TR1=1;
}

void main()
{
    init1();    //
    num=0;
    pwm=16;        //   初始PWM占空比设为50%
    while(1)
    {
        keyscan();
    }
}

按键PWM.rar

24.12 KB, 下载次数: 20, 下载积分: 黑币 -5

基于AT89C52通过按键控制直流电机转速

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表