STC单片机无线自动下载程序 不用冷启动就能自动下载程序的方法 至此之前,朋友们下载STC单片机程序时每次都要按下电源开关进行冷启动单片机下载程序。对于我们需要反反复复下载程序、调试硬件的朋友来说很不方便,特别是调试小车、其他控制类作品时很不方便。本次视频就要教会大家如何实现——STC单片机自动下载程序和无线自动下载程序。
一、STC单片机自动下载程序
1. STC单片机datasheet中:
1
STC单片机datasheet中可以看出:通过对ISP_CONTR寄存器送入0x60产生的软复位和冷启动复位效果是一样的。因此,这种通过热启动复位就是我们要学习的了。
2. 我们再来看ISP_CONTR寄存器:
ISP_CONTR寄存器
ISP_CONTR寄存器地址是0xE7(STC89C5X系列单片机) 本人查了很多STC单片机资料发现: ISP软复位地址0xE7 STC89C5X系列、STC90C5X系列、STC12C205X系列、STC12C56 X系列、STC12C54 X系列 ISP软复位地址0xC7 STC12C5A60 X系列、STC15W408 X系列、STC12C52 X系列、STC15F104 X系列、STC15F104W X系列、STC15F2K6X系列
3. 我们下载程序的时候单片机是通过串口接收数据的
从串口数据传输来看,发送或接收串口数据时起始位是0,先拉低的电平。因此,只需在单片机串口RXD端(P3.0口)变为低电平时进行热启动复位(ISP软复位地址发送0x60),即可下载程序。 只需在程序中加入: sfr ISP_DOWNS=0xE7;//定义ISP软复位地址 sbit ISP_SW=P3^0;//串口数据接收口 if(!ISP_SW)ISP_DOWNS=0x60; //需要主循环中调入该函数
注意: 1.第一次下载的时候需要冷启动下载,以后每次下载就不用了。 2.因为这种方法占用了串口接收资源,所以用到串口接收功能时建议不用这种方法下载,以免接收数据时自动复位。
二、无线自动下载程序
前面已经实现了单片机程序有线的自动下载,调试小车、飞行器、其他控制类作品有线下载还是很不方便。 接下来介绍用两个蓝牙模块实现无线自动下载程序。 其实很简单,我们只需通过两个蓝牙模块将需要下载的HEX文件传到STC单片机即可。
这时我们只要设定两个蓝牙模块一个位主模块、一个位从模块将它们连入电路就可以了。 设置模块为从模块的步骤和设置主模块的步骤类似,只需AT+ROLE=1改为AT+ROLE=0即可。 由于蓝牙模块默认的波特率为9600,因此,我们在下载程序时,还需设置STC-ISP的波特率,设置为9600。 如果你觉得下载速度太慢可以改为其他波特率,蓝牙模块改波特率的方法在这里就不再讲述。 设置好蓝牙模块连号线就大功告成啦! 介绍到这里,谢谢大家。欢迎大家留言! 相关资料
全部资料51hei下载地址:
STC单片机无线自动下载程序,不用冷启动就能自动下载程序的方法.7z
(3.77 MB, 下载次数: 109)
|