📄 93c46seg.lst
字号:
A51 MACRO ASSEMBLER 93C46SEG 06/03/2005 12:22:10 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\93c46seg.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\93c46seg.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2 ;本程序使用93c46存储七段码的实时状态
3
4 ;=====================================================
0080 5 READ EQU 80H ;读命令码
0040 6 WRITE EQU 40H ;写命令码
0030 7 EWEN EQU 30H ;写使能命令码
0000 8 EWDS EQU 00H ;写禁止命令码
9
10 ;AT93C46接口
00B4 11 MEM_CS EQU P3.4
00B3 12 MEM_SK EQU P3.3
13 ;MEM_ORG EQU P1.2 ;LOGIC1=>16bit
00B5 14 MEM_DI EQU P3.5
00B6 15 MEM_DO EQU P3.6
0000 16 org 0000h
0000 0130 17 ajmp main
0030 18 org 0030h
0030 19 main:
0030 C2A0 20 CLR P2.0 ;开个位显示
0032 753000 21 mov 30h,#00h
0035 9000B6 22 mov dptr,#tab
0038 7480 23 MOV A, #READ
003A D2B4 24 SETB MEM_CS
003C C2B3 25 CLR MEM_SK
003E D2B5 26 SETB MEM_DI
0040 D2B3 27 SETB MEM_SK
0042 1200C6 28 LCALL WR_AT93C46
0045 1200DA 29 LCALL RD_AT93C46
0048 F530 30 mov 30h,a
004A B40A00 31 cjne a,#0Ah,com1
004D 32 com1:
004D 4004 33 jc loop
004F 7400 34 mov a,#00h
0051 F530 35 mov 30h,a
0053 36 loop:
0053 93 37 movc a,@a+dptr
0054 F580 38 mov p0,a
0056 0530 39 inc 30h
0058 7C64 40 mov r4,#100
005A 41 tt3:
005A 1200AD 42 lcall delay10ms
005D DCFB 43 djnz r4,tt3
005F C2B4 44 CLR MEM_CS
0061 7430 45 MOV A, #EWEN ;允许写入
0063 D2B4 46 SETB MEM_CS
0065 C2B3 47 CLR MEM_SK
0067 D2B5 48 SETB MEM_DI
0069 D2B3 49 SETB MEM_SK
006B 1200C6 50 LCALL WR_AT93C46
006E C2B4 51 CLR MEM_CS
0070 1200EB 52 LCALL DELAY20MS
53
0073 7440 54 MOV A, #WRITE ;写指令
0075 D2B4 55 SETB MEM_CS
0077 C2B3 56 CLR MEM_SK
0079 D2B5 57 SETB MEM_DI
007B D2B3 58 SETB MEM_SK
A51 MACRO ASSEMBLER 93C46SEG 06/03/2005 12:22:10 PAGE 2
007D 1200C6 59 LCALL WR_AT93C46
0080 E530 60 MOV A, 30h
0082 1200C6 61 LCALL WR_AT93C46
0085 E531 62 MOV A, 31h
0087 1200C6 63 LCALL WR_AT93C46
008A C2B4 64 CLR MEM_CS
008C 1200F4 65 LCALL DELAY30MS
008F 1200F4 66 LCALL DELAY30MS
67
0092 7400 68 MOV A, #EWDS ;禁止写入
0094 D2B4 69 SETB MEM_CS
0096 C2B3 70 CLR MEM_SK
0098 D2B5 71 SETB MEM_DI
009A D2B3 72 SETB MEM_SK
009C 1200C6 73 LCALL WR_AT93C46
009F C2B4 74 CLR MEM_CS
75
00A1 E530 76 mov a,30h
00A3 B40AAD 77 cjne a,#10,loop
00A6 753000 78 mov 30h,#00h
00A9 E530 79 mov a,30h
80
00AB 0153 81 ajmp loop
82
00AD 83 delay10ms:
00AD 7E64 84 mov r6,#100
00AF 85 tt2:
00AF 7D32 86 mov r5,#50
00B1 DDFE 87 djnz r5,$
00B3 DEFA 88 djnz r6,tt2
00B5 22 89 ret
90
00B6 C0F9A4B0 91 tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
00BA 999282F8
00BE 80908883
00C2 C6A1868E
92
93
00C6 94 WR_AT93C46:
00C6 D2B4 95 SETB MEM_CS
00C8 C2B3 96 CLR MEM_SK
00CA 7F08 97 MOV R7, #08H
00CC 98 WR_AT93C46_00:
00CC C2B3 99 CLR MEM_SK
00CE 33 100 RLC A
00CF 92B5 101 MOV MEM_DI, C
00D1 D2B3 102 SETB MEM_SK
00D3 DFF7 103 DJNZ R7, WR_AT93C46_00
00D5 C2B3 104 CLR MEM_SK
00D7 D2B5 105 SETB MEM_DI
00D9 22 106 RET
107 ;*********************************************
00DA 108 RD_AT93C46:
00DA C2B3 109 CLR MEM_SK
00DC 7F08 110 MOV R7, #08H
00DE D2B6 111 SETB MEM_DO
00E0 112 RD_AT93C46_00:
00E0 D2B3 113 SETB MEM_SK
00E2 00 114 NOP
00E3 A2B6 115 MOV C, MEM_DO
00E5 33 116 RLC A
00E6 C2B3 117 CLR MEM_SK
00E8 DFF6 118 DJNZ R7, RD_AT93C46_00
00EA 22 119 RET
120 ;#############################################################################
00EB 121 DELAY20MS:
A51 MACRO ASSEMBLER 93C46SEG 06/03/2005 12:22:10 PAGE 3
122
00EB 7E3C 123 MOV R6, #03CH
00ED 124 Dly20_CON2:
00ED 7FFF 125 MOV R7, #0FFH
00EF 126 Dly20_CON1:
00EF DFFE 127 DJNZ R7, Dly20_CON1
00F1 DEFA 128 DJNZ R6, Dly20_CON2
00F3 22 129 RET
130
00F4 131 DELAY30MS:
00F4 C006 132 PUSH 6
00F6 C007 133 PUSH 7
00F8 7E59 134 MOV R6, #059H
00FA 135 Dly30_CON2:
00FA 7FFF 136 MOV R7, #0FFH
00FC 137 Dly30_CON1:
00FC DFFE 138 DJNZ R7, Dly30_CON1
00FE DEFA 139 DJNZ R6, Dly30_CON2
0100 D007 140 POP 7
0102 D006 141 POP 6
0104 22 142 RET
143 end
A51 MACRO ASSEMBLER 93C46SEG 06/03/2005 12:22:10 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
COM1 . . . . . . . C ADDR 004DH A
DELAY10MS. . . . . C ADDR 00ADH A
DELAY20MS. . . . . C ADDR 00EBH A
DELAY30MS. . . . . C ADDR 00F4H A
DLY20_CON1 . . . . C ADDR 00EFH A
DLY20_CON2 . . . . C ADDR 00EDH A
DLY30_CON1 . . . . C ADDR 00FCH A
DLY30_CON2 . . . . C ADDR 00FAH A
EWDS . . . . . . . N NUMB 0000H A
EWEN . . . . . . . N NUMB 0030H A
LOOP . . . . . . . C ADDR 0053H A
MAIN . . . . . . . C ADDR 0030H A
MEM_CS . . . . . . B ADDR 00B0H.4 A
MEM_DI . . . . . . B ADDR 00B0H.5 A
MEM_DO . . . . . . B ADDR 00B0H.6 A
MEM_SK . . . . . . B ADDR 00B0H.3 A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
RD_AT93C46 . . . . C ADDR 00DAH A
RD_AT93C46_00. . . C ADDR 00E0H A
READ . . . . . . . N NUMB 0080H A
TAB. . . . . . . . C ADDR 00B6H A
TT2. . . . . . . . C ADDR 00AFH A
TT3. . . . . . . . C ADDR 005AH A
WRITE. . . . . . . N NUMB 0040H A
WR_AT93C46 . . . . C ADDR 00C6H A
WR_AT93C46_00. . . C ADDR 00CCH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -