找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2713|回复: 5
收起左侧

没有T1的STC15W408AS,只能用定时器T2作波特率发生器来实现自动烧写

[复制链接]
ID:71233 发表于 2021-11-4 09:29 | 显示全部楼层 |阅读模式
近日在尝试用软件方式来实现STC15W408AS的自动烧写,结果被戏弄了。开始按惯性思路,使用T1作为串口1波特率发生器,结果毫无动静,检查了源码,没有发现什么问题。后来查看了手册,才发现这芯片没有T1(其实以前使用过这芯片,知道没有T1,只是时间太久给忘了)。后来根据手册,使用T2作波特率发生器,并将波特率设置为2400,成功实现了软件方式自动烧写。
        T2是一个16位自动重装的定时器,只要设置一次初值即可。
具体的单片机程序如下:
sfr  T2H=0xD6;     // T2高八位
sfr  T2L=0xD7;     // T2代八位
sfr  IE2=0xDF;     //第2位为T2中断允许位,只用串口通讯可以不用使用中断
sfr  AUXR=0x8E;    //辅助寄存器
sfr  IAP_CONTR  = 0xc7;         //IAP控制寄存器
uchar   ge,ckval;
#define T2_temp_H  0xFF//2400bps
#define T2_temp_L   0xA0//
void main()
{
       AUXR &= 0xFB;           //定时器2时钟为Fosc/12,即12T
       AUXR |= 0x01;            //选择定时器2为波特率发生器
       PCON &= 0x7F;          //波特率不倍速
       SCON = 0x50;             //8位数据,可变波特率   
       T2L=T2_temp_L;        //T2为16位自动重装定时器
       T2H=T2_temp_H;        //
       AUXR |= 0x10;            //启动定时器2
       ES=1;       //打开串口中断
       PS=1;       //串口中断优先      
       EA=1;       //打开总中断  
       while(1)
       {                    
              //其他程序
              if(ge>10)IAP_CONTR= 0x60; //重启并自动下载            
       }
}      
void UARTInterrupt( ) interrupt 4 //using 0
{
      ckval=SBUF;//接收到的串口数据
       RI=0;            
       if(ckval==0x7f)  {ge++;}   
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:262 发表于 2021-11-5 05:48 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:795427 发表于 2021-11-7 15:08 | 显示全部楼层
测试了并没有实现所描述的免冷启动,软件复位自动下载功能。
回复

使用道具 举报

ID:624769 发表于 2021-11-7 16:42 | 显示全部楼层
perseverance51 发表于 2021-11-7 15:08
测试了并没有实现所描述的免冷启动,软件复位自动下载功能。

他这个,波特率必须 2400, 就是说你ISP上面,下载波特率 最高,最低,都必须2400(当然,单片机也要设置2400波特率),不然,是不可能收到连续10次 0x7F的。

所以,用起来是比较麻烦的,相比起来,如果调试过程中不需要用到串口(其实看他波特率2400应该也没有用到串口),那么,直接开INT4中断,然后如果要防止误触,INT4可以设置成需要累加10次,超过10次就 IAP_CONTR = 0x60; 会更简单省力,因为对波特率完全没有要求。
回复

使用道具 举报

ID:71233 发表于 2021-11-8 06:58 | 显示全部楼层
是的,我的程序没有用到串口,所以将其设置为2400的波特率用来实现自动烧写,平时使用,串口一般都设置为9600。
回复

使用道具 举报

ID:137736 发表于 2021-12-6 21:13 | 显示全部楼层
很好,自动下载,做成个头文件更好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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