CH579M驱动74HC595数码管屏移植实战
CH579M板子到手已有几个月,之前都是官网实例在修改下载-连接测试,GPIO,UART,网口各种通信虽说好调但毕间竟自己写得少没有大改动困难容易解决。现将用该板外扩的IO接口驱动由两片74HC595控制的6位数码管。
简单介绍 一下数码显示板,74HC595其中一片控制6位数码管的位码段,另一片负责显示数据段。整块数显板接口VCC GND ST DAT CLK.
整个项目移植在网络例程中添加文件
根据官网的习惯,我们来新建两文件,.h文件
#ifndef CH57x_HC595_H
#define CH57x_HC595_H
#ifdef __cplusplus
extern “C” {
#endif
#include “CH579SFR.h”
#include “core_cm0.h”
#define ST_H GPIOA_SetBits(GPIO_Pin_0) //74HC595锁存
#define ST_L GPIOA_ResetBits(GPIO_Pin_0)
#define DATOUT_H GPIOA_SetBits(GPIO_Pin_3) //74HC595串行
#define DATOUT_L GPIOA_ResetBits(GPIO_Pin_3) //74HC595串行
#define CLK_H GPIOA_SetBits(GPIO_Pin_7) //74HC595时钟信号
#define CLK_L GPIOA_ResetBits(GPIO_Pin_7) //74HC595时钟信号
#define KEYIN_H GPIOB_SetBits(GPIO_Pin_22) //74HC595时钟信号
#define KEYIN_L GPIOB_ResetBits(GPIO_Pin_22) //74HC595时钟信号
void Led_Lock(void);
void delay(unsigned int x);
void Led_Send_Byte(unsigned char data);
void diplay_6led(unsigned char wd,unsigned char sd,unsigned char led_dat);
void Menusetup(void);
#endif // CH57x_HC595_H
该文件定义了对应3个信号线的置1、置0宏,定义.C文件所定义的驱动函数。主要显示函数diplay_6led(unsigned char wd,unsigned char sd,unsigned char led_dat);主程序也只运行此函数。接下来编定.c文件
/********************************** © COPYRIGHT *******************************
- File Name : CH57x_HC595.c
- Author : ZXH(江山江汇)
- Version : V1.1
- Date : 2020/10/01
- Description
*******************************************************************************/
#include “CH57x_common.h”
#include “CH57x_HC595.h”
#define counter 500 //数码管延时长宏
void Menusetup(void);
unsigned char m,k,dis_wd,dis_sd;
unsigned char tempwd,tempsd,savewd,savesd,page,pwd;
unsigned char Dm_tab[]=
{
//0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 //0-9共阳极代码
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f //0-9共阴极代码
};
unsigned char led_tab[]=
{
0x08,//电源灯亮
0x09,//电源温度控制亮
0x0a,//电源湿度控制亮
0x0b,//电源温湿都亮
0x0c//报警+电源
};
unsigned char Wm_tab[]=
{
0xfe, //上12十位11111110
0xfd, //上9个位带小数位11111101
0xfb, //上8小数为11111011
0xf7, //下12十位11110111
0xef, //下9-个位带小数点11101111
0xdf, //下8-小数位11011111
0xbf,//控四LED灯的位
0x7f,//送监别码时段用于判断按建位置及建值。
0xff
};
/*******************************************************************************
- Function Name :HC595C驱动
- Description : 采样数据粗调,获取偏差值
-
注意,使用粗调校准,必须保证 PA5(AIN1)设置为浮空输入模式,管脚外部不