📄 24c02.lst
字号:
页 1
09-11-05
10:10:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
clk bit p2.5
dout bit p2.6
SDA BIT P3.5
SCL BIT P3.4
en bit p2.7
KEYBUF EQU 35H
KEY EQU 39H
DISPBUF EQU 20H
FLAG0 EQU 0
;***************************************************
ORG 000H
0000 2100 AJMP START
;***************************************************
ORG 0100H
START:
0100 787F MOV R0,#7FH
0102 E4 CLR A
0103 F6 CLRRAM: MOV @R0,A
0104 D8FD DJNZ R0,CLRRAM
0106 75817D MOV SP,#7DH
;***************************************************
0109 7580FF MOV P0,#0FFH
010C 7590FF MOV P1,#0FFH
010F 75A0FF MOV P2,#0FFH
0112 75B0FF MOV P3,#0FFH
;***************************************************
;初始化参数
;***************************************************
;主程序
;***************************************************
WAIT:
;***************************************************
0115 1201B4 LCALL KEYINPUT ;是否有键按下?
0118 E500 MOV A,FLAG0
011A B401F8 CJNE A,#1,WAIT
011D E539 MOV A,KEY
;***************************************************
011F B40B03 CJNE A,#0BH, PANDUAN1
0122 02033D LJMP DISPMIMA
0125 B40C03 PANDUAN1: CJNE A,#0CH, PANDUAN2
0128 020134 LJMP CLRDISP
012B B40A03 PANDUAN2: CJNE A,#0AH, PANDUAN3
012E 02013A LJMP SETMIMA
PANDUAN3:
0131 020115 LJMP WAIT
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\24C02.ASM
页 2
09-11-05
10:10:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
;******************************************************************************
;清屏: LED
;******************************************************************************
CLRDISP:
0134 12031B LCALL CLRLED ;LED显示6个0
0137 020115 LJMP WAIT
;**********************************************
;设置密码
;**********************************************
SETMIMA:
013A 12014C LCALL TIANC
013D 7BA0 MOV R3,#0A0H
013F 7C01 MOV R4,#01H
0141 7920 MOV R1,#DISPBUF
0143 09 INC R1 ;密码在DISPBUF+1处
0144 7F06 MOV R7,#6
0146 120176 LCALL WR24C02
0149 020115 LJMP WAIT
;**********************************************
;填充显示缓冲区556688
TIANC:
014C 7420 MOV A,#DISPBUF
014E F8 MOV R0,A
014F 7400 MOV A,#0H ;小数点位/不显示
0151 F6 MOV @R0,A
0152 08 inc r0
0153 7408 mov a,#8H
0155 F6 mov @r0,a
0156 08 inc r0
0157 7408 mov a,#08H
0159 F6 mov @r0,a
015A 08 inc r0
015B 7406 mov a,#06H
015D F6 mov @r0,a
015E 08 inc r0
015F 7406 mov a,#06H
0161 F6 mov @r0,a
0162 08 inc r0
0163 7405 mov a,#05H
0165 F6 mov @r0,a
0166 08 inc r0
0167 7405 mov a,#05H
0169 F6 mov @r0,a
016A 08 inc r0
016B 7401 mov a,#01H ;识别码=01
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\24C02.ASM
页 3
09-11-05
10:10:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
016D F6 mov @r0,a
016E 08 inc r0
016F 7401 mov a,#01H ;蜂鸣器鸣叫,二次分频
0171 F6 mov @r0,a
0172 120308 LCALL DELY10MS
0175 22 RET
;*********************************************************
;****************************************************************************
;写串行E2PROM子程序WR24C02
; (R3)=10100000(命令1010+器件3位地址+读/写(1/0)。 器件地址:一个芯片是000)
; (R4)=片内字节地址
; (R1)=欲写数据存放地址指针
; (R7)=连续写字节数n
;****************************************************************************
WR24C02:
0176 75B0FF MOV P3,#0FFH
0179 C2B5 CLR SDA ; 发开始信号
017B EB MOV A,R3 ; 送器件地址
017C 3192 ACALL SUBS
017E EC MOV A,R4 ; 送片内字节地址
017F 3192 ACALL SUBS
AGAIN:
0181 E7 MOV A,@R1
0182 3192 ACALL SUBS ;调发送单字节子程序
0184 09 INC R1
0185 DFFA DJNZ R7,AGAIN;连续写n个字节
0187 C2B5 CLR SDA ;SDA置0, 准备送停止信号
0189 31AD ACALL DELAY2 ;延时以满足传输速率要求
018B D2B4 SETB SCL ;发停止信号
018D 31AD ACALL DELAY2
018F D2B5 SETB SDA
0191 22 RET
SUBS:
0192 7808 MOV R0,#08H ;发送单字节子程序
LOOP11:
0194 C2B4 CLR SCL
0196 33 RLC A
0197 92B5 MOV SDA,C
0199 00 NOP
019A D2B4 SETB SCL
019C 31AD ACALL DELAY2
019E D8F4 DJNZ R0,LOOP11 ;循环8次送8个bit
01A0 C2B4 CLR SCL
01A2 31AD ACALL DELAY2
01A4 D2B4 SETB SCL
01A6 A2B5 REP: MOV C,SDA
01A8 40FC JC REP ;判应答到否,未到则等待
01AA C2B4 CLR SCL
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\24C02.ASM
页 4
09-11-05
10:10:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
01AC 22 RET
DELAY2:
01AD 00 NOP
01AE 00 NOP
01AF 00 NOP
01B0 00 NOP
01B1 00 NOP
01B2 00 NOP
01B3 22 RET
;*******************************************************************************************
;键盘处理子程序
;input: KEYBUF,TAB
;OUTPUT: KEY:键值
;出口:FLAG0=1 有按键
; 0 无
;*******************************************************************************************
KEYINPUT:
01B4 753502 MOV KEYBUF,#2
;
01B7 7580FF MOV P0,#0FFH
01BA C284 CLR P0.4
01BC E580 MOV A,P0
01BE 540F ANL A,#0FH
01C0 640F XRL A,#0FH ;有键按下吗?
01C2 6047 JZ NOKEY1
01C4 120311 LCALL DELY10US
01C7 E580 MOV A,P0
01C9 540F ANL A,#0FH
01CB 640F XRL A,#0FH ;真的有键按下吗?
01CD 603C JZ NOKEY1
01CF E580 MOV A,P0
01D1 540F ANL A,#0FH
01D3 B40E06 CJNE A,#0EH,NK1 ;键码的值是多少?P0.4xP0.0
01D6 753503 MOV KEYBUF,#3
01D9 0201F8 LJMP DK1
01DC B40D06 NK1: CJNE A,#0DH,NK2 ;键码是P0.4xP0.1 ?
01DF 753502 MOV KEYBUF,#2
01E2 0201F8 LJMP DK1
01E5 B40B06 NK2: CJNE A,#0BH,NK3 ;键码是P0.4xP0.2 ?
01E8 753501 MOV KEYBUF,#1
01EB 0201F8 LJMP DK1
01EE B40706 NK3: CJNE A,#07H,NK4 ;键码是P0.4xP0.3 ?
01F1 753500 MOV KEYBUF,#0
01F4 0201F8 LJMP DK1
01F7 00 NK4: NOP
C:\DOCUMENTS AND SETTINGS\ZHANGTAO\桌面\汇编程序\已调通的程序\LED\24C02.ASM
页 5
09-11-05
10:10:20
伟福汇编器 V5.00 Copyright (c) 1989, 99 by CHY
地址 机器码 源程序
DK1:
01F8 E535 MOV A,KEYBUF
01FA 9003ED MOV DPTR,#TAB
01FD 93 MOVC A,@A+DPTR ;查表,取键值
01FE F539 MOV KEY,A
0200 750001 MOV FLAG0,#1 ;FLAG0=1
0203 E580 DK1A: MOV A,P0
0205 540F ANL A,#0FH
0207 640F XRL A,#0FH ;按键有没有松开?
0209 70F8 JNZ DK1A
NOKEY1:
020B 7580FF MOV P0,#0FFH
020E C285 CLR P0.5
0210 E580 MOV A,P0
0212 540F ANL A,#0FH
0214 640F XRL A,#0FH
0216 6047 JZ NOKEY2
0218 120311 LCALL DELY10US
021B E580 MOV A,P0
021D 540F ANL A,#0FH
021F 640F XRL A,#0FH
0221 603C JZ NOKEY2
0223 E580 MOV A,P0
0225 540F ANL A,#0FH
0227 B40E06 CJNE A,#0EH,NK5
022A 753507 MOV KEYBUF,#7
022D 02024C LJMP DK2
0230 B40D06 NK5: CJNE A,#0DH,NK6
0233 753506 MOV KEYBUF,#6
0236 02024C LJMP DK2
0239 B40B06 NK6: CJNE A,#0BH,NK7
023C 753505 MOV KEYBUF,#5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -