CH579M驱动74HC595数码管屏实战

本文介绍了如何在CH579M板子上使用74HC595驱动数码管,详细讲解了.h和.c文件的编写,包括宏定义、驱动函数和显示控制。通过实际代码展示了如何设置数码显示和按键操作,适用于初学者移植和理解GPIO控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)设置为浮空输入模式,管脚外部不
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值