鱼C论坛

 找回密码
 立即注册
查看: 2410|回复: 1

高手帮我看下 这个单片机汇编 帮我解释下 语句意思好吗? 跪求

[复制链接]
发表于 2012-6-3 22:02:57 | 显示全部楼层 |阅读模式
20鱼币
基于单片机的步进电机驱动电路设计
MOV 21H,#01H
  AJMP QUIT
  LOOP7: MOV P1,#0C0H
  MOV 20H,#01H
  MOV 21H,#80H
  AJMP QUIT
  ;***************电机反转*****************
  FAN: JB 08H,LOOQ0
  JB 09H,LOOQ1
  JB 0AH,LOOQ2
  JB 0BH,LOOQ3
  JB 0CH,LOOQ4
  JB 0DH,LOOQ5
  JB 0EH,LOOQ6
  JB 0FH,LOOQ7
  LOOQ0: MOV P1,#0A0H
  MOV 21H,#02H
  MOV 20H,#40H
  AJMP QUIT
  LOOQ1: MOV P1,#0E0H
  MOV 21H,#04H
  MOV 20H,#20H
  AJMP QUIT
  LOOQ2: MOV P1,#0C0H
  MOV 21H,#08H
  MOV 20H,#10H
  AJMP QUIT
  LOOQ3: MOV P1,#0D0H
  MOV 21H,#10H
  MOV 20H,#08H
  AJMP QUIT
  LOOQ4: MOV P1,#050H
  MOV 21H,#20H
  MOV 20H,#04H
  AJMP QUIT
  LOOQ5: MOV P1,#070H
  MOV 21H,#40H
  MOV 20H,#02H
  AJMP QUIT
  LOOQ6: MOV P1,#030H
  MOV 21H,#80H
  MOV 20H,#01H
  AJMP QUIT
  LOOQ7: MOV P1,#0B0H
  MOV 21H,#01H
  MOV 20H,#80H
  QUIT: RETI
  END

最佳答案

查看完整内容

给你C的注释,跟汇编差别不大,理解下。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-3 22:02:58 | 显示全部楼层
给你C的注释,跟汇编差别不大,理解下。

  1. #include <reg52.h>



  2. sbit A1=P1^0; //定义步进电机连接端口
  3. sbit B1=P1^1;
  4. sbit C1=P1^2;
  5. sbit D1=P1^3;


  6. #define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
  7. #define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
  8. #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
  9. #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
  10. #define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电
  11. #define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电
  12. #define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电
  13. #define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电
  14. #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电

  15. unsigned char Speed;
  16. /*------------------------------------------------
  17. uS延时函数,含有输入参数 unsigned char t,无返回值
  18. unsigned char 是定义无符号字符变量,其值的范围是
  19. 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
  20. 长度如下 T=tx2+5 uS
  21. ------------------------------------------------*/
  22. void DelayUs2x(unsigned char t)
  23. {   
  24. while(--t);
  25. }
  26. /*------------------------------------------------
  27. mS延时函数,含有输入参数 unsigned char t,无返回值
  28. unsigned char 是定义无符号字符变量,其值的范围是
  29. 0~255 这里使用晶振12M,精确延时请使用汇编
  30. ------------------------------------------------*/
  31. void DelayMs(unsigned char t)
  32. {
  33.      
  34. while(t--)
  35. {
  36.      //大致延时1mS
  37.      DelayUs2x(245);
  38.          DelayUs2x(245);
  39. }
  40. }
  41. /*------------------------------------------------
  42.                     主函数
  43. ------------------------------------------------*/
  44. main()
  45. {
  46. unsigned int i=512;//旋转一周时间
  47. Speed=8;
  48. Coil_OFF
  49. while(i--)  //正向
  50.   {         
  51.      Coil_A1                //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替
  52.      DelayMs(Speed);         //改变这个参数可以调整电机转速 ,
  53.                              //数字越小,转速越大,力矩越小
  54.      Coil_B1
  55.      DelayMs(Speed);
  56.      Coil_C1
  57.      DelayMs(Speed);
  58.      Coil_D1
  59.      DelayMs(Speed);
  60.   }
  61.   Coil_OFF
  62.   i=512;
  63.   while(i--)//反向
  64.   {
  65.      Coil_D1                //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替
  66.      DelayMs(Speed);         //改变这个参数可以调整电机转速 ,
  67.                                  //数字越小,转速越大,力矩越小
  68.      Coil_C1
  69.      DelayMs(Speed);
  70.      Coil_B1
  71.      DelayMs(Speed);
  72.      Coil_A1
  73.      DelayMs(Speed);
  74.   }
  75. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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