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

📄 ynew.lst

📁 步进电机多级调速
💻 LST
字号:
A51 MACRO ASSEMBLER  YNEW                                                                 12/11/2007 21:41:53 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN ynew.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\Bin\a51.exe ynew.asm DB GENONLY RB(0) XREF

LOC  OBJ            LINE     SOURCE

                       1     ;步进电机控制程序
                       2     ;**************************************************************************
                       3     ;主程序
0000                   4                  ORG 0000H
0000 020100            5                  LJMP MAIN
0013                   6                  ORG 0013H                    ;INT1的中断入口
0013 020160            7                  LJMP PINT1
0100                   8                  ORG 0100H
0100 C2D5              9     MAIN:        CLR F0                       ;清中断发生标志
0102 758160           10                  MOV SP,#60H
0105 908FFF           11                  MOV DPTR,#8FFFH              ;8279初始化清除命令
0108 74D1             12                  MOV A,#0D1H
010A F0               13                  MOVX @DPTR,A
010B E0               14     WAIT:        MOVX A,@DPTR                 ;等8279清除结束
010C 20E7FC           15                  JB ACC.7,WAIT
010F 7400             16                  MOV A,#00                    ;8279送方式命令
0111 F0               17                  MOVX @DPTR,A
0112 7434             18                  MOV A,#34H                   ;fosc=12Mhz时钟编程命令
0114 F0               19                  MOVX @DPTR,A
0115 D28A             20                  SETB IT1                     ;外部中断,下降沿触发
0117 D2AF             21                  SETB EA                      ;开总中断
0119 D2AA             22                  SETB EX1                     ;允许外部中断1中断
011B 30D5FD           23     LOOP:        JNB F0,LOOP                  ;判中断是否发生?
011E E8               24     LOOP1:       MOV A,R0                     ;取出键值
011F B40014           25                  CJNE A,#00H,LOOP2            ;是正转键吗?非转LOOP2
0122 7B00             26     LP0:         MOV R3,#00H
0124 900186           27     LP1:         MOV DPTR,#TABLE              ;控制字首地址
0127 EB               28                  MOV A,R3                     ;查表偏移量送A
0128 93               29                  MOVC A,@A+DPTR               ;查表取控制字
0129 60F7             30                  JZ LP0                       ;转完八拍
012B F590             31                  MOV P1,A                     ;控制字送P1口
012D 3157             32                  ACALL DELAY                  ;延时
012F 0B               33                  INC R3
0130 E8               34                  MOV A,R0                     ;取出键值
0131 B40002           35                  CJNE A,#00H,LOOP2            ;偏移量+1(拍数加1)
0134 2124             36                  AJMP LP1
0136 E8               37     LOOP2:       MOV A, R0                    ;取出键值
0137 B40114           38                  CJNE A,#01H,LOOP3            ;是反转键吗?非转LOOP3
013A 7B09             39     LP2:         MOV R3,#09H
013C EB               40     LP3:         MOV A,R3                     ;查表偏移量送A
013D 900186           41                  MOV DPTR,#TABLE
0140 93               42                  MOVC A,@A+DPTR
0141 60F7             43                  JZ LP2
0143 F590             44                  MOV P1,A 
0145 3157             45                  ACALL DELAY
0147 0B               46                  INC R3 
0148 E8               47                  MOV A, R0                    ;取出键值
0149 B40102           48                  CJNE A,#01H,LOOP3
014C 213C             49                  AJMP LP3
014E E8               50     LOOP3:       MOV A, R0                    ;取出键值
014F B402C9           51                  CJNE A,#02H,LOOP             ;是停止键吗?
0152 759000           52                  MOV P1,#00H                  ;是则停转
0155 2100             53                  AJMP MAIN                    
0157 7F20             54     DELAY:       MOV R7,#20H                  ;延时子程序
0159 7EF8             55        D1:       MOV R6,#248
015B DEFE             56                  DJNZ R6,$
015D DFFA             57                  DJNZ R7,D1
015F 22               58                  RET
A51 MACRO ASSEMBLER  YNEW                                                                 12/11/2007 21:41:53 PAGE     2

                      59     ;**************************键输入中断服务程序*********************************
0160 C2AF             60     PINT1:       CLR EA                       ;关中断
0162 C0E0             61                  PUSH ACC
0164 C0D0             62                  PUSH PSW                     ;入栈保护
0166 C083             63                  PUSH DPH
0168 C082             64                  PUSH DPL
016A D2AF             65                  SETB EA
016C 908FFF           66                  MOV DPTR,#8FFFH              ;向命令口写入读键盘RAM
016F 7440             67                  MOV A,#40H                    
0171 F0               68                  MOVX @DPTR,A
0172 908FFE           69                  MOV DPTR,#8FFEH              ;读入键值
0175 E0               70                  MOVX A,@DPTR                 
0176 F8               71                  MOV R0,A                     ;键值暂存入R0
0177 C2AF             72                  CLR EA  
0179 D082             73     PRI1:        POP DPL                      ;出栈恢复
017B D083             74                  POP DPH
017D D0D0             75                  POP PSW
017F D0E0             76                  POP ACC
0181 D2D5             77                  SETB F0                      ;置中断标志
0183 D2AF             78                  SETB EA                      ;开中断
0185 32               79                  RETI             
                      80     ;/////////////////////////////////////////////////////////////////////////////
0186 109080C0         81     TABLE:       DB 10H,90H,80H,0C0H,40H,60H,20H,30H,00H  ;正转
018A 40602030                
018E 00                      
018F 30206040         82                  DB 30H,20H,60H,40H,0C0H,80H,90H,10H,00H  ;反转
0193 C0809010                
0197 00                      
                      83                  END
                             
                             
                             
                             
                             
A51 MACRO ASSEMBLER  YNEW                                                                 12/11/2007 21:41:53 PAGE     3

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


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

ACC. . . . . . . .  D ADDR   00E0H   A      15 61 76
D1 . . . . . . . .  C ADDR   0159H   A      55# 57
DELAY. . . . . . .  C ADDR   0157H   A      32 45 54#
DPH. . . . . . . .  D ADDR   0083H   A      63 74
DPL. . . . . . . .  D ADDR   0082H   A      64 73
EA . . . . . . . .  B ADDR   00A8H.7 A      21 60 65 72 78
EX1. . . . . . . .  B ADDR   00A8H.2 A      22
F0 . . . . . . . .  B ADDR   00D0H.5 A      9 23 77
IT1. . . . . . . .  B ADDR   0088H.2 A      20
LOOP . . . . . . .  C ADDR   011BH   A      23# 23 51
LOOP1. . . . . . .  C ADDR   011EH   A      24#
LOOP2. . . . . . .  C ADDR   0136H   A      25 35 37#
LOOP3. . . . . . .  C ADDR   014EH   A      38 48 50#
LP0. . . . . . . .  C ADDR   0122H   A      26# 30
LP1. . . . . . . .  C ADDR   0124H   A      27# 36
LP2. . . . . . . .  C ADDR   013AH   A      39# 43
LP3. . . . . . . .  C ADDR   013CH   A      40# 49
MAIN . . . . . . .  C ADDR   0100H   A      5 9# 53
P1 . . . . . . . .  D ADDR   0090H   A      31 44 52
PINT1. . . . . . .  C ADDR   0160H   A      7 60#
PRI1 . . . . . . .  C ADDR   0179H   A      73#
PSW. . . . . . . .  D ADDR   00D0H   A      62 75
SP . . . . . . . .  D ADDR   0081H   A      10
TABLE. . . . . . .  C ADDR   0186H   A      27 41 81#
WAIT . . . . . . .  C ADDR   010BH   A      14# 15


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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