资源简介
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
相关资源
- scratch3.0 源程序(说相声)
- 改进的BP神经网络算法
- 光立方制作(原理图 源程序 LED搭接方
- FM1702调试源程序
- 智能寻迹机器人源程序及pcb图
- 单片机数字时钟包附电路图 源程序
- C 纸牌游戏——21点
- 16X16点阵程序(附仿真图和源程序)
- 基于ARM蓝牙传输源程序
- C读DXF源程序及AutoCAD中的DXF参考文件
- 路由选择算法源程序(最短路径算法
- 数字电压表(源程序 protues仿真)
- 源程序量统计小工具
- delphi rfid 读写卡读卡器/写卡器源程序
- 全屏的俄罗斯方块源程序
- 获取外网IP地址小工具,VC 简单源程
- 无刷电机控制源程序
- 指纹识别源程序与指纹库
- 暗通道去霾处理源程序
- 四路抢答器源程序+Pro7仿真文件
- OpenGL绘制可运动自行车源程序.zip
- 光滑粒子流体动力学SPH源程序
- 源程序阅读与调试课程设计报告--学生
- delphi下用Lockbox中rsa进行加解密的范例
- 2.5分频VHDL源程序
- 光立方3D8 2803+573.源程序 HEX C 仿真电路
- 8位二进制计数器vhdl源程序及原理图
- 两轮平衡车源程序,方能仪器,自平
- ( 16×64LED点阵显示屏的设计(附
- stm32f7的esp8266spi并口源程序,速率1.
评论
共有 条评论