首先来说,每一款单片机的编程软件都有软件仿真功能。我们可以通过这个软件仿真功能学

习一些单片机的功能。

  例如,可以通过软件仿真功能实现单片机端口输出高低电平,然后通过观察相应的端口

寄存器的值来看程序是否正确执行了;还可以编写定时程序实现固定时间(例如定时1秒)执

行端口的输出功能,可以用软件仿真看看是否按照设定的时间进入了中断,等等。但是,软

件仿真的功能实在有限,我们最多只能看到相应的寄存器是否执行正确,因为没有硬件电路

的配合,完全看不到电路是否正确执行了。

  所以,用单片机编程软件的软件仿真功能能学习单片机很有限。

  这方面的软件首推proteus,这是目前为止我见过、用过的,可以仿真单片机种类多的软

件。

proteus这款软件支持的单片机有:51单片机,PIC单片机,MSP430单片机,飞思卡尔单片机

,还支持LPC21xx系列的ARM7,以及部分cortex m3芯片。

  尤其对于51单片机而言,proteus已经把51单片机的编程软件keil嵌到里面了,可以在

proteus里面进行程序编写,电路搭建、系统仿真、PCB生成等工作。等于是可以实现一个单

片机的软件设计、硬件设计、PCB制图等全部功能,非常方便。

proteus的功能非常强大,我们可以先画好电路图,再把编译好的单片机烧录文件装载到电路

图中的单片机中,然后即可以让整个单片机系统运行起来,观察电路中各个部分是否与我们

设计的软件功能一样,例如是否实现了LED的点亮,LCD的显示,按键的检测,IIC器件存取数

据是否正常等等。甚至proteus还提供了很多虚拟仪器,例如虚拟示波器,电压表,电流表,

逻辑分析仪等。可以用这些仪器观察程序及电路的运行情况,例如可以用示波器观察我们设

计的PWM的输出波形是否符合设计要求。