📄 signal.lst
字号:
A51 MACRO ASSEMBLER SIGNAL 09/24/2007 11:34:46 PAGE 1
MACRO ASSEMBLER A51 V7.07
NO OBJECT MODULE REQUESTED
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE D:\MCU_FPGA\SIGNAL.ASM DB SB
LOC OBJ LINE SOURCE
1 ;-----------键盘扫描相关-----------
0030 2 KEYH EQU 30H ;待扫描行线
0031 3 KEYL EQU 31H ;待扫描列线
0032 4 KEYZ EQU 32H ;按键值
0033 5 KEYN EQU 33H ;指示待扫描行
6 ;---------LCD显示地址相关----------
0034 7 COUNT EQU 34H ;存字符显示个数
0035 8 COUNT1 EQU 35H ;存输入数据位数
0036 9 COUNT2 EQU 36H ;存送给LCD显示数字位数,等于COUNT1
10
0037 11 AD2 EQU 37H ;据状态在串口通信中取数地址
0038 12 AD4 EQU 38H ;据状态对应相应存按键值地址(对其进行16进制转换)
13 ;------------16to10转换用到----------------
003A 14 M3 EQU 3AH ;存积的四个字节空间
003B 15 M2 EQU 3BH
003C 16 M1 EQU 3CH
003D 17 M0 EQU 3DH
004E 18 Z1 EQU 4EH ;存每次乘积的进位
003F 19 Z2 EQU 3FH
0040 20 Z3 EQU 40H
21 ;--------10to16转化暂存区2f-28-------------
002F 22 FIRADD EQU 2FH
23 ;-----------除法用到的单元-----------------
0041 24 DIVDLL EQU 41H ;定义被除数单元
0042 25 DIVDLH EQU 42H
0043 26 DIVDHL EQU 43H
0044 27 DIVDHH EQU 44H
0045 28 DIVDL EQU 45H ;定义除数单元
0046 29 DIVDH EQU 46H
0047 30 TEMPL EQU 47H ;定义余数单元
0048 31 TEMPH EQU 48H
32 ;-----------存按键值----------------
0048 33 FRE EQU 48H ;频率48H-4FH 8位
0050 34 FREZ EQU 50H ;调制频率50H-54H 5位
35 ;--------------位选-----------------
00B6 36 EN EQU P3.6 ;并行送数据用到
00B7 37 TXD EQU P3.7
*** _________________________________^
*** ERROR #A10 IN 37 (D:\MCU_FPGA\SIGNAL.ASM, LINE 37): ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
00A5 38 RS EQU P2.5 ;LCD控制位
00A6 39 RW EQU P2.6
00A7 40 E EQU P2.7
41 ;==================================================================
42 ;**************************主函数开始******************************
0000 43 ORG 0000H
0000 803E 44 SJMP START
0040 45 ORG 0040H
0040 758168 46 START: MOV SP,#68H ;主程序入口
0043 120291 47 LCALL INIT ;调用LCM初始化
0046 12025C 48 LCALL WEL_XS ;显示欢迎界面
49
0049 75350C 50 NEXT1: MOV COUNT1,#0CH
004C 7880 51 MOV R0,#80H
004E 7600 52 MOV @R0,#0
0050 08 53 INC R0
0051 D535F5 54 DJNZ COUNT1,NEXT1
0054 7880 55 MOV R0,#80H ;给发送空间赋标志值(每次发4个字节)
0056 76E7 56 MOV @R0,#0E7H
A51 MACRO ASSEMBLER SIGNAL 09/24/2007 11:34:46 PAGE 2
0058 7885 57 MOV R0,#85H
005A 76E6 58 MOV @R0,#0E6H
005C 788A 59 MOV R0,#8AH
005E 76E4 60 MOV @R0,#0E4H
61 ;*******************以下输入频率\幅度\相位\模式******************
0060 12020D 62 MAIN: LCALL KEY
0063 E532 63 MOV A,KEYZ
0065 C3 64 CLR C
0066 940B 65 SUBB A,#0BH
0068 40F6 66 JC MAIN
006A 75F002 67 MOV B,#2
006D A4 68 MUL AB
006E 90039B 69 MOV DPTR,#TAB1
0071 73 70 JMP @A+DPTR
71 ;----------------------------------------------------------------
0072 1176 72 MS_IN: ACALL MS_1
0074 0160 73 AJMP MAIN
74
0076 7480 75 MS_1: MOV A,#80H ;在该行从新显示'MOD?'
0078 1202BC 76 LCALL SEND_I
007B 90035B 77 MOV DPTR,#TAB_MS
007E 753406 78 MOV COUNT,#6
0081 120279 79 LCALL QUWRD
0084 740E 80 MOV A,#0EH ;开光标
0086 1202BC 81 LCALL SEND_I
0089 12020D 82 MS2: LCALL KEY
008C E532 83 MOV A,KEYZ
008E C3 84 CLR C
008F 9405 85 SUBB A,#5 ;是否为有效模式键(0-5)
0091 50F6 86 JNC MS2
0093 740C 87 MS3: MOV A,#0CH ;关光标
0095 1202BC 88 LCALL SEND_I
0098 7881 89 MOV R0,#81H ;将模式值存入发送空间
009A A632 90 MOV @R0,KEYZ
009C 753410 91 MOV COUNT,#10H
92
009F B60005 93 CJNE @R0,#00H,MS4
00A2 9002FB 94 MOV DPTR,#TAB_SIN
00A5 8029 95 SJMP MS9
00A7 B60108 96 MS4: CJNE @R0,#01H,MS5
00AA 90030B 97 MOV DPTR,#TAB_AM ;在AM、FM下只占6位显示
00AD 753406 98 MOV COUNT,#6H
00B0 801E 99 SJMP MS9
00B2 B60208 100 MS5: CJNE @R0,#02H,MS6
00B5 90031B 101 MOV DPTR,#TAB_FM
00B8 753406 102 MOV COUNT,#6H
00BB 8013 103 SJMP MS9
00BD B60305 104 MS6: CJNE @R0,#03H,MS7
00C0 90032B 105 MOV DPTR,#TAB_ASK
00C3 800B 106 SJMP MS9
00C5 B60405 107 MS7: CJNE @R0,#04H,MS8
00C8 90033B 108 MOV DPTR,#TAB_FSK
00CB 8003 109 SJMP MS9
00CD 90034B 110 MS8: MOV DPTR,#TAB_PSK
111
00D0 7480 112 MS9: MOV A,#80H
00D2 51BC 113 ACALL SEND_I
00D4 5179 114 ACALL QUWRD
00D6 753780 115 MOV AD2,#80H
00D9 1201EF 116 LCALL TRAN
00DC 22 117 RET
118 ;----------------------------------------------------------------
00DD 11E1 119 FRE_IN: ACALL FRE_1
00DF 0160 120 AJMP MAIN
121
00E1 753848 122 FRE_1: MOV AD4,#48H
A51 MACRO ASSEMBLER SIGNAL 09/24/2007 11:34:46 PAGE 3
00E4 753500 123 MOV COUNT1,#0
124
00E7 74C0 125 MOV A,#0C0H ;在该行从新显示'FRE:'
00E9 1202BC 126 LCALL SEND_I
00EC 753410 127 MOV COUNT,#10H
00EF 90036B 128 MOV DPTR,#TAB_FRE
00F2 120279 129 LCALL QUWRD
00F5 74C4 130 MOV A,#0C4H
00F7 1202BC 131 LCALL SEND_I
00FA 12014D 132 LCALL DATAIN
133
00FD 753848 134 FRE_2: MOV AD4,#48H
0100 853536 135 MOV COUNT2,COUNT1
0103 12017D 136 LCALL ZHUANHUAN
0106 753786 137 MOV AD2,#86H
0109 1201E1 138 LCALL CHUNSHU
010C 753785 139 MOV AD2,#85H
010F 1201EF 140 LCALL TRAN
0112 22 141 RET
142 ;----------------------------------------------------------------
0113 3117 143 FREZ_IN:ACALL FREZ_1
0115 0160 144 AJMP MAIN
145
0117 753850 146 FREZ_1: MOV AD4,#50H
011A 753500 147 MOV COUNT1,#0
148
011D 7485 149 MOV A,#85H ;在该行从新显示'FRE:'
011F 1202BC 150 LCALL SEND_I
0122 75340A 151 MOV COUNT,#0AH
0125 90037B 152 MOV DPTR,#TAB_FREZ
0128 120279 153 LCALL QUWRD
012B 748A 154 MOV A,#8AH
012D 1202BC 155 LCALL SEND_I
0130 12014D 156 LCALL DATAIN
157
0133 753850 158 FREZ_2: MOV AD4,#50H
0136 853536 159 MOV COUNT2,COUNT1
0139 12017D 160 LCALL ZHUANHUAN
013C 753786 161 MOV AD2,#86H
013F 1201E1 162 LCALL CHUNSHU
0142 753785 163 MOV AD2,#85H
0145 1201EF 164 LCALL TRAN
0148 22 165 RET
166 ;----------------------------------------------------------------
0149 0160 167 JIA_IN: AJMP MAIN
168
169 ;----------------------------------------------------------------
014B 0160 170 JIAN_IN:AJMP MAIN
171
172 ;========================================================================
173 ;***************************数据输入程序*********************************
014D 740E 174 DATAIN:MOV A,#0EH ;开光标
014F 1202BC 175 LCALL SEND_I
0152 12020D 176 DATA3: LCALL KEY
0155 E532 177 MOV A,KEYZ
0157 B40A07 178 CJNE A,#0AH,DATA1 ;是否为确认键
015A E535 179 MOV A,COUNT1
015C B40018 180 CJNE A,#0,DATA2 ;按下的为确认键,且已经输入数字则退出
015F 80F1 181 SJMP DATA3
0161 C3 182 DATA1: CLR C
0162 940A 183 SUBB A,#0AH
0164 50EC 184 JNC DATA3
0166 A938 185 MOV R1,AD4
0168 A732 186 MOV @R1,KEYZ
016A E532 187 MOV A,KEYZ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -