找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2472|回复: 1
收起左侧

按键控制电机反正转,带PWM

[复制链接]
ID:79544 发表于 2015-7-23 15:35 | 显示全部楼层 |阅读模式
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit jiasu=P1^0;
  5. sbit jiansu=P1^1;
  6. sbit pwm=P2^0;
  7. sbit fx=P2^3;
  8. uchar gdp;//高电平时间变量
  9. uchar tt=100;//周期变量
  10. uchar time;//定时器自动加1变量
  11. void delay(uint z)
  12. {
  13.         uint x,y;
  14.         for(x=z;x>0;x--)
  15.         for(y=120;y>0;y--);
  16. }
  17. void tm0() interrupt 1
  18. {
  19.         TH0=(65536-65526)/256;
  20.         TL0=(65536-65526)%256;
  21.         time++;
  22.         if(time==gdp)//高电平时间到。PWM脉冲变低
  23.                 pwm=0;
  24.         else
  25.         if(time==tt)//周期时间到
  26.         {
  27.                 pwm=1;
  28.                 time=0;
  29.         }
  30. }
  31. void main()
  32. {
  33.         TMOD=0X01;
  34.         TH0=(65536-65526)/256;
  35.         TL0=(65536-65526)%256;
  36.         EA=1;
  37.         ET0=1;
  38.         TR0=1;
  39.         fx=1;
  40.         while(1)
  41.         {
  42.                 if(!jiasu)
  43.                 {
  44.                         delay(10);
  45.                         if(!jiasu)
  46.                         {
  47.                                 gdp+=5;
  48.                                 if(gdp>=100)
  49.                                 gdp=95;
  50.                                 while(!jiasu);       
  51.                         }
  52.                 }
  53.                 if(!jiansu)
  54.                 {
  55.                         delay(10);
  56.                         if(!jiansu)
  57.                         {
  58.                                 gdp-=5;
  59.                                 if(gdp<=10)
  60.                                 gdp=10;
  61.                                 while(!jiansu);       
  62.                         }
  63.                 }
  64.         }
  65.         fx=0;
  66.         while(1)
  67.         {
  68.                 if(!jiasu)
  69.                 {
  70.                         delay(10);
  71.                         if(!jiasu)
  72.                         {
  73.                                 gdp+=5;
  74.                                 if(gdp>=100)
  75.                                 gdp=95;
  76.                                 while(!jiasu);       
  77.                         }
  78.                 }
  79.                 if(!jiansu)
  80.                 {
  81.                         delay(10);
  82.                         if(!jiansu)
  83.                         {
  84.                                 gdp-=5;
  85.                                 if(gdp<=10)
  86.                                 gdp=10;
  87.                                 while(!jiansu);       
  88.                         }
  89.                 }
  90.         }
  91. }
复制代码

评分

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

查看全部评分

回复

使用道具 举报

ID:1 发表于 2015-7-23 15:39 | 显示全部楼层
能提供一下电路图吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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