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

📄 rs232.lst

📁 用89S52进行DS1820温度读取程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                    页     1
                                                                    07-08-06
                                                                    14:37:33
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

            ;这是一个使用单片机串行通信口通过RS232总线与PC进行通信的测试程序,无需扩展.
            ;可将DB9的第2和第3脚短路,进行自收自发测试.
            ;采用串行中断接收,速率:9600,通信方式3,晶振使用:osc=11.0592MHz
            ;使用SW1-SW6键盘发送文本数字1-6,数码管显示接收的ASCII数据
            
                     BUFF_KEY  EQU 21H      ;键盘键
                     BUFF_LED1 EQU 22H     ;数码管显示缓存
                     BUFF_LED2 EQU 23H
                     BUFF_LED3 EQU 24H
                     BUFF_LED4 EQU 25H
                     BUFF_LED5 EQU 26H
                     BUFF_LED6 EQU 27H
                     BUFF_LED_LP  EQU 2BH      ;T0键盘显示扫描缓存      
                     F_BEEP    BIT   01H
            
                    LED_PORT   EQU   P0
                    DIG_PORT   EQU   P2
                    KEY_PORT   EQU   P2
                    SW1        BIT   P2.7
                    SW2        BIT   P2.6
                    SW3        BIT   P2.5
                    SW4        BIT   P2.4
                    SW5        BIT   P2.3
                    SW6        BIT   P2.2
                    KEY        BIT   P3.3
                    BEEP       BIT   P2.0
                    org   000h
0000 020100         JMP   main
                    ORG   00BH
000B 0201D2         JMP   T0_INT
                    org   0023h
0023 0201AE         ljmp  rx_int
                    ORG   100H
0100 758140    main:MOV   SP ,#40H
0103 787F           MOV   R0,#7FH
0105 7400   CLR_RAM:MOV   A,#00H
0107 F6             MOV   @R0,A
0108 D8FB           DJNZ  R0,CLR_RAM
010A 758140         mov   sp,#40h
010D 75A800         MOV   IE,#00H
0110 758921         mov   tmod,#21h
0113 759850         mov   scon,#50h
0116 758DFD         mov   TH1,#0FDH    ;sn=9600b/s-n-1
0119 758BFD         MOV   TL1,#0FDH
011C 758CF4         MOV   TH0,#244     ;T0=3MS
011F 758A48         MOV   TL0,#72
0122 D28E           SETB   TR1
0124 D2AC           SETB   ES


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\RS232.ASM                
 
                                                                    页     2
                                                                    07-08-06
                                                                    14:37:33
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0126 D28C           SETB   TR0
0128 D2A9           SETB   ET0
012A D2AF           SETB   EA
012C 85FF90         MOV    P1,0FFH      ;INIT
012F 85FFA0         MOV    P2,0FFH
0132 85FF80         MOV    P0,0FFH
0135 85FFB0         MOV    P3,0FFH
            
0138 20B3FD WAIT_KEY:JB    KEY,$       ;等候按键!
013B 30A711          JNB   SW1,SW1_OK
013E 30A61B          JNB   SW2,SW2_OK
0141 30A525          JNB   SW3,SW3_OK
0144 30A42F          JNB   SW4,SW4_OK
0147 30A339          JNB   SW5,SW5_OK
014A 30A243          JNB   SW6,SW6_OK
014D 80E9            JMP   WAIT_KEY
014F 759931 SW1_OK:  MOV   SBUF,#'1'   ;通常使用加单引号,表示文本,'A'
0152 3099FD          JNB   TI,$
0155 C299            CLR   TI
0157 12019D          LCALL  DEL
015A 80DC            JMP   WAIT_KEY
015C 759932 SW2_OK:  MOV   SBUF,#'2'
015F 3099FD          JNB   TI,$
0162 C299            CLR   TI
0164 12019D          LCALL  DEL
0167 80CF            JMP   WAIT_KEY
0169 759933 SW3_OK:  MOV   SBUF,#'3'
016C 3099FD          JNB   TI,$
016F C299            CLR   TI
0171 12019D          LCALL  DEL
0174 80C2            JMP   WAIT_KEY
0176 759934 SW4_OK:  MOV   SBUF,#'4'
0179 3099FD          JNB   TI,$
017C C299            CLR   TI
017E 12019D          LCALL  DEL
0181 80B5            JMP   WAIT_KEY
0183 759935 SW5_OK:  MOV   SBUF,#'5'
0186 3099FD          JNB   TI,$
0189 C299            CLR   TI
018B 12019D          LCALL  DEL
018E 80A8            JMP   WAIT_KEY
0190 759936 SW6_OK:  MOV   SBUF,#'6'
0193 3099FD          JNB   TI,$
0196 C299            CLR   TI
0198 12019D          LCALL  DEL
019B 809B            JMP   WAIT_KEY
            
019D D201   DEL:     SETB  F_BEEP      ;起动蜂鸣器


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\RS232.ASM                
 
                                                                    页     3
                                                                    07-08-06
                                                                    14:37:33
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

019F 7D02            MOV   R5,#02      ;为演示方便,人为插入的延时
01A1 7EC8   DEL01:   MOV   R6,#200
01A3 7FC8   DEL02:   MOV   R7,#200
01A5 DFFE            DJNZ  R7,$
01A7 DEFA            DJNZ  R6,DEL02
01A9 DDF6            DJNZ  R5,DEL01
01AB C201            CLR   F_BEEP
01AD 22              RET
            
            ;----------- SERIAL COMMUNICATION INTRRUPT 串行接收中断--------------------
01AE C0E0   RX_INT: PUSH  ACC
01B0 C0D0           PUSH  PSW
01B2 309818         JNB   RI,END_RX
01B5 C298           CLR   RI
01B7 E599           MOV   A,SBUF               ;读接收字节
01B9 C3             CLR   C
01BA 9430           SUBB  A,#30H               ;转换文本ASCii为数字
01BC 852322         MOV   BUFF_LED1,BUFF_LED2  ;循环移动显示
01BF 852423         MOV   BUFF_LED2,BUFF_LED3
01C2 852524         MOV   BUFF_LED3,BUFF_LED4
01C5 852625         MOV   BUFF_LED4,BUFF_LED5
01C8 852726         MOV   BUFF_LED5,BUFF_LED6
01CB F527           MOV   BUFF_LED6,A
            
01CD D0D0   END_RX: POP   PSW
01CF D0E0           POP   ACC
01D1 32             RETI
            
            ;-------------  T0 INTRRUPT 数码管扫描定时中断---------------------------
01D2 C0E0   T0_INT:  PUSH   ACC
01D4 C0D0            PUSH   PSW
01D6 758CF4          MOV    TH0,#244     ;T0=3MS
01D9 758A48          MOV    TL0,#72
01DC 052B            INC    BUFF_LED_LP
01DE E52B            MOV    A,BUFF_LED_LP
01E0 B40703          CJNE   A,#07,CONT_SCAN
01E3 752B01          MOV    BUFF_LED_LP,#01H
01E6 E52B   CONT_SCAN:MOV   A,BUFF_LED_LP
01E8 14               DEC   A
01E9 23               RL    A
01EA 9001EE           MOV   DPTR,#TAB_SCAN
01ED 73               JMP   @A+DPTR
01EE 21FA   TAB_SCAN: AJMP  SCAN_L1
01F0 4102             AJMP  SCAN_L2
01F2 410A             AJMP  SCAN_L3
01F4 4112             AJMP  SCAN_L4
01F6 411A             AJMP  SCAN_L5
01F8 4122             AJMP  SCAN_L6


E:\单片机\SMT-MCU\S51E文档资料\ASM程序\RS232.ASM                
 
                                                                    页     4
                                                                    07-08-06
                                                                    14:37:33
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

01FA 75A07F SCAN_L1:  MOV   DIG_PORT,#01111111B
01FD E522             MOV   A,BUFF_LED1
01FF 020227           JMP   END_SCAN
0202 75A0BF SCAN_L2:  MOV   DIG_PORT,#10111111B
0205 E523             MOV   A,BUFF_LED2
0207 020227           JMP   END_SCAN
020A 75A0DF SCAN_L3:  MOV   DIG_PORT,#11011111B
020D E524             MOV   A,BUFF_LED3
020F 020227           JMP   END_SCAN
0212 75A0EF SCAN_L4:  MOV   DIG_PORT,#11101111B
0215 E525             MOV   A,BUFF_LED4
0217 020227           JMP   END_SCAN
021A 75A0F7 SCAN_L5:  MOV   DIG_PORT,#11110111B
021D E526             MOV   A,BUFF_LED5
021F 020227           JMP   END_SCAN
0222 75A0FB SCAN_L6:  MOV   DIG_PORT,#11111011B
0225 E527             MOV   A,BUFF_LED6
0227 900237 END_SCAN: MOV   DPTR,#TAB_LED
022A 93               MOVC  A,@A+DPTR
022B F580             MOV   LED_PORT,A
022D 300102           JNB   F_BEEP,EXIT_T0
0230 C2A0             CLR   BEEP
0232 D0D0   EXIT_T0:  POP   PSW

⌨️ 快捷键说明

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