说明一下,这方案偏向于新手玩家。
对于不断电烧录,官方也出有很多方案,但对新手都不太友好,涉及到通讯,很多新手照搬出现很多问题,用的不顺。
我也算入门不久,也为烧录问题烦恼过,烧录器也坏过不少,官方方案也试过,感觉不太适合自己用,为了方便自己使用,研究出了一套自己的不断电烧录方案,用的挺好,屡试屡成,这个方案最大的优点就是不分芯片类型,只要有ADC功能都可以实现,完全可以照搬到其他芯片直接用,缺点还是有的,占用一个ADC端口,合理利用这个端口,并联多个按键分阻,实现多按键组合也不算浪费。
主要思路就是利用串口的TXD的电压变化来判断是否进入ISP,据我所知我手上的CH340N在空闲时TXD引脚电压接近VCC,当在下载时TXD引脚有一个0.2V压降,利用这一特点来识别是否有下载信号,其他串口下载器有没有这一特点有待验证。
以下是单个测试
以下是代码main.c,根据不同芯片不同接线修改相应配置,硬件连接把串口和芯片连接好,只需把P3.0引脚接一根导线到对应的ADC通道引脚,直接移植套用
- #include "STC8H.H"
- #include "ADCISP.H"
-
- // 用户自定义延时(用于主循环)
- void Delay_ms(unsigned int ms)
- {
- unsigned int i, j;
- for (i = ms; i > 0; i--)
- for (j = 1100; j > 0; j--);
- }
-
- void main(void)
- {
- while (1)
- {
- ADCISP_CH3(); // 检测P1.3,若满足条件则复位进入ISP
- Delay_ms(1000); // 每秒检测一次
- // 其他任务...
- }
- }
复制代码
以下是ADCISP.H头文件复制代码
也可以自己写,只需懂得ADC即可,上电-ADC稳定采样-下载时ADC稳定采样-比较-软件进入ISP-下载烧录程序。
欢迎大家交流讨论学习QQ1757289803,有什么不足有望大佬们指点斧正 |