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

📄 bit.h

📁 凌阳单片机液晶驱动 /*--------------------------------------------------------*|***************简易心电图仪源程序*****
💻 H
字号:
#ifndef	__BIT_h__
#define	__BIT_h__

/**************************************************************************************/
//成都信息工程学院电子工程系医疗电子二班
//位操作,另外,可以对字节操作,每一个单元(单位为16位的字)可以分为高八位和低八位操作;
//使用方法:下面的硬件寄存器都定义为了UNport结构体型的指针变量,使用时只要:
//端口名->bit.bit0就可以操作端口的第0位;
//端口名->byte.bytel就可以操作端口的低八位;
//端口名->port就可以操作整个端口;
//实际上,操作整个端口时可以用另外一个头文件"hardware.h",直接对*端口名操作就可以了;
/***************************************************************************************/

#define Uint unsigned int
typedef struct
{
 Uint bit0  : 1;
 Uint bit1  : 1;
 Uint bit2  : 1;
 Uint bit3  : 1;
 Uint bit4  : 1;
 Uint bit5  : 1;
 Uint bit6  : 1;
 Uint bit7  : 1;
 Uint bit8  : 1;
 Uint bit9  : 1;
 Uint bit10 : 1;
 Uint bit11 : 1;
 Uint bit12 : 1;
 Uint bit13 : 1;
 Uint bit14 : 1;
 Uint bit15 : 1;
}Bit;

typedef struct
{
 Uint bytel  : 8;
 Uint byteh  : 8;
}Byte;
 
typedef union
{
 Bit bit;
 Byte byte;
 Uint port;
}UNport;


#define PA       ((volatile UNport *)(0x7000))
#define PA_Buffer  ((volatile UNport *)(0x7001))
#define PA_Dir     ((volatile UNport *)(0x7002))
#define PA_Attrib    ((volatile UNport *)(0x7003))
#define PA_Latch     ((volatile UNport *)(0x7004))
#define PB       ((volatile UNport *)(0x7005))
#define PB_Buffer    ((volatile UNport *)(0x7006))
#define PB_Dir     ((volatile UNport *)(0x7007))
#define PB_Attrib    ((volatile UNport *)(0x7008))
#define Poscu      ((volatile UNport *)(0x7013))
#define Ptbu      ((volatile UNport *)(0x700e))
#define Ptbc      ((volatile UNport *)(0x700f))
#define Pt0     ((volatile UNport *)(0x700a))
#define Pt1      ((volatile UNport *)(0x700c))
#define Pt0u      ((volatile UNport *)(0x700b))
#define Pt1u      ((volatile UNport *)(0x700d))
#define Pintu     ((volatile UNport *)(0x7010))
#define Pintc     ((volatile UNport *)(0x7011))
#define Padm      ((volatile UNport *)(0x7014))
#define Padl     ((volatile UNport *)(0x702c))
#define Padu      ((volatile UNport *)(0x7015))
#define Padmuxu   ((volatile UNport *)(0x702b))
#define Pda0      ((volatile UNport *)(0x7017))
#define Pda1      ((volatile UNport *)(0x7016))
#define Pdau      ((volatile UNport *)(0x702a))
#define Pwdogc     ((volatile UNport *)(0x7012))
#define Pflashu   ((volatile UNport *)(0x7555))
#define Watchdog_Clear  Pwdogc->port

#define P0_0  PA->bit.bit0
#define P0_1  PA->bit.bit1
#define P0_2  PA->bit.bit2
#define P0_3  PA->bit.bit3
#define P0_4  PA->bit.bit4
#define P0_5  PA->bit.bit5
#define P0_6  PA->bit.bit6
#define P0_7  PA->bit.bit7
#define P0_8  PA->bit.bit8
#define P0_9  PA->bit.bit9
#define P0_10  PA->bit.bit10
#define P0_11  PA->bit.bit11
#define P0_12  PA->bit.bit12
#define P0_13  PA->bit.bit13
#define P0_14  PA->bit.bit14
#define P0_15  PA->bit.bit15
#define P1_0  PB->bit.bit0
#define P1_1  PB->bit.bit1
#define P1_2  PB->bit.bit2
#define P1_3  PB->bit.bit3
#define P1_4  PB->bit.bit4
#define P1_5  PB->bit.bit5
#define P1_6  PB->bit.bit6
#define P1_7  PB->bit.bit7
#define P1_8  PB->bit.bit8
#define P1_9  PB->bit.bit9
#define P1_10  PB->bit.bit10
#define P1_11  PB->bit.bit11
#define P1_12  PB->bit.bit12
#define P1_13  PB->bit.bit13
#define P1_14  PB->bit.bit14
#define P1_15  PB->bit.bit15

#define P0    PA->port
#define P0_Buffer  PA_Buffer->port
#define P0_Dir   PA_Dir->port
#define P0_Attrib  PA_Attrib->port
#define P0_Latch  PA_Latch->port
#define P0_Lowbyte   PA->byte.bytel
#define P0_Highbyte   PA->byte.byteh
#define P0_Dir_Lowbyte  PA_Dir->byte.bytel
#define P0_Dir_Highbyte  PA_Dir->byte.byteh
#define P0_Attrib_Lowbyte PA_Attrib->byte.bytel
#define P0_Attrib_Highbyte PA_Attrib->byte.byteh

#define P1    PB->port
#define P1_Buffer  PB_Buffer->port
#define P1_Dir   PB_Dir->port
#define P1_Attrib  PB_Attrib->port
#define P1_Lowbyte   PB->byte.bytel
#define P1_Highbyte   PB->byte.byteh
#define P1_Dir_Lowbyte  PB_Dir->byte.bytel
#define P1_Dir_Highbyte  PB_Dir->byte.byteh
#define P1_Attrib_Lowbyte PB_Attrib->byte.bytel
#define P1_Attrib_Highbyte PB_Attrib->byte.byteh

#define OSC_Unit  Poscu->port
#define Timebase_Unit Ptbu->port
#define Timebase_Clear Ptbc->port
#define T0    Pt0->port
#define T1    Pt1->port
#define T0_Unit   Pt0u->port
#define T1_Unit   Pt1u->port
#define INT_Unit  Pintu->port
#define INT_Clear  Pintc->port
#define AD_Unit   Padu->port
#define ADMUX_Unit  Padmuxu->port
#define AD_Mic   Padm->port
#define AD_Line   Padl->port
#define DA_Unit   Pdau->port
#define DA0    Pda0->port
#define DA1    Pda1->port
#define Flash_Unit  Pflashu->port

#define EXT0  PB->bit.bit2
#define EXT1  PB->bit.bit3
#define EXT0_Dir  PB_Dir->bit.bit2
#define EXT1_Dir  PB_Dir->bit.bit3
#define EXT0_Attrib  PB_Attrib->bit.bit2
#define EXT1_Attrib  PB_Attrib->bit.bit3

#define UART_Unit1  Puartu1->byte.bytel
#define UART_Unit2  Puartu2->byte.bytel
#define UART   Puart->byte.bytel
#define UART_Baud_Low  Puartbaudl->byte.bytel
#define UART_Baud_High  Puartbaudh->byte.bytel

#define SCK_Dir   PB_Dir->bit.bit0
#define SDA_Dir   PB_Dir->bit.bit1
#define SCK_Attrib  PB_Attrib->bit.bit0
#define SDA_Attrib  PB_Attrib->bit.bit1
#define SCK   P1_0
#define SDA   P1_1

#define Rx_Dir   PB_Dir->bit.bit7
#define Tx_Dir   PB_Dir->bit.bit10
#define Rx_Attrib  PB_Attrib->bit.bit7
#define Tx_Attrib  PB_Attrib->bit.bit10
#define Rx   P1_7
#define Tx   P1_10

#define Rx_Int_EN  Puartu1->bit.bit7
#define Tx_Int_EN  Puartu1->bit.bit6
#define UART_Reset  Puartu1->bit.bit5
#define Parity   Puartu1->bit.bit3
#define Parity_EN  Puartu1->bit.bit7
#define Rx_EM   Puartu2->bit.bit7
#define Tx_EM   Puartu2->bit.bit6
#define Rx_RDY   Puartu2->bit.bit7
#define Tx_RDY   Puartu2->bit.bit6
#define UART_FE   Puartu2->bit.bit5
#define UART_OE   Puartu2->bit.bit4
#define UART_PE   Puartu2->bit.bit3

#define AD_Open()  AD_Unit=0x3d


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -