首页 > 其他分享 >2024-12-10单片机-8*8点阵闪烁

2024-12-10单片机-8*8点阵闪烁

时间:2024-12-10 13:56:14浏览次数:5  
标签:24 10 12 delay int 2024 0xFF 10us 0xff

我们设计横排点阵显示名字和竖排显示名字,通过四个按钮实现名字上下左右平移;

例如我的名字,SYM开头。

其实算法很简单,写一个简单的滑动窗口就好,实现数组的平移。

实现代码:


#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;

void delay_10us(u16 ten_us) {
    while (ten_us--);
}

u8 gled_row[8] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
unsigned char pattern[] = {
0xFF,
0xE3,
0xFB,
0xE3,	
0xEF,
0xE3,
0xFF,
0xFF,

0xff,
0xbb,
0xd7,
0xef,
0xef,
0xef,
0xff,
0xff,

0xff,
0xff,
0xd7,
0xc7,
0xab,
0xbb,
0xff,
0xff,
};
unsigned char data_ms[] = {0xFF, 0xFF, 0xF1, 0xCF, 0xF7, 0xCF, 0xF1, 0xFF,0xFF, 0xFF, 0xFF, 0x8B, 0xAB, 0xA3, 0xFF, 0xFF,0xFF, 0xFF, 0xBF, 0xDF, 0xE1, 0xDF, 0xBF, 0xFF};
sbit K1 = P2^0;
sbit K2 = P2^1;
sbit K3 = P2^2;
sbit K4 = P2^3;
int main() {
    if(K1 == 0){
    int i=0;
    int j=0;
    int t=0;
        while(K1 == 0){
            j=t++;
            if(t>24){
                t = 0;
                }
            delay_10us(500);
            for(i = 0;i<8;i++){
                P0 = gled_row[i];
                P1 = pattern[j];
                    j++;
                if(j>=24){
                    j=0;
                }
                delay_10us(600);
            }
        }
    }
    if(K2 == 0){
    int i=0;
    int j=0;
    int t=0;
        while(K2 == 0){
            t--;
            if(t<0){
                t = 24;
                }
            j = t;
            delay_10us(500);
            for(i = 0;i<8;i++){
                P0 = gled_row[i];
                P1 = pattern[j];
                    j++;
                if(j>=24){
                    j=0;
                }
                delay_10us(500);
            }
        }
    }
    if(K3 == 0){
    int i=0;
    int j=0;
    int t=0;
        while(K3 == 0){
            t--;
            if(t<0){
                t = 24;
                }
            j = t;
            delay_10us(500);
            for(i = 0;i<8;i++){
                P1 = ~gled_row[i];
                P0 = ~data_ms[j];
                    j++;
                if(j>=24){
                    j=0;
                }
                delay_10us(500);
            }
                }
    }
    if(K4 == 0){
    int i=0;
    int j=0;
    int t=0;
        while(K4 == 0){
            j=t++;
            if(t>=24){
                t = 0;
                }
            delay_10us(500);
            for(i = 0;i<8;i++){
                P1 = ~gled_row[i];
                P0 = ~data_ms[j];
                    j++;
                if(j>=24){
                    j=0;
                }
                delay_10us(600);
            }
        }
    }
}
    

标签:24,10,12,delay,int,2024,0xFF,10us,0xff
From: https://www.cnblogs.com/AnnaStore/p/18597218

相关文章

  • 10.1 合金的强度y与其中的碳含量x有比较密切的关系
    importnumpyasnpimportstatsmodels.apiassmimportpylabaspltdefcheck(d):x0=d[0];y0=d[1];d={'x':x0,'y':y0}re=sm.formula.ols('y~x',d).fit()#拟合线性回归模型print(re.summary())print(re.outlier_test())#输出已知数据的野......
  • 10.2 某企业为研究车工的平均工龄x1、平均文化程序x2和平均产量y之间的变量关系
    importnumpyasnpimportstatsmodels.apiassmimportpylabasplta=np.loadtxt('data10_2.txt')plt.rc('text',usetex=True);plt.rc('font',size=16)plt.style.use('default')plt.plot(a[0],a[2],'*',l......
  • 2024-12-5实现16音阶按钮控制并显像管显示字符
    单片机的4*4按钮是根据PIN口的高四位和低四位实现的。(其中第几位返回0,显示第几行/列)我们可以根据btn去存贮其高四位和低四位实现知道第几排第几列。即可得到一下代码。//需要自行学习中断相关知识才可以理解interrupt的内容(这里不再赘述)#include<reg51.h>sbitSOUNDER=P3......
  • LQ1050 杨辉三角
    题目描述杨辉三角又称作中国三角形11  11  2  11  3  3  11  4  6  4  11  5  10  10  5  11  6  15  20  15  6  11  7  21  35  35  21  7  1请在观察杨......
  • AD学习之旅(1)——安装Altium Designer2024
    AltiumDesigner(简称AD)是一款功能强大的电子设计自动化软件,主要用于设计PCB板以及相应的原理图。接下来我将把详细的安装步骤记录下来。1.打开安装包右键点击Installer以管理员身份运行2.点击Next,把语言换成Chinese,勾选Iaccepttheagreement,然后点击Next3.继续点击N......
  • 12.10 CW 模拟赛 赛时记录
    前言最近发现只要每分钟都在做有意义的事就不算颓,同理的,这场考试只要每分钟都在想些事情,也就不算短期的主要目标就是利用好时间,其他的问题我基本上已经解决了,就是时间分配利用上的问题所以就只抓时间分配,这段时间先不去想别的,就好好把时间利用起来,不死磕,不畏......
  • 3peak最新物料交期和选型汇总表(2024年12月)
    TPA3662-VS1R , Package MSOP8 MPQ 3000 LT 10 (week) OPA HVOPATPA3664-SO2R , Package SOP14 MPQ 2500 LT 24 (week) OPA HVOPATPM1525-SO1R-S , Package SOP8 MPQ 4000 LT 10 (week) GateDrv NONISOGDTPT1043-SO2R-S , Package SOP14 MPQ 2500 LT 8 (week......
  • 画图新手的福音!10款免费绘图软件轻松搞定设计
    在当前的数字化时代,各类创作工具层出不穷,特别是画图软件备受设计师和创意工作者的青睐。但在众多的免费画图软件中,如何找到最适合自己的工具呢?为了帮助您解答这个问题,我们特别挑选了10款广受欢迎的免费画图软件进行分析评测,每一款都独具特色,可满足不同用户的需求。1.免费画图......
  • Java 架构师面试题解析(2024 年版)
    在当今竞争激烈的技术领域,成为一名Java架构师需要具备深厚的技术功底和丰富的实践经验。为了帮助大家更好地准备Java架构师面试,本文整理了一些2024年常见的面试题及答案解析。一、基础篇1.谈谈你对面向对象编程三大特性的理解?封装:将数据和操作封装在类中,通过访问修......
  • 2024年11月充电桩运营平台排名:国网e充电位居第三
    中国充电桩网的数据统计如下:国网e充电平台的特点与优势广泛的网络覆盖国网e充电平台已接入超过3.2万个国网自营充电站和2600多个社会合作充电站,形成了覆盖全国的“十纵十横两环”高速快充网络,服务范围包括城市、乡村及高速公路等场景14。其高速公路快充网络覆盖近5万公里,极大......