找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 785|回复: 0
打印 上一主题 下一主题
收起左侧

单片机直流电机调速的程序

[复制链接]
跳转到指定楼层
楼主
ID:1089019 发表于 2023-7-19 19:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Timer0.h"

sbit Motor=P1^0;

unsigned char Counter,Compare;        //计数值和比较值,用于输出PWM
unsigned char KeyNum,Speed;

void main()
{
        Timer0_Init();
        while(1)
        {
                KeyNum=Key();
                if(KeyNum==1)
                {
                        Speed++;
                        Speed%=4;
                        if(Speed==0){Compare=0;}        //设置比较值,改变PWM占空比
                        if(Speed==1){Compare=50;}
                        if(Speed==2){Compare=75;}
                        if(Speed==3){Compare=100;}
                }
                Nixie(1,Speed);
        }
}

void Timer0_Routine() interrupt 1
{
        TL0 = 0x9C;                //设置定时初值
        TH0 = 0xFF;                //设置定时初值
        Counter++;
        Counter%=100;        //计数值变化范围限制在0~99
        if(Counter<Compare)        //计数值小于比较值
        {
                Motor=1;                //输出1
        }
        else                                //计数值大于比较值
        {
                Motor=0;                //输出0
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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