📄 mybit.h
字号:
/***********************************************************
文件名称:位操作头文件
File :MyBit.h
功能描述:通过位段定义的方法,把位从字节中分离成
位变量,即可对端口或一般寄存器进行位操作
使用范例:
A口0脚输出高电平: OA0=1;
读取A口1脚电平: while(IA1);
设置A口2脚为输出: RA2=1;
创建日期:2007-2-14
Author :廖志贤
***********************************************************/
typedef struct
{
unsigned bit0: 1 ;
unsigned bit1: 1 ;
unsigned bit2: 1 ;
unsigned bit3: 1 ;
unsigned bit4: 1 ;
unsigned bit5: 1 ;
unsigned bit6: 1 ;
unsigned bit7: 1 ;
}PORTtype,Byte;
typedef struct
{
unsigned bit0: 1 ;
unsigned bit1: 1 ;
unsigned bit2: 1 ;
unsigned bit3: 1 ;
unsigned bit4: 1 ;
unsigned bit5: 1 ;
unsigned bit6: 1 ;
unsigned bit7: 1 ;
unsigned bit8: 1 ;
unsigned bit9: 1 ;
unsigned bit10: 1 ;
unsigned bit11: 1 ;
unsigned bit12: 1 ;
unsigned bit13: 1 ;
unsigned bit14: 1 ;
unsigned bit15: 1 ;
}Word;
/*************************************************
IO位定义开始
*************************************************/
//************************************************
//定义A口端口数据寄存器,等同于PORTA
#define A_OUT (*(volatile PORTtype *)(0x1B+0x20))
//定义A口端口方向寄存器,等同于DDRA
#define A_DIR (*(volatile PORTtype *)(0x1A+0x20))
//定义A口端口输入寄存器,等同于PINA
#define A_DIN (*(volatile PORTtype *)(0x19+0x20))
//定义B口端口数据寄存器,等同于PORTB
#define B_OUT (*(volatile PORTtype *)(0x18+0x20))
//定义B口端口方向寄存器,等同于DDRB
#define B_DIR (*(volatile PORTtype *)(0x17+0x20))
//定义B口端口输入寄存器,等同于PINB
#define B_DIN (*(volatile PORTtype *)(0x16+0x20))
//定义C口端口数据寄存器,等同于PORTC
#define C_OUT (*(volatile PORTtype *)(0x15+0x20))
//定义C口端口方向寄存器,等同于DDRC
#define C_DIR (*(volatile PORTtype *)(0x14+0x20))
//定义C口端口输入寄存器,等同于PINC
#define C_DIN (*(volatile PORTtype *)(0x13+0x20))
//定义D口端口数据寄存器,等同于PORTD
#define D_OUT (*(volatile PORTtype *)(0x12+0x20))
//定义D口端口方向寄存器,等同于DDRD
#define D_DIR (*(volatile PORTtype *)(0x11+0x20))
//定义D口端口输入寄存器,等同于PIND
#define D_DIN (*(volatile PORTtype *)(0x10+0x20))
//************************************************
//预定义口位OAX----大写字母O表示output,表明
//这种表示对应PORTA的使用方法,即输出寄存器,以
//数字X为第X位
//下OBX,OCX,ODX为相同意义
//预定义口位RAX----大写字母R表示rudder(方向舵),
//表明这种表示对应DDRA的使用方法,即用于设置端
//口方向,以下RBX,RCX,RDX为相同意义
//预定义口位IAX----大写字母I表示input,表明
//这种表示对应PINA的使用方法,即读取端口电平,
//以下IBX,ICX,IDX为相同意义
//-----------------------************************
//输出数据
#define OA0 A_OUT.bit0
#define OA1 A_OUT.bit1
#define OA2 A_OUT.bit2
#define OA3 A_OUT.bit3
#define OA4 A_OUT.bit4
#define OA5 A_OUT.bit5
#define OA6 A_OUT.bit6
#define OA7 A_OUT.bit7
#define OB0 B_OUT.bit0
#define OB1 B_OUT.bit1
#define OB2 B_OUT.bit2
#define OB3 B_OUT.bit3
#define OB4 B_OUT.bit4
#define OB5 B_OUT.bit5
#define OB6 B_OUT.bit6
#define OB7 B_OUT.bit7
#define OC0 C_OUT.bit0
#define OC1 C_OUT.bit1
#define OC2 C_OUT.bit2
#define OC3 C_OUT.bit3
#define OC4 C_OUT.bit4
#define OC5 C_OUT.bit5
#define OC6 C_OUT.bit6
#define OC7 C_OUT.bit7
#define OD0 D_OUT.bit0
#define OD1 D_OUT.bit1
#define OD2 D_OUT.bit2
#define OD3 D_OUT.bit3
#define OD4 D_OUT.bit4
#define OD5 D_OUT.bit5
#define OD6 D_OUT.bit6
#define OD7 D_OUT.bit7
//--------------------***************************
//设置方向
#define RA0 A_DIR.bit0
#define RA1 A_DIR.bit1
#define RA2 A_DIR.bit2
#define RA3 A_DIR.bit3
#define RA4 A_DIR.bit4
#define RA5 A_DIR.bit5
#define RA6 A_DIR.bit6
#define RA7 A_DIR.bit7
#define RB0 B_DIR.bit0
#define RB1 B_DIR.bit1
#define RB2 B_DIR.bit2
#define RB3 B_DIR.bit3
#define RB4 B_DIR.bit4
#define RB5 B_DIR.bit5
#define RB6 B_DIR.bit6
#define RB7 B_DIR.bit7
#define RC0 C_DIR.bit0
#define RC1 C_DIR.bit1
#define RC2 C_DIR.bit2
#define RC3 C_DIR.bit3
#define RC4 C_DIR.bit4
#define RC5 C_DIR.bit5
#define RC6 C_DIR.bit6
#define RC7 C_DIR.bit7
#define RD0 D_DIR.bit0
#define RD1 D_DIR.bit1
#define RD2 D_DIR.bit2
#define RD3 D_DIR.bit3
#define RD4 D_DIR.bit4
#define RD5 D_DIR.bit5
#define RD6 D_DIR.bit6
#define RD7 D_DIR.bit7
//----------------------**************************
//读取端口
#define IA0 A_DIN.bit0
#define IA1 A_DIN.bit1
#define IA2 A_DIN.bit2
#define IA3 A_DIN.bit3
#define IA4 A_DIN.bit4
#define IA5 A_DIN.bit5
#define IA6 A_DIN.bit6
#define IA7 A_DIN.bit7
#define IB0 B_DIN.bit0
#define IB1 B_DIN.bit1
#define IB2 B_DIN.bit2
#define IB3 B_DIN.bit3
#define IB4 B_DIN.bit4
#define IB5 B_DIN.bit5
#define IB6 B_DIN.bit6
#define IB7 B_DIN.bit7
#define IC0 C_DIN.bit0
#define IC1 C_DIN.bit1
#define IC2 C_DIN.bit2
#define IC3 C_DIN.bit3
#define IC4 C_DIN.bit4
#define IC5 C_DIN.bit5
#define IC6 C_DIN.bit6
#define IC7 C_DIN.bit7
#define ID0 D_DIN.bit0
#define ID1 D_DIN.bit1
#define ID2 D_DIN.bit2
#define ID3 D_DIN.bit3
#define ID4 D_DIN.bit4
#define ID5 D_DIN.bit5
#define ID6 D_DIN.bit6
#define ID7 D_DIN.bit7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -