pic16f1933 c语言,请教PIC16F1933怎样通过串口发送数据

我用单片机PIC16F1933的内部4M Hz振荡,想通过单片机的串口脚TX发送数据出去。程序如下:

//PIC16F1933无外部晶振,使用内部4M振荡

//RC6做TX,  RC7做RX

#include

//配置字1

__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_ON & CPD_ON & BOREN_ON &

CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);

//配置字2

__CONFIG(WRT_ALL & VCAPEN_OFF & PLLEN_OFF & STVREN_ON & BORV_25 & LVP_ON);

typedef unsigned char UCHAR;

typedef unsigned int UINT;

volatile UCHAR cRC_Dat[30];

void PortInit1933(void);

void UARTinit(void);

void DLYxmS(UCHAR ci);

void DLYx10mS(void);

void PortInit1933(void)

{

ANSELA=0x0;

SRCON0=0x0;

TRISA=0x8;     //RA4接Busy输出,RA3接/strobe输入

LATA=0x8;      //RA4 0,RA3 1

ANSELB=0x0;

TRISB=0x3;     //RB0接

LATB=0xc3;      //RB7,RB6是ISP引脚 RB0输入, RB1输入

OPTION_REG=0x0; //允许弱上拉

WPUB=0x3;      //RB0、RB1上拉

LCDCON=0x0;    //禁止LCD

TRISC=0xff;    //RC7-RX in,RC6-TX out, RC5~0 in

LATC=0xff;     //

}

void UARTinit(void)

{

SPBRGH=0x0;

SPBRGL=25;     //9600bps

BAUDCON=0x0;   //BRG16=0

//bit4:SYNC 0=异步模式 ,bit3: SENDB 1=在下一次发送时发送同步间隔字符 (完成时由硬件清零)

//bit2:高波特率选择位,1  = 高速;;bit1:TRMT 发送移位寄存器状态位,1  = TSR 为空

//bit0:TX9D 发送数据的第 9 位

TXSTA=0xc;     //,

RCSTA=0x80;    //bit7:SPEN=1使能串口, bit4:CREN连续接收使能位 0  = 禁止接收器

}

void DLYxmS(UCHAR ci)

{

UINT ix;

for(; ci !=0; ci--)

{

for(ix=0x7fff; ix !=0; ix--)  //ix=0x145

{

asm("nop");

}

}

}

void DLYx10mS(void)

{

UINT ix;

for(ix=0x589; ix !=0; ix--)  //ix=0x145

{

asm("nop");

}

}

void main(void)

{

volatile UCHAR ci;

OSCCON = 0x6a;    //4MHz  01101010

do

{

asm("nop");

ci = OSCSTAT;   //bit 4 HFIOFR:高频内部振荡器就绪位,1  = HFINTOSC 就绪

}while(!(ci & 0x10));  // Internal Clock Oscillator Status Stable bit

DLYx10mS();

PortInit1933();

UARTinit();

for(;;)

{

TXEN=1;

for(ci=0;ci<25;ci++)

{

cRC_Dat[ci]=ci;

TXREG=cRC_Dat[ci];

DLYx10mS();

}

DLYxmS(250);

TXEN=0;

DLYxmS(250);

}

}

编译烧录正常,就是发不出数据。向大伙求助,哪里错了?请指点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值