找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神帮忙看看

[复制链接]
跳转到指定楼层
楼主
求大神帮忙看看,实在是不懂,只好来这里求助了

123.png (58.11 KB, 下载次数: 87)

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

使用道具 举报

沙发
ID:116680 发表于 2016-4-27 17:54 | 只看该作者
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit out1=P0^0;

sbit out2=P0^1;
sbit out3=P0^2;
sbit out4=P0^3;
bit pwm0;bit pwm1;
bit o1,o2,o3,o4;

uchar  G_pwm_num0=50;//(占空比为50%),这两个参数的最大值为100,因为下面count<=0
uchar  G_pwm_num1=50;
uchar  count;
void time_init()
{
    TMOD=0x21;
    EA=1;
    TH1=156;
    TL1=156;
    TR1=1;
    ET1=1;
    ET0=1;
    TH0=0;
    TL0=0;
}
void time1() interrupt 3
{
   count++;
   if(count<G_pwm_num0)
      pwm0=1;
   else pwm0=0;
   if(count<G_pwm_num1)
      pwm1=1;
   else pwm1=0;
   if(count==100) //这里的占空比是这样算的(G_pwm_num0/100,G_pwm_num1/100)
      {
         count=0;
         
      }
   else _nop_();
   out1=o1&&pwm0;//left+
   out2=o2&&pwm0;
   
   out3=o3&&pwm1;//right+
   out4=o4&&pwm1;
   
}
void main()
{
   time_init();

   G_pwm_num0=50;//占空比可自行定义大小
   o1=1;
   o2=0;//当两者都为0时,停止

   G_pwm_num1=50;
   o3=1;
   o4=0;
   while(1);
}
回复

使用道具 举报

板凳
ID:116680 发表于 2016-4-27 17:56 | 只看该作者
这是我画的仿真电路和程序,现在这个程序只能让电机同速转动。但我需要当我按下SW1时,电机能停止,而且蜂鸣器能报警

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:117147 发表于 2016-4-27 20:47 | 只看该作者
你看看是不是串口的问题

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:79544 发表于 2016-4-27 21:09 | 只看该作者
你没加按键扫描程序。
PWM也没用到

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:79544 发表于 2016-4-27 21:12 | 只看该作者
bit pwm0;bit pwm1;改写成sbit pwm0=p0^5;pwm1=p0^6;

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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