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

📄 cp发送.lst

📁 用单片机控制步进马达
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     151     ;-------------------------
                     152     ;设置模块1
                     153        ;Channe0-5mS-H, Channe0-5mS-L 的计算方法见 PCA 中断服务程序内的注释
0069 75EB00          154         MOV   CCAP1L, #Channe15mSL ;给 PCA 模块0 的 CCAP0L 置初值
006C 75FB01          155         MOV   CCAP1H, #Channe15mSH ;给 PCA 模块0 的 CCAP0H 置初值
006F 75DB49          156         MOV   CCAPM1, #49H    ;设置 PCA 模块0 为16位软件定时器,ECCF0=1允许PCA模块0中断
                     157         ;当[CH,CL]==[CCAP0H,CCAP0L]时,产生中断请求,CCF0=1,请求中断
                     158       
                     159     ;-------------------------
0072 D2AE            160         SETB  EPCALVD              ;开 PCA 中断和 LVD(低压检测)中断共享的总中断控制位
0074 D2AF            161         SETB  EA                    ;开整个单片机所有中断共享的总中断控制位
0076 D2DE            162         SETB  CR                    ;启动 PCA 计数器(CH,CL)计数
0078 22              163         RET
                     164     ;------------------------------------------------------------------------------
0079                 165     PCAInterrupt:
0079 C0E0            166         PUSH  ACC                   ;4 Clock
007B C0D0            167         PUSH  PSW                   ;4 Clock
007D 30D82A          168         JNB   CCF0, NotPCA0ElsePCA1 ;如果CCF0不等于1就不是PCA模块0中断
                     169                         ;就直接去判是否是PCA模块1中断
                     170         ;模块0 中断服务程序
                     171        ;P1.6LED变化一次,表示PCA模块0发生了一次中断
                     172         
0080 7442            173         MOV   A, #CCAPnLValue      ;2 Clock
0082 25EA            174         ADD   A, CCAP0L             ;3 Clock
0084 F5EA            175         MOV   CCAP0L, A             ;3 Clock
0086 E4              176         CLR   A                     ;1 Clock
0087 35FA            177         ADDC  A, CCAP0H             ;3 Clock
0089 F5FA            178         MOV   CCAP0H, A             ;3 Clock
008B 7844            179            MOV R0,#DCONT
008D 16              180         DEC @R0
008E B60017          181          CJNE @R0,#0,lOPP
0091 7640            182          MOV @R0,#64
0093 08              183            INC R0
0094 16              184          DEC @R0
0095 B60010          185          CJNE @R0,#0,LOPP
0098 7640            186          MOV @R0,#64
009A 08              187            INC R0
009B 16              188          DEC @R0
009C B60009          189          CJNE @R0,#0,LOPP
009F 7640            190          MOV @R0,#64
A51 MACRO ASSEMBLER  CP发送                                                               05/14/2007 12:44:11 PAGE     4

00A1 08              191              INC R0
00A2 16              192          DEC @R0
00A3 B60002          193          CJNE @R0,#0,LOPP
00A6 D270            194          SETB WANGBIT
00A8                 195      LOPP:
                     196     ;------------------------------------------------------------     
00A8 C2D8            197          CLR   CCF0        ;清PCA模块0中断标志
                     198          
00AA                 199      NotPCA0ElsePCA1:
00AA 30D91C          200         JNB   CCF1, PCAInterruptExit ;如果CCF1不等于1就不是PCA模块1中断 ;就立即退出
                     201          ;模块1 中断服务程序 ;本程序PCA模块0每5mS中断一次,
                     202           ;在本程序中[CH,CL]每12个时钟脉冲加1, 当[CH,CL] 增加到等于 [CCAP0H,CCAP0L]时
                     203         ;CCF0=1, 产生中断请求。如果每次 PCA 模块0 中断后, 在中断服务程序中给
                     204         ;[CCAP0H,CCAP0L] 增加一个相同的数值,那么下一次中断来临的间隔时间 T 也是相
                     205         ;同的。本程序中这个"相同的数值" 就是 Channe0-5mS-H, Channe0-5mS-L
                     206         ;举例: 时钟频率 Fosc = 18.432MHz, PCA 计数器计数 1E00H 次才是 5mS。
                     207         ;计算PCA 计数器计数多少次:
                     208         ;    Channe0-5mS-H, Channe0-5mS-L = T/( (1/Fosc)*12 )
                     209         ;                                 = 0.005/ ( (1/18432000)*12 )
                     210         ;                                 = 7680 (10进制数)
                     211         ;                                 = 1E00H (16进制数)
                     212         ;    即 Channe0-5mS-H = 1EH, Channe0-5mS-L = 00H
                     213         ;
                     214         ;   Channe0-5mS-H, Channe0-5mS-L:每次给 [CCAP0H,CCAP0L] 增加的数值(步长)
00AD 7400            215         MOV   A, #Channe15mSL      ;给[CCAP0H,CCAP0L] 增加一个数值
00AF 25EB            216         ADD   A, CCAP1L
00B1 F5EB            217         MOV   CCAP1L, A
00B3 7401            218         MOV   A, #Channe15mSH
00B5 35FB            219         ADDC  A, CCAP1H
00B7 F5FB            220         MOV   CCAP1H, A
00B9 C2D9            221         CLR   CCF1            ;清 PCA 模块0 中断标志
00BB 054A            222         INC   Counter          ;中断次数计数器 + 1
00BD E54A            223         MOV   A, Counter
00BF C3              224         CLR   C
00C0 94C8            225         SUBB  A, #200          ;检测是否中断了 200 次(1秒)
00C2 4005            226         JC    PCAInterruptExit    ;有借位,表示 Counter 小于 200,立即跳转退出
00C4 754A00          227         MOV   Counter, #0       ;已中断了 200 次,清 0 中断次数计数器
00C7 C2D9            228         CLR   CCF1         ;清 PCA 模块1 中断标志
00C9                 229     PCAInterruptExit:
00C9 D0D0            230         POP   PSW                   ;3 Clock
00CB D0E0            231         POP   ACC                   ;3 Clock
00CD 32              232          RETI                        ;4 Clock
                     233     ;------------------------------------------------------------------------------
                     234         END
A51 MACRO ASSEMBLER  CP发送                                                               05/14/2007 12:44:11 PAGE     5

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
CCAP0H . . . . . .  N NUMB   00FAH   A   
CCAP0L . . . . . .  N NUMB   00EAH   A   
CCAP1H . . . . . .  N NUMB   00FBH   A   
CCAP1L . . . . . .  N NUMB   00EBH   A   
CCAP2H . . . . . .  N NUMB   00FCH   A   
CCAP2L . . . . . .  N NUMB   00ECH   A   
CCAP3H . . . . . .  N NUMB   00FDH   A   
CCAP3L . . . . . .  N NUMB   00EDH   A   
CCAP4H . . . . . .  N NUMB   00FEH   A   
CCAP4L . . . . . .  N NUMB   00EEH   A   
CCAP5H . . . . . .  N NUMB   00FFH   A   
CCAP5L . . . . . .  N NUMB   00EFH   A   
CCAPM0 . . . . . .  N NUMB   00DAH   A   
CCAPM1 . . . . . .  N NUMB   00DBH   A   
CCAPM2 . . . . . .  N NUMB   00DCH   A   
CCAPM3 . . . . . .  N NUMB   00DDH   A   
CCAPM4 . . . . . .  N NUMB   00DEH   A   
CCAPM5 . . . . . .  N NUMB   00DFH   A   
CCAPNLVALUE. . . .  N NUMB   0042H   A   
CCF0 . . . . . . .  B ADDR   00D8H.0 A   
CCF1 . . . . . . .  B ADDR   00D8H.1 A   
CCF2 . . . . . . .  B ADDR   00D8H.2 A   
CCF3 . . . . . . .  B ADDR   00D8H.3 A   
CCF4 . . . . . . .  B ADDR   00D8H.4 A   
CCF5 . . . . . . .  B ADDR   00D8H.5 A   
CCON . . . . . . .  N NUMB   00D8H   A   
CF . . . . . . . .  B ADDR   00D8H.7 A   
CH . . . . . . . .  N NUMB   00F9H   A   
CHANNE15MSH. . . .  N NUMB   0001H   A   
CHANNE15MSL. . . .  N NUMB   0000H   A   
CL . . . . . . . .  N NUMB   00E9H   A   
CMOD . . . . . . .  N NUMB   00D9H   A   
COUNTER. . . . . .  N NUMB   004AH   A   
CR . . . . . . . .  B ADDR   00D8H.6 A   
DCONT. . . . . . .  N NUMB   0044H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
EPCALVD. . . . . .  B ADDR   00A8H.6 A   
IE . . . . . . . .  D ADDR   00A8H   A   
IPH. . . . . . . .  N NUMB   00B7H   A   
LEDMCUSTART. . . .  B ADDR   0090H.7 A   
LEDPCAINT0 . . . .  B ADDR   0090H.6 A   
LEDPCAINT1 . . . .  B ADDR   0090H.5 A   
LOPP . . . . . . .  C ADDR   00A8H   A   
MAIN . . . . . . .  C ADDR   0050H   A   
NOTPCA0ELSEPCA1. .  C ADDR   00AAH   A   
P1 . . . . . . . .  D ADDR   0090H   A   
PCAINITIATE. . . .  C ADDR   005AH   A   
PCAINTERRUPT . . .  C ADDR   0079H   A   
PCAINTERRUPTEXIT .  C ADDR   00C9H   A   
PCAPWM0. . . . . .  N NUMB   00F2H   A   
PCAPWM1. . . . . .  N NUMB   00F3H   A   
PCAPWM2. . . . . .  N NUMB   00F4H   A   
PCAPWM3. . . . . .  N NUMB   00F5H   A   
PCAPWM4. . . . . .  N NUMB   00F6H   A   
PCAPWM5. . . . . .  N NUMB   00F7H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
SP . . . . . . . .  D ADDR   0081H   A   
WAIT . . . . . . .  C ADDR   0058H   A   
WANGBIT. . . . . .  B ADDR   002EH.0 A   
A51 MACRO ASSEMBLER  CP发送                                                               05/14/2007 12:44:11 PAGE     6



REGISTER BANK(S) USED: 0 


ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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