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

📄 para.c

📁 南京沁恒电子有限公司USB通用设备接口芯片资料
💻 C
字号:
// *******************************************************************
//Website:  http://wch.cn
//Email:    tech@wch.cn
//Author:   W.ch 2007.6
// *******************************************************************

/* CH432芯片 硬件标准8位并口连接的硬件抽象层 V1.0 */
/* 提供I/O接口子程序,提供寄存器级读写子程序 */

/* 本例中的硬件连接方式如下(实际应用电路可以参照修改下述定义及子程序) */
/* 单片机的引脚    CH432芯片的引脚
      P0.0                  A0
      P0.1                  A1
      P0.2                  A2
      P0.3                  A3
      Y6                    CS#         /* 片选输入引脚
      VCC                   CS1         片选输入引脚 */

/**************************并口直接地址方式***********************
           定义CH432    寄存器基址
**************************************************************************/

#define addr    0xE000    /* 根据硬件地址修改 */
/**************************************************************************

        定义CH432串口0的寄存器地址

**************************************************************************/
#define CH432_RBR_PORT    ( addr + REG_RBR_ADDR )      /* 假定CH432接收缓冲寄存器0的I/O地址 */
#define CH432_THR_PORT    ( addr + REG_THR_ADDR )     /* 假定CH432发送保持寄存器0的I/O地址 */
#define CH432_IER_PORT    ( addr + REG_IER_ADDR )     /* 假定CH432中断使能寄存器0的I/O地址*/
#define CH432_IIR_PORT    ( addr + REG_IIR_ADDR )     /* 假定CH432中断识别寄存器0的I/O地址 */
#define CH432_FCR_PORT    ( addr + REG_FCR_ADDR )     /* 假定CH432FIFO控制寄存器0的I/O地址 */
#define CH432_LCR_PORT    ( addr + REG_LCR_ADDR )     /* 假定CH432线路控制寄存器0的I/O地址 */
#define CH432_MCR_PORT    ( addr + REG_MCR_ADDR )     /* 假定CH432MODEM控制寄存器0的I/O地址 */
#define CH432_LSR_PORT    ( addr + REG_LSR_ADDR )     /* 假定CH432线路状态寄存器0的I/O地址 */
#define CH432_MSR_PORT    ( addr + REG_MSR_ADDR )     /* 假定CH432MODEM状态寄存器0的I/O地址 */
#define CH432_SCR_PORT    ( addr + REG_SCR_ADDR )     /* 假定CH432用户可定义寄存器0的I/O地址 */
#define CH432_DLL_PORT    ( addr + REG_DLL_ADDR )     /* 假定CH432波特率除数锁存器0低8位I/O地址 */
#define CH432_DLM_PORT    ( addr + REG_DLM_ADDR )     /* 假定CH432波特率除数锁存器0高8位I/O地址 */
/**************************************************************************
        定义CH432串口1的寄存器地址

**************************************************************************/
#define CH432_RBR1_PORT   ( addr + REG_RBR1_ADDR )     /* 假定CH432接收缓冲寄存器1的I/O地址 */
#define CH432_THR1_PORT   ( addr + REG_THR1_ADDR )    /* 假定CH432发送保持寄存器1的I/O地址 */
#define CH432_IER1_PORT   ( addr + REG_IER1_ADDR )    /* 假定CH432中断使能寄存器1的I/O地址 */
#define CH432_IIR1_PORT   ( addr + REG_IIR1_ADDR )    /* 假定CH432中断识别寄存器1的I/O地址 */
#define CH432_FCR1_PORT   ( addr + REG_FCR1_ADDR )    /* 假定CH432FIFO控制寄存器1的I/O地址 */
#define CH432_LCR1_PORT   ( addr + REG_LCR1_ADDR )    /* 假定CH432线路控制寄存器1的I/O地址 */
#define CH432_MCR1_PORT   ( addr + REG_MCR1_ADDR )    /* 假定CH432MODEM控制寄存器1的I/O地址 */
#define CH432_LSR1_PORT   ( addr + REG_LSR1_ADDR )    /* 假定CH432线路状态寄存器1的I/O地址 */
#define CH432_MSR1_PORT   ( addr + REG_MSR1_ADDR )    /* 假定CH432MODEM状态寄存器1的I/O地址 */
#define CH432_SCR1_PORT   ( addr + REG_SCR1_ADDR )    /* 假定CH432用户可定义寄存器1的I/O地址 */
#define CH432_DLL1_PORT   ( addr + REG_DLL1_ADDR )    /* 假定CH432波特率除数锁存器1低8位I/O地址 */   
#define CH432_DLM1_PORT   ( addr + REG_DLM1_ADDR )    /* 假定CH432波特率除数锁存器1高8位I/O地址 */


/* 向指定寄存器写数据 */

void WriteCH432Data( UINT32 mAddr, UINT8 dat )
{
    *( UINT8 xdata * ) mAddr = dat; 
}

/* 从指定寄存器读数据 */

UINT8 ReadCH432Data( UINT32 mAddr ) 
{
   return( *( UINT8 xdata * ) mAddr );
}

void WriteCH432Block( UINT32 mAddr, UINT8 mLen, PUINT8 mBuf )    /* 向指定起始地址写入数据块 */
{
    while ( mLen -- ) WriteCH432Data( mAddr, *mBuf++ );
}

void CH432_PORT_INIT( )    /* 标准并口不需要初始化 */
{


}



⌨️ 快捷键说明

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