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

📄 xnew.lst

📁 新的键盘控制步进电机精度高的程序
💻 LST
字号:
A51 MACRO ASSEMBLER  XNEW                                                                 11/28/2007 10:51:00 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN xnew.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\Bin\a51.exe xnew.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 02015C            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 B40011           25                  CJNE A,#00H,LOOP2            ;是正转键吗?非转LOOP2
0122 7B00             26     LP0:         MOV R3,#00H
0124 90017E           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 3153             32                  ACALL DELAY                  ;延时
012F 0B               33                  INC R3                       ;偏移量+1(拍数加1)
0130 2124             34                  AJMP LP1
0132 22               35                  RET
0133 E8               36     LOOP2:       MOV A, R0                    ;取出键值
0134 B40111           37                  CJNE A,#01H,LOOP3            ;是反转键吗?非转LOOP3
0137 7B09             38     LP2:         MOV R3,#09H
0139 EB               39     LP3:         MOV A,R3                     ;查表偏移量送A
013A 90017E           40                  MOV DPTR,#TABLE
013D 93               41                  MOVC A,@A+DPTR
013E 60F7             42                  JZ LP2
0140 F590             43                  MOV P1,A 
0142 3153             44                  ACALL DELAY
0144 0B               45                  INC R3 
0145 2139             46                  AJMP LP3
0147 22               47                  RET            
0148 E8               48     LOOP3:       MOV A, R0                    ;取出键值
0149 B402CF           49                  CJNE A,#02H,LOOP             ;是停止键吗?否转PINT1
014C 759000           50                  MOV P1,#00H                  ;是则停转
014F C2D5             51                  CLR F0
0151 211B             52                  AJMP LOOP                     
0153 7F20             53     DELAY:       MOV R7,#20H                  ;延时子程序
0155 7EF8             54        D1:       MOV R6,#248
0157 DEFE             55                  DJNZ R6,$
0159 DFFA             56                  DJNZ R7,D1
015B 22               57                  RET
                      58     ;**************************键输入中断服务程序*********************************
A51 MACRO ASSEMBLER  XNEW                                                                 11/28/2007 10:51:00 PAGE     2

015C C2AF             59     PINT1:       CLR EA                       ;关中断
015E C0E0             60                  PUSH ACC
0160 C0D0             61                  PUSH PSW                     ;入栈保护
0162 C083             62                  PUSH DPH
0164 C082             63                  PUSH DPL
0166 908FFF           64                  MOV DPTR,#8FFFH              ;向命令口写入读键盘RAM
0169 7440             65                  MOV A,#40H                    
016B F0               66                  MOVX @DPTR,A
016C 908FFE           67                  MOV DPTR,#8FFEH              ;读入键值
016F E0               68                  MOVX A,@DPTR                 
0170 F8               69                  MOV R0,A                     ;键值暂存入R0  
0171 D082             70     PRI1:        POP DPL                      ;出栈恢复
0173 D083             71                  POP DPH
0175 D0D0             72                  POP PSW
0177 D0E0             73                  POP ACC
0179 D2D5             74                  SETB F0                      ;置中断标志
017B D2AF             75                  SETB EA                      ;开中断
017D 32               76                  RETI             
                      77     ;/////////////////////////////////////////////////////////////////////////////
017E 10302060         78     TABLE:       DB 10H,30H,20H,60H,40H,0C0H,80H,90H,00H  ;正转
0182 40C08090                
0186 00                      
0187 109080C0         79                  DB 10H,90H,80H,0C0H,40H,60H,20H,30H,00H  ;反转
018B 40602030                
018F 00                      
                      80                  END
                             
                             
                             
                             
A51 MACRO ASSEMBLER  XNEW                                                                 11/28/2007 10:51:00 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 60 73
D1 . . . . . . . .  C ADDR   0155H   A      54# 56
DELAY. . . . . . .  C ADDR   0153H   A      32 44 53#
DPH. . . . . . . .  D ADDR   0083H   A      62 71
DPL. . . . . . . .  D ADDR   0082H   A      63 70
EA . . . . . . . .  B ADDR   00A8H.7 A      21 59 75
EX1. . . . . . . .  B ADDR   00A8H.2 A      22
F0 . . . . . . . .  B ADDR   00D0H.5 A      9 23 51 74
IT1. . . . . . . .  B ADDR   0088H.2 A      20
LOOP . . . . . . .  C ADDR   011BH   A      23# 23 49 52
LOOP1. . . . . . .  C ADDR   011EH   A      24#
LOOP2. . . . . . .  C ADDR   0133H   A      25 36#
LOOP3. . . . . . .  C ADDR   0148H   A      37 48#
LP0. . . . . . . .  C ADDR   0122H   A      26# 30
LP1. . . . . . . .  C ADDR   0124H   A      27# 34
LP2. . . . . . . .  C ADDR   0137H   A      38# 42
LP3. . . . . . . .  C ADDR   0139H   A      39# 46
MAIN . . . . . . .  C ADDR   0100H   A      5 9#
P1 . . . . . . . .  D ADDR   0090H   A      31 43 50
PINT1. . . . . . .  C ADDR   015CH   A      7 59#
PRI1 . . . . . . .  C ADDR   0171H   A      70#
PSW. . . . . . . .  D ADDR   00D0H   A      61 72
SP . . . . . . . .  D ADDR   0081H   A      10
TABLE. . . . . . .  C ADDR   017EH   A      27 40 78#
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 + -