2024年3月27日发(作者:)
基于IAP15F2K61S2单片机的在线仿真功能的实现
文/杜洋
有单片机初学者问了我这样一个问题:单片机真是个好东西,可以实现我的很多想法,就是
在编程开发的时候太麻烦,每次改动都要重新编译、下载,再等待着问题的出现。仅调试一
个参数就要花上几个小时的时间。对于我们这些没什么经验的编程菜鸟来说太麻烦了。我想
单片机技术发展至今,应该有更便捷的开发工具吧。杜老师你平时是怎么开发单片机软件
的?有什么秘诀传授一下呗!
发呢?详见下文。
【什么是仿真】
我的回答是:当然有秘诀,那就是使用“仿真功能”。什么是仿真?它如何实现更快捷的开
什么是仿真?我们举一个汽车设计的例子来说明一下吧。大家一定在影视剧或电视广告中看
过这样的镜头:在一个大大的厂房里,一辆崭新的小汽车正在以很高的速度撞向一面厚厚的
水泥墙。坐在车上的两个人面不改色心不跳,一动不动地等待着死亡。他们为何如此冷静,
因为“他们”是实验用的假人。说时迟那时快,汽车已经撞到了墙上,巨大的声响夹杂着飞
溅的碎片充满了空间,汽车在撞击中破了相。旁边的几台高速摄像机记录下了这一切。这是
一次真实的撞击实验,目的是为了得出这款车型在出现意外时,是否能保住人的小命。安装
在假人身上的传感器所得出的数据,能帮助工程师们发现安全隐患,改进汽车的设计。可以
说以上就是一次仿真,一辆真车和两个假人有计划地撞墙,模拟了真实车祸情况。仿真让实
验变得可能,因为没有一个真人愿意坐在车里参与这场实验。当真实情况很难在开发时再现
时,仿真就可以帮助开发者完成必要的实验。这就如同单片机开发中,我们在自己的实验板
上去开发一款产品一样。当我们设计好了一个产品的功能,我们要在实验板上模拟用户的操
作,看看操作是否正常,产品的反应速度和稳定性如何。这些都是在仿真——模仿用户使用
的真实情况。
有朋友会问了:如果这就是仿真,那还有什么好讲的呢?嗯,如上所说的仿真只是广义上的
仿真,凡是在实验室里用实验板或工程样机模拟用户使用的过程,都可以算是仿真。而还有
一种狭义的仿真,就是下面要重点介绍的内容。再说回到汽车撞击的实验吧。后来呀,汽车
公司的老板在办公室里坐不住了。因为每当从外面传来一声巨响,他就知道又有一辆新车被
撞得稀巴烂,一阵痛苦涌上心头。虽然理性上明白,这是为了开发出更安全的汽车,可是感
性上还是不喜欢这种烧钱的行为。人们常说利益推动科技进步,当老板的利益受损,自然就
会有高科技问世。不久,工程师们用上了一种电脑仿真软件,它采用了虚拟现实的技术,只
要在电脑上按几个钮,输入一些汽车的参数,一台虚拟的汽车就出现在屏幕上。这辆虚拟车
能和真车一样撞击、飞溅,然后得出一大堆接近真实的数据。不仅能模拟真实的撞,还能歪
着撞,倒着撞,飞起来撞,飞起来转体360度地撞。还能暂停时间,一步一步撞,或者只看
撞击中某一秒的数据。这一技术完全超越了真实实验,撞击再也不用耗人耗时了,新车的开
发速度也快了很多,大大降低了成本。
汽车公司的遭遇在单片机公司也同样发生着,各种仿真软件如雨后的水泡子般越来越多。有
的直接在电脑上虚拟仿真,还有的用一种叫仿真器的东西,让实验板与电脑连接,给实验板
或工程样机增加了单片机实物所不能达到的仿真功能。其中最重要的一个功能就是“单步运
行”了。在仿真软件里,把单片机从上电开始以正常的速度一直运行下去的过程叫“全速运
行”。相对的,如果单片机只运行程序中的某一条或几条程序就是单步运行了。在非仿真的
情况下,单片机是不能单步运行的。那单步运行有什么用呢?呵呵,单步运行非常有用呀,
甚至可以说是一项单片机开发的重大进步,就如同录音带和MP3的区别一样。录音带在听
歌的时候必须从头听到尾,如果想换歌就得花时间倒带,而且你也不能精准地倒到下一首歌
的开始处。而MP3不是连续的线性存储,你可以随意换歌,还能把任意的一段反复听。在
单片机的开发中,我们为了测试某个部分的功能,必然要从头运行,再跳过不必要部分才能
达到。大把的时间浪漫在多余的劳动上面了,现在有了单步运行,你想到哪就到哪,你想反
复运行某段程序也没问题。期间你还能修改大部分参数,不仅能模拟真实的运行,还能歪着
运行,倒着运行,飞起来运行,飞起来转体360度地运行。好玩吧!?
而本文要介绍的是仅使用单片机的“片上传真”。片上仿真是基于单片机本身的仿真,也就
是说只要一片单片机,不需要额外购买别的东西,就可以实现仿真。对于单片机爱好者来说,
片上仿真是最高性价比的选择,你甚至不需要修改电路,用给单片机下载HEX文件的电路
就能实现仿真。各大单片机公司都已开发出不同性能的支持片上仿真的单片机。其中STC
公司有一款性能很不错的片上仿真单片机——IAP15F2K61S2。下面我就给大家介绍一下片上
仿真环境的建立,还有进入仿真界面的操作流程,最后以一个实例告诉大家如何进行仿真调
试。这是一些非常简单的操作,只要按照本文的步骤操作,就一定能顺利学会。
带有仿真功能的单片机IAP15F2K61S2
【仿真电路连接】
建立单片机仿真环境,最主要的工作是设置软件的参数,而硬件电路的连接是很简单的事。
如果你已经根据本书第一章的内容制作出了ISP下载线,并成功地给单片机写入了HEX文件。
那么从某种意义上讲,你已经完成了单片机仿真的硬件电路连接。也就是说,单片机仿真电
路与ISP下载电路是完全相同的。如果是这样,我为什么还要花时间来讲仿真电路的连接呢?
因为虽然电路连接相同,但单片机不同了。所以我们不能使用STC12C5A60S2和
STC12C4052AD来仿真,因为这两款芯片不带仿真功能。而唯一带仿真功能的单片机
IAP15F2K61S2是最新发布的15系列单片机,它有着不相同的引脚定义。我们只要熟悉了它
的新引脚定义,再来制作电路就不难了。
首先最明显的是引脚定义的不同,虽然IAP15F2K61S2也是40脚的单片机,但如果把它直接
插在我们做好的ISP下载线里,你会发现单片机是不工作的。不仅IO接口不兼容,连VCC
电源输入的位置也不同。接下来是外部晶体的使用, IAP15F2K61S2单片机不需要接外部晶
体,因为它的内部集成了一个高精度的时钟源,可以用软件设置成5~30MHz的时钟频率。
这一改进对我们使用者的意义是:不论我们做何应用,都不需要外接晶体的电路了。只要连
接VCC和GND,单片机就可以工作。再连接TXD和RXD,单片机就能ISP下载和仿真了。
可仿真单片机IAP15F2K61S2
下载/仿真电路原理图
【新建仿真环境】


发布评论