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

📄 ch452l_driver._c

📁 ch452的数码管和键盘驱动程序
💻 _C
字号:
#include<iom8v.h>
#include<macros.h>
#include"delay.h"

/************************************************************************
*说明:运行与CH452L的4线模式,MCU使用ATMEGA8L,MCU与CH452L引脚连接如下:
                   LOAD    PC0      
				   DCLK    PC1
				   DIN     PC2
				   DOUT    PC3
LOAD,DCLK,DIN都为输出,DOUT为输入,若要使用其它IO口,只需更改如下宏定义即可
***********************************************************************/
#define PC0 0
#define PC1 1
#define PC2 2
#define PC3 3
//#define LOAD_IN DDRC=~BIT(PC0)
#define LOAD_OUT DDRC|=BIT(PC0)
#define LOAD_OUT0 PORTC=~BIT(PC0)
#define LOAD_OUT1 PORTC|=BIT(PC0)
//#define DCLK_IN DDRC=~BIT(PC1)
#define DCLK_OUT DDRC|=BIT(PC1)
#define DCLK_OUT0 PORTC=~BIT(PC1)
#define DCLK_OUT1 PORTC|=BIT(PC1)
//#define DIN_IN DDRC=~BIT(PC2)
#define DIN_OUT DDRC|=BIT(PC2)
#define DIN_OUT0 PORTC=~BIT(PC2)
#define DIN_OUT1 PORTC|=BIT(PC2)
#define DOUT_IN DDRC=~BIT(PC3)
//#define DOUT_OUT DDRC|=BIT(PC3)
#define DOUT_OUT0 PORTC=~BIT(PC3)
#define DOUT_OUT1 PORTC|=BIT(PC3)

/*************************************************************************
*宏定义CH452L系统命令
*************************************************************************/
#define CH452L_RESET 0x0001       //CH452L初始化命令
#define CONFIG_SYSTEM  0x0400     //配置系统参数
#define CONFIG_DISPLAY 0x0500     //配置显示参数

/*************************************************************************
*宏定义CH452L加载数据DIG7~DIG0
*************************************************************************/
#define CH452L_DIG7 0x0f00
#define CH452L_DIG6 0x0e00
#define CH452L_DIG5 0x0d00
#define CH452L_DIG4 0x0c00
#define CH452L_DIG3 0x0b00
#define CH452L_DIG2 0x0a00
#define CH452L_DIG1 0x0900
#define CH452L_DIG0 0x0800

/**************************************************************************
*函数名:初始化CH452L端口
*函数功能:LOAD,DCLK,DIN都为输出,DOUT为输入
*入口参数:无
*出口参数:无
**************************************************************************/
void Init_Ch452lport(void)
{
    LOAD_OUT;
	DCLK_OUT;
	DIN_OUT;

}

/**************************************************************************
*函数名称:向CH452L写入命令函数 
*函数功能:
*入口参数:定义一无符号整型变量存储12字节的命令字。
*出口参数:无
***************************************************************************/
void Ch452l_Writecommand(unsigned int command)
{
    unsigned char i;
	LOAD_OUT0;     
    for(i=0;i<12;i++)
	{  
	    DCLK_OUT0;
		if(command&1)
		{
		    DIN_OUT1;    
		}
		else
		{
		    DIN_OUT0;
		}
		DCLK_OUT1;
		command=command>>1;
	}
	LOAD_OUT1;       //LOAD上升沿加载一帧数据
	//Delay_Nus(300);  //延时
}

/**************************************************************************
*函数名:初始化CH452L系统
*函数功能:扫描极限为8个数码管
*入口参数:无
*出口参数:无
**************************************************************************/
void Init_Ch452lsystem(void)
{
    Ch452l_Writecommand(CH452L_RESET);//芯片复位
    Ch452l_Writecommand(CONFIG_DISPLAY|0x00f0);//8为显示,BCD译码
	Ch452l_Writecommand(CONFIG_SYSTEM|1);//开启显示
}

⌨️ 快捷键说明

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