新闻  |   论坛  |   博客  |   在线研讨会
51单片机的几种开发方法
patton | 2008-04-09 16:47:20    阅读:4767   发布文章

时间过的真快,转眼已经大学毕业了,自己学习单片机也已经有一段时间了,在这其中有成功后的喜悦,也有失败后的沮丧。在这里把自己单片机入门的一点学习心得写出来与大家一起分享。

随着电子技术的发展,涌现出多种高性能的单片机,但51以其简单实用仍然占有广大的市场,非常适合初学者入门学习,可是现在的仿真器都成百上千,这对我们学习单片机形成了很大的障碍。这里笔者根据自己的学习经验把51单片机的几种开发方法写出来与大家共享,希望能对即将要步入单片机大门的师弟师妹们有所帮助。

1、ISP下载方式开发单片机

用写入器将code烧入,不过,芯片可以在目标板上,不用取出来,在设计目标板的时候就将接口设计在上面,所以叫"在系统编程",即不用脱离系统;在这种情况下最简单有效的方法就是烧片子,也就是写完程序不经过调试直接将生成的二进制文件写入到单片机内运行。当然这里单片机选型很重要,要选择那种带ISP或IAP的单片机如89S**、STC系列的单片机。这对于初学者也许有些难度,但是一旦掌握这种方法会使你的开发进程变得高效。

2、MON51

    MON51是用目标单片机作为仿真器,单片机即仿真器也作目标机的单片机用,其实质是一种ROM监控器。单片机内驻留的是监控程序,控制程序的执行,而真正的用户程序存放在外部RAM中,虽然这种方法会占用单片机的部分资源,但运行速度快,但结构简单,对于特定的开发者来说,实用性强,性价比高,且易于自行制作。

    其原理很简单,单片机是通过RD产生低电平来读取外部RAM的,而通过PSEN产生低电平来读取外部ROM。如果在RD和PSEN间加与门由其输出信号去控制外部RAM62256的OE端,这样就可以骗过单片机使62256既可以充当外部RAM又可以当外部ROM。这样做的巧妙之处在于在下载阶段,62256做外部RAM,监控程序可以通过串口将用户程序写入到外部RAM中,而在程序的运行阶段62256充当ROM,监控程序可以通过跳转指令ljmp 8000h,执行62256中的用户程序。

3、ISD51

    ISD51 (在线调试器)为8051编程用户提供了新的监控调试技术。将 ISD51 进行配置后与您的用户程序连接起来用户就可以通过8051的一个串口直接在芯片上调试程序了。ISD51的软件和硬件可以工作于最小模式。它可以运行于带有外部或内部程序空间的系统并且不要求增加像冯.诺伊曼架构的数据存储器等的特殊硬件部件。

ISD51 在你的8051系统里增加了一个串口中断函数 (ISD51 中断)。当 ISD51 连接到 uVision2 调试器时, 8051 输入 ISD51的中断函数。只要到程序运行一被停止, 8051 就只运行 ISD51 中断服务程序。当 uVision2 调试器发出一个“ Go”的指令, 8051就脱离 ISD51 中断函数并且运行用户程序。如果没有设置任何断点或者如果所有断点设置为硬件断点, 8051 就会全速运行用户程序。如果设置了软件断点, 8051在相应8051 CPU指令后面输入 ISD51 中断函数 。ISD51 中断服务程序会检查是否8051程序到了一个断点地址,如果是,开始和 uVision2 调试器通讯。所以, 当使用软件断点时,8051 的程序运行速度会变得相当慢(相差100倍左右)。一旦“ISD51 系统在线调试器”被作为中断函数实现,其它和 ISD51 系统的中断优先级一样,甚至比ISD51优先级更高的中断函数中就不能再设置断点或者单步执行了。默认状态下,  ISD51 中断函数使用的中断优先等级为0级。uVision2 调试器发送一个 0xA5 的字符到 ISD51 的中断函数中,使用户程序停止并且开始与调试器通讯, 当 uVision2 调试器收到请求信号后,8051 就会开始执行程序。

由于STC89C51可以通过串口下载程序,所以STC89C51+ISD51是一种不错的开发方法,虽然没有复杂的硬件电路,却具有仿真器的断点、单步调试等功能可谓是“物美价廉“。

4、自制仿真器

SST89C54/58(简称89C54/58)是美国SST公司推出的多用途51系列单片机,片内集成了20 kB/36kB的SuperFlashE'PROM程序存储器,分为BLOCK0(16kB/32kB)和BLOCKl(4kB)两块。其中,BLOCKl可以映射(Mapping)到64kB存储空间的最高端或最低端,而且,对于程序计数器来说可以是不可见的。由于其存储结构上独特的优点,使得89C54/58非常适合于用做单片机仿真器。仿真器电路设计如图2所示。图中U2为串行通信接口芯片MAX232,U1为89C54/58。89C54/58的监控程序通过PC机串行口与KEILC51进行通信,实现实时仿真功能。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客