基于AT89S52与PIC16F877A的在线编程控制系统的设计
出处:大侠 发布于:2007-11-13 10:38:32
通常进行的实验或开发时,传统的并行编程方法中,是必不可少的。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序中。在开发过程中,程序每改动就要拔下电路板上的芯片,编程后再插上。随着计算机技术的发展,许多公司推出了带有片内FLASH存储器的MCU,FLASH存储器具有电可擦除、无需后备电源保护数据、可在线编程等特点。在线编程目前有两种实现方法:在线系统编程(ISP)和在线应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的FLASH存储器进行编程,例如AT-MEL公司的单片机AT89S52就提供了一个SPI串行接口对内部程序存储器编程(ISP)。
在线编程(ISP)允许单片机内部运行的程序去改写FLASH存储器的内容,可以在运行过程中修改某些运行参数,已经编程的器件也可以用ISP方式擦除或再编程。单片机在ISP模式下上电时,可以进行ISP操作,在ISP模式下,单片机通过串行端口与外部主机(如PC机或终端)通信,从主机接收命令和数据,用于擦除和再编程代码存储区。ISP的实现一般只需要很少的外部电路辅助实现,使用ISP技术,连接一根线即可对芯片编程,不再需要编程器就可进行单片机的实验和开发,单片机芯片可以直接焊接在电路板上,调试结束即成成品,甚至可以远程在线升级或改变单片机中的程序。
2 AT89S52 ISP原理
AT89S52具有ISP功能。在RESET引脚处于高电平时,利用P1.5(MOSI),P1.6(MISO),P1.7(SCK)三引脚的数据设置或传送达到程序的目的,P1.5(MOSI)引脚作为串行指令的输入端口,P1.6(MISO)引脚作为串行数据的输出端口,P1.7(SCK)引脚作为串行移位脉冲的输入端口。
AT89S系列中的FLASH地址编址是以字节为单位的,在使用过程中应注意高低字节的区别,上位机和目标板通信时,一般都是4字节的指令,第1字节为操作码,第2、第3字节一般为地址码,第4字节为数据。
根据串行波形图和串行编程指令集即可完成有关在线的操作。
3 在线编程控制系统的设计
3.1 系统结构
AT89S52负责的信息交互,主要由显示部分,键盘部分和数据通路组成。
显示部分由AT89S52的P1,P2口组成。P2是八位的显示数据通路,P1.1~P1.4是4个LED的使能线,达到动态显示4位数据的效果。
键盘部分由INT0,INT1,CT0,CT1组成。利用中断的优先级嵌套实现命令与数据的输入,减少了键盘的体积。硬件分配如下:
![]() |
数据通路部分主要是PSP的控制。PSP是PIC16FX系列微处理器专门针对8位机的通用数据端口,由CS,WR,RD,8位数据线组成,可供AT89S52直接控制。
PIC收到PSP的数据后会产生一个中断响应,由软件设计者决定该中断如何处理。因此,可以设定0XC0~0XFF为命令字节,供控制使用,0X00~0X09为功能号,组合起来就可以实现各种控制的命令。
PIC16FX具有4路A/D通道,为10 b,转换时间为56μs。内置硬件看门狗电路,提高了可靠性,节省了软件开支。利用其4路中断功能实现系统复位及检修测试功能。PGM接口(在线编程接口)可采用ICD2进行在线编程和调试。
3.2 系统功能
(1) AT89S52频率4 MHz,具有在线编程,无需编程器直接烧写的功能,用AT89S52[INT0],[INT1],[CT0],[CT1]四个引脚单独引出,方便作为键盘接口。
(2) AT89S52 P1.1~P1.4分别作为LED1~4的使能线,高电平有效,P2口作为LED1~4的八位显示数据口。
(3) AT89S52串口与16F877A的串口可直接进行串口通讯。
(4) AT89S52 P0口及[ALE十P1.0],[WR],[RD]作为8位并行端口与16F877A通讯。
(5) PIC16F877A:频率20 MHz:
① PA-AN[0]-板载A/D通道:VREF+/-可调
AN[1],[5]一外接A/D通道,AN[2-3]-VREF+/-可调,AN[4]-T0CKI-WDT监控。
② PB-PB0-外接INT中断信号,低电平/下降沿有效,PB1,2,4,5作为INPUT1234,低电平/下降沿有效。
3 软件设计
3.1 AT89S52部分
首先执行系统初始化,初始时钟,全局变量,定时器,IO端口,键盘中断服务子程序。
然后进入MAINLOOP循环程序,等待接受键盘中断。如果键盘有输入动作,系统产生键盘中断,进入键盘中断服务子程序。
键盘中断服务子程序的主要功能是生成命令数据包,并根据用户指令处理该命令数据包。
命令数据包的格式如下:
![]() |
若用户确认,则发送到PIC16F877A执行;
若用户取消,则退出键盘中断服务子程序,重新进入等待状态。
3.2 PIC软件结构
PIC系统初始化后首先按默认参数启动PWM输出,在启动过程中不断地进行A/D转换,将采集到的数据根据PID策略调节PWM的占空比,从而达到调节电机转速的目的,同时不问断的监听PSP通道,若收到AT89S52的命令数据包,马上更新默认启动参数,让电机以新参数模式运行在新转速状态。
4 结 语
利用AT89S52作为主处理器,PIC16F87X作为从处理器,使控制大为提高,可达10位PWM。AT89S52与PIC16F87X具有在线编程功能,功能齐全,片上资源丰富,可以满足系统升级要求。随着带有系统在线编程功能的单片机得到广泛应用与发展,ISP技术成了未来发展方向,基于在线编程技术的控制系统应用也将越来越广泛。
参考文献:
[1]. AT89S52 datasheet //tgdrjb.cn/datasheet/AT89S52_970343.html.
[2]. PB1 datasheet //tgdrjb.cn/datasheet/PB1_1148989.html.
[3]. PIC16F87X datasheet //tgdrjb.cn/datasheet/PIC16F87X_1057925.html.
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//tgdrjb.cn,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 同步与异步电机大对比,高、低速电机全解析2025/6/27 16:13:28
- 无刷直流电机工作原理及方法2025/6/20 17:01:12
- 揭秘 BLDC 电机旋转的高效控制策略2025/6/17 15:18:21
- 全面解析:伺服电机、舵机与步进电机的差异区分2025/6/12 16:07:45
- TMS320F2808实现矢量控制变频调速2025/6/9 17:28:09