用过STC下载程序的人都知道,STC89系列芯片无法实现在485下面下载程序,问他们技术说,是无法知道485切换脚在哪一个脚。 最近因为必须在485上面做在线下载程序,所以做了一个简易的引导程序。发现其实实现起来是非常简单的,只是宏晶不去做而已。我做的引导程序只有一个条件,就是485总线在复位后处于接收状态 我的实现方法是: 一。下载通讯一般分2部分,1部分是握手部分,另外一部分是数据下载部分 二。握手时候,采用一个简单的通讯包格式来握手 大家知道,宏晶的握手是采用PC机不断的用一个波特率发送数据“0x7F”来实现的,这种方式的优点是快,编程简单。但是对于我介绍的这种方法来说是不适合的。我采用的是PC端不断的发送" STX + 端口号 + ETX" 共3个字节的数据包进行握手 其中端口编号采用 1代表 P0.0 ,2代表 P0.1, 3代表P0.2......... 0 或者33以上的数据代表不用切换,至于STX,和ETX用什么,看大家的需要了。一般是和大家正常通讯的适合的包开始和包结束一样的 三。单片机引导程序接收到 STX+端口+ETX包后,发送一个应答包,这个包一般也是 STX + 状态 + ETX ,这里状态代表什么,我是直接固定 03了。。因为,我的波特率是固定的,一般不用回答什么状态之类的 当然,发送的时候,就必须做一个switch(端口号) case 1 : P0.1=0; break;....... 简单就说这些。希望对大家编程有帮助
|