[STC单片机] 请教:STC15W404AS单片机串口发送程序不能运行。

[复制链接]
2623|4
 楼主| ywl1955 发表于 2016-5-10 15:15 | 显示全部楼层 |阅读模式
原来在AT89C2051上面运行的串口发送程序,移到STC15W404AS不能运行,是什么原因?用示波器观察串口没有输出信号。
        ;================串口发送程序.设工作方式.1
TXD1:        MOV        TMOD,#20H        ;T1为8位自动重装初值模式
               MOV        TH1,#0E6H        ;高八位赋初值,E6=2400,
               MOV        TL1,#0E6H         ;低八位赋初值,E6=2400,
               MOV        SCON,#40H        ;串口初始化成工作方式1
               MOV        PCON,#80H        ;SMOD=0,不加倍模式
               SETB        TR1                ;开定时器T1
               RET
        ;----------------
TXD2:   MOV     1FH,#0ABH
          MOV        R0,#1FH                ;数据首址入R0
          MOV        R2,#07H          ;数据长度入R2
TXDA:        MOV        A,@R0                ;取数据
                MOV        SBUF,A          ;数据发送
TXDB:        JBC        TI,TXDC         ;等待T1变1后转CONT并对T1清0
               SJMP        TXDB
TXDC:        INC        R0                ;指向下一个字节
                DJNZ        R2,TXDA
                RET
fengche1915 发表于 2016-5-10 15:27 | 显示全部楼层
哇,用的还是汇编哦不记得这些呢
你只能去核对下你哪些寄存器用的对不对
heishe1989 发表于 2016-5-10 16:08 | 显示全部楼层
这是因为stc15w404as单片机没有T1定时器,只有T0和T2定时器,详细可以看一下芯片手册,可以在官网上下载,不行可以找我要
 楼主| ywl1955 发表于 2016-5-10 18:07 | 显示全部楼层
谢谢提醒,我在看看
coody 发表于 2016-5-10 23:08 | 显示全部楼层
原因很简单,STC15W408AS系列没有定时器Timer1,你要用Timer2做波特率发生器,Timer2固定为16位自动重装,我一般选择1T模式,用各种主频率都可以得到想要的波尔率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部