P89LPC952的UART1

发布者:轻松自在最新更新时间:2016-11-23 来源: eefocus关键字:P89LPC952  UART1 手机看文章 扫描二维码
随时随地手机看文章

P89LPC952的亮点之一是有2个串口。最近我在试验第一个串口UART0很顺利地通过了。但在试验第二个串口UART1时间很不顺利。网上搜索发现也有人无法使UART1正常工作。经过对952进行模拟调试,发现NXP公司的数据手册中UART1的控制寄存器S1CON的地址和PCONA地址相同都是0B5H,而S1CON的正确地址是0B6H,改正之后UART1即可正常工作。另外要注意S1CON的各位不能位寻址,这和S0CON不同。下面是通过UART1发送一组数据的小程序,下载到952能够正确运行。
$NOMOD51
$INCLUDE (REG952.INC)
        RCOUNT EQU 40H
        ADDR EQU 41H
        T_BUFF EQU 70H
        RCV_FLAG    BIT 01H
        LEDCON BIT P1.6
        ORG    0000H
        AJMP MAIN
        ORG    0023H
        ;LJMP SVC_SCI        ; 接收中断入口

        ORG    0100H
;*****************************************************
MAIN:    MOV R7,#20H
     DJNZ R7,$
     MOV P1M1,#00H    
     MOV P1M2,#40H
     MOV DPTR,#P4M1
     MOV A,#00H
     MOVX @DPTR,A
     MOV DPTR,#P4M2
     MOV A,#00H
     MOVX @DPTR,A;设置P4.2(TXD1),P4.3(RXD1)为准双向口
     MOV P4,#0FFH
     CLR LEDCON
     LCALL D1S
     SETB LEDCON
     MOV S1CON,#50H;设置串口为工作方式1,允许串口接收    MOV DPTR,#BRGCON_1      ;设置串口波特率:Fosc / ((BRGR1,BRGR0)+16)
    MOV A,#00H
    MOVX @DPTR,A   ;关波特率发生器
    MOV DPTR,#BRG1_1
    MOV A,#02H
    MOVX @DPTR,A   ;内部RC振荡器,波特率9600
    MOV DPTR,#BRG0_1
    MOV A,#0E0H
    MOVX @DPTR,A   
    MOV DPTR,#BRGCON_1
    MOV A,#03H
    MOVX @DPTR,A   ;打开串口波特率发生器,使用串口波特率发生器
    MOV    IEN2,#00H    ; 禁止UART1接收中断
    MOV ADDR,#60H
    MOV RCOUNT,#0DH
    LCALL TRANSA
         SJMP $
TRANSA:                                        
    MOV T_BUFF,#01H
    MOV T_BUFF+1,#04H
    MOV T_BUFF+2,#00H
    MOV T_BUFF+3,#00H
    MOV T_BUFF+4,#00H
    MOV T_BUFF+5,#00H
    MOV T_BUFF+6,#0F0H
    MOV T_BUFF+7,#0AH    ;发送数据子程序010400000000F00A
    MOV R3,#08H
    MOV R0,#T_BUFF
TRANSA1:    MOV A,@R0
    MOV DPTR,#S1BUF
    MOVX @DPTR,A
WAITHA:    MOV A,S1CON
    JNB ACC.1,WAITHA    ;取TI_1位,判断是否为1
    ANL S1CON,#0FDH    ;TI_1=1,则该位清零(S1CON不能位寻址)
    INC R0
    DJNZ R3,TRANSA1
    MOV RCOUNT,#0DH
    MOV ADDR,#60H
    MOV S1CON,#50H
    MOV IEN2,#04H        ;开放UART1接收中断
    SETB EA        ;开放总中断,等待接收测量数据
    RET

关键字:P89LPC952  UART1 引用地址:P89LPC952的UART1

上一篇:测试STC12C4052的AD
下一篇:如何将BCD码转换成10进制码

推荐阅读最新更新时间:2024-03-16 15:21

P89LPC952UART1
P89LPC952的亮点之一是有2个串口。最近我在试验第一个串口UART0很顺利地通过了。但在试验第二个串口UART1时间很不顺利。网上搜索发现也有人无法使UART1正常工作。经过对952进行模拟调试,发现NXP公司的数据手册中UART1的控制寄存器S1CON的地址和PCONA地址相同都是0B5H,而S1CON的正确地址是0B6H,改正之后UART1即可正常工作。另外要注意S1CON的各位不能位寻址,这和S0CON不同。下面是通过UART1发送一组数据的小程序,下载到952能够正确运行。 $NOMOD51 $INCLUDE (REG952.INC) RCOUNT EQU 40H ADDR EQU 41H T
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved