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

📄 ch452.h

📁 键盘扫描及LED驱动芯片CH452的例子程序
💻 H
字号:
/* 
****************************************************************************************
头部文件名:        CH452.H
头部文件名称:      CH452键盘数码管驱动芯片驱动的头部文件
文件版本:        1.0
文件功能:          
    本文件是对 ATmega16 控制CH452键盘数码管驱动源程序文件的
    常量、数据结构类型进行定义和函数原型声明的头部文件。
文件说明:

编译工具软件:      CodeVision AVR C 版本:1.24.6 以上
链接文件:          目标器件芯片的头部文件

编作者:            唐耕
编作者 E-Mail:     jacobhere@gmail.com
编制日期:          2007年7月20日
------------------------------------------------------------------------------
头部文件版本历史:
2007年7月20日 -------- 版本 1.0 :发行版本
****************************************************************************************
*/


/*======================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
======================================================================================*/
#ifndef CH452_H                 /* "CH452_H" 条件编译开始 */
#define CH452_H


/*======================================================================================
              本头部文件包括的其他头部文件
======================================================================================*/
#include "ATmega16.h"                 /* 包含目标器件芯片的头部文件 */
#include "MCU8Bit_C_DataType.H"       /* 包含数据类型和位名定义的头部文件 */
#include "Delay.H"                    /* 包含延时函数的头部文件 */


/*======================================================================================
下面这三条指令是用于区分编译系统为 C++ 或 C 的预处理指令。
"__cplusplus" 为 C++ 预处理器名字,这三条指令表明接在其下面的那些指令为 C 程序特征。
======================================================================================*/
#ifdef __cplusplus
extern "C" {
#endif


/*======================================================================================
CH452键盘数码管驱动芯片的输入/输出引脚定义:
注:下列这些定义与硬件设计相关,如需改变控制的输入/输出引脚仅在此重新定义即可。
======================================================================================*/
#define CH452_SCL_DDR     DDRC      /* CH452 时钟端口的数据方向寄存器 */
#define CH452_SCL_PORT    PORTC     /* CH452 时钟端口的数据寄存器 */
#define CH452_SCL_PINNum  BIT0      /* CH452 的时钟引脚数字 */
#define CH452_SDA_DDR     DDRC      /* CH452 数据端口的数据方向寄存器 */
#define CH452_SDA_PORT    PORTC     /* CH452 数据端口的数据寄存器 */
#define CH452_SDA_PINNum  BIT1      /* CH452 的数据引脚数字 */        
#define CH452_INT_DDR     DDRD      /* CH452 中断端口的数据方向寄存器 */
#define CH452_INT_PORT    PORTD     /* CH452 中断端口的数据寄存器 */
#define CH452_INT_PINNum  BIT2      /* CH452 的中断引脚数字 */    

/*======================================================================================
下面是CH452芯片操作指令列表:
======================================================================================*/
#define CH452_NOP      0x0000 //空操作
#define CH452_RESET    0x0201 //复位
#define CH452_LEVEL    0x0100 //加载光柱值
#define CH452_CLR_BIT  0x0180 //段位清0
#define CH452_SET_BIT  0x01C0 //段位置1
#define CH452_SLEEP    0x0202 //进入睡眠状态
#define CH452_LEFTMOV  0x0300 //设置移动方式-作移
#define CH452_LEFTCYC  0x0301 //设置移动方式-左循
#define CH452_RIGHTMOV 0x0302 //设置移动方式-右移
#define CH452_RIGHTCYC 0x0303 //设置移动方式-右循 
#define CH452_SELF_BCD 0x0380 //自定义BCD码
#define CH452_SYSOFF   0x0400 //关显示、键盘
#define CH452_SYSON1   0x0401 //开显示
#define CH452_SYSON2   0x0403 //开显示、键盘
#define CH452_SYSON2W  0x0423 //开显示、键盘, 真正2线接口
#define CH452_DSP      0x0500 //设置默认显示方式
#define CH452_BCD      0x0580 //设置BCD译码方式
#define CH452_TWINKLE  0x0600 //设置闪烁控制
#define CH452_GET_KEY  0x0700 //获取按键
#define CH452_DIG0     0x0800 //数码管位0显示
#define CH452_DIG1     0x0900 //数码管位1显示 
#define CH452_DIG2     0x0a00 //数码管位2显示
#define CH452_DIG3     0x0b00 //数码管位3显示
#define CH452_DIG4     0x0c00 //数码管位4显示
#define CH452_DIG5     0x0d00 //数码管位5显示 
#define CH452_DIG6     0x0e00 //数码管位6显示 
#define CH452_DIG7     0x0f00 //数码管位7显示


/*======================================================================================
下面这三条指令是用于与上面三条区分编译系统为 C++ 或 C 的预处理指令相对应。用于指定
 extern "C" 链接指示符作用域,此处的"}"与上面的"{"相对应,为链接指示符作用结束符。
======================================================================================*/
#ifdef __cplusplus
}
#endif


/*======================================================================================
CH452.C 源程序文件中的函数原型声明:
======================================================================================*/
#pragma used+

/*----------------------------------------------------------------------------
函数功能:    CH452虚拟I2C总线开始部分代码。
备注:        当用虚拟I2C总线读或写时首先调用这个函数。
----------------------------------------------------------------------------*/

void CH452_I2C_Start(void);

/*----------------------------------------------------------------------------
函数功能:    CH452虚拟I2C总线结束部分代码。
备注:        当用虚拟I2C总线读或写完成时调用这个函数。
----------------------------------------------------------------------------*/

void CH452_I2C_Stop(void);

/*----------------------------------------------------------------------------
函数功能:    本函数用于虚拟I2C总线向外围器件写入一个字节操作。
函数入口参数:c ------ 要写入的一个字节数据。
备注:
----------------------------------------------------------------------------*/
  
void CH452_I2C_WrOneByte(unsigned char c);

/*----------------------------------------------------------------------------
函数功能:    本函数用于虚拟I2C总线向外围器件写入一个命令或数据操作。
函数入口参数:command ------ 要写入的命令或数据。
备注:
----------------------------------------------------------------------------*/

void CH452_I2C_Write(unsigned short command);

/*----------------------------------------------------------------------------
函数功能:    本函数用于从虚拟I2C总线读入一个字节操作。
函数出口参数:读到的数据。
备注:
----------------------------------------------------------------------------*/
  
unsigned char CH452_I2C_RdOneByte(void);

/*----------------------------------------------------------------------------
函数功能:    本函数用于从虚拟I2C总线读入数据操作。
函数出口参数:读到的数据。
备注:
----------------------------------------------------------------------------*/

unsigned char CH452_I2C_Read();

/*----------------------------------------------------------------------------
函数功能:    数码管显示的初始化。
备注:
----------------------------------------------------------------------------*/

void CH452_Display_Init(void);

/*----------------------------------------------------------------------------
函数功能:    用于处理按键的中断服务程序。
备注:
----------------------------------------------------------------------------*/
interrupt [EXT_INT0] void ext_int0_isr(void);

#pragma used-





#endif                                /* "CH452_H" 条件编译结束 */



/*
****************************************************************************************
                             本头部文件到此结束
****************************************************************************************
*/

⌨️ 快捷键说明

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