keil软件是学习单片使用到的软件,用C语言写程序,keil是必不可少的,目前最新的keil软件算是keil4了,不过还是有不少的实例程序是用keil2编写的,但是不会影响keil4打开以.UV2为后缀的工程文件,keil4会将keil2转换成keil4。
- keil4软件可以在CSDN的资源上下载的到:http://download.csdn.net/detail/decting/4720733
- 内部包含了注册机,单独的注册机也可以下到:http://download.csdn.net/detail/decting/4720661
- keil3的注册机:http://download.csdn.net/detail/decting/4720619
安装好之后可以看下注册机的说明,注册keil软件,若不注册软件也可以使用,但是会限制代码的长度,一般是2K以内,可是学习2K可以,但是一段时间后程序会经常超过2K。注册好后可以便可以随便的使用了,上面会显示2020年到期。
值得说的一些keil中遇到的事:
1、*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED这种错误一般是在未注册时出现的,但是有可能是程序设置为9级优化时出现的,设置回8级即可。
2、*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS这种warning一般会在程序写的比较长时出现,尤其是工程中包含多个文件时,是应为出现了定义,但是从没使用过的函数。有多重解决办法,把不用的函数注释掉或者宏定义判断下,但是最有效方便的方法是打开Project菜单,找到Options for Target Target'...,先选Device,在Use Extended Linker (LX51) instead of BL51前选钩。在选择MX51 Misc,在Misc controls内填入REMOVEUNUSED。这是一个关键词,可以在编译时不为未使用的程序分配空间,这样一来程序编译出来的Hex文件会小了不少。
3、在新建工程时选择Device时,不一定会找到你所用芯片的型号,这样可以使用同一个系列的代替,STC89C52RC的用的比较多,可以使用STC89C52的代替,STC12C5A60S2可以使用STC89C55代替,因为12C5A60S2的RAM和CODE比较大,所以在Target内设置Memory Model和Code Rom Size都为Large。
4、C语言的语法没有改变多少,但是许多头文件有所不同,如stdio.h内部就少了很多的函数,具体的可以打开同文件看下,新增了bit数据类型,但是用法有限,不可以定义数组,也没有指针。sbit也只是引脚的变量,不可以想当然的使用。其他的就要看你写程序的功底了,硬件这东西,不是在你想象中存在的,尽量学会调试,会对你有帮助的。