找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2487|回复: 8
收起左侧

STC单片机程序添加自动下载功能实测

[复制链接]
ID:25310 发表于 2021-11-23 16:49 | 显示全部楼层 |阅读模式
STC单片机程序添加自动下载功能
1.     程序中首先加入串口1程序,通俗的说你的程序中要有串口1功能;
2.     频率和波特率注意事项,内置晶振的需要记住程序里面使用的频率,比如默认在24.000MHZ。记住程序里面使用的波特率比如115200;
3.     先将程序按正常流程烧录一次;
4.     设置ISP烧录软件的波特率(最低波特率和最高波特率都设置为你程序中的波特率比如115200);
5.     开始你的表演啦!



串口初始化程序
voidUartInit(void)             //115200bps@24.000MHz
{
       SCON = 0x50;             //8位数据,可变波特率
       AUXR |= 0x40;            //定时器1时钟为Fosc,1T
       AUXR &= 0xFE;           //串口1选择定时器1为波特率发生器
       TMOD &= 0x0F;         //设定定时器116位自动重装方式
       TL1 = 0xCC;         //设定定时初值
       TH1 = 0xFF;         //设定定时初值
       ET1 = 0;        //禁止定时器1中断
       TR1 = 1;        //启动定时器1
EA= 1;   
}


串口中断程序:
unsigned char n;
/***************串口中断程序*****/

void UART1_int(void) interrupt UART1_VECTOR
{
       if(RI)
       {
              RI = 0;

              if(SBUF==0x7f)
               {
                               if(n++>=10)
                               {
                                    IAP_CONTR=0X60;  NOP5;

                               }


                        }

/****************你的串口程序****************/   

/****************************************************/  
}
}

51hei.png

评分

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

查看全部评分

回复

使用道具 举报

ID:624769 发表于 2021-11-25 02:38 | 显示全部楼层
不实用啊……

INTCLKO = 0x40;       //开EX4 中断  P3.0
EA   = 1;                   //开总中断

void Int4() interrupt 16
{
     IAP_CONTR = 0x60;
}

这样不省事么? 都不用去管波特率。
回复

使用道具 举报

ID:137736 发表于 2021-12-6 20:49 | 显示全部楼层
188610329 发表于 2021-11-25 02:38
不实用啊……

INTCLKO = 0x40;       //开EX4 中断  P3.0

不行,这样占用了串口。版主的例子串口可以复用,因为检测了下载命令
回复

使用道具 举报

ID:137736 发表于 2021-12-6 20:55 | 显示全部楼层
做成个头文件,.c,.h;使用时包含进去就更好了。
回复

使用道具 举报

ID:284226 发表于 2022-10-6 15:43 | 显示全部楼层
这么简单就可以了吗?中断加到一个头文件就可以了?
回复

使用道具 举报

ID:526108 发表于 2022-10-6 16:37 | 显示全部楼层
我是利用P30的外部中断实现自动下载
回复

使用道具 举报

ID:624769 发表于 2022-10-6 16:50 | 显示全部楼层
zmc419 发表于 2021-12-6 20:49
不行,这样占用了串口。版主的例子串口可以复用,因为检测了下载命令

要复用串口就不该是检测 0x7F  而是检测 指定字符串,
用下载器的  发送自定义命令并转到ISP 选项,并且在那里设置 波特率,而不是直接设置 下载波特率。

所以说白了,楼主的例子其实基本就是当独用来用的。这种情况下,不如直接外部中断了。
回复

使用道具 举报

ID:961114 发表于 2022-10-9 09:03 | 显示全部楼层
回复

使用道具 举报

ID:961114 发表于 2022-10-9 09:04 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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