切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 22991阅读
  • 73回复

[其他]两键LED点阵胸牌改造可调时钟(开源,源码已上传,已加原始固件) [复制链接]

上一主题 下一主题
离线kindzhon
 

发帖
165
M币
3382
专家
9
粉丝
19113
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-01-19
— 本帖被 發騷友 执行加亮操作(2018-01-20) —
根据本坛顶级大神2545889167的神贴LED点阵胸牌综合改造集合(开源 重新编程)http://bbs.mydigit.cn/read.php?tid=2324306改造!
非常非常非常感谢大神2545889167!!LED点阵胸牌成为学习GD32、STM32最便宜最好用的开发板!收下部分图片和文字直接借用大神的。
我的另一贴加了温湿度:两键LED点阵胸牌改造可调时钟+DHT11定时显示温湿度http://bbs.mydigit.cn/read.php?tid=2345288
我以前10元买过一块,刚好是这块,双按键,黑色PCB,单片机为GD32F150C6,其串口的Tx,Rx位置在正面左边的按键设计了上拉结构。这个按键接了PA15作为按键检测,同时又用一个电阻上拉到boot0,也就是说,只要在给芯片上电前按住按键,就会加入程序下载的ISP模式,然后使用串口下载程序。
也就是说这块两键胸牌,只要用某宝2-3元的USB转TTL PL2303HX模块 ,就可以用串口方式下载程序到设备,门槛非常低。
只需要焊接胸牌里6针的排线,好插好用,3根杜邦线,分别接PL2303的Rx,Tx,GND,然后把PL2303插入电脑,就可以了。
1 GND
2 Rx
3 Tx
4 VCC
5 key1
6 key2
5,6脚也引出来,以后可以接IIC,可以接DHT11,加入温湿度,红外等等传感器,也可以接继电器和电机控制,PWM等等设备

程序源码在这里,点击下载:

解压密码 :kindzhon20180119


原始固件在这里,可以刷回去。gd32f150胸牌原始固件+2按键_kindzhon.bin  


两键LED点阵胸牌改造可调时钟(开源,源码已上传,已加原始固件)






软件你需要安装keil5和GigaDevice.GD32F1x0_DFP.3.0.2.pack,然后导入我提供的源码就可以编译了,编译好的程序在Objects\LEDs.hex,
然后,按住左键 ,打开胸牌电源开关,下载到设备。

两键LED点阵胸牌改造可调时钟(开源,源码已上传,已加原始固件)









用的是这个。


视频效果看这里http://player.youku.com/embed/XMzMzMjI3NTQwOA==


main.c主程序
调节不太灵活,延时时钟,不用时钟模块。

  1. #include "gd32f1x0.h"
  2. #include "main.h"
  3. #include "LED_SCAN.h"
  4. #include "LED_DISPLAY.h"
  5. //两键胸牌 按键1 PA15 按下为0
  6. // 按键2 为PB12 按下为1
  7. // By kindzhon 2018.1.19
  8. #include "gd32f1x0_libopt.h"
  9. #include "delay.h"
  10. #include "key.h"
  11. int main(void)
  12. {
  13. uint8_t hour=0,min=0,second=0;//设置启始时间
  14. delay_init();
  15. LED_Init();
  16. KEY_Init();
  17. while (1)
  18. {
  19. show_time(hour,min,second);
  20. delay_ms(1003);
  21. second++;
  22. switch (KEY_Scan())
  23. {
  24. case 0:hour++; break; //按键小时加1
  25. case 1:min++;break; // 按键 分钟加1
  26. }
  27. if(second==60)
  28. {
  29. second=0;min++;
  30. if(min==60)
  31. {
  32. min=0;hour++;
  33. if(hour==24) hour=0;
  34. }
  35. }
  36. }
  37. }


key.h

  1. #ifndef _KEY_H
  2. #define _KEY_H
  3. #include "gd32f1x0_gpio.h"
  4. //两键胸牌 按键1 PA15     按下为0  
  5. //         按键2 为PB12   按下为1
  6. // By kindzhon   2018.1.19  
  7. #define KEY1 (1)
  8. #define KEY2 (2)
  9. void KEY_Init()
  10. {
  11. rcu_periph_clock_enable(RCU_GPIOA);
  12. rcu_periph_clock_enable(RCU_GPIOB);
  13. // rcu_periph_clock_enable(RCU_SYSCFG);
  14. gpio_mode_set(GPIOA,GPIO_MODE_INPUT,GPIO_PUPD_NONE,GPIO_PIN_15);
  15. gpio_mode_set(GPIOB,GPIO_MODE_INPUT,GPIO_PUPD_NONE,GPIO_PIN_12);
  16. }
  17. uint8_t Read_KEY(int key_num)
  18. {
  19. switch(key_num)
  20. {
  21.   case 0:return gpio_input_bit_get(GPIOA,GPIO_PIN_15);
  22.   case 1:return gpio_input_bit_get(GPIOB,GPIO_PIN_12);
  23.   }
  24. }
  25. uint8_t KEY_Scan()
  26. {  
  27. static uint8_t key_up=1;
  28. if(key_up&&(Read_KEY(0)==0||Read_KEY(1)==1))
  29. {
  30.   key_up=0;
  31.   if(Read_KEY(0)==1)return 0;
  32.   else if(Read_KEY(1)==0)return 1;
  33.    }
  34. else if(Read_KEY(0)==0&&Read_KEY(1)==1)
  35.   key_up=1;      
  36. return 2;
  37. }
  38. int EvbKeyScan()
  39. {
  40.     int count = 0xffff;
  41.     if (RESET != exti_interrupt_flag_get(EXTI_0))
  42.     {
  43.         while(count--);
  44.         if (RESET != exti_interrupt_flag_get(EXTI_0))
  45.         {
  46.             exti_interrupt_flag_clear(EXTI_0);
  47.             return 1;
  48.         }
  49.     }
  50.     if (RESET != exti_interrupt_flag_get(EXTI_1))
  51.     {
  52.         while(count--);
  53.         if (RESET != exti_interrupt_flag_get(EXTI_1))
  54.         {
  55.             exti_interrupt_flag_clear(EXTI_1);
  56.             return 2;
  57.         }
  58.     }
  59.     return 0;
  60. }
  61. #endif /* _TCL_COLIBRI_KEY_H*/

font.h
  1. const unsigned char font_time_num[10][14] = {  //时钟用 字库  修改每两字节倒序排列。
  2. {0x00,0x00,0xFC,0x01,0x02,0x02,0x01,0x04,0x01,0x04,0x02,0x02,0xFC,0x01},/*"0",0*/
  3. {0x00,0x00,0x00,0x04,0x00,0x04,0xFF,0x07,0x02,0x04,0x02,0x04,0x00,0x00},/*"1",1*/
  4. {0x00,0x00,0x1E,0x06,0x21,0x04,0x41,0x04,0x81,0x04,0x01,0x05,0x0E,0x06},/*"2",2*/
  5. {0x00,0x00,0x8E,0x03,0x51,0x04,0x21,0x04,0x21,0x04,0x01,0x04,0x06,0x03},/*"3",3*/
  6. {0x80,0x04,0x80,0x04,0xFF,0x07,0x86,0x04,0x88,0x04,0xB0,0x00,0xC0,0x00},/*"4",4*/
  7. {0x00,0x00,0xC1,0x01,0x21,0x02,0x11,0x04,0x11,0x04,0x11,0x04,0x3F,0x03},/*"5",5*/
  8. {0x00,0x00,0xE0,0x03,0x12,0x04,0x11,0x04,0x11,0x04,0x22,0x02,0xFC,0x01},/*"6",6*/
  9. {0x00,0x00,0x03,0x00,0x0D,0x00,0x31,0x00,0xC1,0x07,0x01,0x00,0x03,0x00},/*"7",7*/
  10. {0x00,0x00,0x8E,0x03,0x51,0x04,0x21,0x04,0x21,0x04,0x51,0x04,0x8E,0x03},/*"8",8*/
  11. {0x00,0x00,0xFC,0x01,0x22,0x02,0x41,0x04,0x41,0x04,0x41,0x02,0x3E,0x00},/*"9",9*/
  12. };











[ 此帖被kindzhon在2018-02-03 12:09重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共1条打赏M币+22
小河冰 M币 +22 優秀文章 2018-04-07
关键词: 胸牌时钟开源
离线ybjun

发帖
1119
M币
1481
专家
2
粉丝
15
只看该作者 1楼 发表于: 2018-01-19
请登录后查看
离线kindzhon

发帖
165
M币
3382
专家
9
粉丝
19113
只看该作者 2楼 发表于: 2018-01-19
请登录后查看
[ 此帖被kindzhon在2018-01-19 22:44重新编辑 ]
离线Never。

发帖
2473
M币
1248
专家
2
粉丝
14
只看该作者 3楼 发表于: 2018-01-19
请登录后查看
[ 此帖被Never。在2018-01-20 14:58重新编辑 ]
离线pcfx

发帖
903
M币
615
专家
0
粉丝
17
只看该作者 4楼 发表于: 2018-01-19
请登录后查看
离线aishiweiyi

发帖
158
M币
247
专家
2
粉丝
12
只看该作者 5楼 发表于: 2018-01-19
请登录后查看
离线lzpsus

发帖
82
M币
202
专家
0
粉丝
3
只看该作者 6楼 发表于: 2018-01-19
请登录后查看
离线29752975

发帖
3143
M币
571
专家
-1
粉丝
16
只看该作者 7楼 发表于: 2018-01-19
请登录后查看
离线satku

发帖
1836
M币
391
专家
3
粉丝
45
只看该作者 8楼 发表于: 2018-01-19
请登录后查看
离线2545889167

发帖
13268
M币
20754
专家
302
粉丝
4860
只看该作者 9楼 发表于: 2018-01-19
请登录后查看
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个