数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2668|回复: 5

[C51] 逆潮流而动、做一个另类的USB-TTL/STC_ISP自动下载线(多图、附源码)

[复制链接]
发表于 2022-11-16 11:57:36 | 显示全部楼层 |阅读模式
最近好多帖子都用到了STC的USB下载、调试,可以预见STC单片机通过USB来下载烧录、调试仿真应该会成为主要方法,而我仍然要做一个串口的STC_ISP下载线,所以算是“逆潮流而动”了。

一、制作原因:
STC_ISP下载线需要用到电源开关和对应不同电压芯片的电压转换开关,对于电源开关一般都是通过不同的方法进行自动控制,而电压切换却总是需要开关控制的。有许多USB-TTL模块上带有5V、3.3V的输出电压,通过调整插线就可以为不同电压的芯片烧录代码,但这种应用在台式电脑上需要用一根USB延长线来将电脑USB接口弄到桌面上来连接USB-TTL模块,而这种延长线的母座用一段时间后就经常会接触不良,本制作就是应对这种应用场景的,其他应用方式在此不做讨论。

二、设计方案:
方案很简单,就是将USB-TTL模块固定插接到电脑后侧的USB口,将串口线延长后与桌面上的这个小板子连接,而USB-TTL模块仅输出5V电源和5V电平的串口信号,电源电压和信号电平的变换由这个小板子来完成、选择不同的插针为不同电压的单片机烧录代码。

三、原理、PCB、制成品图片:






四、控制代码:

  1. //代码原创wannenggong于2022年11月4日、应用或分享此代码时请标明出处
  2. //下载监控芯片:STC15W204S(SOP8贴片)
  3. //代码烧录时设置内部时钟频率为11.0592MHz
  4. //控制原理:利用CH340G_RTS通讯期间出现的低电平信号触发监控单片机、控制目标STC单片机断电烧录
  5. //目标芯片下载过程中LED闪烁、下载完成后蜂鸣器响三声提示音
  6. #include<STC15W.h>
  7. #include <intrins.h>

  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. //--------------------------------------------------------------
  11. sbit Power=P3^3;        //电源开关控制端
  12. sbit LED=P3^2;                //电源指示灯
  13. sbit Buzzer=P5^5;        //5V有源蜂鸣器控制端、设置为推挽输出
  14. sbit Signal=P5^4;        //CH340G_RST低电平信号检测端、设置为高阻输入

  15. bit flag,flag_BB;        //flag-启动下载标志、flag_BB-蜂鸣器响3声标志
  16. //----n个100毫秒延时函数----------------------------------------
  17. void delay_100ms(uchar n)//@11.0592MHz
  18. {
  19.     uchar i, j, k;
  20.     do
  21.     {
  22.         _nop_();
  23.         _nop_();
  24.         i = 5;
  25.         j = 52;
  26.         k = 195;
  27.         do
  28.         {
  29.             do
  30.             {
  31.                 while (--k);
  32.             }
  33.             while (--j);
  34.         }
  35.         while (--i);
  36.     }
  37.     while (--n);
  38. }
  39. //----n微秒延时函数-----------------------
  40. void delay_nus(uint n)                //@11.0592MHz
  41. {
  42.     do
  43.     {
  44.         _nop_();
  45.         _nop_();
  46.         _nop_();
  47.     }
  48.     while (--n);
  49. }
  50. //----下载完成后提示音(三声)-------------------------
  51. void Buzzer_set(void)
  52. {
  53.     uint a;//定义变量用于发声的长度设置
  54.     uchar b;
  55.     if(flag_BB)
  56.     {
  57.         flag_BB=0;
  58.         for(b=3; b>0; b--)
  59.         {
  60.             for(a=300; a>0; a--)
  61.             {
  62.                 Buzzer = ~Buzzer;//取反扬声器驱动口,以产生音频
  63.                 delay_nus(400);//单音长度设置
  64.             }
  65.             delay_100ms(1);
  66.         }
  67.         Buzzer = 0;
  68.     }
  69.     else
  70.         Buzzer = 0;//发声结束后扬声器关闭
  71. }
  72. //====主函数===========================================
  73. void main(void)
  74. {
  75.     P5M0=0x20;
  76.     P5M1=0x10;         //设置P5.4为高阻输入、P5.5为推挽输出
  77.     P3M1=0x00;
  78.     P3M0=0x08;        //p3.3推挽输出用于驱动NMOS
  79.     Power=1;        //开关打开
  80.     LED=0;                //点亮指示灯
  81.     Buzzer=0;        //不发声
  82.     Signal=1;        //置高电平等待检测低电平信号
  83.     flag_BB=1;        //清除蜂鸣器标志
  84.     flag=0;                //清除下载启动标志
  85.     while(1)
  86.     {

  87.         if(Signal==0)
  88.         {
  89.             delay_100ms(10);
  90.             if(Signal==0)
  91.             {
  92.                 flag=1;
  93.             }
  94.         }
  95.         if(flag)
  96.         {
  97.             Power=0;
  98.             LED=1;
  99.             delay_100ms(5);                //断电0.5s后为单片机上电
  100.             Power=1;
  101.             while(Signal==0)
  102.             {
  103.                 LED=~LED;                        //下载过程中闪烁提示、等待操作完成
  104.                 delay_100ms(1);
  105.             }
  106.             return;
  107.         }
  108.         LED=0;//电源指示灯亮起
  109.         Buzzer_set();//响三声提示下载结束
  110.     }
  111. }
复制代码


焊接:https://www.mydigit.cn/thread-393650-1-1.html





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 4家元 +180 收起 理由
玛德陛下 + 20 謝謝分享
飞向狙沙 + 20 原創內容
家睦 + 120
jf201006 + 20 原創內容

查看全部打赏

发表于 2022-11-17 17:35:02 | 显示全部楼层
感谢分享,虽然看不懂,但很震撼。
回复 支持 反对

使用道具 举报

发表于 2022-11-17 21:39:22 | 显示全部楼层
如果支持脱机下载就完美
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2022-11-18 09:31:05 | 显示全部楼层
lailai518 发表于 2022-11-17 21:39
如果支持脱机下载就完美

STC-USB Link1D 最新的下载工具,支持 在线下载 & 脱机下载 & 支持在线仿真

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2022-11-18 09:36:22 | 显示全部楼层
谢谢分享  一种很好的方法
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2022-11-18 09:58:46 | 显示全部楼层
STC-USB Link1D 最新的下载工具免费+包邮 送 STC-USB Link1D 工具,支持 在线下载 & 脱机下载 & 支持在线仿真,经典线路图如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-22 06:17 , Processed in 0.234000 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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