基于AT89S52与PIC16F877A的在线编程控制系统的设计

     作者:陈景贤 陈志生  来源:现代电子技术  
     关键字: 输入 字节 通信 下载

l 引 言

通常进行单片机的实验或开发时,传统的并行编程方法中,编程器是必不可少的。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。在开发过程中,程序每改动一次就要拔下电路板上的芯片,编程后再插上。随着计算机技术的发展,许多公司推出了带有片内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适配器进行在线编程和调试。系统结构如图1所示。

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 电路原理图

AT89S52部分电路原理如图2所示。

PIC16F877A部分电路原理如图3所示。

4 软件设计

4.1 AT89S52部分

首先执行系统初始化,初始时钟,全局变量,定时器,IO端口,键盘中断服务子程序。

然后进入MAINLOOP循环程序,等待接受键盘中断。如果键盘有输入动作,系统产生键盘中断,进入键盘中断服务子程序。

键盘中断服务子程序的主要功能是生成命令数据包,并根据用户指令处理该命令数据包。

命令数据包的格式如下:

若用户确认,则发送到PIC16F877A执行;

若用户取消,则退出键盘中断服务子程序,重新进入等待状态。系统运行流程图如图4所示。

4.2 PIC软件结构

PIC系统初始化后首先按默认参数启动PWM输出,在启动过程中不断地进行A/D转换,将采集到的数据根据PID策略调节PWM的占空比,从而达到调节电机转速的目的,同时不问断的监听PSP通道,若收到AT89S52的命令数据包,马上更新默认启动参数,让电机以新参数模式运行在新转速状态。

PIC16F877A执行软件运行流程图如图5所示。

5 结 语

利用AT89S52作为主处理器,PIC16F87X作为从处理器,使控制精度大为提高,可达10位PWM精度。AT89S52与PIC16F87X具有在线编程功能,功能齐全,片上资源丰富,可以满足系统升级要求。随着带有系统在线编程功能的单片机得到广泛应用与发展,ISP技术成了未来发展方向,基于在线编程技术的控制系统应用也将越来越广泛。

 
原文出处:  http://www.eeworld.com.cn/designarticles/mcu/200709/15667.html

 

 

转载于:https://www.cnblogs.com/khler/archive/2008/08/05/1261109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于PIC16F877A的循迹小车是一种机器人车辆,可以通过传感器检测路面上的黑线,并沿着黑线前进。以下是基于PIC16F877A的循迹小车的一些重要方面: 1. 硬件:循迹小车使用一种PIC16F877A单片机作为主控制器。它具有多个输入/输出引脚,可用于连接和控制各种传感器和执行器。此外,小车还包括电机驱动器、电机和轮子等硬件组件。 2. 传感器:循迹小车通常使用光电传感器来检测路面上的黑线。光电传感器可以通过感应黑线和白色地面之间的颜色差异,发送信号给单片机,以便控制小车的移动方向。 3. 软件:在PIC16F877A单片机上编写程序控制循迹小车。程序会定时读取光电传感器的数据,并根据传感器返回的信号决定小车的移动方向。例如,如果传感器探测到黑线,程序会发送信号给电机驱动器,使小车沿着黑线向前移动。 4. 控制算法:循迹小车的控制算法是整个系统的核心。根据传感器数据,控制算法可以采用简单的循迹策略,如PID控制算法,或者更复杂的算法来实现小车在复杂路线上的稳定行驶。 5. 扩展功能:除了基本的循迹功能外,基于PIC16F877A的循迹小车还可以添加其他功能,如避障、遥控、自动停车等。这些功能可以通过添加更多的传感器和执行器以及相应的编程来实现。 基于PIC16F877A的循迹小车是一种简单而又有趣的机器人项目,通过了解和学习它的工作原理和编程,可以提高对嵌入式系统和机器人技术的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值