找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3301|回复: 2
收起左侧

基于stm32f103zet6的595控制数码管显示的源代码

[复制链接]
ID:539559 发表于 2019-7-18 23:08 | 显示全部楼层 |阅读模式
本帖最后由 zichenjushi 于 2019-7-19 17:40 编辑

心血来潮码的程序,,是由stm32F103战舰板子和自己焊接的一个HC595驱动的四位共阴极数码管写的倒计时60s的程序,希望大家能喜欢!
IMG_20190718_230357.jpg
单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "led.h"
  3. #include "delay.h"
  4. #include "timer.h"
  5. #include "hc595.h"
  6. u16 i;
  7. u16 temp = 0;

  8. u8 ledchar[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  9. u8 ledbuff[]={ 0x00, 0x00,0x00, 0x00 };


  10. void display()
  11. {               
  12.                
  13.                 static u8 a = 0;
  14.                
  15.                 wei1 = 1;
  16.                 wei2 = 1;
  17.                 wei3 = 1;
  18.                 wei4 = 1;
  19.                 HC595data(0x00);
  20.                 switch(a)
  21.                 {
  22.                         case 0: wei1 = 0;  HC595data(ledbuff[a]); a++; break;
  23.                         case 1: wei2 = 0;  HC595data(ledbuff[a]); a++; break;
  24.                         case 2: wei3 = 0;  HC595data(ledbuff[a]); a++; break;
  25.                         case 3: wei4 = 0;  HC595data(ledbuff[a]); a=0; break;
  26.                 }
  27.                
  28. }

  29. int main(void)
  30. {
  31.         
  32.         LED_Init();                        //初始化
  33.         delay_init();
  34.         HC595_Init();
  35.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                //中断分组  
  36.         TIMER_INT_Init(19,7119);                                                        //2ms
  37.         temp = 60;
  38.         while(1)
  39.         {
  40.                
  41.                 if(i >= 500)
  42.                 {
  43.                         i = 0;
  44.                         temp--;
  45.                         ledbuff[0] = ledchar[temp%10];
  46.                         ledbuff[1] = ledchar[temp/10%10];
  47.                         ledbuff[2] = ledchar[temp/100%10];
  48.                         ledbuff[3] = ledchar[temp/1000%10];
  49.                 }
  50.                 if(temp ==0)
  51.                         i = 0;
  52.         }
  53. }
复制代码

所有资料51hei提供下载:
595定时器(数码管)倒计时60s.7z (182.99 KB, 下载次数: 64)
回复

使用道具 举报

ID:539559 发表于 2019-7-19 17:35 | 显示全部楼层
admin 发表于 2019-7-19 17:25
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)

没有弄电路图哎,直接用战舰的板子和自己焊接的hc595驱动数码管来倒计时60s的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表