一、TM1616原理图

讯享网
二、驱动程序

#include "led.h" void led_init(void) {
GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_SetBits(GPIOC,GPIO_Pin_0); GPIO_SetBits(GPIOD,GPIO_Pin_13); GPIO_SetBits(GPIOE,GPIO_Pin_6); } void led_delay(u8 i) {
while(i>0) i--; } void led_write_data(u8 data) {
u8 i; for(i=0;i<8;i++) {
led_clk=0; if(data&0x01) led_dio=1; else led_dio=0; data>>=1; led_delay(2); led_clk=1; } } void led_show_data(u8 *showData) {
led_stb=0; led_delay(2); led_write_data(0x00); //设置数据命令 led_stb=1; led_delay(2); led_stb=0; led_delay(2); led_write_data(0x40); //设置数据命令 led_stb=1; led_delay(2); led_stb=0; led_delay(2); led_write_data(0xc0); //设置显示地址 led_write_data(showData[0]); //设置显示数据 led_write_data(0X00); //设置显示数据 led_write_data(showData[1]); //设置显示数据 led_write_data(0X00); //设置显示数据 led_write_data(showData[2]); //设置显示数据 led_write_data(0X00); //设置显示数据 led_write_data(showData[3]); //设置显示数据 led_stb=1; led_delay(2); led_stb=0; led_delay(2); led_write_data(LED_ON|LED_BRIGHTNESS_3); //设置显示控制命令 led_stb=1; led_delay(2); }
讯享网
三、完整工程下载
完整工程下载请点击
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/24002.html