• 大小: 375KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签: 源程序  

资源简介

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


评论

共有 条评论