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

📄 sysclock.lst

📁 摩托车的步进电机驱动。用的是LPC900系列单片机的RTC定时器
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   SYSCLOCK                                                              06/18/2005 19:57:24 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE SYSCLOCK
OBJECT MODULE PLACED IN SysClock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SysClock.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                        Firmware of Fiscal Control ECR System
   4          *                                 Complete and Ready-to-Use Modules in C
   5          *
   6          *                                          SysClock Routine Group
   7          *
   8          *                            (c) Copyright 2001-2002, EasyFlash, Sichuan Daoheng R&D Center
   9          *                                           All Rights Reserved
  10          *
  11          * Filename   : SysClock.C
  12          * Programmer : easyflash
  13          *********************************************************************************************************
  14          */
  15          #define SYSCLOCK_GLOBALS
  16          /*
  17          *********************************************************************************************************
  18          *                                           include files
  19          *********************************************************************************************************
  20          */
  21          #include "includes.h"
  22          /*
  23          *********************************************************************************************************
  24          *                                               CONSTANTS
  25          *********************************************************************************************************
  26          */
  27          
  28          #define RTCH_DATA 0x0
  29          #define RTCL_DATA (0x39)    //1ms @7.373MHz
  30          
  31          //#define RTCH_DATA 0x5b
  32          //#define RTCL_DATA 0x8d    //50ms @7.373MHz
  33          
  34          /*
  35          *********************************************************************************************************
  36          *                                               DATA TYPES
  37          *********************************************************************************************************
  38          */
  39          
  40          /*
  41          *********************************************************************************************************
  42          *                                            GLOBAL VARIABLES
  43          *********************************************************************************************************
  44          */
  45          
  46          /*
  47          *********************************************************************************************************
  48          *                                          FUNCTION PROTOTYPES
  49          *********************************************************************************************************
  50          */
  51          
  52          /*
  53          *********************************************************************************************************
  54          *                                       LOCAL FUNCTION PROTOTYPES
  55          *********************************************************************************************************
C51 COMPILER V7.09   SYSCLOCK                                                              06/18/2005 19:57:24 PAGE 2   

  56          */
  57          /*
  58          ************************************************************************************************
  59          * Name       : void RTC_ini(void)
  60          * Describe   : 实时时钟RTC初始化,50ms@7.373MHz,允许中断
  61          * Input      : 
  62          * Output     : 
  63          * Create by  : xuyong              Date:2005年01月29日 星期六  18:18:47
  64          * Moid   by  :                     Date:
  65          ************************************************************************************************
  66          */
  67          void RTC_ini(void)
  68          {
  69   1          IEN0|=0xC0; //允许RTC中断
  70   1          WDCON= 0xe0;
  71   1          RTCH = RTCH_DATA;
  72   1          RTCL = RTCL_DATA;
  73   1          RTCCON = 0x63;  //RTC 时钟源为 CCLK,中断使能,启动RTC,
  74   1          //如果真的需要时钟一直运行,则一定需要用外部32.768KHz的低频晶振,这样功耗才能够降低。
  75   1          
  76   1          timeCnt =0;
  77   1          st = ST_MOTO_STOP;
  78   1          MotorDirct=MOTO_STOP;
  79   1          //ctime.sec = 0;
  80   1          //ctime.min = 30;
  81   1          //ctime.hour = 8;
  82   1      }
  83          void RTC_INT(void) interrupt 10 using 2
  84          {
  85   1          char i;
  86   1          RTCCON=0x63;//清除RTC 中断标志,这句话,一定要放在中断服务程序的最开头。
  87   1          //RTC_INT_FLAG =1;
  88   1          kkCnt++;
  89   1          if(kkCnt==200)kkCnt=0; //100ms
  90   1          
  91   1          
  92   1          //if(UpDown>1)MotorTime = UpDown;
  93   1          //else if((0x100-UpDown)>1)MotorTime = 0x100-UpDown;
  94   1          //else MotorTime = 2;
  95   1          StSwitch();
  96   1          if(MotorDirct==MOTO_STOP)//
  97   1          {
  98   2              MotorTime =5;
  99   2          }
 100   1          else
 101   1          {
 102   2              i = UpDown;
 103   2              if(i<0)i+=5;//注意减速时,开始是高速,慢慢才低速,即开始时间短,后面时间长。
 104   2              
 105   2              if(i>1)MotorTime = i;
 106   2              else MotorTime = 2;
 107   2          }
 108   1          
 109   1          ++timeCnt;
 110   1          if(timeCnt==MotorTime)//MotorTime 是步进电机每步的间隔时间,单位1ms。至少2ms
 111   1          {
 112   2              timeCnt =0;
 113   2              if(MotorDirct!=0)
 114   2              {
 115   3                  if(MotorDirct==MOTO_ZX)
 116   3                  {
 117   4                      MotorStep ++;
C51 COMPILER V7.09   SYSCLOCK                                                              06/18/2005 19:57:24 PAGE 3   

 118   4                      MotorStepCnt++;
 119   4                      if(MotorStep>6)MotorStep = 1;
 120   4                  }
 121   3                  else if(MotorDirct==MOTO_FX)
 122   3                  {
 123   4                      MotorStep --;
 124   4                      MotorStepCnt--;
 125   4                      if(MotorStep<1)MotorStep = 6;
 126   4                  }
 127   3                  
 128   3                  switch(MotorStep)
 129   3                  {
 130   4                      case 1:
 131   4                          set1 = 0;
 132   4                              set2 = 1;
 133   4                              set3 = 1;
 134   4                              set4 = 0;
 135   4                              break;
 136   4                      case 2:
 137   4                              set1 = 0;
 138   4                              set2 = 1;
 139   4                              set3 = 0;
 140   4                              set4 = 0;
 141   4                              break;
 142   4                      case 3:
 143   4                              set1 = 0;
 144   4                              set2 = 0;
 145   4                              set3 = 0;
 146   4                              set4 = 1;
 147   4                              break;
 148   4                      case 4:
 149   4                              set1 = 1;
 150   4                              set2 = 0;
 151   4                              set3 = 0;
 152   4                              set4 = 1;
 153   4                              break;
 154   4                      case 5:
 155   4                              set1 = 1;
 156   4                              set2 = 0;
 157   4                              set3 = 0;
 158   4                              set4 = 0;
 159   4                              break;
 160   4                      case 6:

⌨️ 快捷键说明

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