搜索
bottom↓
回复: 10

菜鸟紧急求助,51单片机15F2K32S2波特率的修改问题

[复制链接]

出0入0汤圆

发表于 2015-10-22 09:52:34 | 显示全部楼层 |阅读模式
原先程序的波特率是2400
            // 2400               
        PCON &= 0x7F;                                                                 
        S2CON = 0x50;               
        AUXR |= 0x14;               
        T2L = 0x80;                       
        T2H = 0xFB;
现在我想改成4800的,不懂要怎样修改呢?本人是初学者,求大神多多指导                  

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2015-10-22 09:57:26 | 显示全部楼层
自己顶一下,好让大家早点看到

出0入0汤圆

发表于 2015-10-22 10:05:53 | 显示全部楼层
本帖最后由 lcw_swust 于 2015-10-22 10:07 编辑

其实手册里也讲得很清楚了
  1. typedef unsigned char  U8;  
  2. typedef signed   char  S8;
  3. typedef unsigned int   U16;
  4. typedef signed   int   S16;
  5. typedef unsigned long  U32;
  6. typedef signed   long  S32;
  7. //--------------------------------------------------
  8. //                宏定义
  9. //--------------------------------------------------
  10. #undef  BIT
  11. #define BIT(x)    (1<<(x))
  12. //IOSET(PORTB,BIT(0));//将端口在X为1的位置1
  13. #define IOSET(port,x)  (port)|=(x)
  14. //IOCLR(PORTB,BIT(0));//将端口在X为1的位清0
  15. #define IOCLR(port,x)  (port)&=~(x)
  16. //IOCLR(PORTB,BIT(0));//将端口在X为1的位取反
  17. #define IOXOR(port,x)  (port)^=(x)

  18. //系统时钟定义,用于计算波特率
  19. #define FOSC 24000000

  20. //串口初始化
  21. void uart1_init(U32 baud,U8 es)
  22. {
  23.         U16 v;
  24.         IOSET(AUXR,BIT(2));//T2x12
  25.         v=65536-((FOSC*2/4/baud+1)/2);//(*2+1)/2 四舍五入
  26.         //IOCLR(AUXR,BIT(4));//T2R=0;
  27.         T2H=v>>8;
  28.         T2L=v;
  29.         IOSET(AUXR,BIT(4));//T2R=1;
  30.         IOSET(AUXR,BIT(0));//S1ST2=1;选择T2作为波特率
  31.         SCON=0X50;                //0101 0000 方式1,允许接收
  32.         ES        =es;                //允许串行中断
  33. }
复制代码

出0入0汤圆

 楼主| 发表于 2015-10-22 14:32:06 | 显示全部楼层
lcw_swust 发表于 2015-10-22 10:05
其实手册里也讲得很清楚了

谢谢

出0入0汤圆

发表于 2015-10-24 11:21:38 | 显示全部楼层
T2L = 0xC0;                //设定定时初值
T2H = 0xFD;                //设定定时初值

出0入0汤圆

 楼主| 发表于 2015-10-24 15:47:11 | 显示全部楼层
RobotRD 发表于 2015-10-24 11:21
T2L = 0xC0;                //设定定时初值
T2H = 0xFD;                //设定定时初值

算出来了,不过还是谢谢!

出0入0汤圆

发表于 2015-10-24 18:05:55 | 显示全部楼层
本帖最后由 easier 于 2015-10-24 18:08 编辑

#define     BaudRate                (9600L)                                //
#define        SYS_XTAL                (24000000L)                        //
#define        SMOD_K1

#ifdef        SMOD_K1
        #define UART_TH1_K0        (256 - (SYS_XTAL / (16 * 12 * BaudRate)));
#else
        #define UART_TH1_K0         (256 - (SYS_XTAL / (32 * 12 * BaudRate)));
#endif       

出0入0汤圆

发表于 2015-10-24 18:12:38 | 显示全部楼层
    T2L = (65536 - (SYS_XTAL/4/BaudRate));   
    T2H = (65536 - (SYS_XTAL/4/BaudRate))>>8;

出0入0汤圆

发表于 2015-10-29 07:42:53 | 显示全部楼层
STC-ISP烧写软件里有自动计算

出0入0汤圆

 楼主| 发表于 2015-10-29 22:34:54 | 显示全部楼层
easier 发表于 2015-10-24 18:05
#define     BaudRate                (9600L)                                //
#define        SYS_XTAL                (24000000L)                        //
#define        SMOD_K1

这个都不用算了,哈哈,谢谢哈

出0入0汤圆

 楼主| 发表于 2015-10-29 22:35:39 | 显示全部楼层
BXAK 发表于 2015-10-29 07:42
STC-ISP烧写软件里有自动计算

有这个呀,我都没注意,大神啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-6 07:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表