文章目录

  • 一、主要功能
  • 二、硬件资源
    • 1.硬件准备
    • 2.硬件连接
  • 三、软件设计
    • 1.软件结构
    • 2.主要代码
  • 四、实验现象
  • 联系作者

一、主要功能

LED点阵显示初始信息,可通过K3键切换显示模式,可实现RTC时钟显示、滚动字符显示 、滚动汉字显示,项目中以实现常用绘图API函数,如画点、线、圆、框、填充、显示字符、汉字等。代码中可简单修改MAX7219点阵级联个数实现不同尺寸的兼容。


二、硬件资源

1.硬件准备

项目所需要的硬件资源如下:
①51单片机开发板1个
②MAX7219 点阵模块1个(可根据自身财力购买点阵大小)
③USB线1条(用于供电和程序下载)
④杜邦线若干

2.硬件连接

   独立按键模块-->单片机IOK3-->P32MAX7219 LED点阵模块-->单片机IOCLK-->P22CS-->P21DIN-->P20VCC-->5VGND-->GND

三、软件设计

1.软件结构

2.主要代码

#include "app_demo.h"
#include "time.h"
#include "max7219.h"
#include "exti.h"
#include "key.h"
#include "string.h"
#include "stdio.h"//定义全局结构体变量
_leddz_struct leddz_struct;//定时器0中断函数
void time0() interrupt 1
{static u8 i=0;TH0=0XDC;  //给定时器赋初值,定时10msTL0=0X00;i++;if(i==100)//1S{leddz_struct.sec++;if(leddz_struct.sec>=60){leddz_struct.sec=0;leddz_struct.min++;if(leddz_struct.min>=60){leddz_struct.min=0;leddz_struct.hour++;if(leddz_struct.hour==24)leddz_struct.hour=0;}}}
}void exti0(void) interrupt 0 //外部中断0中断函数
{delay_10us(1000);//消斗if(KEY3==0)//再次判断K3键是否按下{leddz_struct.mode++;if(leddz_struct.mode==4)leddz_struct.mode=0;leddz_clear();leddz_show_reflash();   }
}void sys_parm_init(void)
{leddz_struct.mode=0;leddz_struct.hour=12;leddz_struct.min=59;leddz_struct.sec=23;
}//静态显示汉字
void static_show_hz(void)
{u8 i=0;while(leddz_struct.mode==0){for(i=0;i<4;i++){leddz_show_fonthz(i*16,0,i,16,1);//显示“欢迎观看”   }leddz_show_reflash();  }
}//显示RTC
void rtc_show(void)
{u8 i=0;xdata u8 buf[8];while(leddz_struct.mode==1)  {i++;if(i%1==0){buf[0]=leddz_struct.hour/10+0x30;buf[1]=leddz_struct.hour%10+0x30;buf[2]=':';buf[3]=leddz_struct.min/10+0x30;buf[4]=leddz_struct.min%10+0x30;buf[5]=':';buf[6]=leddz_struct.sec/10+0x30;buf[7]=leddz_struct.sec%10+0x30;leddz_clear();leddz_show_string(0,0,buf,16);leddz_show_reflash();     }delay_ms(1);       }
}//字符滚动显示
void roll_char_show(void)
{u8 i=0;char sx=LEDDZ_WIDTH;xdata u8 buf[]="Hai.XiaoYi,QQ:3443792007,Thanks!";while(leddz_struct.mode==2){i++;if(i%10==0){leddz_clear();leddz_show_string(sx,0,buf,12);leddz_show_reflash();sx--;if(sx<=-strlen(buf)*6)sx=LEDDZ_WIDTH;  }delay_ms(1);   }
}//汉字滚动显示
void roll_show_hz(void)
{u8 i=0;char sx=LEDDZ_WIDTH;xdata u8 buf[]="深圳加油!嗨小易";while(leddz_struct.mode==3){i++;if(i%10==0){leddz_clear();leddz_show_fonthz_ex(sx,0,buf);leddz_show_reflash();sx--;if(sx<=-strlen(buf)*8)sx=LEDDZ_WIDTH;   }delay_ms(1);   }
}//LED点阵花样显示系统
void leddz_control_sys(void)
{   time0_init();//初始化定时器0time0_start();//开启定时器0exti0_init();sys_parm_init();max7219_init();//清屏leddz_clear();leddz_show_reflash();while(1){static_show_hz();//静态显示汉字rtc_show();//RTC时钟显示roll_char_show();//字符滚动显示roll_show_hz();//汉字滚动显示                                       }
}

四、实验现象

B站演示视频:https://space.bilibili.com/444388619



联系作者

作者B站链接:https://space.bilibili.com/444388619
可提供手把手教学服务,资料获取请联系作者QQ:3443792007
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

【51单片机】MAX7219 LED点阵GUI设计相关推荐

  1. 【Proteus仿真】【51单片机】LED点阵广告牌设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用16*16LED点阵.按键.74HC595D等. 系统运行后,默认以静态 ...

  2. 【Proteus仿真】【51单片机】LED点阵花样显示设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵.按键模块等. 系统运行后,默认以静态模式显示,此时点阵 ...

  3. 利用51单片机进行LED 跑马灯设计

    题目: 使用单片机驱动8个LED,2个按键并实现跑马灯功能. 当按下按键1时,LED 从左至右依次点亮,全亮后再从右至左依次熄灭,全灭后再从左至右依次点亮,依次循环下去. 当按下按键2 时,LED 从 ...

  4. 51单片机实现c语言字母滚动,基于51单片机的led点阵滚动显示上下左右c语言程序.docx...

    *********** * * *LED点阵实验(左右上下流动显示) ***************************************************************** ...

  5. 基于51单片机的LED呼吸灯设计(定时器)

    定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失.每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小:后半部分 ...

  6. 51单片机led点阵C语言,51单片机驱动LED点阵扫描显示C语言程序

    #ifndef__Matrix_H__ #define__Matrix_H__ #ifdef__cplusplus extern"C" { #endif #define SET  ...

  7. 基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计

    基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计 必看!!视频讲解 基于51单片机的LED彩灯霓虹灯心形流水灯设计 这里写目录标题 1 开发环境 2 功能说明介绍 3 仿真图 4 ...

  8. 51单片机控制系统的人机交互接口设计【51单片机与LED数码管的动态显示接口案例分析】

    本章节利用Keil uVision5和ISIS 7 Professional两个软件来进行仿真实验. [例]运用51单片机实现8位8段数码管的动态显示,LED数码管的段选数据由51单片机的P0口控制, ...

  9. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

最新文章

  1. 给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?
  2. 浅谈数据分析的魅力和能力要求!
  3. 用navicate 连接本地数据库提示用户名/口令无效
  4. CV方向介绍 | 基于自然语言的跨模态行人re-id的SOTA方法简述(上)
  5. orm2 中文文档 8. 聚合
  6. Machine learning for improved image-based wavefront sensing
  7. html5应用开发大赛
  8. 一些NER的英文数据集
  9. Parentheses Column Values
  10. 一些python书=待买
  11. jsp 网页计数器代码
  12. Python实现Mean Shift算法
  13. php为图片平铺文字水印
  14. less文件中导入另一个less文件
  15. MATLAB批量改变图片大小
  16. MBR膜持续发力 守护绿水青山
  17. 荣耀猎人游戏本散热怎么样?测试一下就知道
  18. 02 汇编语言的函数
  19. 2022最新软件测试面试八股文,全网最全最新,堪称地表最强
  20. 企业升级改造项目中的电力监控系统的研究与应用

热门文章

  1. (swing读书笔记)Swing Look And Feel(2)
  2. 用队列实现栈(Java)
  3. Python的布尔类型和True/False的各种形式
  4. 如何在mmdetection3d下批量的预测单目3d检测结果并保存
  5. 选择IDC机房的心得
  6. 苹果闪退解决方法_逃离塔科夫游戏闪退解决方法
  7. php空间 景安,景安提供1G免费一年的PHP和ASP空间
  8. 顶级技术网站博客汇总
  9. 机器人教育在高科技领域的主观作用
  10. 造血干细胞最新研究进展