⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mybit.h

📁 用超声波来测量距离
💻 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 + -