×

PC与RS232串行通迅程序

消耗积分:0 | 格式:rar | 大小:0.2 MB | 2017-09-06

分享资料个


                S4 EQU P3.6  ; 按键端口
                ORG     0000H          ;程序执行开始地址
                LJMP    START          ;跳至START
                ORG     0003H          ;外中断0中断程序入口
                RETI    ;跳至INTEX0中断服务程序
                ORG     000BH   ;定时器T0中断程序入口
                RETI    ;中断返回
                ORG     0013H          ;外中断1中断入口
                RETI    ;跳至INTEX1中断服务程序
                ORG     001BH   ;定时器T1中断程序入口
                RETI    ;跳至INTT1中断服务程序
                ORG     0023H   ;串口中断入口地址
                RETI    ;中断返回
                ORG     002BH          ;定时器T2中断入口地址
                RETI    ;中断返回
;*******************************************************               
START:         
                MOV     SP,#60H          ; 堆栈在60H开始
         MOV TMOD,#20H    ; 定时器1工作于8位自动重载模式,用于产生波特率
         MOV TH1,#0FDH
         MOV TL1,#0FDH  ; 波特率9600
 
         MOV SCON,#50H  ; 设定串行口工作方式
             ANL PCON,#0EFH  ; 波特率不倍增
 
              SETB TR1   ; 启动定时器1
         MOV IE,#0   ; 禁止任何中断
;*******************************************************  
MAIN:
              JNB RI,MAIN1  ; 是否有数据到来
        CLR RI
        MOV A,SBUF   ; 暂存接收到的数据
        MOV P2,A   ; 数据传送到P2口
        LCALL SEND          ; 回传接收到的数据
 
MAIN1:
        JB       S4,MAIN          ;
        LCALL DELAY10MS   ;  延时去抖动
        JB       S4,MAIN          ;
        JNB      S4,$             ;
        LCALL KEY_SEND  ;  键处理
        SJMP MAIN             ;
;*******************************************************  
; 按键处理子程序 --- 发送字符串到PC 
;******************************************************* 
KEY_SEND:
        MOV DPTR,#TABLE   ; 字串表格地址
SEND_1:
        CLR A                ;
        MOVC A,@A+DPTR        ;
        JZ SEND_END  ; 查到00H时,表示字串结束
        ACALL SEND             ;
        INC DPTR   ; 下一字符
        SJMP SEND_1           ;
SEND_END:
        RET                  ;
;******************************************************* 
; 传送一个字符 ACC为(要发送的数据)
;******************************************************* 
SEND:
       MOV SBUF,A
       JNB TI,$    ; 等特数据传送
       CLR TI   ; 清除数据传送标志
       RET
;******************************************************* 
;按键延时
;******************************************************* 
DELAY10MS:
       MOV R7,#10           ;
DELAY1:
          MOV R6,#0D8H         ;
DELAY2:
       NOP                        ;
       NOP                        ;
       DJNZ R6,DELAY2        ;
       DJNZ R7,DELAY1        ;
       RET                        ;
;******************************************************* 
TABLE:
       DB "www.picavr.com" ;
            DB 0AH,0DH   ;换行/回车
       DB 00H              ;
       END                        ;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !