图片16f887非常简单的串行通讯没有发生?

时间:2018-12-08 14:00:38

标签: usart

我是嵌入式编码的新手,它试图做一些简单的事情,例如在PROTEUS设计软件中使用pic 16f887向串行显示发送“ A”。代码构建成功,但是当我在Proteus软件中执行时什么也没发生。我似乎无法找出我在这里犯的错误!这里需要一些正确的方向。请在下面找到我与本文中的screenshot of Proteus design for the code一起编写的代码

#include <16f887.h>
#include <xc.h>
#pragma config FOSC = XT
#pragma config MCLRE = ON
#pragma config BOREN = ON

#define _XTAL_FREQ 20000000
#define BAUDRATE 9600

void uart_init(void)
{
    TRISC6 = 0; 
    SPBRG = (20000000/(long)(64UL*9600))-1;  //as per data sheet instructions of pic16f887
    SYNC = 0;
    SPEN = 1;
    TX9 = 2;
    TXIE = 0;
    TXEN = 0;
    TXEN = 1;
}


void main(void)
{

    ANSEL = 0;
    ANSELH = 0;     

    uart_init();
    TXREG = 'A';

    while(1);
    {
    }
    //return;
}

0 个答案:

没有答案