基于AT89C51单片机的16×16点阵LED显示器字符滚动显示设计(含文档、源码与proteus仿真,以及系统详细介绍)

news2024/11/27 15:54:27

本篇文章论述的是基于AT89C51单片机的16×16点阵LED显示器字符滚动显示设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。

目录

仿真效果图

仿真图

代码

系统论文

资源下载


设计的内容和要求

熟悉51系列(兼容)单片机软件开发系统Keil C51集成开发环境(u Vison系列编译器)和Proteus电路分析与实物仿真软件。

了解点阵LED显示器结构及字符字模(字符代码),熟悉点阵LED显示器驱动的基本原理。设计16×16点阵LED显示器的驱动电路,并编写程序实现在16×16点阵LED显示器上的字符滚动显示。16×16点阵LED显示器可由4块8×8点阵LED显示器构成。可采用单片机并行端口、移位寄存器、译码器或锁存器等4种驱动方式中的组合实现对16×16点阵LED显示器的驱动。电路方面主要包括以下3部分。

(a)设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。

(b)采用动态驱动的方式,设计单片机并行端口、移位寄存器、译码器或锁存器等与16×16点阵LED显示器的驱动电路,主要包括控制点阵LED行和列的连线。

(c)采用移位寄存器、译码器或锁存器驱动点阵LED显示器时,设计单片机与移位寄存器、译码器或锁存器间的控制连线。  编写16×16点阵LED显示器字符(串)滚动显示程序,实现数字(0—9)或英文字符的滚动显示。        

仿真效果图


仿真图


代码(部分)


#include <reg51.h>		  //头文件//
#define  u8	  unsigned char  //定义无符号字符型变量//
#define  u16  unsigned int     //定义无符号整数型变量//
#define  SPEED   10       
//端口定义//
sbit DS=P2^0;
sbit SH=P2^1;
sbit ST=P2^2;

u8 code table1[]={	          //定义高八位数组//	 

//字模定义//
/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  0  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  1  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x08,0x08,0x1F,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  2  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x0E,0x10,0x10,0x10,0x11,0x0E,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字:  3  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x0C,0x10,0x11,0x11,0x12,0x0C,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  4  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x03,0x04,0x08,0x1F,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  5  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x1F,0x10,0x11,0x11,0x10,0x10,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  6  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x07,0x08,0x11,0x11,0x18,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  7  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x1C,0x10,0x10,0x13,0x1C,0x00,0x00,
/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  8  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  9  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

u8 code table2[]={            //定义低八位数组//

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  0  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  1  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  2  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x0C,0x14,0x24,0x44,0x84,0x0C,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  3  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x18,0x04,0x04,0x04,0x88,0x70,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  4  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0xE0,0x20,0x24,0x24,0xFC,0x24,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  5  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x98,0x84,0x04,0x04,0x88,0x70,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  6  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0xF0,0x88,0x04,0x04,0x88,0x70,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  7  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  8  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x38,0x44,0x84,0x84,0x44,0x38,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  9  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/

0x00,0x00,0x8C,0x44,0x44,0x88,0xF0,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:     --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

void senddata(u8,u8);        //定义函数//
void delay(u8);

void main()
{
	u8	i,j,k,m,n=0;          //定义无符号字符型变量//
	while(1)
	{
	 	for(i=0;i<168;i++)        //i确定16列的起点,一共2323*8-16=168//
		{
			for(j=0;j<SPEED;j++)  //控制显示速度,每一幅循环显示几次,达到稳定作用//
			{
				for(k=0;k<16;k++)       //K确定列,控制每个屏幕//
				{
					m=i+k;
					P1=k;					 //控制ABCD端口//
					senddata(table1[m],table2[m]);   //发送数据,第一行高8 位,低8位全部移入595//
					delay(70);
				  	senddata(0,0);     //清屏//
				}
			}
		}
	}
}

系统论文(由于论文字数太多,在这里只介绍部分)


1选题背景

LED显示屏是一种通过控制半导体发光二极管的显示方式, 用来显示文字、 图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、 VCD节目以及现场实况。

LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法[1]

2 方案论证

2.1 课题要求

 了解点阵LED显示器结构及字符字模(字符代码),熟悉点阵LED显示器驱动的基本原理。设计16×16点阵LED显示器的驱动电路,并编写程序实现在16×16点阵LED显示器上的字符滚动显示。16×16点阵LED显示器可由4块8×8点阵LED显示器构成。        

电路方面主要包括以下3部分。设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。采用动态驱动的方式,设计单片机并行端口、移位寄存器、译码器或锁存器等与16×16点阵LED显示器的驱动电路,主要包括控制点阵LED行和列的连线。采用移位寄存器、译码器或锁存器驱动点阵LED显示器时,设计单片机与移位寄存器、译码器或锁存器间的控制连线。 

编写16×16点阵LED显示器字符(串)滚动显示程序,实现数字(0—9)或英文字符的滚动显示。

2.2 设计方案

2.2.1硬件设计方案

以PC机作为上位机存储和处理显示内容用串行通信的方式将显示内容和控制指令传输到单片机系统,单片机根据上位机传输来的内容和指令通过端口译码扩展后驱动4块8×8LED点阵模块构成的16×16的LED点阵显示屏。题目将以此方案为指导思想展开具体的硬件电路设计。

图2-1  硬件设计方案

2.2.1软件设计方案

(1)单片机编程语言选择

现在主要运用的单片机编程语言为汇编语言和C语言。

两种语言相比较各有优点汇编语言是面向机器的程序设计语言,是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。其具有执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言结构是以括号{ }而不是子和特殊符号的语言。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;程序有规范的结构,可分为不同的函数。这种方式可使程序结构化;将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;编程及程序调试时间显著缩短,从而提高效率;提供的库包含许多标准子程序,具有较强的数据处理能力;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同较快地移植过来。

基于以上理由决定采用C语言为该显示系统的编程语言。

(2)系统软件编译工具选择

C语言编写的程序并不能被单片机直接执行还需要编译为单片机可执行的机器语言。因此在系统软件设计中,编译器必不可少。支持MCS-51用C语言编程的编译器主要有两种:Franklin C51编译器和KEILC51编译器。目前在单片机开发中普遍都是使用KEIL C51来进行编译。

因此软件设计最终方案为采用C语言为程序语言,KELC为编译工具按照控制、通信、显示等几个功能模块来编写程序。

3 设计过程

3.1 系统框图

 图3-1  硬件原理图

3.2  控制单元设计

控制电路设计中采用的是单片机系统,该系统必须要是工作在一个最小系统(指单片机的可以的最小配置系统)。根据功能选择一定的单片机端口添加外围的器件在该系统中,P1各口主要用作LED显示数据的控制输出。具体接法为:P1.0,P1.1,P1.2,P1.3分别接74HC138的A端,B,CD端。C端向74HC138送入串行数据经过其转换后并行输出;P2各口主要用作LED显示数据的控制输出P2.1,P2.2接595的SH_CP端,ST_CP端,P2.0接DS端控件系统的输入

图3-2  控制部分电路图

3.3  行驱动单元设计

驱动电路由74HC595构成,它可以实现在显示本数据的同时,传送下一数据。数据在SH_CP的上升沿输入,在ST_CP的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线

图3-3  行驱动部分电路图

3.4. 列驱动单元设计

译码电路的功能是为了解决单片机I/O端口不足。译码所用器件为串并转换器74HC138如果不采用译码电路完全依靠单片机的端口输出来控制16×16的LED点阵屏显示,需要32个端口。而采用了译码电路后仅仅需要7~9个端口便可实现控制显示。大大减少了I/O口的占用数目,为单片机扩展其他功能预留下来了空间。两个74HC138联成4线-16线译码器,三级管接显示屏可以解决显示屏供电不足的问题。锁存器74HC59574HC138的使能端,实现对74HC138的使能控制,达到锁存功能,A,B,C为138译码器的三个地址输入。

图3-4  列驱动部分电路图

3.5  元器件清单

电路设计需要的元器件包括电阻、电容、单片机、8×8点阵LED、74HC138、74HC595等,具体元器件数量及规格如下表所示。

表3-1 元器件清单

元器件型号

规格参数

数量

电阻

电容

电容

单片机

8×8点阵LED

74HC138

74HC595

10KΩ

30uf

30pf

AT89C51

1个

1个

2个

1个

4个

2个

2个

3.6 系统软件设计

3.6.1 程序框图简介

程序主要由头文件、端口定义、字模定义、函数等组成。根据程序的设计原理,主函数流程如图3-5所示。

图3-5  流程图


资源下载


如果有需要这个系统的源码、仿真、论文等资源的可以私信我。感谢你的阅读~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 ——— 大/小端存储模式的介绍及判断

目录 何为大端小端 如何测试当前机器是大端还是小端 编写代码&#xff0c;判断当前机器的字节序 何为大端小端 大端字节序存储模式&#xff1a;数据的低位字节的内容 存放在 内存的高地址 中&#xff0c;数据的高位字节的内容 保存在 内存的低地址 中 小端字节序存储模式&am…

台达DVP系列串口驱动全面解析

1 驱动简介 台达DVP系列PLC&#xff08;包括ES2、SS、EX等&#xff09;使用串口通讯&#xff0c;外部设备可通过此口采集与PLC进行数据交互。网关使用台达DVP系列驱动&#xff0c;按照下述过程操作即可实现网关与PLC直接通讯 默认串口参数&#xff1a;9600/7/偶/1。 串口号&…

支持前端路由权限和后端接口权限的企业管理系统模版

一、技术栈 前端&#xff1a;iview-admin vue 后端&#xff1a;springboot shiro 二、基于角色的权限控制 1、路由权限 即不同角色的路由访问控制 2、菜单权限 即不同角色的菜单列表展示 3、按钮权限 即不同角色的按钮展示 4、接口权限 即不同角色的接口访问控制 三…

SQLMC:一款高性能大规模SQL注入安全扫描工具

关于SQLMC SQLMC是一款功能强大的高性能SQL注入安全扫描工具&#xff0c;该工具作为Kali Linux官方内置工具的其中一个部分&#xff0c;可以帮助广大研究人员检测目标域名的所有URL节点是否存在SQL注入问题。 该工具基于纯Python开发&#xff0c;适用于红队和蓝队成员&#xf…

path模块和HTTP协议

一。path模块常用API ./相对路径&#xff0c;/绝对路径 二&#xff0c;HTTP协议 1.请求报文 1.请求行 URL的组成 2.请求头 3.请求体 可以是空&#xff1a;GET请求 可以是字符串&#xff0c;还可以是json&#xff1a;POST请求 2.响应报文 1.响应行 HTTP / 1.1 200 OK H…

为什么讨厌Java的人比较多且易见?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」&#xff0c;点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;1. 我对OO理解的入门是从Java的…

谈谈大数据采集和常见问题

01 什么是数据采集 数据采集是大数据的基石&#xff0c;不论是现在的互联网公司&#xff0c;物联网公司或者传统的IT公司&#xff0c;每个业务流程环节都会产生大量的数据&#xff0c;同时用户操作的日志也会产生大量的数据&#xff0c;为了将这些结构化和非结构化的数据进行…

负载测试和功率分析中负载箱的重要作用

在负载测试和功率分析中&#xff0c;负载箱扮演着至关重要的角色。以下是负载箱在这两个方面的重要作用&#xff1a; 一、负载测试中的重要作用 模拟实际负载条件&#xff1a; 负载箱能够模拟各种复杂的负载条件&#xff0c;包括电阻性负载、电感性负载、电容性负载等&#x…

基于springboot和mybatis的RealWorld后端项目实战二之实现tag接口

修改pom.xml 新增tag数据表 SET FOREIGN_KEY_CHECKS0;-- ---------------------------- -- Table structure for tags -- ---------------------------- DROP TABLE IF EXISTS tags; CREATE TABLE tags (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(255) NOT NULL,PR…

卷积加速算法img2col、Winograd、FFT

FFT 空间域中矩阵的卷积算子&#xff0c;实际等于频率域中两个矩阵元素相乘。但卷积的方向是相反的。 通常情况下&#xff0c;feature的尺寸要比卷积的尺寸大很多&#xff0c;如果对两者进行快速傅里叶变换的话&#xff0c;得出来的两个矩阵大小不一样&#xff0c;不能进行对…

Java读写t5557卡源码

T5557卡是美国Atmel公司生产的多功能非接触式射频卡芯片&#xff0c;属于125KHz的低频卡&#xff0c;在国内有广大的应用市场。该芯片共有330bit(比特)的EPROM(分布为10个区块, 每个区块33bit)。0页的块0是被保留用于设置T5557操作模式的参数配置块。第0页第7块可以作用户数据块…

ATA-8202射频功率放大器有什么作用

射频功率放大器是一种专门用于放大射频信号功率的电子器件。它在无线通信、雷达系统、卫星通信、医疗设备和广播电视等领域中发挥着重要作用。下面安泰电子将介绍ATA-8202射频功率放大器的作用及其在不同应用领域中的具体应用。 一、ATA-8202射频功率放大器的作用 射频功率放大…

短链接day8

短链接监控 开发访问单个短链接监控统计功能 不知道是哪里复制错了&#xff0c;反正就是一顿报错&#xff0c;改了这个又改那个&#xff0c;还是报错。。暂时不管了。 记录短链接访问日志 logdo新增networt、device、local属性。 分页查询短链接访问日志 分页查询短链接今…

使用Bind提供的域名解析服务

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、DNS域名解析服务 二、安装Bind服务程序 1、正向解析 2、反向解析 三、部署从服务器 四、安全的加密传输 五、部署缓存服务器 六、分…

AI算法19-偏最小二乘法回归算法Partial Least Squares Regression | PLS

偏最小二乘法回归算法简介 算法概述 偏最小二乘法模型可分为偏最小二乘回归模型和偏最小二乘路径模型。其中偏最小二乘回归模型是一种新型的多元统计方法&#xff0c;它集中了主成分分析、典型相关分析和线性回归的特点&#xff0c;特别在解决回归中的共线性问题具有无可比拟…

在JavaScript中,什么是解构赋值(destructuring assignment)?

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介在JavaScript中&#xff0c;什么是解构赋值&#xff08;destructuring assignment&#xff09;&#xff1f;1. 引言2. 解构赋值的概念3. 数组解构赋值3.1 基本语法3.2 跳过元素3.3 默认值3.4 交换变量值 4. 对象解构赋值4.1 基本语…

“解锁物流新纪元:深入探索‘沂路畅通‘分布式协作平台“

"解锁物流新纪元&#xff1a;深入探索沂路畅通分布式协作平台" 在21世纪的数字浪潮中&#xff0c;物流行业作为连接生产与消费的关键纽带&#xff0c;其重要性不言而喻。然而&#xff0c;随着市场规模的持续扩大和消费者需求的日益多样化&#xff0c;传统物流模式已…

150个pb网站模板(都是成品网站,上传php空间即可使用),建站必备

一网友提供的150个pb网站模板&#xff0c;其实就是成品网站&#xff0c;上传php空间即可使用&#xff0c;属于建站公司或者建站开发人员必备的资源。 一共150个基于pb的成品网站&#xff0c;基本上都可以找到适应你手头客户需要的一款&#xff0c;简单修改一下即可交活收钱了。…

LinuxShell编程1———shell基础命令

文章目录 前言 一、shell基础知识 1、shell概念 2、Shell的功能 接收&#xff1a;用户命令 调用&#xff1a;相应的应用程序 解释并交给&#xff1a;内核去处理 返还&#xff1a;内核处理结果 3、Shell种类&#xff08;了解&#xff09; 3.1、MS-DOS 3.2、Windows的…

图片在线怎样做二维码?制作二维码展示图片的制作方法

图片想要更快捷的分享给其他人展示&#xff0c;除了通过网站平台之外&#xff0c;比如朋友圈、qq空间、微博等方式外&#xff0c;现在很多人也会通过生成二维码的方法&#xff0c;让其他人可以通过扫描二维码查看图片。图片转换二维码的好处有很多&#xff0c;比如可以节省空间…