📄 sysclock.lst
字号:
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 + -