📄 1.lst
字号:
页 1
01-29-03
01:04:08
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
;************;
;小灯控制程序;
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H ;程序执行开始地址
0000 02002A LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址
0003 32 RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址
000B 32 RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址
0013 32 RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址
001B 32 RETI ;中断返回(不开中断)
ORG 0023H ;串行口中断入口地址
0023 32 RETI ;中断返回(不开中断)
;
;************;
; 初始化程序 ;
;************;
;
0024 752000 CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)
0027 D200 SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)
0029 22 RET ;子程序返回
;
;************;
; 主 程 序 ;
;************;
;
002A 1124 START:ACALL CLEAR ;调用初始化子程序
002C 120067 MAIN: LCALL KEYWORK ;调用键扫描子程序
002F 20000B JB 00H,FUN0 ;20H.0位为1时执行FUN0
0032 200115 JB 01H,FUN1 ;20H.1位为1时执行FUN1
0035 200220 JB 02H,FUN2 ;20H.2位为1时执行FUN2
0038 2003F1 JB 03H,MAIN ;备用
003B 012C AJMP MAIN ;返回主程序MAIN
;
;************;
; 功能程序 ;
;************;
;第1种闪烁功能程序
003D 74FE FUN0: MOV A,#0FEH ;累加器赋初值
003F F590 FUN00:MOV P1,A ;累加器值送至P1口
0041 1200C0 LCALL DL05S ;延时
C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例1\1.ASM
页 2
01-29-03
01:04:08
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0044 30E7E5 JNB ACC.7,MAIN ;累加器最高位为0时转MAIN
0047 23 RL A ;累加器A中数据循环左移1位
0048 013F AJMP FUN00 ;转FUN00循环
;
;第2种闪烁功能程序
004A 74FE FUN1:MOV A,#0FEH ;累加器赋初值
004C F590 FUN11:MOV P1,A ;累加器值送至P1口
004E 1200C0 LCALL DL05S ;延时
0051 60D9 JZ MAIN ;A为0转MAIN
0053 23 RL A ;累加器A中数据循环左移1位
0054 5590 ANL A,P1 ;A同P1口值相与
0056 014C AJMP FUN11 ;转FUN11循环
;
; 第3种闪烁功能程序
0058 74AA FUN2:MOV A,#0AAH ;累加器赋初值
005A F590 MOV P1,A ;累加器值送至P1口
005C 1200C0 LCALL DL05S ;延时
005F F4 CPL A ;A中各位取反
0060 F590 MOV P1,A ;累加器值送至P1口
0062 1200C0 LCALL DL05S ;延时
0065 012C AJMP MAIN ;转MAIN
;************;
; 扫键程序 ;
;************;
;
0067 75B0FF KEYWORK:MOV P3,#0FFH ;置P3口为输入状态
006A 30B00A JNB P3.0,KEY0 ;读P3.0口,若为0转KEY0
006D 30B116 JNB P3.1,KEY1 ;读P3.1口,若为0转KEY1
0070 30B222 JNB P3.2,KEY2 ;读P3.2口,若为0转KEY2
0073 30B32E JNB P3.3,KEY3 ;读P3.3口,若为0转KEY3
0076 22 RET ;子程序返回
;
;闪烁功能0键处理程序
0077 1200B8 KEY0:LCALL DL10MS ;延时10毫秒消抖
007A 20B008 JB P3.0,OUT0 ;P3.0为1,子程序返回(干扰)
007D D200 SETB 00H ;20H.0位置1(执行闪烁功能1标志)
007F C201 CLR 01H ;20H.1位清0
0081 C202 CLR 02H ;20H.2位清0
0083 C203 CLR 03H ;20H.3位清0
0085 22 OUT0:RET ;子程序返回
;
; 闪烁功能1键处理程序
0086 1200B8 KEY1:LCALL DL10MS
0089 20B108 JB P3.1,OUT1
008C D201 SETB 01H ;20H.1位置1(执行闪烁功能2标志)
008E C200 CLR 00H
0090 C202 CLR 02H
0092 C203 CLR 03H
C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例1\1.ASM
页 3
01-29-03
01:04:08
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
0094 22 OUT1:RET
;
;闪烁功能2键处理程序
0095 1200B8 KEY2:LCALL DL10MS
0098 20B208 JB P3.2,OUT2
009B D202 SETB 02H ;20H.2位置1(执行闪烁功能3标志)
009D C201 CLR 01H
009F C200 CLR 00H
00A1 C203 CLR 03H
00A3 22 OUT2:RET
;
;闪烁功能(备用)键处理程序
00A4 1200B8 KEY3:LCALL DL10MS
00A7 20B308 JB P3.3,OUT3
00AA D203 SETB 03H ;20H.3位置1(执行备用闪烁功能标志)
00AC C201 CLR 01H
00AE C202 CLR 02H
00B0 C200 CLR 00H
00B2 22 OUT3:RET
;
;************;
; 延时程序 ;
;************;
;0.5毫秒延时子程序,执行一次时间为513微秒
00B3 7AFF DL512:MOV R2,#0FFH
00B5 DAFE LOOP1: DJNZ R2,LOOP1
00B7 22 RET
;
;10毫秒延时子程序(调用20次0.5毫秒延时子程序)
00B8 7B14 DL10MS:MOV R3,#14H
00BA 1200B3 LOOP2: LCALL DL512
00BD DBFB DJNZ R3,LOOP2
00BF 22 RET
;
;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为15×25毫秒)
00C0 7C0F DL05S:MOV R4,#0FH
00C2 1200C8 LOOP3: LCALL DL25MS
00C5 DCFB DJNZ R4,LOOP3
00C7 22 RET
;
;25毫秒延时子程序,用调用扫键子程序延时,可快速读出功能按键值
00C8 7DFF DL25MS:MOV R5,#0FFH
00CA 120067 LOOP4:LCALL KEYWORK
00CD DDFB DJNZ R5,LOOP4
00CF 22 RET
END ;程序结束
C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例1\1.ASM
页 4
01-29-03
01:04:08
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
符号 值 类型
AC = 00D6H CONST 常量
ACC = 00E0H CONST 常量
B = 00F0H CONST 常量
CLEAR = 0024H CODE 标号
CY = 00D7H CONST 常量
DL05S = 00C0H CODE 标号
DL10MS = 00B8H CODE 标号
DL25MS = 00C8H CODE 标号
DL512 = 00B3H CODE 标号
DPH = 0083H CONST 常量
DPL = 0082H CONST 常量
EA = 00AFH CONST 常量
ES = 00ACH CONST 常量
ET0 = 00A9H CONST 常量
ET1 = 00ABH CONST 常量
EX0 = 00A8H CONST 常量
EX1 = 00AAH CONST 常量
F0 = 00D5H CONST 常量
FUN0 = 003DH CODE 标号
FUN00 = 003FH CODE 标号
FUN1 = 004AH CODE 标号
FUN11 = 004CH CODE 标号
FUN2 = 0058H CODE 标号
IE = 00A8H CONST 常量
IE0 = 0089H CONST 常量
IE1 = 008BH CONST 常量
INT0 = 00B2H CONST 常量
INT1 = 00B3H CONST 常量
IP = 00B8H CONST 常量
IT0 = 0088H CONST 常量
IT1 = 008AH CONST 常量
KEY0 = 0077H CODE 标号
KEY1 = 0086H CODE 标号
KEY2 = 0095H CODE 标号
KEY3 = 00A4H CODE 标号
KEYWORK = 0067H CODE 标号
LOOP1 = 00B5H CODE 标号
LOOP2 = 00BAH CODE 标号
LOOP3 = 00C2H CODE 标号
LOOP4 = 00CAH CODE 标号
MAIN = 002CH CODE 标号
OUT0 = 0085H CODE 标号
OUT1 = 0094H CODE 标号
OUT2 = 00A3H CODE 标号
C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例1\1.ASM
页 5
01-29-03
01:04:08
伟福汇编器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 机器码 源程序
OUT3 = 00B2H CODE 标号
OV = 00D2H CONST 常量
P = 00D0H CONST 常量
P0 = 0080H CONST 常量
P1 = 0090H CONST 常量
P2 = 00A0H CONST 常量
P3 = 00B0H CONST 常量
PCON = 0087H CONST 常量
PS = 00BCH CONST 常量
PSW = 00D0H CONST 常量
PT0 = 00B9H CONST 常量
PT1 = 00BBH CONST 常量
PX0 = 00B8H CONST 常量
PX1 = 00BAH CONST 常量
RB8 = 009AH CONST 常量
RD = 00B7H CONST 常量
REN = 009CH CONST 常量
RI = 0098H CONST 常量
RS0 = 00D3H CONST 常量
RS1 = 00D4H CONST 常量
RXD = 00B0H CONST 常量
SBUF = 0099H CONST 常量
SCON = 0098H CONST 常量
SM0 = 009FH CONST 常量
SM1 = 009EH CONST 常量
SM2 = 009DH CONST 常量
SP = 0081H CONST 常量
START = 002AH CODE 标号
T0 = 00B4H CONST 常量
T1 = 00B5H CONST 常量
TB8 = 009BH CONST 常量
TCON = 0088H CONST 常量
TF0 = 008DH CONST 常量
TF1 = 008FH CONST 常量
TH0 = 008CH CONST 常量
TH1 = 008DH CONST 常量
TI = 0099H CONST 常量
TL0 = 008AH CONST 常量
TL1 = 008BH CONST 常量
TMOD = 0089H CONST 常量
TR0 = 008CH CONST 常量
TR1 = 008EH CONST 常量
TXD = 00B1H CONST 常量
WR = 00B6H CONST 常量
公有符号: 88
私有符号: 0
C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例1\1.ASM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -