51单片机IAR编程示例

由于需要,最近开始自学IAR编程软件,经过不断使用,现在对IAR工程编译、创建、调试等等有了大致的了解,总得来说开始不太习惯,而且网上使用IAR编写51单片机程序的也不多,因此相关历程不怎么好找,但是习惯之后感觉IAR比Keil还是更胜一筹吧!

下面以一个矩阵按键检测为例,大致记录下IAR的使用方式吧

①新建工程,如图

51单片机IAR编程示例_第1张图片

51单片机IAR编程示例_第2张图片

②添加文件

51单片机IAR编程示例_第3张图片

51单片机IAR编程示例_第4张图片

③编写代码

④设置生成文件信息

51单片机IAR编程示例_第5张图片

51单片机IAR编程示例_第6张图片

51单片机IAR编程示例_第7张图片

51单片机IAR编程示例_第8张图片


大致就是以上几个步骤了,另外再加一点代码调试设置

51单片机IAR编程示例_第9张图片

51单片机IAR编程示例_第10张图片

下面做个比较吧

1.IAR由于不支持位操作(sbit这种),所以操作位需要通过移位来完成,比如设置P1口1 3 5电平为0,则可以这么写P1&=~((1<<1)|(1<<3)|(1<<5));,虽然看起来比较麻烦,不过从实际来看,这么操作比位定义方便,因为一个端口可能需要设置的位很多,此时位定义就会失去意义,当然了,KEIL也是支持这种移位操作的

2.IAR头文件,首先最好添加一个通用头文件,比如io8051.h ioarv.h等等,然后设置工程的时候再在general options下面选择需要的cpu,具体为什么这样做,我还是不太明白,反正ARM就没有这样的一个通用头文件,不过这样还是很方便的,只要是51系列的通杀了

3.调试工程时,需要将output设置为debug选项,然后重新编译依次,否则会提示什么堆栈之类的错误,反正我也不太懂了,IAR网站上这么说的,至于为什么,我就布吉岛了

最后还想吐槽一下

貌似IAR调试时不能设置端口和寄存器的数值,从而达到硬件实现的操作,虽然端口和寄存器可以直接在程序里面添加语句给他们设置数值,但是相当不方便,


接着附上IAR下的51单片机矩阵键盘的小程序吧

地址http://download.csdn.net/download/googlemi/7732545

你可能感兴趣的:(51单片机IAR编程示例)