找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4901|回复: 0
打印 上一主题 下一主题
收起左侧

TM1616驱动LED(数码管)STM32源程序

[复制链接]
跳转到指定楼层
楼主
ID:592674 发表于 2019-8-9 16:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIN脚已经开放出来,自己定义
我是驱动LED灯,驱动数码管自己修改tab[]数组

单片机源程序如下:
  1. #include "tm1620.h"
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include "delay.h"



  5. u8 tab[]={0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x30};      

  6. void TM1620port_init(void)   
  7. {   
  8.     GPIO_InitTypeDef  GPIO_InitStructure;
  9.        
  10.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//?????   
  11.    
  12.           GPIO_InitStructure.GPIO_Pin =TM1620_CLK|TM1620_DIN|TM1620_STB;
  13.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  14.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  15.           GPIO_Init(GPIOB, &GPIO_InitStructure);
  16. }   

  17. void TM1620_Write(u8 data)
  18. {
  19.   u8 i;
  20.         for(i=0;i<8;i++)
  21.         {
  22.           TM1620_CLK_L;  //2us   复位CLK口
  23.     if(data & 0x01)   //将低位数据传入
  24.     TM1620_DIN_H;   
  25.     else   
  26.     TM1620_DIN_L;   
  27.     data >>=1;     //右移一位
  28.     TM1620_CLK_H;   //  捕获上升沿
  29.         }
  30. }

  31. void Write_Cmd(u8 cmd)
  32. {
  33.    TM1620_STB_L;
  34.          TM1620_Write(cmd);
  35.          TM1620_STB_H;
  36. }       

  37. void Write_Data(u8 add,u8 data)
  38. {
  39.          Write_Cmd(0x44);
  40.    TM1620_STB_L;
  41.          TM1620_Write(0xc0|add);
  42.          TM1620_Write(data);
  43.          TM1620_STB_H;
  44. }


  45. void TM1616_init(void)
  46. {
  47.    u8 i;
  48.          TM1620port_init();
  49.          delay_ms(10);
  50.          Write_Cmd(0x8f);       //亮度 (0x88-0x8f)8级亮度可调
  51.          Write_Cmd(0x40);
  52.          TM1620_STB_L;
  53.          TM1620_Write(0xc0);
  54.          for(i=0;i<16;i++)
  55.          TM1620_Write(0x00);
  56.          TM1620_STB_H;
  57. }
复制代码
  1. #include "stm32f10x.h"
  2. #include "stdio.h"
  3. #include "tm1620.h"
  4. #include "delay.h"
  5. extern u8 tab[];
  6. int main(void)
  7. {
  8.   u8 i;
  9.         TM1616_init();
  10.         Write_Cmd(0x88);
  11.         while(1)
  12.         {
  13.     for(i=0;i<10;i++)
  14.                 {
  15.                 Write_Data(0x00,tab[i]);
  16.            Write_Data(0x02,tab[i]);
  17.                 delay_ms(500);
  18.                 }
  19.         }
  20.        
  21.        
  22. }
复制代码


所有资料51hei提供下载:
tm1616数码管程序.7z (181.33 KB, 下载次数: 108)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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