资源简介

本文是关于52单片机定时器计数器2做为串行口波特率发生器使用的例子,类似于定时器1作为波特率发生器工作在模式1下,但是不同的是:定时器2作为波特率发生器是16位自动重装的,位数比定时器1作为波特率发生器要高(定时器1作为串口波特率发生器是8位自动重装的),所以可以支持更高的传输速度,性能也比定时器1要好。程序在Keil 2和Keil 3下调试通过,下载在实验板上达到预期效果。AT89C52及其以上、AT89S52及其以上、STC89C52及其以上测试正常运行。

资源截图

代码片段和文件信息

/*
程序功能:52系列单片机定时器计数器2作为串行口波特率发生器使用  
程序设计:燕山大学 鲁信琼  

晶振选择:24MHz 如果晶振不匹配,请修改延时函数参数;P2^6口接数码管段选控制位; P2^7口接数码管位选控制位;

本实验注意事项:  
1. 定时器2作为波特率发生器是16位自动重装,而定时器1作为波特率发生器是8位自动重装,定时器2使用RCAP2H去重装TH2,用RCAP2L去重装TL2;定时器1是使用TH2去重装TL2。
2. 定时器2作为波特率发生器,工作在模式1和模式3,波特率=振荡期频率/[32×(0xFFFF-)] 指RCAP2H作为高8位、RCAP2L作为低8位构成的16位无符号整数。

承接51单片机、PIC单片机程序、VB/VC++上位机程序、电子产品软硬件设计开发工作  

EMail: xqlu@ysu.net.cn  QQ: 9790335 
*/
#include 
#define uchar unsigned char
#define uint unsigned int
sbit DULA=P2^6;
sbit WELA=P2^7;
uchar str[]=“Yanshan university!“;

uchar i;

//24MHz晶振下延时x毫秒函数
void delay_ms(uint xms)
{
uint xy;
for(x=xms; x>0; x--)
for(y=248; y>0; y--);
}

// 主函数初始化24MHz晶振 28800bps波特率,有误差,建议大家使用11.0592MHz或者22.1184MHz
// 使用11.0592MHz时使用9600bps无误差; 22.1184MHz使用19200、14400、28800bps无误差,参数请大家按照上面的公式自己算。
void main_init()
{
DULA=0;
WELA=0;
delay_ms(1);

SCON=0x50; //SM0 SM1 SM2 REN TB8 RB8 TI RI
RCAP2H=(65536-26)/256;
RCAP2L=(65536-26)%256;
TH2=RCAP2H;
TL2=RCAP2L;
T2CON=0x34; //TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 
delay_ms(1);
}

void main()
{
main_init();

i=0;
while(str[i]!=‘\0‘)
{
TI=0;
SBUF=str[i];
while(!TI);
TI=0;
i++;
}
while(1);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-09-05 00:50  T2_COM_CLK\
     文件        1577  2010-09-05 00:49  T2_COM_CLK\main.c
     文件        3994  2010-09-05 00:38  T2_COM_CLK\main.LST
     文件        4522  2010-09-05 00:38  T2_COM_CLK\main.OBJ
     文件        4430  2010-09-05 00:38  T2_COM_CLK\T2_COM_CLK
     文件         812  2010-09-05 00:38  T2_COM_CLK\T2_COM_CLK.hex
     文件          46  2010-09-05 00:38  T2_COM_CLK\T2_COM_CLK.lnp
     文件        4392  2010-09-05 00:38  T2_COM_CLK\T2_COM_CLK.M51
     文件         960  2010-09-05 00:50  T2_COM_CLK\T2_COM_CLK.Opt
     文件         188  2010-09-05 00:50  T2_COM_CLK\T2_COM_CLK.plg
     文件        2107  2010-09-05 00:49  T2_COM_CLK\T2_COM_CLK.uv2
     文件         832  2010-09-05 00:49  T2_COM_CLK\T2_COM_CLK_Opt.Bak

评论

共有 条评论