首页 > 其他分享 >(六)Protues仿真STM32单片机控制8x8LED显示

(六)Protues仿真STM32单片机控制8x8LED显示

时间:2024-09-22 13:51:22浏览次数:12  
标签:case break char 8x8LED ODR 0x0 STM32 单片机 0xff

(六)Protues仿真STM32单片机控制8x8LED显示 – ARMFUN

1,配置CUBEMX,将PA0~7,PAB0~7配置为GPIO OUTPUT模式

2,GPIOA负责8bit数据,高电平有效,GPIOB负责行选则,低电平有效,编写行刷新函数

void disp_set_row(unsigned char dat,char sel)
{
	GPIOB->ODR=0xff;//关闭行选,防止将数据显示到旧行产生重影
	GPIOA->ODR=dat;//更新数据
	switch(sel)//打开新行
	{
		case 0:GPIOB->ODR=0xfe;break;
		case 1:GPIOB->ODR=0xfd;break;
		case 2:GPIOB->ODR=0xfb;break;
		case 3:GPIOB->ODR=0xf7;break;
		case 4:GPIOB->ODR=0xef;break;
		case 5:GPIOB->ODR=0xdf;break;
		case 6:GPIOB->ODR=0xbf;break;
		case 7:GPIOB->ODR=0x7f;break;
	}
}

3,定义一个显示缓冲区屏幕是8x8=64bit,需要定义一个长度为8的uchar数组,编写扫描点阵驱动函数,此函数需要定义3~10ms调用一次,实现逐行点亮LED 

unsigned char dispbuff[8];
void disp_scan()
{
	static char scan=0;
	disp_set_row(dispbuff[scan],scan);
	scan++;
	if(scan>=8)
		scan=0;
}

4,定义显示的图形,并且每次调用更换图形,此函数需要定时100ms以上调用一次,防止图形切换太快影子重叠。

unsigned char pic1[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,};
unsigned char pic2[8]={0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff,};
unsigned char pic3[8]={0x0,0x7e,0x42,0x42,0x42,0x42,0x7e,0x0,};
unsigned char pic4[8]={0x0,0x0,0x3c,0x24,0x24,0x3c,0x00,0x0,};
unsigned char pic5[8]={0x0,0x0,0x00,0x18,0x18,0x00,0x00,0x0,};
unsigned char pic6[8]={0x00,0x00,0x00,0x0,0x0,0x0,0x0,0x0,};
void disp_pic_switch()
{
	static char sel=0;
	switch(sel)
	{
		case 0:memcpy(dispbuff,pic1,8);break;
		case 1:memcpy(dispbuff,pic2,8);break;
		case 2:memcpy(dispbuff,pic3,8);break;
		case 3:memcpy(dispbuff,pic4,8);break;
		case 4:memcpy(dispbuff,pic5,8);break;
		case 5:memcpy(dispbuff,pic6,8);break;
	}
	sel++;
	if(sel>=6)
		sel=0;
}

标签:case,break,char,8x8LED,ODR,0x0,STM32,单片机,0xff
From: https://blog.csdn.net/qqk808/article/details/142435486

相关文章

  • STM32流水灯程序代码及解析:三种实现方式
    STM32流水灯程序代码及解析:三种实现方式在这篇文章中,我们将介绍三种方式来实现STM32的流水灯程序,包括使用HAL库、标准库和直接操作寄存器的方法。通过这三种不同的方式。1.硬件准备STM32开发板(如STM32F4或STM32F1系列)若干LED灯(通常是4个)适当的电阻连接线2.接线图将L......
  • stm32 FLASH闪存(读写内部FLASH&读取芯片ID)
    理论1.FLASH简介STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)(FLASH管理员)可以对程序存储器和选项字节进行擦除和编程读写FLASH的用途:   利用程序存储器的剩余空间来保存掉电不丢失的用户数据    通过在程序中编......
  • 51单片机双机通信——DS18B20温度测量
    目标实现功能    甲机控制数字温度传感器DS18B20采集温度、并将温度传递给乙机;乙机接收甲机传递的温度数据、并通过8位数码管动态显示。1.DS18B20简介1.1 DS18B20特点DS18B20采用单总线接口,测量结果直接输出数字信号,通过单总线传递给微处理器。工作电压在3.0v~5.5v......
  • 基于单片机的风机故障检测装置的设计与实现
    基于单片机的风机故障检测装置的设计与实现毕业论文摘要本文设计并实现了一种基于单片机的风机故障检测装置,旨在通过集成多种传感器和单片机控制技术,实时监测风机的运行状态,并在检测到故障时及时报警。系统采用STM32F103单片机作为核心控制单元,结合DS18B20温度传感器、ACS712......
  • 基于51单片机wifi智能大棚环境监测控制液晶显示设计
    1、前言        这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉小洪学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,小洪学长分享优质毕业设计项目......
  • 学习STM32的震动开关
    学习STM32的震动开关在本文中,我将详细介绍如何使用STM32微控制器来实现一个震动开关。震动开关是一种能够检测物体是否发生震动的传感器,通常用于安防系统、智能家居等领域。我们将使用STM32的GPIO模块和外部中断功能来实现震动开关的功能。前期准备在开始之前,我们需要准备以......
  • STM32实现简单的智能办公系统
    为了实现一个简单的智能办公系统,我们可以利用STM32微控制器和一些外设来实现各种功能。在本文中,我将介绍如何通过STM32来控制温度和湿度传感器、人体红外传感器,以及通过无线通信来实现报警和监控功能。首先,我们需要准备一些硬件设备,包括:STM32微控制器开发板:本例中使用的是S......
  • 学习STM32的OLED显示屏控制
    引言:OLED(OrganicLightEmittingDiode)屏幕是一种新型的显示技术,它使用有机材料作为发光器件,具有高对比度、快速响应、广视角和低功耗等特点。STM32是一家全球领先的微控制器制造商,其产品家族中包括了多种型号的ARMCortex-M系列的微控制器。在本文中,我们将介绍如何使用STM32......
  • 学习STM32的火焰传感器
    火焰传感器是一种用于检测火焰存在的电子设备。它可以广泛应用于火灾检测、火焰监控和安全预警等领域。本文将详细介绍如何使用STM32开发板和火焰传感器来实现火焰检测功能,并给出相应的代码案例。一、硬件准备首先,需要准备以下硬件设备:STM32开发板(如STM32F103C8T6)火焰传感器......
  • 单片机毕业论文 怎么写 STM32单片机毕业论文 单片机毕设设计论文怎么写 单片机编程 单
    单片机毕业论文怎么写引言单片机毕业论文怎么写?这个问题看似复杂,但只要掌握一些关键技巧,就能轻松应对。论文的本质无非是用一种结构化的方式展示你对单片机的理解、设计、实现和思考。接下来,我们用通俗幽默的方式,逐步解析如何撰写一篇优秀的单片机毕业论文。1.开题报告......