本次实验不会太长,由于设备和其他原因,我们将继续采用以图片代替视频形式的讲解(发视频就无法通过~-~)。
在仿真中我们也看到了是个开关来控制八个小灯,为此,我们需要先安装十个开关,然后是八个小灯。
我这里设备还是充足的,小灯需要电阻限流,开关不用,跨接线排的还不算特别乱,够用就好。
左下角两个小灯点亮,是由于我把下载器已经安装到了电脑上,所以下载接口的电流点亮了这两个小灯,不是故障,放心使用。看下之前仿真的电路图,对比下电路。
老流程,我们需要先查看COM口,如果一直使用一台电脑进行操作,这个步骤就可以省略了,COM口是不会变来变去的。
接着需要打开下载软件,我使用的是STC-ISP,由于单片机89c52是老版的,所以在软件版本上,只能使用老版本的4.8,新版的好使是好使,但是刷写老版芯片成功率太低,总是读不到芯片,老版软件就没有问题。打开软件后,简单的设置参数。
如果之前使用过,就什么也不用管了,如果是第一次使用,就需要把步骤1那里的MCU选择下,就是选择与自己使用芯片一样的型号即可,如果没有,就选择同样的款型的,还是没有就选择同样功能的,无所谓是否同一公司。然后设置COM口,下边的就不要更改了。接着选择我们之前保存的可执行文件,记得需要是.hex结尾的。
确定后,我们就可以单击下载了。说了这么多,主要是有好些朋友依然没有试过下载到真正的单片机中测试,希望看完之后,自己尝试下,会发现,仿真和现实还是不一样的。
单击下载后,等待片刻,软件会提示给单片机上电,此时我们再给单片机打开电源。
当提示完成后,我们会在结果框中看到一些说明,例如单片机的实际频率,刷写时间,还有我们总共成功刷写过多少次,这些信息显示了,就说明成功了。其中实际频率对我们测试是很有帮助的,后期我们会涉及中断的计时,需要依据单片机的频率来测定时间长短,我们就可以通过这个来看下实际频率,我使用的是11.0592的晶振,系统反馈的是11.07418相差不大,但是反映到中断中,就会在长时间运行后出现累积偏差,例如一天后就会差个几分钟,这精度就无法保证了。所以实际和仿真还是有些不同的。不过我们现在的输入检测,不受晶振的影响。看下刷写程序后的状态。
所有的小灯都已经点亮了,这是由于所有的按键均没有按下,于是单片机不对P3操作,就会默认高电位。
我们接下来先按下P1.0看下状态。
按下P1.0没有反应,我们知道,在前文的程序中,我们设定的是当P1.3按下才会开始执行,所以其他按键的变化,即使程序检测到了,也没有用,测试是否正常,当然还是要按下P1.3才行。
这是先执行的流水灯操作。
这是最终的结果,定格在这个状态,是因为程序此时跳出了循环,所以无法再改变输出的状态。接着我们测试按下P2.0的状态,这个按键是取反用的,也就是原来亮的灯,现在会熄灭,原来灭的现在会点亮。
按这个按键时,就会发现一个现象,在仿真中好好的,但是在实际操作时,却会出现,有时按一下就切换了,有时需要按两下或三下才可以切换?是按键坏了?还是程序问题,难道是代码存在bug?
其实都不是,这主要是由于我们的按键是用的自复位型的,在切换状态时,存在一个中间状态,我们称之为抖动,至于为何会抖,又怎么消除,这就需要到下一篇说了,放一篇太长了。
最后我们按下P2.1,这个是清零键,按下后所有端口都会置零,不管之前灯的状态是什么都会被熄灭掉。
看电源指示灯就知道,我没有把电源关掉,这是程序的输出结果。
好了,仿真也做了,实际操作也做了,这回关于输入的检测该学会了吧。之前的文章有的没有通过,所以没法看到。可以去电气学苑查看。看留言。