当前位置: 首页 > java >正文

stm32数码管显示数字/循环

 数码管参数

 

"NixieLight.h" 

#ifndef __NIXIELIGHT_H
#define __NIXIELIGHT_H#define NixieLight_A  GPIO_Pin_7
#define NixieLight_B  GPIO_Pin_0
#define NixieLight_C  GPIO_Pin_4
#define NixieLight_D  GPIO_Pin_2
#define NixieLight_E  GPIO_Pin_1
#define NixieLight_F  GPIO_Pin_6
#define NixieLight_G  GPIO_Pin_5
#define NixieLight_DP  GPIO_Pin_3#define NixieLight_DIG1  GPIO_Pin_9
#define NixieLight_DIG2  GPIO_Pin_10
#define NixieLight_DIG3  GPIO_Pin_11
#define NixieLight_DIG4  GPIO_Pin_8#define NixieLight_Circle_DelayTime  30
void NixieLight_Init(void);
void NixieLight_Set(unsigned short int NixieLight_DIG,char bIsDIGOpened,unsigned int num);
void NixieLight_Circle(void);
void NixieLight_OpenPower(int power1,int power2,int power3,int power4);
void NixieLight_CloseAllLight(void);
#endif

"NixieLight.c"  

#include"NixieLight.h"
#include "stm32f10x.h"
#include "Delay.h"  
unsigned short int NixieLight_DIG[]={NixieLight_DIG1,NixieLight_DIG2,NixieLight_DIG3,NixieLight_DIG4};
void NixieLight_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_OD;GPIO_InitStruct.GPIO_Pin=NixieLight_A|NixieLight_B|NixieLight_C|NixieLight_D|NixieLight_E|NixieLight_F|NixieLight_G|NixieLight_DP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Pin=NixieLight_DIG1|NixieLight_DIG2|NixieLight_DIG3|NixieLight_DIG4;
GPIO_Init(GPIOA,&GPIO_InitStruct);return;
}
void NixieLight_CloseAllPower(void){GPIO_WriteBit(GPIOA,NixieLight_DIG1,RESET);GPIO_WriteBit(GPIOA,NixieLight_DIG2,RESET);GPIO_WriteBit(GPIOA,NixieLight_DIG3,RESET);GPIO_WriteBit(GPIOA,NixieLight_DIG4,RESET);
}
void NixieLight_OpenPower(int power1,int power2,int power3,int power4){if(0==power1){GPIO_WriteBit(GPIOA,NixieLight_DIG1,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG1,SET);}if(0==power2){GPIO_WriteBit(GPIOA,NixieLight_DIG2,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG2,SET);}if(0==power3){GPIO_WriteBit(GPIOA,NixieLight_DIG3,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG3,SET);}if(0==power4){GPIO_WriteBit(GPIOA,NixieLight_DIG4,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG4,SET);}return;
}
void NixieLight_CloseAllLight(void){GPIO_WriteBit(GPIOA,NixieLight_A,SET);GPIO_WriteBit(GPIOA,NixieLight_B,SET);GPIO_WriteBit(GPIOA,NixieLight_C,SET);GPIO_WriteBit(GPIOA,NixieLight_D,SET);GPIO_WriteBit(GPIOA,NixieLight_E,SET);GPIO_WriteBit(GPIOA,NixieLight_F,SET);GPIO_WriteBit(GPIOA,NixieLight_G,SET);GPIO_WriteBit(GPIOA,NixieLight_DP,SET);return;
}
void NixieLight_Circle(void){NixieLight_OpenPower(1,1,0,0);
NixieLight_CloseAllLight();for(int i=0;i<2;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_A,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,1,1,0);NixieLight_CloseAllLight();for(int i=1;i<3;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_A,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,0,1,1);NixieLight_CloseAllLight();for(int i=2;i<4;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_A,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,0,0,1);NixieLight_CloseAllLight();for(int i=3;i<4;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,0,0,1);NixieLight_CloseAllLight();for(int i=3;i<4;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,0,0,1);NixieLight_CloseAllLight();for(int i=3;i<4;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,0,1,1);NixieLight_CloseAllLight();for(int i=2;i<4;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_D,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(0,1,1,0);NixieLight_CloseAllLight();for(int i=1;i<3;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_D,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(1,1,0,0);NixieLight_CloseAllLight();for(int i=0;i<2;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_D,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(1,0,0,0);NixieLight_CloseAllLight();for(int i=0;i<1;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(1,0,0,0);NixieLight_CloseAllLight();for(int i=0;i<1;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();NixieLight_OpenPower(1,0,0,0);NixieLight_CloseAllLight();for(int i=0;i<1;++i){GPIO_WriteBit(GPIOA,*(NixieLight_DIG+i),SET);}GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);Delay_ms(NixieLight_Circle_DelayTime);NixieLight_CloseAllPower();}
void NixieLight_Set(unsigned short int NixieLight_DIG,char bIsDIGOpened,unsigned int num){GPIO_WriteBit(GPIOA,NixieLight_A,SET);GPIO_WriteBit(GPIOA,NixieLight_B,SET);GPIO_WriteBit(GPIOA,NixieLight_C,SET);GPIO_WriteBit(GPIOA,NixieLight_D,SET);GPIO_WriteBit(GPIOA,NixieLight_E,SET);GPIO_WriteBit(GPIOA,NixieLight_F,SET);GPIO_WriteBit(GPIOA,NixieLight_G,SET);GPIO_WriteBit(GPIOA,NixieLight_DP,SET);switch(NixieLight_DIG){case NixieLight_DIG1:{if(0==bIsDIGOpened){GPIO_WriteBit(GPIOA,NixieLight_DIG1,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG1,SET);}}break;case NixieLight_DIG2:{if(0==bIsDIGOpened){GPIO_WriteBit(GPIOA,NixieLight_DIG2,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG2,SET);}}break;case NixieLight_DIG3:{if(0==bIsDIGOpened){GPIO_WriteBit(GPIOA,NixieLight_DIG3,RESET);}else{GPIO_WriteBit(GPIOA,NixieLight_DIG3,SET);}}break;case NixieLight_DIG4:{if(0==bIsDIGOpened){GPIO_WriteBit(GPIOA,NixieLight_DIG4,RESET);	}else{GPIO_WriteBit(GPIOA,NixieLight_DIG4,SET);	}}break;default: break;}switch(num){case 0:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);}break;case 1:{GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);}break;case 2:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);}break;case 3:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);}break;case 4:{GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);}break;case 5:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);}break;case 6:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);}break;case 7:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);}break;case 8:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_E,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);}break;case 9:{GPIO_WriteBit(GPIOA,NixieLight_A,RESET);GPIO_WriteBit(GPIOA,NixieLight_B,RESET);GPIO_WriteBit(GPIOA,NixieLight_C,RESET);GPIO_WriteBit(GPIOA,NixieLight_D,RESET);GPIO_WriteBit(GPIOA,NixieLight_F,RESET);GPIO_WriteBit(GPIOA,NixieLight_G,RESET);}break;default:break;}return;	
}

http://www.xdnf.cn/news/3454.html

相关文章:

  • 2025五一杯数学建模C题:社交媒体平台用户分析问题,完整第一问模型与求解+代码
  • ‌AI与编程的范式革命:从工具到协作者的进化之路
  • 等保系列(一):网络安全等级保护介绍
  • OWASP TOP 10 2025
  • 第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题(选择题)
  • 408考研逐题详解:2009年第6题
  • PyTorch入门------训练图像分类器
  • 12.多边形的三角剖分 (Triangulation) : Fisk‘s proof
  • 车联网可视化:构建智能交通数字孪生
  • 全面理解 C++ 中的 `std::forward`
  • 【滑动窗口】找到字符串中所有字母异位词| 找出字符串中第一个匹配项的下标
  • 【Tool】vscode
  • C++11新特性_自动类型推导_auto
  • 使用QtCreator创建项目(3)
  • Matlab/Simulink - BLDC直流无刷电机仿真基础教程(五) - animateRotorPosition脚本讲解与使用
  • Qt connect第五个参数
  • 构建强大垂直领域AI数据能力
  • 2025年五一杯C题详细思路分析
  • 单片机-89C51部分:13、看门狗
  • 数字智慧方案5972丨智慧农业大数据平台解决方案(65页PPT)(文末有下载方式)
  • CompletableFuture
  • 【基础算法】二分查找算法 - JAVA
  • Python Cookbook-6.12 检查一个实例的状态变化
  • 【笔记】深度学习模型训练的 GPU 内存优化之旅③:内存交换篇
  • 【软件设计师:复习】上午题核心知识点总结(二)
  • C语言学习之动态内存的管理
  • VSCode插件Python Image Preview使用笔记
  • 【FreeRTOS-列表和列表项】
  • PyTorch中“原地”赋值的思考
  • QT —— 信号和槽(带参数的信号和槽函数)