找回密码
 立即注册

QQ登录

只需一步,快速开始

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

利用直流电动机以及步进电机模拟起重桥的单片机仿真与源码

[复制链接]
跳转到指定楼层
楼主
其中利用直流电机完成位置移动,步进电机模拟吊钩升降。

单片机仿真原理图如下所示(proteus仿真工程文件可到本帖附件中下载)



单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define out_port P3
  4. unsigned char const sequence[8]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};

  5. sbit key_for = P1^2;
  6. sbit key_rev = P1^3;
  7. sbit Inc = P1^0;
  8. sbit Dec = P1^1;
  9. sbit Dir = P2^0;
  10. sbit PWM = P2^1;
  11. int speed;

  12. void DCMotorDeal(void);
  13. void StepMotorDeal(void);

  14. void delay(unsigned int j){
  15.         for(;j>0;j--);
  16. }

  17. void delayms(unsigned int j){
  18.         unsigned char i;
  19.         for(;j>0;j--){
  20.                 i=120;
  21.                 while(i--);
  22.         }
  23. }

  24. void main(void){
  25.         Dir=1;
  26.         if(Dir){
  27.                 speed=400;
  28.         }
  29.         else{
  30.                 speed=100;
  31.         }
  32.         out_port=0x03;
  33.         while(1){
  34.                 DCMotorDeal();
  35.                 StepMotorDeal();
  36.         }
  37. }

  38. void DCMotorDeal(void){
  39.         if(!Inc){
  40.                 speed=speed>0?speed-1:0;
  41.         }
  42.         if(!Dec){
  43.                 speed=speed<500?speed+1:500;
  44.         }
  45.         PWM=1;
  46.         delay(speed);
  47.         PWM=0;
  48.         delay(500-speed);
  49. }

  50. void StepMotorDeal(void){
  51.         unsigned char i;
  52.         if(!key_for){
  53.                 i=i<8?i+1:0;
  54. ……………………

  55. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
起重桥.zip (48.83 KB, 下载次数: 13)


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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