51单片机20例程源码,注释详细

51单片机20例程源码,注释详细(推荐给初学者):



内容包括:

参考1- 点亮LED灯

参考2- LED灯闪烁

参考3- PWM叶吸灯

参考4- P4清口8个IO口输出高作电于

参考5- KEY按链近制LED壹灭

参考6- 定时器0

参考7- 定时器1

参考8- 1路1ms方流

参考9- 赴口print全示

参考10- 齐口查询方式发送

参考11- 齐品查询方式收发

参考12-率口中断方式

参考13- 外部中新0 低电于喜改

参考14- 外部中新0 下降沿触发

参考15- 外部中新1 低电于喜改

参考16- 外部中新1 下降沿触发

参考17- 步进电机圭动

参考18- 步进电机苇动2

参考19- LCD1602液昌屏显示

参考20- 0.96七OLED液晶屏显示


截取步进电机的程序:
  1. /*******************************************************************
  2.   * 实验平台: STC12C5A60S2/STC89C52RC最小系统板
  3.   * 技术人员: 小蜂人工作室
  4.   * 年月时间: 2015.11
  5.         * 简单说明: 通过51驱动步进电机转动实验                           
  6. *******************************************************************/  
  7. #include   /*头文件包含特殊功能寄存器的定义*/


  8. //IO引脚定义;
  9. sbit A1=P2^0;                                //定义P2.0管脚为步进电机驱动板A管脚
  10. sbit B1=P2^1;                                //定义P2.1管脚为步进电机驱动板B管脚
  11. sbit C1=P2^2;                                //定义P2.2管脚为步进电机驱动板C管脚
  12. sbit D1=P2^3;                                //定义P2.3管脚为步进电机驱动板D管脚



  13. #define A_Coil                  {A1=1; B1=0; C1=0; D1=0;}                        //A相通电,其它相断电
  14. #define B_Coil                  {A1=0; B1=1; C1=0; D1=0;}                        //B相通电,其它相断电
  15. #define C_Coil                 {A1=0; B1=0; C1=1; D1=0;}                        //C相通电,其它相断电
  16. #define D_Coil          {A1=0; B1=0; C1=0; D1=1;}                        //D相通电,其它相断电
  17. #define OFF_Coil        {A1=0; B1=0; C1=0; D1=0;}                //全部断电

  18. unsigned char Speed;


  19. void DelayUs2x(unsigned char t);        //延时函数声明
  20. void DelayMs(unsigned char t);                //延时函数声明

  21. /*********************************************************/
  22. /*                    主函数                                                                                         */
  23. /*********************************************************/
  24. void main (void)
  25. {
  26.         Speed=50; //调整转动速度,速度不可以调节的过快,不然就没有力矩转动了

  27.         while(1)  //主循环
  28.   {         
  29.      A_Coil                  //遇到A_Coil  用{A1=1;B1=0;C1=0;D1=0;}代替
  30.      DelayMs(Speed);         //改变这个参数可以调整电机转速 ,
  31.                                                                                                                         //数字越小,转速越大,力矩越小
  32.      B_Coil                  //遇到B_Coil  用{A1=0;B1=1;C1=0;D1=0;}代替
  33.      DelayMs(Speed);
  34.                
  35.      C_Coil                  //遇到C_Coil  用{A1=0;B1=0;C1=1;D1=0;}代替
  36.      DelayMs(Speed);
  37.                
  38.      D_Coil                  //遇到D_Coil  用{A1=0;B1=0;C1=0;D1=1;}代替
  39.      DelayMs(Speed);
  40.   }
  41. }

  42. /*------------------------------------------------
  43. uS延时函数,含有输入参数 unsigned char t,无返回值
  44. ------------------------------------------------*/
  45. void DelayUs2x(unsigned char t)
  46. {   
  47. while(--t);
  48. }

  49. /*------------------------------------------------
  50. mS延时函数,含有输入参数 unsigned char t,无返回值
  51. ------------------------------------------------*/
  52. void DelayMs(unsigned char t)
  53. {
  54.      
  55. while(t--)
  56. {
  57.      //大致延时1mS
  58.      DelayUs2x(245);
  59.          DelayUs2x(245);
  60. }
  61. }

  62. /*******************************************************************/
复制代码


资料请到原文下载附件:

请到原文下载附件




文件到原文下载,原文出自:https://bbs.usoftchina.com/thread-210891-1-1.html

你可能感兴趣的:(51单片机20例程源码,注释详细)