📄 dac8512.lst
字号:
A51 MACRO ASSEMBLER DAC8512 08/23/2007 14:50:59 PAGE 1
MACRO ASSEMBLER A51 V6.23
OBJECT MODULE PLACED IN DAC8512.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE DAC8512.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;Writed by LinXiwei,on 2006.06.15
2
3 ;*******ZLG7289 PARAMETERS*******
0030 4 ZLG_BIT_CNT EQU 30H ;The number of data sended
0031 5 ZLG_REC_BUF EQU 31H ;The buffer of data sended
0032 6 ZLG_SEND_BUF EQU 32H ;The buffer of data received
7
003F 8 DAC_NUMBER EQU 3FH ;The nuber to D/A
9
0040 10 ZLG_HUNDRED EQU 40H ;The digit of hundred
0041 11 ZLG_DECIMAL EQU 41H ;The digit of decimal
0042 12 ZLG_ONE EQu 42H ;The digit of one
13
0090 14 ZLG_CS EQU P1.0 ;/CS of ZLG7289
0091 15 ZLG_CLK EQU P1.1 ;CLK of ZLG7289
0092 16 ZLG_DATA EQU P1.2 ;DIO of ZLG7289
0093 17 ZLG_KEY EQU P1.3 ;/KEY of ZLG7289
18
0084 19 DAC8512_DATA EQU P0.4 ;SCLK of DAC8512
0085 20 DAC8512_SCLK EQU P0.5 ;/CS of DAC8512
0086 21 DAC8512_LD EQU P0.6 ;LD OF DAC8512
0087 22 DAC8512_CS EQU P0.7 ;DOUT of DAC8512
23
24 ;*******DELAY PARAMETERS*******
0071 25 VAR_DELAY EQU 71H ;The variable for delay function
0072 26 VAR_DELAY_2 EQU 72H ;The variable for delay function
27 ;*****************************************************************
0000 28 org 0000H
0000 020030 29 ljmp MAIN
30 ;*****************************************************************
0030 31 org 0030H
0030 32 MAIN:
0030 120061 33 lcall sys_initialize
34
0033 1200BB 35 lcall func_display
0036 12008A 36 lcall DASUB ;Start D/A change
37
0039 38 MAIN_LOOP:
0039 2093FD 39 jb ZLG_KEY,$ ;Wait for keyboard
40
003C 753215 41 mov ZLG_SEND_BUF,#00010101B ;Send the command of reading keyboard
003F 1200FB 42 lcall zlg_send
0042 12011E 43 lcall zlg_receive ;Read the data of keyboard
0045 D290 44 setb ZLG_CS ;Set standby mode
45
0047 AE31 46 mov r6,ZLG_REC_BUF
47 ;Inc
0049 BE0F04 48 cjne r6,#15,KEY_DEC
004C 053F 49 inc DAC_NUMBER
004E 8005 50 jmp MAIN_LOOP_NEXT
51
0050 52 KEY_DEC:
53 ;Dec
0050 BE0702 54 cjne r6,#7,MAIN_LOOP_NEXT
0053 153F 55 dec DAC_NUMBER
56 ;Display the number
57
0055 58 MAIN_LOOP_NEXT:
A51 MACRO ASSEMBLER DAC8512 08/23/2007 14:50:59 PAGE 2
0055 1200BB 59 lcall func_display
0058 12008A 60 lcall DASUB ;Start D/A change
005B 3093FD 61 jnb ZLG_KEY,$ ;Wait the key to pop
005E 0139 62 ajmp MAIN_LOOP
63
0060 22 64 ret ;main return
65 ;*****************************************************************
0061 66 sys_initialize:
67 ;Initialize TLC5615
0061 D287 68 SETB DAC8512_CS
0063 D284 69 SETB DAC8512_DATA
0065 D285 70 SETB DAC8512_SCLK
0067 D286 71 SETB DAC8512_LD
72
73 ;***Initialize ZLG7289***
0069 D290 74 setb ZLG_CS
006B D293 75 setb ZLG_KEY
006D D292 76 setb ZLG_DATA
77
006F 12014C 78 lcall delay_50
79
0072 7532A4 80 mov ZLG_SEND_BUF,#10100100B
0075 1200FB 81 lcall zlg_send
0078 D290 82 setb ZLG_CS ;Set standby mode
83
84
007A 753F00 85 mov DAC_NUMBER,#00H
007D 754000 86 mov ZLG_HUNDRED,#00H
0080 754100 87 mov ZLG_DECIMAL,#00H
0083 754200 88 mov ZLG_ONE,#00H
89
0086 12013F 90 lcall delay_125ms
0089 22 91 ret
92 ;*****************************************************************
93 ;Send DA number to TLC5615
008A 94 DASUB:
008A C0D0 95 PUSH PSW
008C C0E0 96 PUSH ACC
97
008E 7B0F 98 MOV R3,#0FH
0090 7AFF 99 MOV R2,#0FFH
0092 7F04 100 MOV R7,#04H
0094 101 DASUB0:
0094 C3 102 CLR C
0095 EA 103 MOV A,R2
0096 33 104 RLC A
0097 FA 105 MOV R2,A
0098 EB 106 MOV A,R3
0099 33 107 RLC A
009A FB 108 MOV R3,A
009B DFF7 109 DJNZ R7,DASUB0
009D 7F0C 110 MOV R7,#0CH
009F 111 DASUB1:
009F C287 112 CLR DAC8512_CS
00A1 00 113 NOP
00A2 EA 114 MOV A,R2
00A3 33 115 RLC A
00A4 FA 116 MOV R2,A
00A5 EB 117 MOV A,R3
00A6 33 118 RLC A
00A7 FB 119 MOV R3,A
00A8 9284 120 MOV DAC8512_DATA,C
00AA C285 121 CLR DAC8512_SCLK
00AC 00 122 NOP
00AD D285 123 SETB DAC8512_SCLK
00AF DFEE 124 DJNZ R7,DASUB1
A51 MACRO ASSEMBLER DAC8512 08/23/2007 14:50:59 PAGE 3
00B1 C286 125 CLR DAC8512_LD
00B3 00 126 NOP
00B4 D286 127 SETB DAC8512_LD
00B6 D0E0 128 POP ACC
00B8 D0D0 129 POP PSW
00BA 22 130 RET
131 ;*****************************************************************
132 ;Display then DA number
133 ;Using a,b
00BB 134 func_display:
135
00BB 853FE0 136 mov acc,DAC_NUMBER
00BE 75F064 137 mov b,#100
00C1 84 138 div ab
00C2 F540 139 mov ZLG_HUNDRED,a
140
141
00C4 85F0E0 142 mov acc,b
00C7 75F00A 143 mov b,#10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -