设为首页
收藏本站
开启辅助访问
登录
注册
只需一步,快速开始
首页
BBS
在线充值
搜索
工控币获得方法
联系方式
搜索
搜索
本版
帖子
用户
工控论坛
»
首页
›
电子技术
›
STM32/8
›
led显示屏32*64 标准hub08接口STM32驱动程序源码 ...
返回列表
发新帖
led显示屏32*64 标准hub08接口STM32驱动程序源码
[复制链接]
4
|
0
|
2020-5-22 00:59:46
|
显示全部楼层
|
阅读模式
一个标准08接口的广告屏驱动,实现了简单的文字字符显示和位移,使用的是STM32F103单片;
STM32_led_Master源码.zip
(412.19 KB, 售价: 1 工控币)
2020-5-22 00:59 上传
点击文件名下载附件
部分代码
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
* author: A free fish
* If you have any questions, please contact:1961178217
******************************************************************************
*/
#include "main.h"
#include "font.h"
unsigned char Word_Code_Buf[32*10] = {0}; //10个字的缓存空间
uint8_t Word_num = 0; //显示字数(ASCII数,1个汉字2个)
uint8_t Fresh_Flag = 0; //更新显示标志位
uint8_t ConncetFlag = 0;
/* 汉字GB2312和字模关联表 */
WORD_CODE font_word[24] = {
{0xB9E3,Word_Font[0]},
{0xB8E6,Word_Font[2]},
{0xC6C1,Word_Font[4]},
{0xCFD4,Word_Font[6]},
{0xCABE,Word_Font[8]},
{0xB2E2,Word_Font[10]},
{0xCAD4,Word_Font[12]},
{0xD6A7,Word_Font[14]},
{0xB3D6,Word_Font[16]},
{0xD2C6,Word_Font[18]},
{0xB6AF,Word_Font[20]},
{0xB9A6,Word_Font[22]},
{0xC4DC,Word_Font[24]},
{0xBFC9,Word_Font[26]},
{0xD2D4,Word_Font[28]},
{0xD4B6,Word_Font[30]},
{0xB3CC,Word_Font[32]},
{0xBFD8,Word_Font[34]},
{0xD6C6,Word_Font[36]},
{0xB6A8,Word_Font[38]},
{0xCAB1,Word_Font[40]},
{0xBFAA,Word_Font[42]},
{0xB9D8,Word_Font[44]},
{0xB5C8,Word_Font[46]},
};
USER User;
/* 初始化显示的汉字“广告屏显示测试” */
void dis_init(void)
{
/* 初始化显示的数字“1961178217” */
uint8_t dis[] = "1961178217";
uint8_t i,j;
uint16_t index = 0;
memset(Word_Code_Buf,0xff,10*32);
for(i = 0; i < 10; i ++ )
{
for(j = 0; j < 16; j ++)
{
Word_Code_Buf[index++] = Ascii_Font[dis[i] - 0x20][j];
}
}
Word_num = 10;
Fresh_Flag = 1;
/* 初始化显示的汉字“广告屏显示测试” */
// uint8_t i,j;
// uint16_t index = 0;
// memset(Word_Code_Buf,0xff,10*32);
// for(i = 0; i < 7; i ++ )
// {
// for(j = 0; j < 32; j ++)
// {
// Word_Code_Buf[index++] = font_word[i].pdata[j];
// }
// }
// Word_num = 14;
// Fresh_Flag = 1;
}
/* 接收到指令后处理显示,开关屏等 */
void Recive_Task( void )
{
uint32_t Seconds_Now = 0;
uint32_t Seconds_Temp = 0;
uint8_t i,j,l,k;
uint8_t char_num = 0;
uint16_t index;
Seconds_Now = RTC_GetCounter();
if( User.OFF_Flag == 1 )
{
Fresh_Flag = 0;
//User.OFF_Flag = 0;
LED08_Off();
}
else if(User.ON_Flag == 1 )
{
Fresh_Flag = 1;
}
if( User.OFF_Time_Flag == 1 )
{
User.OFF_Time.Year = user_time.Year;
User.OFF_Time.Mon = user_time.Mon;
User.OFF_Time.Day = user_time.Day;
Seconds_Temp = GetTimeSec(User.OFF_Time);
if( Seconds_Now >= Seconds_Temp )
{
User.OFF_Time_Flag = 0;
User.OFF_Flag = 1;
User.ON_Flag = 0;
}
}
if( User.On_Time_Flag == 1 )
{
User.On_Time.Year = user_time.Year;
User.On_Time.Mon = user_time.Mon;
User.On_Time.Day = user_time.Day;
Seconds_Temp = GetTimeSec(User.On_Time);
if( Seconds_Now >= Seconds_Temp )
{
User.On_Time_Flag = 0;
User.OFF_Flag = 0;
User.ON_Flag = 1;
}
}
for(i = 0; i < 4; i ++)
{
User.Dis_Data[i].End_Time.Year = user_time.Year;
User.Dis_Data[i].End_Time.Mon = user_time.Mon;
User.Dis_Data[i].End_Time.Day = user_time.Day;
Seconds_Temp = GetTimeSec(User.Dis_Data[i].End_Time);
char_num = 0;
if( Seconds_Now >= Seconds_Temp && User.Dis_Data[i].Dis_Flag == 1 && User.Dis_Data[i].En_Flag == 1 )
{
User.Dis_Data[i].En_Flag = 0;
User.Dis_Data[i].Dis_Flag = 0;
User.OFF_Flag = 1;
User.ON_Flag = 0;
}
User.Dis_Data[i].Start_Time.Year = user_time.Year;
User.Dis_Data[i].Start_Time.Mon = user_time.Mon;
User.Dis_Data[i].Start_Time.Day = user_time.Day;
Seconds_Temp = GetTimeSec(User.Dis_Data[i].Start_Time);
char_num = 0;
if( Seconds_Now >= Seconds_Temp && User.Dis_Data[i].Dis_Flag == 0 && User.Dis_Data[i].En_Flag == 1)
{
Fresh_Flag = 0;
index = 0;
memset(Word_Code_Buf,0xff,10*32);
for(j = 0; j < 20; j ++)
{
if( User.Dis_Data[i].Data[j] >= ' ' && User.Dis_Data[i].Data[j] <= '~') //ASCII码
{
for(l = 0; l < 16; l ++)
{
Word_Code_Buf[index++] = Ascii_Font[User.Dis_Data[i].Data[j] - 0x20][l];
}
char_num += 1;
}
else if( j <= 18 ) //汉字
{
for(l = 0; l < 24; l ++)
{
if( ( User.Dis_Data[i].Data[j] << 8 | User.Dis_Data[i].Data[j + 1]) == font_word[l].gb2312_code )
{
for(k = 0; k < 32; k ++)
{
Word_Code_Buf[index++] = font_word[l].pdata[k];
}
char_num += 2;
}
}
}
}
User.Dis_Data[i].Dis_Flag = 1;
Word_num = char_num;
Fresh_Flag = 1;
User.OFF_Flag = 0;
User.ON_Flag = 1;
}
}
}
int main( void )
{
static u32 Buz_Time = 0;
u8 i,j;
u32 RandSum;
u16 Cnt = 0;
Bsp_Init();
printf("start!\r\n");
delay_ms(T_20S);
Sim900a_Init();
delay_ms(T_5S);
dis_init();
while(1)
{
if( ConncetFlag == 0 )
Connect_TCP();
if( ( OsDelayCCnt % 1000 ) == 0)
{
printf("RTC:%d:%d:%d %d:%d:%d\r\n",user_time.Year,\
user_time.Mon,user_time.Day,user_time.Hour,user_time.Min,user_time.Sec);
DbgLed_Turn();
Bsp_Rtc_GetTime(&user_time);
}
Cnt ++;
Display_Task();
Recive_Task();
Display();
if( ( OsDelayCCnt % 5*1000 ) == 0)
{
//Send_Data();
}
}
}
//len1 长度 InitValue 默认值
u32 Pub_DecAscToU32_Vice( const u8 *Src, u8 Len, u8 InitValue )
{
u8 i;
u32 Result;
if( 0 == Len )
{
return InitValue;
}
Result = 0;
for( i = 0; i < Len; i++ )
{
if( *( Src + i ) >= '0' && *( Src + i ) <= '9' )
{
Result = 10 * Result + ( *( Src + i ) - '0' );
}
else
{
break;
}
}
return Result;
}
复制代码
led
,
hub08
,
stm32
,
显示
相关帖子
•
labview做的LED流动滚动显示
•
STM32+LabVIEW的USB数据采集与显示源程序
•
STM32示波器程序ILI9341_IO模拟源程序+Proteus仿真
•
STM32F407 FLAC软解压 源程序
•
用PROTEUS8.9仿真实现STM32 ADC一路连续转换,值显示在LCD12864上
•
Proteus实现stm32单片机的闪烁灯实验程序
•
STM32控制4个LED灯循环点亮源程序和Proteus仿真
•
STM32音频产生器Proteus仿真程序
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
山海致远
5963
主题
6928
帖子
102
积分
初级会员
初级会员, 积分 102, 距离下一级还需 398 积分
初级会员, 积分 102, 距离下一级还需 398 积分
工控币
102
加好友
发消息
回复楼主
返回列表
电子技术综合讨论
单片机嵌入式
EDA设计仿真
STM32/8
51单片机
上位机开发及系统管理
Labview
Multisim仿真
图文推荐
用Fanuc Karel语言实现三点建坐标系
2021-01-04
用CH341A做的USB转SPI_232_485_TTL转换器 PCB+SCH文件 烧写器源
2020-12-14
51单片机采集温度通过串口发送到labview上位机采集曲线显示
2020-12-13
基于组态王的占空比PID算法温度控制系统设计 含源码和文档
2020-12-13
基于LabVIEW的电动车速度监测和控制系统上位机程序设计
2020-12-08
热门排行
1
有没有 GE plc PME9.0版本的中文对照表
2
哈哈,网站很好,来支持一下
3
6000CHM废气处理EPLAN电气图纸
4
300多个常用的Multisim仿真电路资料分享
5
谁那有施耐德PES软件 本人愿意提供一定积分
6
交通信号灯电子线路实验Multisim仿真电路图
7
Multisim14仿真PIC16f84单片机驱动led
8
基于labview的电子秤
9
哪位大佬能看看logix5571以太网通信故障这
10
WINCC 7.5+SP1+UPD3