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

📄 cp驱动.lst

📁 用单片机控制步进马达
💻 LST
字号:
A51 MACRO ASSEMBLER  CP驱动                                                               02/27/2007 13:36:59 PAGE     1


MACRO ASSEMBLER A51 V1.10
OBJECT MODULE PLACED IN CP驱动.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE CP驱动.ASM DB

LOC  OBJ            LINE     SOURCE

                       1     ;  AT89C2051步进电机驱动程序        
                       2             
  0020                 3                 state EQU  20H
  0017                 4                 xadd  equ  17h
  0018                 5                 yadd equ 18h
  0010                 6                 step  equ  10h
  00E1                 7                 dogcontr equ 0e1h
  00B1                 8                 p3m0   equ 0b1h
  00B2                 9                 p3m1   equ 0b2h
  0091                10                 p1m0  equ  91h
  0092                11                 p1m1  equ 92h
                      12               
  007F                13          bit1s  bit 2fh.7     
  0010                14           dirbit bit 22h.0     
  00B4                15           outcp bit  p3.4
  0012                16           dabit bit 22h.2
  0016                17           xiaobit bit 22h.6
  00B3                18           baojin bit p3.3
  0050                19            dataram  equ 50h 
  0010                20             time01s equ 10h
  0011                21           time1s equ 11h  
  0012                22           time2s equ 12h
  0013                23           time5s equ 13h 
                      24           
0000                  25               ORG 0000H           ;程序执行开始地址
0000 020030           26                   LJMP      START     ;跳到标号START执行
000B                  27                     ORG 000bH           
000B 020000   F       28                   LJMP      time0int       
                      29            
0030                  30               org 0030h
0030                  31          START: 
0030 759100           32                mov p1m0,#00h
0033 759200           33                mov p1m1,#00h
0036 75B100           34                mov p3m0,#00h
0039 75B200           35                mov p3m1,#00h
003C 7590FF           36               mov p1,#0ffh    ;非回位状态和开机时,系统读键
003F 00               37                 nop
0040 75100A           38            mov time01s,#10
0043 75110A           39            mov time1s,#10
0046 75130A           40            mov time5s,#10
0049 C2B4             41            clr outcp 
004B C2B3             42            clr  baojin           
004D 7850             43               mov r0,#dataram
004F 7600             44               mov @r0,#00h
0051 08               45               inc r0
0052 7680             46               mov @r0,#80h
0054 755200           47               mov  dataram+2,#0
                      48               
0057 758901           49                mov TMOD, #01h        ;置T0中断方式1
005A 758AB0           50                MOV   TL0,#0B0H       ;20毫秒定时用初值
005D 758CFC           51                MOV   TH0,#0fCH       ;
0060 D2A9             52               SETB ET0
0062 D2AF             53               sETB  EA                              ;开总中断允许
0064 D28C             54               setb tr0              ;开中断 
                      55                       
                      56                
0066 D297             57        main:   setb p1.7
0068 75E13C           58                mov dogcontr,#00111100b 
A51 MACRO ASSEMBLER  CP驱动                                                               02/27/2007 13:36:59 PAGE     2

                      59              
006B A297             60               mov c,p1.7         ;clk脉冲上升沿判定 
006D 9201             61               mov state.1,c
006F B000             62               anl c,/state.0
0071 500F             63               jnc clklp1
                      64                        
0073 A296             65               mov c,p1.6         ;dir       
0075 9210             66               mov dirbit,c    
                      67               
0077 12008B           68               lcall xy     ; 加减计数
007A 1200A6           69               lcall com    ;比较判断
                      70               
007D C2B3             71               clr baojin
007F 751301           72               mov time5s,#01h
                      73                
0082 A201             74       clklp1: mov c, state.1   ;clk
0084 9200             75               mov state.0,c
0086 80DE             76               jmp main
0088 80DC             77               jmp main
008A 22               78               ret
                      79               
008B 7850             80          xy: mov r0,#dataram
008D E6               81              mov a,@r0
008E D3               82               setb c
008F 301009           83               jnb dirbit,sublp
0092 3400             84               addc a,#0
0094 F6               85               mov @r0,a
0095 08               86               inc r0
0096 E6               87               mov a,@r0
0097 3400             88               addc a,#0
0099 F6               89               mov @r0,a
009A 22               90               ret
009B                  91         sublp : 
009B 9400             92               subb a,#0
009D F6               93               mov @r0,a
009E 08               94               inc r0
009F E6               95               mov a,@r0
00A0 9400             96               subb a,#0
00A2 F6               97               mov @r0,a
00A3 22               98                 ret
00A4 80C0             99                 jmp main
                     100                 
00A6 7902            101           com: mov r1,#02
00A8 7852            102                mov r0,#dataram+2
00AA 9000D2          103                mov dptr,#tab
00AD D913            104         loop1: djnz r1,lop
00AF C216            105                clr xiaobit
00B1 C212            106                clr dabit
                     107                
00B3 D2B4            108                setb outcp
00B5 751203          109                mov time2s,#3
                     110                
00B8 7850            111                mov r0,#dataram
00BA 7600            112                mov @r0,#00h
00BC 08              113                inc r0
00BD 7680            114                mov @r0,#80h
00BF 0552            115                inc dataram+2
00C1 22              116                ret
00C2                 117           lop :
00C2 E9              118                mov a,r1
00C3 93              119                movc a,@a+dptr
00C4 18              120                dec r0
00C5 96              121                subb a,@r0 
00C6 60E5            122                jz loop1
00C8 5003            123                jnc loop2
00CA D212            124                setb dabit
A51 MACRO ASSEMBLER  CP驱动                                                               02/27/2007 13:36:59 PAGE     3

00CC 22              125                 ret
00CD D216            126         loop2:setb  xiaobit 
00CF C212            127                 clr dabit    
00D1 22              128                  ret  
00D2 E983            129         tab: db 0E9h,83h  
                     130         
00D4 8090            131         jmp main      
                     132         ;to intT0 subprog 
                     133        ;使用1区寄存器,R5,R6,R7进出不可变化
----                 134              CSEG   AT  0BH              ;time/cnt-1服务子程
000B 020000   F      135               LJMP    time0int            ;TIME判断R4-1=0,时间T=N*R4*T0
                     136               intT0a     SEGMENT    CODE ;R4X需初始化               
                     137       
----                 138                     RSEG    intT0A       ;CNT计数脉冲来自P1口,其高电平T>T0*3
                     139                     USING   0            ;其低电平T>T0
0000 C0D0            140          time0int:  PUSH    PSW 
0002 C0E0            141                     puSH    ACC
0004 C0F0            142                     push     b
0006 C000            143                     push   00h
0008 C28C            144                     clr TR0
000A 74EC            145                     MOV     a,   #0ech   ;fch      ; 主频12M,5MS时间常数
000C 258C            146                     add a,th0
000E F58C            147                     mov th0,a
0010 74EF            148                     MOV     a, #0EFh
0012 258A            149                     add a,tl0
0014 F58A            150                     mov tl0,a
0016 75E13C          151                     mov dogcontr,#00111100b     
                     152                  
                     153                  ;   lcall intdisplay      ;显示,5键扫描 
0019 A210            154                   mov c,dirbit
001B 92B5            155                     mov p3.5,c
001D 92B7            156                     mov p3.7,c
                     157                     
001F 1510            158                     dec time01s
0021 E510            159                     mov a,time01s
0023 7026            160                     jnz loopp32
0025 75100A          161                     mov time01s,#10
                     162                    
                     163                    ; cpl bit01s  ;100ms标识位2f.0
0028 1511            164                       dec time1s
                     165                    ;   cpl p3.2
002A E511            166                     mov a,time1s     ;time1s放1S常数,time8s放8S常数
002C 701D            167                     jnz loopp32
002E 75110A          168                     mov  time1s,#10
0031 B27F            169                     cpl bit1s  ;1s标识位2f.1h
0033 B2B2            170                     cpl p3.2
                     171                     
0035 E512            172                     mov a,time2s
0037 6005            173                     jz loopp22
0039 1512            174                     dec time2s ;TIME8S不为零。LED不亮,SETKEY闭合,写入EPRO
003B 020000   F      175                     jmp loopp21
003E C2B4            176              loopp22 :     clr outcp   
0040 E513            177             loopp21:mov a,time5s
0042 6005            178                     jz loopp2
0044 1513            179                     dec time5s ;TIME8S不为零。LED不亮,SETKEY闭合,写入EPRO
0046 020000   F      180                     jmp loopp32
0049 D2B3            181             loopp2 :       setb baojin
004B D28C            182             loopp32: SETB   TR0          ;开中断
004D D000            183                     pop 00h
004F D0F0            184                     pop         b
0051 D0E0            185                     POP     ACC
0053 D0D0            186                     POP     PSW
0055 32              187                     RETI 
                     188                            
                     189                          
0056 020066          190               jmp main
A51 MACRO ASSEMBLER  CP驱动                                                               02/27/2007 13:36:59 PAGE     4

0200                 191               org 200h
0200 00              192               nop
0201 00              193               nop
0202 00              194               nop
0203 020066          195               jmp  main
                     196                 
0300                 197               org 300h
0300 00              198               nop
0301 00              199               nop
0302 00              200               nop
0303 020066          201               jmp main 
                     202            
                     203               end
A51 MACRO ASSEMBLER  CP驱动                                                               02/27/2007 13:36:59 PAGE     5

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BAOJIN . . . . . .  B ADDR   00B0H.3 A   
BIT1S. . . . . . .  B ADDR   002FH.7 A   
CLKLP1 . . . . . .  C ADDR   0082H   A   
COM. . . . . . . .  C ADDR   00A6H   A   
DABIT. . . . . . .  B ADDR   0022H.2 A   
DATARAM. . . . . .  N NUMB   0050H   A   
DIRBIT . . . . . .  B ADDR   0022H.0 A   
DOGCONTR . . . . .  N NUMB   00E1H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
ET0. . . . . . . .  B ADDR   00A8H.1 A   
INTT0A . . . . . .  C SEG    0306H       REL=UNIT
LOOP1. . . . . . .  C ADDR   00ADH   A   
LOOP2. . . . . . .  C ADDR   00CDH   A   
LOOPP2 . . . . . .  C ADDR   0049H   R   SEG=INTT0A
LOOPP21. . . . . .  C ADDR   0040H   R   SEG=INTT0A
LOOPP22. . . . . .  C ADDR   003EH   R   SEG=INTT0A
LOOPP32. . . . . .  C ADDR   004BH   R   SEG=INTT0A
LOP. . . . . . . .  C ADDR   00C2H   A   
MAIN . . . . . . .  C ADDR   0066H   A   
OUTCP. . . . . . .  B ADDR   00B0H.4 A   
P1 . . . . . . . .  D ADDR   0090H   A   
P1M0 . . . . . . .  N NUMB   0091H   A   
P1M1 . . . . . . .  N NUMB   0092H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
P3M0 . . . . . . .  N NUMB   00B1H   A   
P3M1 . . . . . . .  N NUMB   00B2H   A   
PSW. . . . . . . .  D ADDR   00D0H   A   
START. . . . . . .  C ADDR   0030H   A   
STATE. . . . . . .  N NUMB   0020H   A   
STEP . . . . . . .  N NUMB   0010H   A   
SUBLP. . . . . . .  C ADDR   009BH   A   
TAB. . . . . . . .  C ADDR   00D2H   A   
TH0. . . . . . . .  D ADDR   008CH   A   
TIME01S. . . . . .  N NUMB   0010H   A   
TIME0INT . . . . .  C ADDR   0000H   R   SEG=INTT0A
TIME1S . . . . . .  N NUMB   0011H   A   
TIME2S . . . . . .  N NUMB   0012H   A   
TIME5S . . . . . .  N NUMB   0013H   A   
TL0. . . . . . . .  D ADDR   008AH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR0. . . . . . . .  B ADDR   0088H.4 A   
XADD . . . . . . .  N NUMB   0017H   A   
XIAOBIT. . . . . .  B ADDR   0022H.6 A   
XY . . . . . . . .  C ADDR   008BH   A   
YADD . . . . . . .  N NUMB   0018H   A   


REGISTER BANK(S) USED: 0 


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

⌨️ 快捷键说明

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