(八)Protues仿真STM32单片机GPIO驱动数码管

1,参考上篇,将LED点阵屏更换成数码管如下图

2,修改驱动函数,数组seg[14]前10个是0-9数字的编码,后四个是空格,点,横线,下划线

char seg_decode(char num)//数字解码
{const char seg[14]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,  0xff,0x7f,0xbf,0xf7};return seg[num];
}
void disp_set_row(unsigned char dat,char sel)//单个数码管显示
{GPIOB->ODR=0xff;GPIOA->ODR=~seg_decode(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;}
}
unsigned char dispbuff[8];
void disp_scan()//定时刷新函数,毫秒级调用
{static char scan=0;disp_set_row(dispbuff[scan],scan);scan++;if(scan>=8)scan=0;
}
char char_decode(char ch)//字符解码
{if((ch>='0')&&(ch<='9'))return ch-'0';else if(ch == ' ')return 10;else if(ch =='.')return 11;else if(ch =='-')return 12;else if(ch =='_')return 13;else return 10;
}
void disp_string(char *str)//字符串显示
{char len = strlen(str);char i;if(len>8)len=8;memset(dispbuff,10,8);for(i=0;i<len;i++){dispbuff[i]=char_decode(str[i]);}
}void key1_action()//更新屏幕字符
{disp_string("1.4 -2_5");
}
void key2_action()//更新屏幕字符
{disp_string("12-30-00");
}

git源码:stm32_proutes: Protues仿真STM32单片机教程源码-WWW.ARMFUN.CN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443690.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3中使用live2D

概述 本文将介绍如何在vue3项目中使用Live2D。 Live2D 介绍 Live2D 是什么 Live2D 是一种用于将二维图像转化为可动画三维模型的技术&#xff0c;主要应用于游戏、虚拟角色和互动应用中。它允许开发者通过对静态图像进行分层和建模&#xff0c;使角色在不同角度下能够进行流…

【Linux系统编程】第二十八弹---构建基础文件操作库与理解标准错误流(stderr)在C与C++中的应用

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、封装简单的库 1.1、定义文件结构 1.2、打开文件 1.3、刷新缓冲区 1.4、写文件 1.5、关闭文件 1.6、各文件代码 2、s…

【element-tiptap】如何增加一个扩展项,为文字渲染颜色?

源码地址&#xff1a; https://github.com/Leecason/element-tiptap 可以看到&#xff0c;当前这个页面的文字&#xff0c;都是黑色的&#xff08;除了链接&#xff09; 酱紫有些单调&#xff0c;我喜欢五颜六色的。那么这篇文章就来看下菜单项里面如何增加一个颜色的扩展&…

k8s微服务

一 、什么是微服务 用控制器来完成集群的工作负载&#xff0c;那么应用如何暴漏出去&#xff1f;需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。 借助Service&#xff0c;应用可以实现服务发现和负载均衡。 service默认只支持4层负载均…

Springboot 整合 logback 日志框架

文章目录 整合 Logback 日志框架第一步&#xff1a;导入依赖第二步&#xff1a;导入配置&#xff08;logback.xml&#xff09;详解 使用&#xff08;记录日志&#xff09; 遇到问题一解决方案 整合 Logback 日志框架 第一步&#xff1a;导入依赖 &#xff08;Springboot 会自己…

Squid + Stunnel 配置

环境&#xff1a; 亚马逊服务器一台&#xff1a;3.26.80.132 华为云服务器一台&#xff1a;122.59.52.68 客户机一台&#xff1a; Win11 实现的需求&#xff1a;客户机通过设置华为云代理&#xff0c;实现透过亚马逊服务器上网 一、亚马逊服务器 1、安装Squid https://bl…

python爬虫 - 深入requests模块

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、下载网络文件 &#xff08;一&#xff09;基本步骤 &#xff08;二&…

大模型部署-​Ollama+WebUI

Ollama&#xff08;安装包和安装文档文末领取&#xff01;&#xff09; Ollama 简介 主要特点&#xff1a; 易于使用&#xff1a;它提供了一个简洁的界面和命令行工具&#xff0c;使得用户可以方便地管理和运行不同的大语言模型。 多种模型支持&#xff1a;可以运行多种开源…

介绍一款开源的 Modern GUI PySide6 / PyQt6的使用

首先附上大神的开源地址&#xff08;自行克隆吧&#xff09;&#xff1a; https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6 步骤一&#xff1a;安装PySide6库 pip install PySide6 步骤二&#xff1a;运行main文件 python main.py 就得…

Windows 11 24H2版本有哪些新功能_Windows 11 24H2十四大新功能介绍

距离上次发布的23H2版本已经过去了一年时间&#xff0c;现在&#xff0c;Win 11的24H2版本终于等到了&#xff0c;微软已经全面公开发布Win11 24H2版本&#xff0c;版本号为26100.1742&#xff0c;此次官宣的版本包括了消费者版、商业版、LTSC 2024版等&#xff0c;各种语言版本…

python使用装饰器来统计函数被调用次数、格式化dict以及Python-smtplib邮件发送的IP name possibly forged问题解决

一、python调试&#xff1a;使用装饰器来统计函数被调用次数及格式化dict 喜欢调试的时候显示数据并显示一些其它的信息&#xff0c;比如区分是哪次调用的调试信息&#xff0c;比如友好的显示dict等相对复杂的数据类型&#xff0c;所以这里涉及到两个方面。一是统计函数被调用次…

【计算机网络】网络相关技术介绍

文章目录 NAT概述NAT的基本概念NAT的工作原理1. **基本NAT&#xff08;静态NAT&#xff09;**2. **动态NAT**3. **NAPT&#xff08;网络地址端口转换&#xff0c;也称为PAT&#xff09;** 底层实现原理1. **数据包处理**2. **转换表**3. **超时机制** NAT的优点NAT的缺点总结 P…

大模型微调十诫:关于将微调模型部署到生产环境的十条建议

转自NLP工程化 大模型微调十诫&#xff1a;关于将微调模型部署到生产环境的十条建议&#xff1a; &#xff08;1&#xff09;不要盲目微调模型&#xff0c;先尝试使用提示的方式满足需求。只有当提示无法达到质量、性能或成本目标时&#xff0c;才考虑微调。 &#xff08;2&…

RabbitMQ延迟队列

1场景&#xff1a; 1.下单之后&#xff0c;给10分钟时间进行支付&#xff0c;如果10分钟后&#xff0c;没有支付&#xff0c;订单取消。&#xff08;可以使用队列的ttl&#xff0c;因为所有的消息都是一样的停留时长10分钟&#xff09; 2.定时发布文章&#xff08;要求4月1号…

MPA-SVM多变量分类预测|海洋捕食者优化算法-支持向量机|Matalb

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&…

JavaScript 数组简单学习

目录 1. 数组 1.1 介绍 1.2 基本使用 1.2.1 声明语法 1.2.2 取值语法 1.2.3 术语 1.3 案例 1. 数组 1.1 介绍 1.2 基本使用 1.2.1 声明语法 1.2.2 取值语法 1.2.3 术语 1.3 案例

基于java+springboot的旅游信息网站、旅游景区门票管理系统设计与实现

该系统是基于javaspringboot开发的旅游景区门票管理系统。是给师弟开发的大四实习作品。学习过程中&#xff0c;遇到问题可以咨询github作者。 演示地址 前台地址&#xff1a; http://travel.gitapp.cn 后台地址&#xff1a; http://travel.gitapp.cn/admin 后台管理帐号&am…

植物大战僵尸修改器-MFC

创建项目 创建mfc应用 基于对话框 打开资源视图下的 IDD_MFCAPPLICTION2_DIALOG 限制对话框大小 将属性中Border的值改为对话框外框 删除对话框中原有的控件 属性-外观-Caption 设置对话框标题 工具箱中拖放一个按钮 修改按钮名称 将按钮ID改为IDC_COURSE 在MFCApplication2…

Fiddler配合wireshark解密ssl

环境&#xff1a; win11&#xff08;wireshark&#xff09;--虚拟机win7&#xff08;Fiddler&#xff09;---虚拟机win7&#xff08;HTTPS站点&#xff09; 软件安装问题&#xff1a; 需要.net环境&#xff0c;NDP461-KB3102436-x86-x64-AllOS-ENU.exe。 安装fiddler后安装下…

Golang通用代码生成器:仙童,电音仙女尝鲜版十二,为售前准备的哑数据模式

Golang通用代码生成器&#xff1a;仙童,电音仙女尝鲜版十二,为售前准备的哑数据模式 哑数据模式是一种使用内存数据的为快速原型准备的模式。专门为售前&#xff0c;产品经理和项目经理准备。Golang通用代码生成器支持此种模式&#xff0c;请见视频&#xff1a;https://www.bi…