基于SST89C54/58的单片机仿真器的设计

发布者:二进制心灵最新更新时间:2006-08-09 来源: 现代电子技术关键字:单片机  存储器  仿真 手机看文章 扫描二维码
随时随地手机看文章

1 概 述

  SST89C54/58(简称89C54/58)是美国SST公司推出的多用途51系列单片机,片内集成了20 kB/36 kB的SuperFlashE'PROM程序存储器,分为BLOCK0(16kB/32kB)和BLOCKl(4kB)两块。其中,BLOCKl可以映射(Mapping)到64kB存储空间的最高端或最低端,而且,对于程序计数器来说可以是不可见的。由于其存储结构上独特的优点,使得89C54/58非常适合于用做单片机仿真器。

2 SST89C54/58的程序存储结构

2.1 存储器结构

  89C54/58片内的存储块BLOCK0占据从0000H到3FFFH/7FFFH的存储空间,BLOCKl占据从F000H到FFFFH的存储空间。89C54/58存储结构如图1所示。

  当EA#=1时,对于程序计数器来说,BLOCK0始终是可见的,用于代码的存取;BLOCKl代码的存取是通过特殊功能寄存器SFCM,SFCF,SFAL,SFAH,SFDT和SFST来实现的。当SFCF[7]=1时,BLOCKl是可见的。

2.2 存储器再映射(Re-mapping)

  89C54/58的存储器再映射功能使得对BLOCK0进行编程时,其系统中断向量区依然可用(普通8051系列单片机无此特点)。89C54/58提供4种存储器再映射方式,存储器再映射数量的大小由MAP_ENCl:0)控制,当MAP-


3 基于SST89C58的单片机仿真器的设计

3.1 设计原理简介

  仿真器电路设计如图2所示。图中U2为串行通信接口芯片MAX232,U1为89C54/58。89C54/58的监控程序通过PC机串行口与KEILC51进行通信,实现实时仿真功能。

3.2 仿真器监控程序的加栽

  SST公司提供的89C54/58仿真器监控程序SoftlCE(Softwareln-CircuitEmulator)可通过SST公司提供的BSL(Boot-StrapLoader)加载或通过支持SST89C54/58的第三方编程器写入。

3.3 仿真器性能简介

  基于89C54/58的单片机仿真器除不支持串行口仿真外,具有通用仿真器的所有功能。与KEIL软件相结合,可完成大部分单片机应用系统的仿真设计。

  其具体性能如下:

(1)可下载IntelHEX格式文件。
(2)支持汇编及C51源代码调试。
(3)支持在线汇编。
(4)支持单步(Step)功能。
(5)支持步越(StepOver)功能。
(6)最大可设置10个固定断点和一个临时断点。
(?)支持读写数据存储器。
(8)支持读写程序存储器。
(9)支持读写特殊功能寄存器。
(10)支持读写端口。
(11)具有IAP(1n-ApplicationProgramming)功能。

3.4 KEIL软件及设置

  KEIL C51是德国KEIL公司推出的Windows版的8051系列单片机开发套件,可用于编译C源程序、汇编源程序,链接和定位目标文件和库,创建HEX文件以及调试目标程序,并内嵌有RTX51实时操作系统,可简化复杂的多任务实时应用系统的设计。与89C54/58仿真器配合时,在KEIL开发环境中设置如下:

(1)创建项目,并选择SST单片机SST89C54/58。
(2)从菜单选择"Options for,Target 1/。
(3)在"OptionsforTarget,Targetl"窗口中,选择使用KEILMonitor-51Driver,如图3所示。
(4)双击图3中Settings键,设置目标参数如图4所示,即可编译调试目标程序。

4 结 语

  综上所述,由于SST89C54/58独特的存储器结构,使得89C54/58除用做通用的51单片机外,只需配以少量的外围电路,即可做成51系列单片机仿真器。与功能强大的KEIL软件相结合,为单片机工程师提供实时仿真开发环境,可完成大部分单片机应用系统的设计.详细设计资料可从SST公司网站www.sst.com下载。

关键字:单片机  存储器  仿真 引用地址:基于SST89C54/58的单片机仿真器的设计

上一篇:基于SST89C54/58的单片机仿真器的设计
下一篇:基于X25045的新型看门狗电路

推荐阅读最新更新时间:2024-03-16 12:17

单片机入门教程第22课-串行口应用编程实例
1. 串口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就可以扩展一个并行口。 例:用8051串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。 串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始通讯之前,都要先对控制
[单片机]
<font color='red'>单片机</font>入门教程第22课-串行口应用编程实例
单片机使用printf函数的两种办法
今天就简单来说说怎么在51单片机中使用 printf 函数:包括使用自带的printf函数和自己动手写一个printf函数,再贴代码之前先介绍几个相关的知识,主要用于自己写printf函数。 ①C语言函数:vsprintf, 其原型为int vsprintf(char *string, char *format, va_list param);,作用为将param按格式format写入字符串string中,因此他可以用于将任何格式数据转化为字符串数据,比如把整数97转化为ASCII码的97的程序就像下面这样vsprintf(string, %d ,97),当然还有一点需要注意:在keil里面使用sprintf需要包含stdio.h
[单片机]
51单片机 printf函数 调试程序
主要分三个部分(1)51单片机程序部分;(2)keil工具部分;(3)为何printf输出为串口。 (1)51单片机程序部分 #include stdio.h #include reg51.h void InitUART(void)//使用定时器1作为串口波特率发生器 { TH1 = 0xF3; //晶振12mhz 波特率串口上设为2400才不显示乱码代码是4800 TL1 = TH1; TMOD |= 0x20; //定时器1方式2 SCON = 0x50; //串口接收使能 ES = 1; //串口中断使能 TR1 = 1; //定时器1使能 TI = 1; //发送中断
[单片机]
汇编代码、机器码和存储器的关系以及数据的表示
即使使用C/C++或者其他高级语言编程,最后也会被编译工具转换为汇编代码,并最终作为机器码存储在内存、硬盘或者其他存储器上。在调试程序时,经常需要阅读它的汇编代码,以下面的汇编代码为例: 2023404: e5901000 ldr r1, 2023408: e3c110ff bic r1, r1, #255 ; 0xff 202340c: e3c11cff bic r1, r1, #65280 ; 0xff00 2023404、2023408、202340c是这些代码的运行地址,就是说运行前,这些指令必须位于内存中的这些地址上; e5901000、e3c110ff、e3c11
[单片机]
汇编代码、机器码和<font color='red'>存储器</font>的关系以及数据的表示
单片机开发中应掌握的几个技巧
在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。 一、如何提高C语言编程代码的效率 邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”
[单片机]
单片机学习笔记-51单片机实现独立按键的短按及长按触发
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: Independent-KEY ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200506 ---- @ModifiedTime: 20200506 ---- @Description:
[单片机]
<font color='red'>单片机</font>学习笔记-51<font color='red'>单片机</font>实现独立按键的短按及长按触发
C51单片机学习笔记(六)——液晶显示屏的使用
1.LCD1602的认识 液晶显示屏简称液晶、LCD。各种型号的液晶通常是按显示字符的行数或液晶点阵的行、列进行命名的。1602的意思就是每一行显示16个字符,共可以显示2行,常见的液晶还有0801、0802、1601等,这类液晶是字符型液晶,只能显示ASCII码字符。而LCD12864属于图形型液晶,由128*64个像素点构成,可以显示各种图形包括汉字。 LCD1602可显示2行ASCII码字符,每行包括16个5*10点阵(像素),有16个引脚,其实物图如下所示: 2.LCD1602的引脚及其功能 3.LCD模块的内部结构 LCD1602模块的内部结构分为三部分:LCD控制器、LCD驱动器、LCD显示器 LCD控制器
[单片机]
C51<font color='red'>单片机</font>学习笔记(六)——液晶显示屏的使用
智能门禁安防报警系统的仿真应用
引言   在智能建筑的门禁和安防报警系统中包括三层防范体系:周边防范、出入口控制;保安监控、电子巡更 ;可视对讲、安防报警、紧急呼叫等。这些共同构成了智能建筑的安全防范管理系统。人脸识别技术目前在智能建筑的出入口控制、视频控制、安防报警方面有着广泛的应用。人脸识别有着方便、友好的特点,防欺骗性和安全性高,是人工智能领域和建筑智能化领域的研究热点之一。   本文研究了结合ID技术和人脸识别技术的门禁与报警系统。结合ID技术可以使检索信息直接链接到人脸库中对应的人脸图像类别;人脸图像分块后直接采用奇异值分解方法压缩图像,两者的应用大大提高了门禁安防报警系统的传输和存储效率。人脸识别技术的应用,更加提高了门禁安防报警系统的安全可靠性
[安防电子]
智能门禁安防报警系统的<font color='red'>仿真</font>应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved