📄 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 + -