找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4337|回复: 0
打印 上一主题 下一主题
收起左侧

[求助][原创]求助:tl16c554串口扩展发送程序纠错

[复制链接]
跳转到指定楼层
楼主
ID:23292 发表于 2010-4-23 00:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

本人用tl16c554给at89s52扩展四个串口,在编写简单的单片机发送程序的时,遇到麻烦困扰了好久,还希望那位大侠指点一下:

以下是我的源程序:欲实现发送10个ASCII码

 

 CSA    EQU      0000H
 CSB EQU      2000H
 CSC EQU      4000H
 CSD EQU      6000H
 ORG    0000H
 LJMP MAIN
 MAIN: 
   LCALL  INITIAL
   LJMP  SEND
   LJMP  QUIT
 INITIAL:
   LCALL  TL16C554
     RET
 

 TL16C554:
     MOV  DPTR,#CSA ; UARTA 
     LCALL  INITIAL1
    MOV  DPTR,#CSB
    LCALL  INITIAL1
    MOV  DPTR,#CSC
     LCALL  INITIAL1
    RET
 
 INITIAL1:
    MOV  DPL,#03H   ;DPTR指向LCR 
    MOV  A,#0BH           ;
    MOVX  @DPTR,A ; (LCR0,LCR1)=(1,1),8data bits, LCR2=0,1 stop bit,LCR3=1,Parity Enabled

,LCR4=0, Odd Parity    
                        ;LCR5=0,Stick parity disabled,LCR6=0,Break disabled,LCR7=0,Access Receiver

Buffer    
    MOV  DPL,#02H;DPTR指向 FCR 
    MOV  A,#87H
    MOVX  @DPTR,A;FCR0=1,使能FIFO的发送和接收 ,FCR1=1清除接收器FIFO,FCR2=1 清除发送器,   (

bit6,bit7) =(0,1) 触发能级为8个字节    
    MOV  DPL,#03H ;指向LCR  
    MOV  A,#8BH ; LCR7=1         

   
    MOVX  @DPTR,A;DALB=1允许写入波特率因子   
    MOV  DPL,#00H  ;指向DLL
    MOV  A,#1AH
    MOVX  @DPTR,A
    MOV  DPL,#01H  ;指向DLM
    MOV  A,#00H
    MOVX  @DPTR,A  ;拨特率为19200   
    MOV  DPL,#03H;指向LCR         

    
    MOV  A,#0BH   ;DALB =0 ;
    MOVX  @DPTR,A;允许访问其他寄存器  
    MOV  DPL,#04H;指向MCR
    MOV  A,#08H
    MOVX  @DPTR,A;MCR3=1外部串行中断使能  
    MOV  DPL,#01H;指向IER
    MOV  A,#00H
    MOVX  @DPTR,A;中断使能
    ;RET
SEND:
      MOV  R0,#65H; 发送的第一个ASCII码,对应数字0
    MOV  R7,#08H;总共发送8个ASCII码
    MOV  DPTR,#CSA;选通A通道         
SEND1: 
    MOV   DPL,#05H;读线路状态寄存器LSR
    MOVX  A,@DPTR
          ANL  A,#60H;提出LSR5,LSR6位
    CJNE  A,#60H,SEND1;若FIFO和TSR都为空则顺序执行,否则继续读LSR状态
    MOV  DPL,#00H
    MOV       A,R0;将字节写入THR
    MOVX  @DPTR,A 
    ;NOP
    INC  R0
    DJNZ  R7,SEND1 
    MOV  DPTR,#CSB;S
   ; JMP  $      ;不加这条指令时,不断发送数据,加上时接受到的是乱码,纠结中啊

QUIT:  
    END   
;==========================================================================================================

不加jmp $时,如附件中图一所示:不段重复发送数据

加上时,如图二所示,接受到乱码。

 

恳求哪位大侠指点一下啊

 

邮箱:yuguolincsu@126.com

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表