标题:
基于STM32F103的LED显示屏驱动程序
[打印本页]
作者:
clear123
时间:
2018-4-23 16:51
标题:
基于STM32F103的LED显示屏驱动程序
基于STM32F103的LED显示屏驱动程序,很实用。之前调试的时候下载的。
单片机源程序如下:
#include"stm32f10x.h"
#include"delay.h"
//#include"usart_own.h"
#define AL() GPIO_ResetBits(GPIOE, GPIO_Pin_15)
#define AH() GPIO_SetBits(GPIOE, GPIO_Pin_15)
#define BL() GPIO_ResetBits(GPIOE, GPIO_Pin_14)
#define BH() GPIO_SetBits(GPIOE, GPIO_Pin_14)
#define CL() GPIO_ResetBits(GPIOE, GPIO_Pin_13)
#define CH() GPIO_SetBits(GPIOE, GPIO_Pin_13)
#define DL() GPIO_ResetBits(GPIOE, GPIO_Pin_12)
#define DH() GPIO_SetBits(GPIOE, GPIO_Pin_12)
#define STBL() GPIO_ResetBits(GPIOE, GPIO_Pin_11)
#define STBH() GPIO_SetBits(GPIOE, GPIO_Pin_11)
#define CLKL() GPIO_ResetBits(GPIOE, GPIO_Pin_10)
#define CLKH() GPIO_SetBits(GPIOE, GPIO_Pin_10)
#define R1L() GPIO_ResetBits(GPIOE, GPIO_Pin_9)
#define R1H() GPIO_SetBits(GPIOE, GPIO_Pin_9)
#define OEL() GPIO_ResetBits(GPIOE, GPIO_Pin_8)
#define OEH() GPIO_SetBits(GPIOE, GPIO_Pin_8)
vu8 yid;
uc8 line_[]={0x03,0x02,0x01,0x00,0x07,0x06,0x05,0x04,0x0b,0x0a,0x09,0x08,0x0f,0x0e,0x0d,0x0c};
uc8 table[]={
0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x03,0xE0,
0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,
0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,
0x7F,0xBF,0x7F,0xBF,0xFF,0x80,0xFF,0xFF,//电0
/* (16 X 16 , 宋体 )*/
0xEF,0xFE,0xCF,0xF9,0xE7,0xFD,0x17,0x80,
0xF3,0xFF,0x33,0xE0,0xF5,0xFF,0x36,0xE0,
0xF7,0xFF,0x37,0xE0,0xB7,0xEF,0xB7,0xEF,
0xB7,0xEF,0x37,0xE0,0xB7,0xEF,0xFF,0xFF,//信1
/* (16 X 16 , 宋体 )*/
0x7F,0xEF,0xF7,0xCE,0xCF,0xEC,0xEF,0xF6,
0x01,0x80,0xFD,0xDF,0x0E,0xE8,0xFF,0xFD,
0xFF,0xFE,0x01,0x80,0xFF,0xFE,0xFF,0xFE,
0xFF,0xFE,0xFF,0xFE,0xBF,0xFE,0x7F,0xFF,//学2
/* (16 X 16 , 宋体 )*/
0xFF,0xFE,0xE0,0xFD,0x0E,0x80,0xD6,0xDF,
0xFA,0xFF,0x3A,0xE0,0xF6,0xFF,0xEE,0xFF,
0x0E,0x80,0x6A,0xFB,0x76,0xFB,0x7E,0xFB,
0xBE,0xBB,0xBE,0xBB,0xDE,0xBB,0xEE,0x87,//院3
/* (16 X 16 , 宋体 )*/
};
void LED_Port_Init(void);
void output(vu8);
void Line_Scan(void);
void LED_Port_Init()
{
GPIO_InitTypeDef GPIO_LED;
GPIO_InitTypeDef GPIO_TX;
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO
| RCC_APB2Periph_GPIOE ,ENABLE);
GPIO_LED.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_LED.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_LED.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE,&GPIO_LED);
GPIO_TX.GPIO_Pin = GPIO_Pin_9;
GPIO_TX.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_TX.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_TX);
}
void output(vu8 dat)
{
vu8 i,t_dat;
t_dat = dat;
dat = (t_dat<<4) | (dat>>4);
for(i=0x80;i!=0;i=i>>1)
{
if(dat&i)
{
R1H();
}
else
{
R1L();
}
CLKH();
CLKL();
}
}
void Line_Scan() //行扫描函数
{
//行扫描
switch(line_[yid])
{
case 0x00:{DL();CL();BL();AL();break;}
case 0x01:{DL();CL();BL();AH();break;}
case 0x02:{DL();CL();BH();AL();break;}
case 0x03:{DL();CL();BH();AH();break;}
case 0x04:{DL();CH();BL();AL();break;}
case 0x05:{DL();CH();BL();AH();break;}
case 0x06:{DL();CH();BH();AL();break;}
case 0x07:{DL();CH();BH();AH();break;}
case 0x08:{DH();CL();BL();AL();break;}
case 0x09:{DH();CL();BL();AH();break;}
case 0x0a:{DH();CL();BH();AL();break;}
case 0x0b:{DH();CL();BH();AH();break;}
case 0x0c:{DH();CH();BL();AL();break;}
case 0x0d:{DH();CH();BL();AH();break;}
case 0x0e:{DH();CH();BH();AL();break;}
case 0x0f:{DH();CH();BH();AH();break;}
default:break;
//default:{DH();CH();BH();AH();break;}
}
}
int main()
{
LED_Port_Init();
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
LED_Screen(base-on-STM32F103).rar
(2.09 MB, 下载次数: 161)
2018-4-23 16:50 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
hfnxs
时间:
2018-11-14 10:44
666 点赞 学习
作者:
yintianen
时间:
2019-9-11 17:12
hfnxs 发表于 2018-11-14 10:44
666 点赞 学习
好资料,想下载。
作者:
lpxok
时间:
2020-3-12 11:09
钱不够,下不了,还是要谢谢
作者:
我行向上
时间:
2020-3-21 21:23
仿真图有没有
作者:
51heiVincecomin
时间:
2020-6-24 19:13
谢谢分享。
作者:
zdmjjp
时间:
2021-5-26 07:53
学习一下,请楼主多帮助,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1