⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 电机调速.lst

📁 单片机的实用程序代码
💻 LST
字号:
C51 COMPILER V7.50   电籣礯速                                                              09/01/2011 12:26:55 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 电籣礯速
OBJECT MODULE PLACED IN 电机调速.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 电机调速.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2          * 名称 : 电机调速.c
   3          * 功能 : 通过P1.0口来控制直流电机的旋转的快慢
   4          /***********************************************************************/
   5          #include <reg52.h>
   6          #define uchar unsigned char
   7          #define uint  unsigned int
   8          sbit KEY1 = P3^2;               //定义调速的按键
   9          sbit PWM = P1^0;                //定义直流电机的控制端口
  10          uchar CYCLE;                    //定义周期 
  11          uchar PWM_ON ;                  //定义低电平时间
  12          
  13          /********************************************************************
  14          * 名称 : Delay_1ms()
  15          * 功能 : 延时子程序,延时时间为 1ms * x
  16          * 输入 : x (延时一毫秒的个数)
  17          * 输出 : 无
  18          ***********************************************************************/
  19          void Delay(uint i)
  20          {
  21   1              uchar x,j;
  22   1              for(j=0;j<i;j++)
  23   1              for(x=0;x<=148;x++);    
  24   1      }
  25          
  26          void Time0(void)
  27          {
  28   1              TMOD |=0x01;              //定时器设置 1ms in 12M crystal
  29   1              TH0=(65536-1000)/256; 
  30   1              TL0=(65536-1000)%256; //定时1mS 
  31   1              IE= 0x82;                         //打开中断
  32   1              TR0=1;                            //定时器打开
  33   1      }
  34          main()
  35          {
  36   1              uchar PWM_Num;  //定义档位
  37   1              Time0();
  38   1              CYCLE = 10;             //时间可以调整 这个是10步调整 周期10ms 8位PWM就是256步
  39   1              PWM = 0;
  40   1              while(1)
  41   1              {
  42   2                      if(!KEY1)
  43   2                      {
  44   3                              Delay(15);
  45   3                              if(!KEY1)
  46   3                      {
  47   4                              PWM_Num++;            //按一下P3.2口,就给直流电机换一个档位
  48   4                                      if(PWM_Num==4)
  49   4                                      {
  50   5                                              PWM_Num=0;
  51   5                              }
  52   4                                      switch(PWM_Num)
  53   4                                      {
  54   5                                      case 0:P0=0x06;         PWM_ON=0;break;                 //低电平时长     //给P0口赋值,是让P0口显示:1,2,3,4 这四个

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -