第一步:编写串口操作程序。这种自动下载方法需要用到串口中断。所谓自动下载,就是说当前单片机已经在运行程序了,但这个程序必须具备串口中断功能,通过串口接收特定字符标志,使得单片机知道应该从运行用户程序状态退出,复位后进入监控状态(即ISP状态),为下载新的用户程序做好准备。所以,如果你总想不通过冷启动的办法来自动下载程序,就要求当前单片机运行的程序以及你将要下载的程序都具备串口中断及识别特定字符标志的功能,这就需要编写串口操作程序。首先利用定时器产生波特率信号,设置串口。建立头文件timer1.h:
#ifndef _timer1_h_
#define _timer1_h_
//定时器1初始化,串口波特率初始化
//自动ISP功能模块
void timer1_init(void)
{
}
void delay(unsigned int time)
{
}
//自动ISP功能函数
void ISP_Check(unsigned char tmp)
{
}
//串行接收中断
void Serial_int(void) interrupt 4 using 1
{
}
#endif
把上面的timer1.h文件包含进工程文档,并在主程序中调用timer1.h内的初始化函数,如下所示:
#include "STC89C51RC.H"
#include "timer1.h"
sbit beep=P1^7;//P1^7接扬声器驱动电路
void delay_ms(const unsigned int DELAY)
{
}
main()
{
}
第二步:编译工程得到HEX文件,运行STC-ISP.exe。如下图:
注意红线框内的自定义下载的参数设置,即串口和标志字符的设置,一定要与上面第一步在timer1.h文件中设置的一致。在Step1中,选定单片机型号;在Step2中,选定要下载的HEX文件;在Step3中,设置串口;在Step4中,通常使用默认设置。假设单片机正在运行程序(此程序的串口设置、标志字符和自定义下载的参数一致),点击自定义下载选项页的发送按钮,即可完成新的用户程序下载并运行之。
需要特别注意的是:(1)自定义下载选项页中的波特率设置很重要,不能有错;(2)主程序开始最好插入延时语句,避免串口通讯出现问题。(3)这种Auto ISP方式占用了串口和一个定时器,有一定局限性。
上一篇:STM8S学习笔记之四(STM8 time1)
下一篇:流水灯设计的几个程序
推荐阅读最新更新时间:2024-03-16 14:37