我们在开发单片机程序的时候,经常会碰到编译没有错误,程序代码反复的检查,但就是找不到问题所在,不知道问题到底出现在哪里了?
这个时候的心情就会特别烦躁,单片机程序代码就是字母加数字,有点抽象,所以很多的程序代码我们都在在芯片原厂提供技术资料上开发的,
如果单片机程序一旦出现一些比较抽象的问题,又找不出问题,那是一件非常苦恼的事情。
碰到这些问题,我们该怎么去处理。
①通过LED的闪烁效果来锁定问题,怀疑那里有问题就在哪里实现LED的效果
②通过串口打印来查找问题,这个是我在51单片机程序开发过程中使用最多的调试方法
③通过单片机硬件仿真来处理
虽然找问题有很多种办法,但我们不得不认可,单片机硬件仿真是效率最高的,而且使用起来是非常方便的。
一.单片机仿真器是什么?
单片机仿真器就是一个帮助电子工程师,在产品开发过程中分析程序代码运行的逻辑,查找问题的工具。
单片机仿真器和电脑仿真软件配套使用。
仿真器的电脑仿真软件可以对单片机程序进行单步跟踪调试,也可以设置断点,全速运行等调试手段来观察程序代码中各种变量,RAM以及寄存器的事实运行数据,跟踪程序的执行情况,同时对硬件电路,软件程序逻辑进行实时的调试。
单片机仿真器可以迅速的帮助我们查找程序种的错误和问题,大大提高我们处理程序代码运行异常的效率。
尤其是对于单片机程序开发经验不丰富的初学者,如果程序运行中出现问题,无法通过肉眼观察程序运行的现象找到程序代码的问题,特别是一些比较隐秘的问题,更是难以解决。
二.51仿真器有必要买吗?
51单片机项目我已经做过很多,但到目前为止,我还没有用过仿真器,我们在某宝上搜索51仿真器,出来的都是ARM仿真器,半天也没有找到一个51单片机仿真器的商品。
这是因为51单片机项目开发中,使用仿真器的软件工程师很少,基本上没有什么市场,而STM32单片机的开发,仿真似乎是必不可少的工具。
另一个就是传统的51单片机是不支持仿真的,如果需要仿真功能,就需要购买专用的仿真芯片,这种操作感觉比较麻烦。
51单片机的程序代码量相对比较小,如果有什么问题,我们基本上可以协助LED灯闪烁来查找到问题,也可以通过串口打印的方式来调试。
但是如果大家基础比较差的话,大家可以选择购买支持仿真的51单片机芯片来学习。
STC单片机的仿真功能介绍:
习最常用的51单片机就是STC品牌的51单片机,STC的51单片机很很多型号,也分很多系列。
打开STC官方提供干的STC-ISP软件,选择Keil仿真设置,如下图所示:
我们在Keil仿真配置中,可以参看STC支持仿真的所有单片机的型号。
STC单片机的仿真操作:
STC单片机仿真使用方法:
1、首先必须安装仿真驱动,可通过点击此页面中的”添加MCU型号到Keil中”按钮进行安装
2、准备1片支持仿真的STC单片机芯片,并在Keil仿真设置界面,单片机型号种选择对应的单片机型号
3、将其设置为仿真目标芯片
4、按照上图将芯片与电脑进行连接
5、打开目标CPU的电源
6、在Keil软件中打开项目,并进行相关设置(参考STC Monitor51仿真器使用指南)
7、设置完成即可开始调试
8、仿真监控程序占用P3.0/P3.1口,但不占用串口1,
用户可以将串口1切换到P3.6/P3.7或者P1.6/P1.7再使用
9.仿真监控程序占用内部扩展RAM(XDATA)的最后768字节
51单片机学习过程中,我们是不需要购买仿真器的,因为压根就没有51单片机仿真器。
如果想实现51单片机的仿真功能,大家选择支持仿真功能芯片的开发板即可。
三.51单片机和52单片机的区别是什么?
51单片机和52单片机都属于8位单片机,但52单片机的资源更丰富,是51单片机的升级优化版本。
52单片机是在51单片机的基础上做了很多的改进,增加了很多51单片机不具备的功能。拥有灵巧的8位CPU和系统可编程Flash等。
主要区别:
①51单片机的RAM是128个字节,52单片机是256个字节
②52单片机是51单片机的增强型,52单片机和51单片机相比,定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗,在掉电、数据指针等方面还有一些改进。
③52单片机支持低功耗功能。
④52单片机的最高外接晶振可以达到33MHz,51单片机只有24MHz,部分型号支持内部时钟。
在实际开发过程中,51单片机和52单片机是相互兼容的,没有太大的区别,只要单片机的外设资源可以满足需求就没有问题。