单片机的单CPU仿真器的设计

发布者:精灵宠儿最新更新时间:2006-06-22 来源: 电子设计应用网关键字:单片机  仿真  廉价 手机看文章 扫描二维码
随时随地手机看文章

 

摘要:本文基于对8051单片机存储空间结构的深层次分析,提出了一种基于单片机的单CPU仿真器设计方案。该方案实用廉价,工程实践性强,可用于设计新的教学设备。

引言

单片机以它的廉价、体积小、可塑性强、稳定性高的特性,有着广阔的市场前景。 在用单片机开发产品时,虽然许多厂家设计了可编程ISP单片机,但是从安全与便捷方面考虑,单片机仿真器仍然是开发人员不可或缺的工具。单片机仿真器在产品开发阶段可用来替代单片机进行软硬件调试,从而迅速发现、纠正程序中的错误,大大缩短单片机开发的周期。但实际中仿真器过于昂贵,因此,设计制作出一款廉价且实用的仿真器有着广泛的市场。

传统的单片机仿真器硬件系统一般有三种实现方法。一、采用专用仿真的单片机。二、采用两套单片机,一个单片机用于仿真,并完成诸如通讯,中断等功能;另一个单片机则用于目标单片机,这样其资源不会被占用。三、用目标单片机作为仿真器,单片机即仿真器也作目标机的单片机用,其实质是一种ROM监控器。第三种方法会占用单片机的部分资源,但结构简单,对于特定的开发者来说,实用性强,性价比高,且易于自行制作。本文开发设计的仿真器正是基于第三种原理,巧妙实现了数据空间与程序空间的互换,设计出一款实用廉价的仿真器,工程实践性强。

原理及系统结构

仿真器工作时,要把程序从PC机下载到仿真器的存储器中。在此先详细分析51单片的存储器结构和寻址方法,再分析片外存储器的扩展,最后给出设计原理并分析系统结构。


图1 存储空间分布

51单片机存储器结构分析

8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。这种程序存储和数据存储分开的结构形式被称为哈佛结构。但从用户的角度,8051存储器地址空间可分为3类:片内、片外统一编址0000H~FFFFH的64KB程序存储器地址空间(用16位地址);64KB片外数据存储器地址空间,地址也从0000H~FFFFH(用16位地址)编址;256B片内数据存储器地址空间(用8位地址)。

上述4个存储空间地址是重叠的,如图1所示。8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。

程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空间转移到数据存储器空间。

实际上,当引脚EA接高电平时,8051的程序计数器PC执行片内ROM中的程序,当指令地址超过片内ROM地址时,就自动转向片外ROM中去取指令。当引脚EA接低电平(接地)时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从0000H开始编址。8051从片内程序存储器和片外程序存储器取指时的执行速度相同。

存储器外扩 

用P0口作地址/数据复用总线,用P2口的口线作高位地址线,最多可以扩展64KB的存储器。控制信号线包括:使用ALE作为地址锁存的选通信号,以实现低8位地址的锁存;以PSEN信号作为扩展程序存储器的读选通信号;以EA信号作为内、外程序存储器的选择信号;以EA和作为扩展数据存储器和I/O端口的读、写选通信号。执行MOVX指令时,RD和WR信号分别自动有效。片外数据存储器RAM的读和写由8051的RD(P3.7)和WR(P3.6)信号控制,而片外程序存储器的输出允许(OE)由读选通PSEN信号控制。尽管片外数据存储器和片外程序存储器共处同一地址空间,但由于控制信号及使用的数据传送指令不同,故不会发生总线冲突。


图2 仿真器原理图

仿真器原理与结构

由于现在以8051为内核的单片机几乎都带有内部的FLASH程序存储器。如本设计中要用到的AT89C51或AT89S51均自带4KB的FLASH程序存储器,有的单片机带有20KB甚至更大容量的程序存储器。因此在单片机开发中,很少用专门的程序存储器芯片来扩展外部程序存储器,通常也没有必要。基于以上这些因素,下面分析本文中的仿真器实现的原理。

下载程序时,EA接高电平,单片机执行内部ROM中的程序,把PC机的程序数据下载到片外的RAM62256中;当程序数据下载完后,在保持RAM62256不掉电的情况下,将单片机的EA接低电平,并把单片机复位。这样单片机就只能从片外存储器中读数据。然后利用RD与PSEN相“与”来选通RAM62256的读允许片选端OE,使得单片机能够从RAM62256中读出程序。这样就实现了仿真功能。因为单片机从片内程序存储器和片外程序存储器取指时的执行速度相同,所以这个设计方案下的仿真器性能比起传统仿真器毫不逊色。

总系统电路原理如图2所示,系统由单片机AT89C51、地址锁存器74LS373、片外存储器62256、接口电平转换芯片MAX232和相关控制电路组成。

其中AT89C51就是仿真器的核心部件,晶体振荡电路和复位电路与普通单片机系统相同。不同的是:EA接一个单刀双投开关,表面上没有扩展ROM。RAM62256的与OE普通单片机系统的接法有所不同,系统中把RD与PSEN相“与”,令其选通RAM62256的读允许片选端OE,就能促成RAM(注意:整个过程中RAM不掉电)由数据空间的角色向程序空间的角色转换。在执行MOVX指令时,产生RD,WR信号,写入程序信息。在执行RAM中的程序时,由PSEN信号与RD信号选通RAM62256的OE端,实现从RAM62256中程序的读入。

软件设计

PC机(上位机)软件可以参考Windows驱动程序开发、串口调试助手等相关书籍;也可以利用现成的KEIL C51的Windows集成开发环境~VISION51和软件仿真器DSCOPE51完成。

下位机软件的主要任务就是设置串口和接收上位机串口发送来的数据,并将数据存入外部“数据”存储器中。

单片机主程序如下:
MOV  SCON,#50H  ;串口方式 1
MOV  TMOD,#20H  ;T1 方式 1
MOV  TL1,#0FDH  ;波特率 9600 的常数
MOV  TH1,#0FDH
SETB  TR1          ;开中断
SETB   ET1
SETB    ES
SETB    EA
系统“写”时用如下指令:
MOVX  @DPTR,A
MOVX  @Ri, A
在中断服务子程序中,为区别所接收的信号是联络信号还是字节数、是数据还是校验和,需要设立不同的标志位如下:
 FLAG0  BIT  00H ;接收联络信号标志位
 FLAG1  BIT  01H ;接收字节数标志位
 FLAG2  BIT  02H ;接收数据标志位
 FLAG3  BIT  03H ;接收文件结束标志位    
程序流程如图3所示,其中R7为接收到的字节数,接收的数据一定要存入片外RAM从0000H开始的单元中。当单片机复位后,把RAM当作程序存储器时,PC是从0000H开始的。


图3 单片机接收中断服务子程序流程图

几点讨论

(1) 系统中不需要单独的仿真器电源,也不需要晶振电路。
(2) 下位机的片外存储器在重复写数时不用擦除,每次重新下载程序时,总是用覆盖的方式。新下载的程序都有END为结束,就算新下载的程序比原来的短,也不会执行多余的代码。
(3) 在实际中,可以进一步改进电路,当文件下载完之后,通过串口备用的信号线产生控制信号来控制和复位,从而使得全过程均由上位机控制。
(4) 由于内部结构的限制,被仿真的产品不能扩展片外的程序存储器,但由于片外可以扩展64KB的数据存储器,文中只用了32KB,因此还可以扩展一定的外设。
(5) 被仿真产品的E(--)A(--)的接法有一定的限制,不能直接接地或接电源正极,实际中只要加上一个合适的限流电阻(如10K?)就可以了。实际上这种方案可以适用于任何可以外扩存储器的单片机。

结束语

对以上的设计进行分析不难发现,整个系统各个功能模块技术非常成熟:在硬件方面,各子电路均有现存的电路套用,而且各个元器件的参数容易确定;在软件方面,仅涉及到COM口的串行通信程序及上位机的界面程序。在实际的制作过程中,系统的元器件数目少且价格低廉,容易调试,成功率高,性能稳定。

关键字:单片机  仿真  廉价 引用地址:单片机的单CPU仿真器的设计

上一篇:SP2328串口扩展专用芯片及其与单片机的接口电路
下一篇:用4BIT OTP单片机实现USB/PS2 MOUSE的设计

推荐阅读最新更新时间:2024-05-13 18:12

单片机软硬件联合仿真解决方案
作者Email: goldbull.nease.net 摘要:本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件语言仿真器软件Modelsim连接起来,实现了软件和硬件的同步仿真。 关键词:BFM,TCL,Verilog,Vhdl,PLI,Modelsim,Keil uVision2,ISS,TFTP,HTTP,虚拟网卡,Sniffer,SMART MEDIA,DMA,MAC,SRAM,CPLD 缩略词解释: BFM:总线功能模块。在HDL硬件语言仿真中,BFM完成抽象描述数据和具体的时序信号之间的转换。 PLI:Verilog编程语言接口,是C语言
[应用]
51hei单片机开发板上步进电机的总结经验
相信学过电子的人都会知道什么是步进电机,它的定义及作用在百度百科里描述的也是比较详细的,它是一种同步电机,在机电一体化等工业方面均有广泛的应用,因此怎么也得知道的.于是手上找来一个24byj48实物见图1. 图1 图2 这是一款四相五线步进电机,转子齿数按公式推算可得为8个,步距角应为11.25度,给出的资料那应该叫半步距角.其它的参数均可按照参数图中进行,电机可以用ULN2003A这个芯片来驱动,我决定先不看51hei官方提供的资料和实例程序,看凭自己的实力能不能让这个小东西转动起来,照着图2的连线图连了起来(那4个指示灯是我自己加上去的.方便观察)并且把P1.0,P1.1,P1.2,P1.3四个I
[单片机]
51hei<font color='red'>单片机</font>开发板上步进电机的总结经验
基于STC89C51单片机的温控风扇设计方案
设计要求: 1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 2.采用DS18B20温度传感器测温(0-99.9°C),三极管驱动数码管显示温度和风扇的档位。 3.共3个按键:设置、加、减。按一下设置可以设置上限,再按下设置下限,均可以按键加减调整。 4.利用PWM调速,当温度低于下限时,风扇不转动,当温度处于上、下限之间时1档转动(50%的转速),当温度超过上限时,全速转动。 使用说明: 一共3个按键:设置、加、减 按下设置键的时候才可以加减。 按一下设置键,是设置温度的上限,再按下设置键,是设置温度的下限,再按下设置键是退出并保存。 部分程序: #include #incl
[单片机]
基于STC89C51<font color='red'>单片机</font>的温控风扇设计方案
MSP430单片机的单相正弦波逆变电源设计
本系统实现输入直流电压15V,输出交流电压有效值10V,额定功率10W,交流电压频率在20至100Hz可步进调整。以MSP430单片机为控制核心,产生SPWM波控制全桥电路,然后经过LC滤波电路得到失真度小于0.5%的正弦波。采用PID算法反馈控制使输出交流电压负载调整率低于1%,采用开关电源作为辅助电源、合理选用MOSFET等使系统效率达到90%,采用输入电流前馈法来估计输出电流以实现过流保护以及自恢复功能。 引言 要求实现单项正弦波逆变电源,输入直流15V,输出交流电压有效值10V,功率10W,且频率20至100Hz步进可调,要求波形无明显失真,负载调整率小于1%,效率尽可能高,系统要具备过流保护以及自恢复功能。由于输出功
[单片机]
MSP430<font color='red'>单片机</font>的单相正弦波逆变电源设计
基于Matlab的模拟滤波器设计与仿真
建立在拉普拉斯变换基础之上的模拟滤波器的理论和设计方法已经发展得相当成熟,且有若干典型滤波器供人们选择,如巴特沃斯(But-terworth)滤波器、切比雪夫(Chebyshev)滤波器等。但是关于滤波器实现的 电路 元件参数的选取和计算却是件繁琐的工作。在此提出基于Ma-tlab将电路参数计算程序化的方法,并通过效果仿真达到优化电路参数的目的,而且程序具有扩展功能。 1 模拟滤波器的设计流程 模拟低通滤波器的设计指标有ap,Ωp,as,Ωs,其中Ωp和Ωs分别为通带截止频率和阻带截止频率;ap是通带Ω中最大衰减系数;as是阻带Ω≥Ωs的最小衰减系数ap和Ωs一般用dB表示。在此希望幅度平方函数满足给定的技术指标ap,Ωp,a
[电源管理]
基于Matlab的模拟滤波器设计与<font color='red'>仿真</font>
PIC12F508单片机学习之一——定时器
PIC12F508单片机是没有中断的,定时器只能是查询方式。 编译器用的XC8,编译环境IDE用的是MPLAB X IDE。 //*************************************************** // __________________ // VDD-| 1 8 |-VSS // GP5-| 2 27 |-GP0/DAT // GP4-| 3 26 |-GP1/CLK //GP3/RMCLR--| 4 25 |-GP2 // |________________| // 1
[单片机]
32位MCU在伺服电机中的应用
      在伺服系统中,由于交流永磁同步电机具备十分优良的低速性能、可以实现弱磁高速控制,调速范围宽广、动态特性和效率都很高,已经成为伺服系统的主流之选。目前永磁同步交流伺服技术已成为工业自动化的支撑技术之一。       以瑞萨电子 32位变频用MCU V850E/IX3 UPD70F3454 为例,介绍其在交流伺服系统中的应用。       UPD70F3454是瑞萨电子开发的用于变频控制的32位高性能MCU,使用V850核、RISC架构、5级流水线、内置DSP功能、最大64MHZ,内置256K flash ROM及相关外围功能,例如DMA控制器,定时器/计数器,串行接口UART、SPI、IIC,A/D,总线
[工业控制]
Microchip为PIC单片机客户提供低成本编程服务
Microchip Technology Inc.(美国微芯科技公司)近日宣布,为其PIC单片机提供全新的生产编程服务。现在,不论客户在microchipDIRECT在线订购网站的订货数量为多少,Microchip都可以将在交货前预先把客户的应用代码烧写在PIC单片机中。 从最大的原始设备制造商到小型公司的嵌入式设计工程师,一直在设法优化生产效率和降低生产成本。Microchip新的生产编程服务可按客户需求进行编程,通常在48小时内就可以把产品付送至目前microchipDIRECT服务所覆盖的任何区域。这个兼具成本效益的方案省去了生产线中为PIC单片机编程的额外步骤,即使是小客户也能从中受益。 Microchip安防、单片机
[新品]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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