借助于SIM447软硬件模拟器,不仅可以学习到单片机的硬件功能和指令系统,还可以学习到单片机的开发过程和调试方法,以及多种最常用的单片机片外典型扩展电路的设计方法和一些典型外扩器件的工作原理和应用方法。
SIM447软硬件模拟器提供了一块虚拟的演示实验板,其上包含13种虚拟的电路组件,它们的电路原理图以及与单片机的接线关系,分别如图1~9所示。





在图1中描绘的时钟电路和复位电路,在以下各图中也都相同,不再作重复说明。外接阻容(RC)延时复位电路,可确保“单片机”在初始加电时可靠复位;时钟电路由一只晶体振荡器和两只电容组成,其标定的晶体频率(4MHz)仅供参考。接到端口P5上的8只发光二极管用于显示端口各个引脚上的电平状态,它们均串接一只限流电阻,对于单片机端口P5引脚内部和发光二极管均能起到保护作用。
单片机端口P6、P7的时钟电路和复位电路结构与P5相同。接到端口P6、P7上的8只发光二极管用于显示端口各个引脚上的电平状态,它们均串接一只限流电阻,对于单片机端口P6、P7引脚内部和发光二极管均有保护作用。
在图2中,接到端口P5上的一只拨动开关组DIP1(内含8只拨动开关),用于向端口P5各个引脚输入逻辑电平信号。它们平时处于断开位置(OFF),引脚上的电平由外接下拉电阻拉低;而当开关闭合时(ON),引脚电平则被开关拉高。
P6、P7的情况与P5相同。接到端口P6、P7上的拨动开关组DIP2、DIP3分别用于向端口P6、P7各个引脚输入逻辑电平信号。工作原理同于DIP1。
在图3中,接到端口P6上的一只共阴极LED数码管,内含8只LED,用于把端口P6各个引脚上输出的逻辑电平信号,显示为十六进制数字0~9、A、b、C、d、E和F,其中的b和d以小写形式显示的目的是便于和阿拉伯数字区分。其实,各条引脚上均应串联一只限流电阻,为简化电路没有画出。
在图4中,利用一个端口P6的7只引脚同时驱动8只共阳极7段LED数码管(小数点没有利用),用于显示8位十进制数字。为了解决以较少的单片机引脚驱动数量较多的LED,采用的是逐位扫描的“动态驱动”方式(与此相对应的是,在图3中则采用的是“静态驱动”方式)。另外还需要外接一些常用TTL数字电路芯片,其中,7447是一片BCD码/7段笔段码译码驱动电路(BCD码是一种以4位二进制形式表示的十进制码),负责将BCD码转换成驱动数码管的笔段码,其输入端连接到P63~P60,其输出端并联连接到8只数码管的同名端上;74138是一片输出有效低电平的3/8译码器,其输入端连接P66~P64上,其输出端经过8只反相器分别连接到8只数码管的公共阳极上;8只反相驱动器可以是7404。
在图5中,利用两个端口P5和P6以动态方式驱动64只LED构成的点阵式显示器,P5的8只引脚经过8只反相器(可以是7404)连接点阵LED的阴极(行),P6的8只引脚经过8只同相器(可以是7434)连接点阵LED的阳极(列)。
在图6中,利用3个端口P5、P6和P7以动态方式驱动1280只LED构成的点阵式显示板,P5的8只引脚经过8/256译码器阵列(可以由6只CD4067组成)连接到显示板的列上,P6和P7的16只引脚经过驱动器阵列连接到显示板的行上。
在图7中,把一只并行方式输入的8bit数字/模拟转换器(比如可以是DAC08等)连接到端口P6上,将该端口上的逻辑电平信号转换成对应的模拟量输出,供示波器显示。
在图8中,利用端口P5的4只引脚,经过外接三极管构成的驱动电路来驱动步进电动机。利用P50~P53引脚上输出的按一定规律变换的电平驱动电动机正向或反向旋转。
在图9中,利用P50引脚控制一只三极管的通/断状态,三极管控制一个音频振荡器的电源,振荡器为一只扬声器提供音频信号。当该脚输出低电平时,三极管导通,振荡器得电起振,扬声器显示为“发声状态”,而当该脚输出高电平时,扬声器则显示为“无声状态”。
除了以上这13种在工作窗口内的实验电路板仿真区有图案显示的电路组件之外,SIM447系统内部隐含的还有5只引脚信号输入开关F1、F2、F4、F5和F6,如图10所示。

这5只开关只能在程序执行期间使用才有效。其中,F1、F2、F4和F5属于“单刀双掷拨动开关”,平时处于接通低电平状态,每按动一次其接通状态会在高电平和低电平之间转换一次;F6属于“按钮开关”,每按动一次就接通一次。
有关SIM447软硬件模拟器的销售信息,读者可到www.zxdz8.com/yl.htm上了解。
(大海创作室)