找回密码
 立即注册

QQ登录

只需一步,快速开始

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

电机的正反转

[复制链接]
跳转到指定楼层
楼主
ID:139927 发表于 2016-9-20 15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint);
sbit pwm=P2^7;
uchar aa=1,bb=0,cc=0,dd=0,ee=1;
void main()
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)/256;
EA=1;
ET0=1;
TR0=1;
while(1);
}

void key()          //按键检测处理函数
{
uchar temp;
P3=0xfe;
temp=P3;
temp=(temp&0xf0);
if(temp!=0xf0)
{
  delayms(10);
  if(temp!=0xf0)
   {
    temp=P3;  //消抖
        switch(temp)
        {
          case 0xee:
           TR0=~TR0;
           break;
          case 0xde:
          if(cc==0)
           aa+=10;
           if(aa>100)
            aa=1;
       break;
        }
          while(temp!=0xf0)  //等待按键释放
          {                    
           temp=P3;
           temp=temp&0xf0;
          }
   }
}

P3=0xfd;
temp=P3;
temp=(temp&0xf0);
if(temp!=0xf0)
{
  delayms(10);
  if(temp!=0xf0)
   {
    temp=P3;  
        switch(temp)
          {
          case 0xed:
          if(dd=0)
           aa+=1;
          break;
          case 0xdd:
           if(cc=1)
                cc=1;
           dd=1;
          break;
          }
          while(temp!=0xf0)  
          {
           temp=P3;
           temp=temp&0xf0;
          }
   }
}
}

void time1()interrupt 3
{
TH0=(65536-1000)/256;
TL0=(65536-1000)/256;
    bb++;
  if(bb>=100) bb=0;
         if(bb<=aa)
           pwm=1;
         else
         pwm=0;
}

void time2()interrupt 1
{

}


void delayms(uint xms)
{
uint i,j;
  for(i=xms;i>0;i++)
    for(j=110;j>0;j++);
}



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:139927 发表于 2016-9-20 15:44 | 只看该作者
这只是一部分代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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