求教keil 51 转 iar 51 变量定义

2020-01-23 14:36发布

本人在KEIL C51环境下有一段程序如下:
SFR KEY1=P1_;                                //按键1
SFR KEY2=P1^1;                                //按键2
SFR GREEN=P1^2;                        //绿 {MOD}LED
sbit RED=P1^3;                                //红 {MOD}LED
sbit SCL=P3^0;                                //时钟信号
sbit SDA=P3^1;                                //数据信号
sbit ir=P3^2;                                //接收端
sbit BEEP=P3^4;                                //蜂鸣器

bit head;                                //接收头标志
bit c_error=0;                                //错误标志
bit finish;                                //完成标志
bit repeatflag;                                //重复码标志

uchar idata key[64];                //
uchar data irdata[4]={0,0,0,0};

现在想转换到IAR C51环境,不知上述定义如何转换。
请教高手!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
void_c
2020-01-23 20:29
SFR KEY1=P1_;                                //按键1
SFR KEY2=P1^1;                                //按键2
SFR GREEN=P1^2;                        //绿 {MOD}LED

SFR???,KEIL有这种定义法?


IAR用位域。

IO口位域可以自己定义,或者直接用IAR头文件的。
比如
sbit RED=P1^3;
对应IAR:
#include <ioat89s52.h>
#define RED P1_bit.P1_3


bit head;                 //接收头标志

IAR可以这样定义
__bdata bitfiled bit_flags;
#define head bit_flags.bit0
#define c_error bit_flags.bit1
#define finish bit_flags.bit2
#define repeatflag  bit_flags.bit3

一周热门 更多>