【规则8】在仿真前做好充分的准备
单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。很多时候,没有仿真器却能促使工程师写出更高质量的程序。也许在硬件仿真调试之前,下面准备工作将会对你有用:
1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。
2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。
3)如果代码有修改,再次对代码进行检查。
4)有可能的话,进行软件仿真——KeilC的软件仿真功能十分强大。软件仿真可以防止因硬件的错误,如器件损坏、线路断路或短路,而引起调试的错误。
5)开始硬件仿真。
【规则9】使用库函数
重用代码,尤其是是标准库的代码,而不是手工编写你自己的代码。这样更快、更容易也更安全。KeilC中提供了多个库函数,这些库函数的用法在KeilC的帮助文件中有详细的描述。
【规则10】使用const。
这一点在很多经典的关于C和C++的书籍中是必谈的要点。在《E_ceptionalC++》一书中,对这点有很精彩的描述,现摘录如下:“没有正确的安全意识的枪手在世界上是不可能活的很长的。const观念不正确的程序员也是一样和没有时间戴紧帽子的正确,没有时间检查带电电线的电工一样不会活的很长。”在C语言中,const修饰符表示告诉编译器此函数将不会改变被修饰的变量的指向的任何值(除了强制类型转换)。当把指针作为参数传递时,总是合适地使用const,不仅可以防止你无意中错误的赋值,而且还可以防止在作为参数将指针传递给函数时可能会修改了本不想改变的指针所指向的对象的值。如:constintnum=7;
num=9;/有/可能得到编译器的警告。
constcharptr,则表示该指针所指向的内容不会被改变,如果在程序中被发生对其赋值的操作,编译时将出错误提示。如:
constcharptr=“hello”;
ptr='H';/错误,所指内容不可改变也可将const放在星号后面来声明指针本身不可改变。如:
charconstptr;
ptr++;/错误,指针本身不可改变
也可同时禁止改变指针和它所引用的内容,其形式如下:constcharconstptr;
【规则11】使用static
static是一个能够减少命名冲突的有用工具。将只在一个模块文件中的变量和函数使用static修饰,将不会和其他模块可能具有相同名称的函数和变量在模块连接时不会产生名称冲突。一般来说,只要不是提供给其它模块使用的函数,和非全局变量,均应使用
static修饰。将子程序中的变量使用static修饰时,表示这个变量在程序开始时分配内存,在程序结束时释放,它们在程序执行期间保持它们的值。如:
voidfunc1(void)
staticinttime=0;
time++
voidfunc2(void)
staticinttime=0;
time++;
两个子程序中的time变量使用static修饰,所以它们是静态变量,每调用一次time将进行加1,并保持这个值。它们的功能与下面程序相似:
inttime1=0;
inttime2=0;
voidfunc1(void)
time1++
voidfunc2(void)
time2++;
我们可以看出,使用static修饰后,模块中的全局变量减少,使得程序的更为简单。
【规则12】不要忽视编译器的警告。
编译器的给出的警告都是有的放矢,在没有查清引起警告的真正原因之前,不要忽视它。
【规则13】注意溢出问题,写安全的代码。
1.4KeilC编程
【规则14】深入了解你所用的工具。
仔细查看KeilC附带的帮助文件,你能找到你期待已久的东西。KeilC是当前最好用的单片机开发软件。要充分利用该软件的功能,就必须对它深入的进行了解。
【规则15】不要使用语言的冷僻特性,并且记住,耍小聪明会贻害无穷。最重要的是编写你理解的代码,理解你编写的代码,你就可能会做得很好。
2推荐书目
要成为一个优秀的单片机系统产品设计工程师,兴趣、热情、责任心至关重要。
2.1单片机技术学习
《微机原理及应用(从16位到32位)》戴梅萼等著清华大学出版社。学校教材,也是当年我学习单片机的启蒙书。
2.2C51编程学习
《单片机高级语言C51Windows环境编程与应用》作者:版社。这本书几乎覆盖了C51编程的方方面面,版本对当前使用最广的keilC也有很详细的讲述。对于刚学C51编程的同志,本书是上上之选,强力推荐。比起现今书市上的所谓什么“C51编程圣经”之类的书强得多。
2.3C语言编程必读
《C陷阱与缺陷》AndrewKoenig著
《C专家编程》PeterVanDerLinden著
C语言开发技术经典之作,C程序员必读之书,数十年来经久不衰。如果你想对C语言全面的掌握,真正了解C语言的精髓,这两本书是必读之作。由版社出版的中文译本也还不错。
2.4程序设计技术方面
《数据结构》,严,XXX。XXX的教材质量稳定,中规中矩,价格相对来说也便宜一点。
《程序设计实践》XXX,RobPike著;《代码大全》(网上有)。这两本是能让你看后,感觉有大突破的那种书籍,千万别吝惜银子。
从事单片机开发工作已经有差不多三年时间了,自己感觉积累了一些经验和体会。这篇文章就算是一个总结吧。本来想写的更为详细一些,加入C51中指针及uvision软件仿真的一些使用体会,以及自己的一些开发实践,但一想,keilc中的说明书已经够详细了,而我的开发产品所有权又不属于我本人,因此,并没有深入下去。由于本人水平有限,这次也是抱着与各位交流学习的目的,非常欢迎各位与我联系交流,共同探讨。