BTF020开发板定时器2波特率发生器

一般51的单片机都是用定时器1做波特率发生器,今天想了想就用定时器2看看效果,呵呵,其实都是这么回事,配置寄存器,初始化,写自己想好的东西,自己玩玩简单的资源。就这样吧,不过要注意的是要把RX这个脚设置为开漏输出.

懒了,就把这个文件写一起吧。。。╮(╯▽╰)╭。。。


#include <c8051f020.h>


#include <stdio.h>


#define UART0_SYSCLK 22118400
//baudrate = sysclk/((65536-[RCAP2H:RCAP2L)*32)


void delay_myself(void)
{
unsigned int i,j;


for(i=0;i<500;i++)
for(j=0;j<3000;j++);
}


void sysclk_init(void)
{
unsigned int i;


OSCXCN = 0xef;
for(i=0;i<300;i++);
while(!(OSCXCN & 0x80));
OSCICN = 0x68;
}


void Port_init(void)
{
XBR0 = 0x04;
XBR1 = 0x00;
XBR2 = 0x40;


  P0MDOUT = 0x0d;


}




void Timer_2_init(void) //baudrate
{
CKCON = 0x20;
PCON = 0x80;
SCON0 = 0x50;
T2CON = 0x30;



RCAP2H = ((65536-(UART0_SYSCLK/(115200*32)))/256);
RCAP2L = ((65536-(UART0_SYSCLK/(115200*32)))%256);

T2CON |= 0x34;


TI0 = 1;
RI0 = 0;
}






void main(void)
{
EA = 0;
WDTCN = 0xde;
WDTCN = 0xad;
EA = 1;


    sysclk_init();
Port_init();
Timer_2_init();


while(1)
{
printf("hello \n\r");
delay_myself();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值