打印

如何使USART串口输出正确的异步通信波形?

[复制链接]
3219|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与时俱进|  楼主 | 2008-4-6 12:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用PIC16F914做串行通信试验时,为什么在TX/RC6/SEG9引脚上用示波器测得的波形是lcd的驱动电压波形?
串口模块已经作了如下初始化:
banksel TXSTA
movlw b'00100000'    ;TXEN=1发送使能,SYNC=0异步通信
movwf TXSTA
movlw .51        ;2400bps
movwf SPBRG
clrf STATUS        ;RCSTA在bank0
movlw b'10000000'    ;SPEN=1串行端口使能(将RC7/RX 和RC6/TX引脚配置为串行端口引脚)
movwf RCSTA
沙发
兰天白云| | 2008-4-6 21:03 | 只看该作者

把LCD功能关了

再串行端口使能试试看

使用特权

评论回复
板凳
与时俱进|  楼主 | 2008-4-7 09:23 | 只看该作者

lcd功能要用啊老大

根据张明峰书上所说,设置在异步下只要使SPEN=1,USART模块就接管了TX和RD引脚。难道这种说法错了吗?

使用特权

评论回复
地板
xieyuanbin| | 2008-4-7 10:13 | 只看该作者

初始化模式,试将TRIS方向也设置一下看

    BSF    RCSTA,CREN        ;接收模块使能
    BSF    RCSTA,SPEN        ;使能EUART模块
    
    BSF    STATUS,RP0
    BSF    TRISC,RX
    BCF    TXSTA,SYNC        ;关闭同步模式,异步通信
    BSF    TXSTA,TXEN        ;发送模块使能
    MOVLW    .12
    MOVWF    SPBRG
    CLRF    SPBRGH            ;波特率,8M时为9600BPS。
    BSF    PIE1,RCIE        ;232接收中断开
    BSF    INTCON,PEIE

使用特权

评论回复
5
与时俱进|  楼主 | 2008-4-8 09:49 | 只看该作者

谢谢两位!看来这个栏目的版主更热心

TRISC也设置过了,没有用。
不过我要把楼上的代码原封不动地拿来试试看,毕竟-实践是真理的唯一标准!

使用特权

评论回复
6
xieyuanbin| | 2008-4-8 19:55 | 只看该作者

前面已经设置过TRISC,TX=0

使用特权

评论回复
7
与时俱进|  楼主 | 2008-4-14 10:53 | 只看该作者

实验报告:

LCDEN=0关闭LCD模块后,TX输出通信波形正常。
LCDEN=1启用LCD模块,但是s9/TX引脚设置成数字I/O后,TX输出通信波形也正常。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1290

帖子

2

粉丝