资源简介
CH452 是数码管显示驱动和键盘扫描控制芯片。CH452内置时钟振荡电路,可以动态驱动8 位数码管或者64 只LED,具有BCD 译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行64键的键盘扫描;CH452 通过可以级联的4 线串行接口或者2 线串行接口与单片机等交换数据;并且可以对单片机提供上电复位信号。
代码片段和文件信息
/* ***************************
Website: http://wch.cn
Email: tech@wch.cn
Author: W.ch 2005.4
CH452的真正2线接口
****************************
CH452的真正2线接口,含低电平脉冲按键中断在内,只需要2个I/O引脚,兼容I2C/IIC时序
两线制方式SCL/SDA,按键中断由SDA产生,接单片机的脉冲/边沿中断引脚
对于频率低于24MHz的MCS51,为了节约传输时间,可以适当减少SCL/SDA之间的延时
*************************************************************************** */
#include “bsp_CH452.H“
#define DELAY_1US {bsp_DelayUS(5);} // 延时1US
static void CH452_SDA_Dir_IN(void);//SDA 设置为输入
static void CH452_SDA_Dir_OUT(void);//SDA设置为输出
static unsigned char CH452_SDA_READ(void);
void Bsp_CH452_Write(unsigned int cmd);// chx取值为1或者2 1代表数码管 代表灯条
unsigned char Bsp_CH452_Read(unsigned int cmd);//读数值
void bsp_Init_CH452(void);//初始化引脚
/*初始化引脚 SCL ,SDA ,CS1 */
/* ***************************
CH452 GPIO 初始化
采用两线的接线方式
SDA 和 SCL 设置为输出模式
****************************/
void bsp_Init_CH452(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_ALL_CH452 ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = CH452_SCL_Pin;
GPIO_Init( CH452_SCL_Port &GPIO_InitStructure );
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = CH452_SDA_Pin;
GPIO_Init( CH452_SDA_Port &GPIO_InitStructure );
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = CH452_CS1_Pin;
GPIO_Init( CH452_CS1_Port &GPIO_InitStructure );
CH452_CH2_EN;//注意CH452是静态片选
bsp_DelayUS(100);
Bsp_CH452_Write(1 0x201);//内部复位
bsp_DelayUS(100);
Bsp_CH452_Read(1 0x040);//可以获取版本号,测试用数值为0x20
Bsp_CH452_Write(1 0x403);
}
/*设置SDA为输入*/
static void CH452_SDA_Dir_IN(void)
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = CH452_SDA_Pin;
GPIO_Init( CH452_SDA_Port &GPIO_InitStructure );
}
/*设置SDA为输出*/
static void CH452_SDA_Dir_OUT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = CH452_SDA_Pin;
GPIO_Init( CH452_SDA_Port &GPIO_InitStructure );
}
static unsigned char CH452_SDA_READ(void)
{
return GPIO_ReadInputDataBit(CH452_SDA_Port CH452_SDA_Pin);
}
/* ***************************
CH452 写操作
chx选择通道。cmd为命令
****************************/
void Bsp_CH452_Write(unsigned int cmd)
{
unsigned char DAi;
unsigned int CMB_CMD; //合并后的命令
CH452_SDA_SET;
CH452_SCL_SET; //SDA 输出高电平,SCL 输出高电平,准备启动信号;
DELAY_1US;
CH452_SDA_CLR; //SDA 输出低电平,产生启动信号;
DELAY_1US;
CH452_SCL_CLR; //SCL 输出低电平,启动完成;
DELAY_1US;
CH452_SCL_SET; //设置DA0位为0
DELAY_1US;
CH452_SCL_CLR;
DELAY_1US;
DA=0x2; //DA1=1 ADDR=0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4657 2017-12-13 13:22 CH452\bsp_CH452.c
文件 1175 2017-12-13 13:14 CH452\bsp_CH452.h
文件 325315 2016-11-15 17:45 CH452\CH452DS1.PDF
文件 13256 2016-11-10 15:50 CH452\CH452IF.ZIP
文件 58970 2017-12-13 13:09 CH452\参考电路.png
文件 57344 2009-09-28 23:03 CH452\数码管代码生成器\数码管代码生成器.EXE
文件 295 2009-03-04 13:19 CH452\数码管代码生成器\绿盟.url
目录 0 2016-11-15 14:49 CH452\数码管代码生成器
目录 0 2017-12-13 13:11 CH452
----------- --------- ---------- ----- ----
461012 9
相关资源
- IIC总线读写AT24C02BEEPROM源程序 有详细
- 数据结构实验六二分查找、Hash查找题
- 4x4矩阵键盘源程序-汇编
- vc播放avi的源程序
- LSB信息隐藏源程序
- 16×64LED点阵显示屏的设计(附完整p
- 凌阳SPCE061A 语音遥控小车 源程序
- 波峰检测源程序
- 个人防火墙源程序代码
- S变换源程序
- 黑油模型数值模拟源程序
- 8、停车场管理数据结构课程设计源程
- RC522基于STC89C52 带上位机C源程序
- Programming the Finite Element Method 5thEditi
- 模拟退火遗传算法 源程序
- 基于MVC模式的扫雷游戏
- 《并行算法实践》mpi源程序
- Rosenbrock函数源程序
- 数字钟仿真+源程序.zip
- 编译原理讨论课PPTpl0编译器源程序讲
- 万能遥控器源程序
- 虚拟现实源程序代码虚拟现实代码
- gaot遗传算法优化工具箱介绍及源程序
- 书中源程序代码.rar
- 基于DS18B20的数字温度计设计原理图
- 基于DSP28335生成spwm源程序 三相120度移
- 悬挂运动控制系统详细源程序
- Verilog数字系统设计教程夏宇闻例题源
- 数电实验源程序gal20v8,串行数字密码
- 模糊神经网络算法源程序集合
评论
共有 条评论