⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signal.lst

📁 通信基带信号发生器的设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
016C 2430            188            ADD A,#30H
A51 MACRO ASSEMBLER  SIGNAL                                                               09/24/2007 11:34:46 PAGE     4

016E 1202AC          189            LCALL SEND_D
0171 0535            190            INC COUNT1
0173 0538            191            INC AD4
0175 80DB            192            SJMP DATA3
0177 740C            193     DATA2: MOV A,#0CH           ;关光标
0179 1202BC          194            LCALL SEND_I
017C 22              195            RET
                     196     ;************************10进制到16进制转换程序****************************
017D                 197     ZHUANHUAN:
017D A838            198             MOV R0,AD4
017F 753D00          199             MOV M0,#0
0182 753C00          200             MOV M1,#0
0185 753B00          201             MOV M2,#0
0188 753A00          202             MOV M3,#0
018B 1536            203             DEC COUNT2
018D 3198            204     LOOP:   ACALL XJ
018F 31B0            205             ACALL MUL_41
0191 08              206             INC R0
0192 D536F8          207             DJNZ COUNT2,LOOP
0195 3198            208             ACALL XJ
0197 22              209             RET
                     210     
0198 E53D            211     XJ:     MOV A,M0
019A 26              212             ADD A,@R0
019B F53D            213             MOV M0,A
019D E53C            214             MOV A,M1
019F 3400            215             ADDC A,#0
01A1 F53C            216             MOV M1,A
01A3 E53B            217             MOV A,M2
01A5 3400            218             ADDC A,#0
01A7 F53B            219             MOV M2,A
01A9 E53A            220             MOV A,M3
01AB 3400            221             ADDC A,#0
01AD F53A            222             MOV M3,A
01AF 22              223             RET
                     224     
01B0 C3              225     MUL_41: CLR C
01B1 E53D            226             MOV A,M0
01B3 75F00A          227             MOV B,#10
01B6 A4              228             MUL AB
01B7 F53D            229             MOV M0,A
01B9 85F04E          230             MOV Z1,B
01BC E53C            231             MOV A,M1
01BE 75F00A          232             MOV B,#10
01C1 A4              233             MUL AB
01C2 354E            234             ADDC A,Z1
01C4 F53C            235             MOV M1,A
01C6 85F03F          236             MOV Z2,B
01C9 E53B            237             MOV A,M2
01CB 75F00A          238             MOV B,#10
01CE A4              239             MUL AB
01CF 353F            240             ADDC A,Z2
01D1 F53B            241             MOV M2,A
01D3 85F040          242             MOV Z3,B
01D6 E53A            243             MOV A,M3
01D8 75F00A          244             MOV B,#10
01DB A4              245             MUL AB
01DC 3540            246             ADDC A,Z3
01DE F53A            247             MOV M3,A
01E0 22              248             RET
                     249     ;***************************数据存储程序********************************
01E1 A837            250     CHUNSHU:MOV R0,AD2            ;将转换后的16进制数字放到并口发送缓冲区
01E3 A63D            251             MOV @R0,M0            ;注意缓冲区在80H后的要间接寻址
01E5 08              252             INC R0
01E6 A63C            253             MOV @R0,M1
01E8 08              254             INC R0
A51 MACRO ASSEMBLER  SIGNAL                                                               09/24/2007 11:34:46 PAGE     5

01E9 A63B            255             MOV @R0,M2
01EB 08              256             INC R0
01EC A63A            257             MOV @R0,M3
01EE 22              258             RET
                     259     ;*************************并行数据传输程序******************************
01EF C0E0            260     TRAN: PUSH ACC
01F1 C0D0            261           PUSH PSW
01F3 D2D3            262           SETB RS0
01F5 D2D4            263           SETB RS1               ;用寄存器组3
01F7 D2B6            264           SETB EN
01F9 A837            265           MOV  R0,AD2
01FB 7F04            266           MOV  R7,#4              ;发送6个字节的数据
01FD C2B7            267     TRAN1:CLR  TXD
01FF D2B7            268           SETB TXD
0201 86A0            269           MOV  P2,@R0
0203 08              270           INC  R0
0204 DFF7            271           DJNZ R7,TRAN1
0206 C2B6            272           CLR  EN              ;6个字节发送完毕,发一个高电平脉冲
0208 D0E0            273           POP ACC
020A D0D0            274           POP PSW
020C 22              275           RET
                     276     ;============================================================================
                     277     ;**************************键盘扫描子程序************************************
020D C0E0            278     KEY:  PUSH ACC
020F C0D0            279           PUSH PSW
0211 7590F0          280     KEY1: MOV P1,#0F0H          ;行线为P0-P3,列线为P4-P7
0214 E590            281           MOV A,P1
0216 440F            282           ORL A,#0FH
0218 F4              283           CPL A
0219 7002            284           JNZ IN
021B 80F4            285           SJMP KEY1
                     286     
021D 5151            287     IN:   ACALL DELAY
021F 753004          288           MOV KEYH,#04H
0222 75337F          289           MOV KEYN,#07FH    ;做指针,指示待扫描行
0225 753200          290           MOV KEYZ,#0
0228 E533            291     SCAN: MOV A,KEYN
022A 23              292           RL A
022B F533            293           MOV KEYN,A
022D F590            294           MOV P1,A          ;逐行扫描,被扫描行送低
022F E590            295           MOV A,P1          ;读列线电平值
0231 C4              296           SWAP A
0232 753104          297           MOV KEYL,#04H
0235 13              298     KEY2: RRC  A
0236 500A            299           JNC FIND          ;C位不为1转
0238 0532            300           INC KEYZ
023A D531F8          301           DJNZ KEYL,KEY2
023D D530E8          302           DJNZ KEYH,SCAN
0240 800A            303           SJMP KEY3
                     304     
0242 7590F0          305     FIND:  MOV P1,#0F0H
0245 E590            306     LOOSEN:MOV A,P1
0247 440F            307            ORL A,#0FH
0249 F4              308            CPL A
024A 70F9            309            JNZ LOOSEN
                     310     
024C D0D0            311     KEY3: POP PSW
024E D0E0            312           POP ACC
0250 22              313           RET
                     314     ;**************************键盘20MS延时**************************************
0251 7E15            315     DELAY:MOV R6,#15H
0253 7F18            316     DL2:  MOV R7,#18H
0255 00              317     DL1:  NOP
0256 00              318           NOP
0257 DFFC            319           DJNZ R7,DL1
0259 DEF8            320           DJNZ R6,DL2
A51 MACRO ASSEMBLER  SIGNAL                                                               09/24/2007 11:34:46 PAGE     6

025B 22              321           RET
                     322     ;============================================================================
                     323     ;************************显示欢迎界面****************************************
025C                 324     WEL_XS:
025C 9002DB          325             MOV DPTR,#WEL_A
025F 753410          326             MOV COUNT,#10H   ;地址计数器设为16。
0262 7480            327             MOV A,#80H       ;第一行起始地址
0264 1202BC          328             LCALL SEND_I
0267 120279          329             LCALL QUWRD
026A 9002EB          330             MOV DPTR,#WEL_B
026D 753410          331             MOV COUNT,#10H   ;地址计数器设为16。
0270 74C0            332             MOV A,#0C0H       ;第二行起始地址
0272 1202BC          333             LCALL SEND_I
0275 120279          334             LCALL QUWRD
0278 22              335             RET
                     336     ;****************************取字符显示**************************************
0279 E4              337     QUWRD:  CLR A
027A 93              338             MOVC A,@A+DPTR ;查表取数据
027B 1202AC          339             LCALL SEND_D   ;送显示
027E A3              340             INC DPTR
027F D534F7          341             DJNZ COUNT,QUWRD
0282 22              342             RET
                     343     ;*************************取要显示的数据*************************************
0283 A838            344     QUSHU:  MOV R0,AD4
0285 E6              345             MOV A,@R0
0286 2430            346             ADD A,#30H
0288 1202AC          347             LCALL SEND_D
028B 0538            348             INC AD4
028D D535F3          349             DJNZ COUNT1,QUSHU
0290 22              350             RET
                     351     ;*************************LCM初始化*******************************************
0291                 352     INIT:
0291 7438            353             MOV A,#38H       ;设置8 位格式,2行,5*7*
0293 1202BC          354             LCALL SEND_I
0296 740C            355             MOV A,#0CH       ;开显示,关光标,不闪烁
0298 1202BC          356             LCALL SEND_I
029B 7406            357             MOV A,#06H       ;设定输入方式,增量不移位
029D 1202BC          358             LCALL SEND_I        
02A0 7401            359             MOV A,#01H       ;清除显示
02A2 1202BC          360             LCALL SEND_I
02A5 22              361             RET
                     362     ;*************************清屏***********************************************
02A6                 363     CLEAR_P:
02A6 7401            364             MOV A,#01H       ;清屏
02A8 1202BC          365             LCALL SEND_I
02AB 22              366             RET
                     367     ;**********************写数据子程序*******************************************
02AC                 368     SEND_D:
02AC 1202CC          369             LCALL CHK_BUSY   ;查是否忙
02AF D2A5            370             SETB RS          ;LCM有效
02B1 C2A6            371             CLR RW           ;写模式
02B3 F580            372             MOV P0,A
02B5 D2A7            373             SETB E
02B7 00              374             NOP
02B8 00              375             NOP
02B9 C2A7            376             CLR E
02BB 22              377             RET
                     378     ;**************************向LCM送指令****************************************
02BC                 379     SEND_I:
02BC 1202CC          380             LCALL CHK_BUSY
02BF C2A5            381             CLR RS
02C1 C2A6            382             CLR RW
02C3 F580            383             MOV P0,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -