📄 max539.lst
字号:
A51 MACRO ASSEMBLER MAX539 08/10/2007 11:42:10 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN MAX539.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE MAX539.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;/****************************************************************/
2 ;/* 这是MAX539的汇编程序,文件名MAX539.ASM。 */
3 ;/* 功能:本程序主要是实现MAX539芯片的D/A转换。程序中转换的十六进*/
4 ;/* 制值依次为0x0fff,0x07ff,0x03ff,0x01ff,0,VOUT脚输出转换后 */
5 ;/* 的模拟信号,它既可用万用表的直流电压档测试,也可用示波器 */
6 ;/* 的探头点在此处观察。 */
7 ;/*****************************************************************/
8
0090 9 SI EQU P1.0
0091 10 SCK EQU P1.1
0092 11 CS EQU P1.2
0093 12 SO EQU P1.3
13
0000 14 ORG 0000H ;程序入口
0000 C2AF 15 CLR EA
0002 D292 16 SETB CS
0004 C292 17 CLR CS
0006 740F 18 MOV A,#0FH ;输入0FFFH,输出电压为REF*2
0008 12005E 19 LCALL BYTE_OUT
000B 74FF 20 MOV A,#0FFH
000D 12005E 21 LCALL BYTE_OUT
0010 D292 22 SETB CS
0012 12007A 23 LCALL DELAY
0015 00 24 NOP
0016 C292 25 CLR CS
0018 7407 26 MOV A,#07H ;输入07FFH,输出电压为REF
001A 12005E 27 LCALL BYTE_OUT
001D 74FF 28 MOV A,#0FFH
001F 12005E 29 LCALL BYTE_OUT
0022 D292 30 SETB CS
0024 12007A 31 LCALL DELAY
0027 00 32 NOP
0028 C292 33 CLR CS
002A 7403 34 MOV A,#03H ;输入03FFH,输出电压为REF/2
002C 12005E 35 LCALL BYTE_OUT
002F 74FF 36 MOV A,#0FFH
0031 12005E 37 LCALL BYTE_OUT
0034 D292 38 SETB CS
0036 12007A 39 LCALL DELAY
0039 00 40 NOP
003A C292 41 CLR CS
003C 7401 42 MOV A,#01H ;输入01FFH,输出电压为REF/4
003E 12005E 43 LCALL BYTE_OUT
0041 74FF 44 MOV A,#0FFH
0043 12005E 45 LCALL BYTE_OUT
0046 D292 46 SETB CS
0048 12007A 47 LCALL DELAY
004B 00 48 NOP
004C C292 49 CLR CS
004E 7400 50 MOV A,#00H ;输入0000H,输出电压为0
0050 12005E 51 LCALL BYTE_OUT
0053 7400 52 MOV A,#000H
0055 12005E 53 LCALL BYTE_OUT
0058 D292 54 SETB CS
005A 00 55 NOP
005B 02005B 56 LJMP $
005E 7808 57 BYTE_OUT: MOV R0,#08H ;发送单个字节到芯片串口
0060 C291 58 BOUT1: CLR SCK
A51 MACRO ASSEMBLER MAX539 08/10/2007 11:42:10 PAGE 2
0062 33 59 RLC A
0063 9290 60 MOV SI,C
0065 D291 61 SETB SCK
0067 D8F7 62 DJNZ R0,BOUT1
0069 C290 63 CLR SI
006B 22 64 RET
006C 7808 65 BYTE_IN: MOV R0,#08H ;从芯片串口取出单个字节
006E D291 66 BIN1: SETB SCK
0070 C291 67 CLR SCK
0072 A293 68 MOV C,SO
0074 33 69 RLC A
0075 D8F7 70 DJNZ R0,BIN1
0077 C291 71 CLR SCK
0079 22 72 RET
73
007A 74 DELAY: ;延时程序
007A 7A0A 75 MOV R2, #10
007C 7900 76 MOV R1, #0
007E 7800 77 MOV R0, #0
0080 78 DLP:
0080 D8FE 79 DJNZ R0, DLP
0082 D9FC 80 DJNZ R1, DLP
0084 DAFA 81 DJNZ R2, DLP
0086 22 82 RET
83 END
A51 MACRO ASSEMBLER MAX539 08/10/2007 11:42:10 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
BIN1 . . . . . . . C ADDR 006EH A
BOUT1. . . . . . . C ADDR 0060H A
BYTE_IN. . . . . . C ADDR 006CH A
BYTE_OUT . . . . . C ADDR 005EH A
CS . . . . . . . . B ADDR 0090H.2 A
DELAY. . . . . . . C ADDR 007AH A
DLP. . . . . . . . C ADDR 0080H A
EA . . . . . . . . B ADDR 00A8H.7 A
P1 . . . . . . . . D ADDR 0090H A
SCK. . . . . . . . B ADDR 0090H.1 A
SI . . . . . . . . B ADDR 0090H.0 A
SO . . . . . . . . B ADDR 0090H.3 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -