51单片机嵌入式开发:20、STC89C52R基于C51嵌入式点阵广告屏的设计
STC89C52R基于C51嵌入式点阵广告屏的设计
- 1 概述
- 2 LED点阵介绍
- 2.1 特点和优势
- 2.2 工作原理:
- 2.3 使用方法:
- 3 LED点阵原理
- 3.1 Led点阵内部电路
- 3.2 原理图电路
- 3.3 74HC595
- 4 软件实现点阵图案的滑动
- 4.1 软件工程代码
- 4.2 Protues仿真
- 5 总结
配套示例程序
1 概述
LED点阵广告牌是利用LED点阵技术制作的大型显示屏,通常用于户外广告、商业宣传、活动展示等场合。
2 LED点阵介绍
8x8 LED点阵是一种常见的LED显示器件,通常由64个LED灯组成,排列成一个8行8列的矩阵。每个LED灯可以独立控制,因此可以通过控制不同的灯来显示各种图案、数字和字母。
2.1 特点和优势
灵活性:每个LED灯都可以独立控制,使得点阵显示器具有很高的灵活性,可以显示各种自定义图案和动画效果。
低功耗:LED点阵采用LED作为发光元件,功耗低,适合长时间工作。
易于控制:通过微控制器或驱动芯片,可以方便地控制整个点阵的显示内容。
广泛应用:LED点阵广泛应用于计时器、温度计、电子钟、信息显示牌、小型游戏等领域。
2.2 工作原理:
每列LED的阳极连接在一起,形成一组,每行LED的阴极连接在一起,形成一组。
控制时,逐行输出低电平,同时将要点亮的列输出高电平。循环扫描这些行和列,就能实现LED的点亮和熄灭。
2.3 使用方法:
通过微控制器(比如51单片机、Arduino等)来控制LED点阵的显示内容。
编写控制程序,根据需要显示的图案、字母或数字,设置每个LED的状态,实现所需的显示效果。
3 LED点阵原理
3.1 Led点阵内部电路
8x8LED点阵内部结构图如下,这两种图片只是接法不同,要点亮LED,左图需要行置为高电平,列置为低电平;右图则需要行置为低电平,列置为高电平。
8x8LED点阵内部结构图
8x8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置高电平,某一列置低电平,则相应的二极管将点亮。
比如对于左图,如果要将第一个点点亮,则将第一行的⑨脚接高电平,第一列的13脚接低电平,第一个点就会点亮;如果要将第一行点亮,则第一行的⑨脚接高电平,所有列(13、3、4、10、6、11、15、16脚)接低电平,第一行就会点亮;如果要将第一列点亮,则第一列的13脚接低电平,所有行(9、14、8、12、1、7、2、5脚)接高电平,第一列就会点亮;如果要将对角线点亮,可以动态显示,首先点亮第一个点,然后点亮第2行第2列的点…这样依次循环点亮,就可以显示对角线的点。
如果要显示数字或字符,在需要的位置点亮,比如显示0(如下),可以循环点亮如下位置的LED。
3.2 原理图电路
仿真电路:
我们调整点阵的位置使其横着摆放。
3.3 74HC595
- 74HC595 概述
74HC595 是一款常用的 8 位串行输入并行输出移位寄存器。它可以将串行输入的数据转换为并行输出,广泛应用于 LED 显示、数码管驱动等场合。74HC595 具有 8 个并行输出接口,可以通过串行方式控制多个 74HC595 级联使用。 - 74HC595 引脚配置
74HC595 总共有 16 个引脚,每个引脚的功能如下:
Q0 ~ Q7(引脚 15, 1-7):并行输出位。
DS(引脚 14):数据输入(串行输入)。
OE(引脚 13):输出使能(低电平有效)。
STCP(引脚 12):存储寄存器时钟输入(上升沿触发)。
SHCP(引脚 11):移位寄存器时钟输入(上升沿触发)。
MR(引脚 10):主复位(低电平复位)。
Q7’(引脚 9):串行输出。
Vcc(引脚 16):电源正极。
GND(引脚 8):电源负极。 - 74HC595 工作原理
74HC595 包含两个寄存器:移位寄存器和存储寄存器。数据首先被写入移位寄存器,然后通过锁存操作将移位寄存器的内容传输到存储寄存器,以实现并行输出。
数据输入
数据通过 DS 引脚串行输入,每当 SHCP 引脚收到一个上升沿时,移位寄存器中的数据会左移一位,新数据位被移入 Q0。通过连续的时钟脉冲,可以依次将 8 位数据写入移位寄存器。
数据锁存
完成数据输入后,通过在 STCP 引脚上产生一个上升沿脉冲,将移位寄存器的数据传输到存储寄存器,从而更新并行输出的状态。
输出使能
OE 引脚用于控制并行输出的使能状态。当 OE 为低电平时,并行输出有效;当 OE 为高电平时,并行输出被禁用。
通讯时序图:
一个驱动74HC595的标准函数:
sbit DS = P1^0; // Data Input
sbit SHCP = P1^1; // Shift Clock
sbit STCP = P1^2; // Store Clock
void HC595SendByte(unsigned char dat)
{
unsigned char i;
for(i = 0; i < 8; i++)
{
DS = dat & 0x80; // 从高位到低位发送数据
SHCP = 0;
dat = dat << 1;
SHCP = 1;
}
STCP = 0;
STCP = 1;
}
4 软件实现点阵图案的滑动
4.1 软件工程代码
//main.c文件
#include "includes.h"/******************************************************************/
/* 微秒延时函数 //10us */
/******************************************************************/
void delay_us(unsigned int us)//delay us
{while(us--){}
}/******************************************************************/
/* 微秒延时函数 */
/******************************************************************/
void delay_ms(unsigned int Ms)//delay us
{while(Ms--){delay_us(100);}
}sbit DS = P2^6; // Data Input
sbit SHCP = P2^7; // Shift Clock
sbit STCP = P2^5; // Store Clockvoid HC595SendByte(unsigned char dat) {unsigned char i;for(i = 0; i < 8; i++) {DS = dat & 0x80; // 从高位到低位发送数据SHCP = 0;dat = dat << 1;SHCP = 1;}STCP = 0;STCP = 1;
}// P2 = 0xFF; //代表列 发光二级管的负端
// P0 = 0x00; //代表行 发光二级管的正端
//
#define rowp P0
#define colp P2
//0-9字模
code unsigned char disp[][8]={
{0x0c,0x12,0x22,0x44,0x22,0x12,0x0c,0x00},//?
{0x00,0x00,0x3e,0x41,0x41,0x3e,0x00,0x00},//0
{0x00,0x40,0x44,0x7e,0x7f,0x40,0x40,0x00},//1
{0x00,0x00,0x66,0x51,0x49,0x46,0x00,0x00},//2
{0x00,0x00,0x22,0x41,0x49,0x36,0x00,0x00},//3
{0x00,0x10,0x1c,0x13,0x7c,0x7c,0x10,0x00},//4
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x32,0x00,0x00},//6
{0x00,0x03,0x01,0x71,0x79,0x07,0x03,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x36,0x00,0x00},//8
{0x00,0x00,0x26,0x49,0x49,0x3e,0x00,0x00},//9
};// 定义字符模式数组
code unsigned char charPatterns[8] = {0x0c,0x12,0x22,0x44,0x22,0x12,0x0c,0x00//0x18, 0x24, 0x42, 0x81, 0x42, 0x24, 0x18, 0x00
};/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{unsigned char i, j,m,n;unsigned char displayData[88] = {0}; // 初始化显示数据for (i = 0; i < 88; i++) //行的数组更新{displayData[i] = disp[i/8][i%8];}delay_ms(2);P20 = 0;P21 = 0;P22 = 0;P23 = 0;while (1){// 滚动效果for (j = 0; j < 88; j++) {for (i = 0; i < 88; i++) //行的数组更新{n = i+1;if(n>=88){n -= 88;}displayData[i] = displayData[n];}// 逐行扫描点阵屏for(m=0;m<20;m++){for (i = 0; i < 32; i++){P2 &= 0xF0;P2 |= ~(1<<(i/8));HC595SendByte(~(1 << (i%8)));P0 = displayData[i]; // 发送数据}}for (i = 0; i < 32; i++){P2 &= 0xF0;P2 |= ~(1<<(i/8));HC595SendByte(~(1 << (i%8)));P0 = 0x00; // 发送数据}}}
}/*// 滚动效果for (j = 0; j < 8; j++) {for (i = 0; i < 8; i++) {displayData[i] = (displayData[i] << 1) | (charPatterns[i] >> (7 - j));}// 逐行扫描点阵屏for(m=0;m<20;m++){for (i = 0; i < 8; i++){//P2 = ~(1 << i); // 控制点阵屏的行HC595SendByte(~(1 << i));P0 = displayData[i]; // 发送数据delay_ms(1); // 延时//P0 = 0x00; // 清空数据}//delay_ms(500); // 控制滚动速度}for (i = 0; i < 8; i++){//P2 = ~(1 << i); // 控制点阵屏的行HC595SendByte(~(1 << i));P0 = 0x00; // 发送数据delay_ms(1); // 延时//P0 = 0x00; // 清空数据}}}
*/
//includes.h文件
#ifndef __INCLUDES_H__
#define __INCLUDES_H__//#include<reg52.h> #include<intrins.h> //汇编指令_nop_
#include<stdio.h> //标准输入输出//_nop_(); 产生一条NOP指令
//作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。
//NOP指令为单周期指令,可由晶振频率算出延时时间。//8051 为每个机器周期 12 时钟
//对于12M晶振,延时1uS。
//11.0592M晶振,延时1.0851uS。//对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "STC89C5xRC_RDP.h"//应用层头文件
//#include "c51_gpio.h"
//#include "c51_ledtube.h"
//#include "c51_key.h"
//#include "c51_timer.h"
//#include "c51_exit.h"
//#include "c51_lcd1602.h"
//#include "c51_iic.h"
//#include "c51_tx1838.h"
//#include "c51_uart.h"
//#include "c51_28byj48.h"
//#include "c51_ds1302.h"extern void delay_us(unsigned int us);//delay us;
extern void delay_ms(unsigned int Ms);//delay Ms;#endif
$NOMOD51
;------------------------------------------------------------------------------
; This file is part of the C51 Compiler package
; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
;------------------------------------------------------------------------------
; STARTUP.A51: This code is executed after processor reset.
;
; To translate this file use A51 with the following invocation:
;
; A51 STARTUP.A51
;
; To link the modified STARTUP.OBJ file to your application use the following
; BL51 invocation:
;
; BL51 <your object file list>, STARTUP.OBJ <controls>
;
;------------------------------------------------------------------------------
;
; User-defined Power-On Initialization of Memory
;
; With the following EQU statements the initialization of memory
; at processor reset can be defined:
;
; ; the absolute start-address of IDATA memory is always 0
IDATALEN EQU 80H ; the length of IDATA memory in bytes.
;
XDATASTART EQU 0H ; the absolute start-address of XDATA memory
XDATALEN EQU 0H ; the length of XDATA memory in bytes.
;
PDATASTART EQU 0H ; the absolute start-address of PDATA memory
PDATALEN EQU 0H ; the length of PDATA memory in bytes.
;
; Notes: The IDATA space overlaps physically the DATA and BIT areas of the
; 8051 CPU. At minimum the memory space occupied from the C51
; run-time routines must be set to zero.
;------------------------------------------------------------------------------
;
; Reentrant Stack Initilization
;
; The following EQU statements define the stack pointer for reentrant
; functions and initialized it:
;
; Stack Space for reentrant functions in the SMALL model.
IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
IBPSTACKTOP EQU 0FFH+1 ; set top of stack to highest location+1.
;
; Stack Space for reentrant functions in the LARGE model.
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.
;
; Stack Space for reentrant functions in the COMPACT model.
PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
PBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.
;
;------------------------------------------------------------------------------
;
; Page Definition for Using the Compact Model with 64 KByte xdata RAM
;
; The following EQU statements define the xdata page used for pdata
; variables. The EQU PPAGE must conform with the PPAGE control used
; in the linker invocation.
;
PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
;
PPAGE EQU 0 ; define PPAGE number.
;
PPAGE_SFR DATA 0A0H ; SFR that supplies uppermost address byte
; (most 8051 variants use P2 as uppermost address byte)
;
;------------------------------------------------------------------------------; Standard SFR Symbols
ACC DATA 0E0H
B DATA 0F0H
SP DATA 81H
DPL DATA 82H
DPH DATA 83HNAME ?C_STARTUP?C_C51STARTUP SEGMENT CODE
?STACK SEGMENT IDATARSEG ?STACKDS 1EXTRN CODE (?C_START)PUBLIC ?C_STARTUPCSEG AT 0
?C_STARTUP: LJMP STARTUP1RSEG ?C_C51STARTUPSTARTUP1:IF IDATALEN <> 0MOV R0,#IDATALEN - 1CLR A
IDATALOOP: MOV @R0,ADJNZ R0,IDATALOOP
ENDIFIF XDATALEN <> 0MOV DPTR,#XDATASTARTMOV R7,#LOW (XDATALEN)IF (LOW (XDATALEN)) <> 0MOV R6,#(HIGH (XDATALEN)) +1ELSEMOV R6,#HIGH (XDATALEN)ENDIFCLR A
XDATALOOP: MOVX @DPTR,AINC DPTRDJNZ R7,XDATALOOPDJNZ R6,XDATALOOP
ENDIFIF PPAGEENABLE <> 0MOV PPAGE_SFR,#PPAGE
ENDIFIF PDATALEN <> 0MOV R0,#LOW (PDATASTART)MOV R7,#LOW (PDATALEN)CLR A
PDATALOOP: MOVX @R0,AINC R0DJNZ R7,PDATALOOP
ENDIFIF IBPSTACK <> 0
EXTRN DATA (?C_IBP)MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIFIF XBPSTACK <> 0
EXTRN DATA (?C_XBP)MOV ?C_XBP,#HIGH XBPSTACKTOPMOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIFIF PBPSTACK <> 0
EXTRN DATA (?C_PBP)MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIFMOV SP,#?STACK-1
; This code is required if you use L51_BANK.A51 with Banking Mode 4
; EXTRN CODE (?B_SWITCH0)
; CALL ?B_SWITCH0 ; init bank mechanism to code bank 0LJMP ?C_STARTEND
#ifndef STC89C5xRC_RDP_H
#define __STC89C5xRC_RDP_H__///包含本头文件后,不用另外再包含"REG51.H"sfr P0 = 0x80;sbit P00 = P0^0;sbit P01 = P0^1;sbit P02 = P0^2;sbit P03 = P0^3;sbit P04 = P0^4;sbit P05 = P0^5;sbit P06 = P0^6;sbit P07 = P0^7;sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;sfr TCON = 0x88;sbit TF1 = TCON^7;sbit TR1 = TCON^6;sbit TF0 = TCON^5;sbit TR0 = TCON^4;sbit IE1 = TCON^3;sbit IT1 = TCON^2;sbit IE0 = TCON^1;sbit IT0 = TCON^0;sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr AUXR = 0x8E;sfr P1 = 0x90;sbit P10 = P1^0;sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;sbit P14 = P1^4;sbit P15 = P1^5;sbit P16 = P1^6;sbit P17 = P1^7;sbit T2EX = P1^1;sbit T2 = P1^0;sfr SCON = 0x98;sbit SM0 = SCON^7;sbit SM1 = SCON^6;sbit SM2 = SCON^5;sbit REN = SCON^4;sbit TB8 = SCON^3;sbit RB8 = SCON^2;sbit TI = SCON^1;sbit RI = SCON^0;sfr SBUF = 0x99;sfr P2 = 0xA0;sbit P20 = P2^0;sbit P21 = P2^1;sbit P22 = P2^2;sbit P23 = P2^3;sbit P24 = P2^4;sbit P25 = P2^5;sbit P26 = P2^6;sbit P27 = P2^7;sfr AUXR1 = 0xA2;sfr IE = 0xA8;sbit EA = IE^7;sbit EC = IE^6;sbit ET2 = IE^5;sbit ES = IE^4;sbit ET1 = IE^3;sbit EX1 = IE^2;sbit ET0 = IE^1;sbit EX0 = IE^0;sfr SADDR = 0xA9;sfr P3 = 0xB0;sbit P30 = P3^0;sbit P31 = P3^1;sbit P32 = P3^2;sbit P33 = P3^3;sbit P34 = P3^4;sbit P35 = P3^5;sbit P36 = P3^6;sbit P37 = P3^7;sbit RD = P3^7;sbit WR = P3^6;sbit T1 = P3^5;sbit T0 = P3^4;sbit INT1 = P3^3;sbit INT0 = P3^2;sbit TXD = P3^1;sbit RXD = P3^0;sfr IPH = 0xB7;
sfr IP = 0xB8;sbit PT2 = IP^5;sbit PS = IP^4;sbit PT1 = IP^3;sbit PX1 = IP^2;sbit PT0 = IP^1;sbit PX0 = IP^0;sfr SADEN = 0xB9;sfr XICON = 0xC0;sbit PX3 = XICON^7;sbit EX3 = XICON^6;sbit IE3 = XICON^5;sbit IT3 = XICON^4;sbit PX2 = XICON^3;sbit EX2 = XICON^2;sbit IE2 = XICON^1;sbit IT2 = XICON^0;sfr T2CON = 0xC8;sbit TF2 = T2CON^7;sbit EXF2 = T2CON^6;sbit RCLK = T2CON^5;sbit TCLK = T2CON^4;sbit EXEN2 = T2CON^3;sbit TR2 = T2CON^2;sbit C_T2 = T2CON^1;sbit CP_RL2 = T2CON^0;sfr T2MOD = 0xC9;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;sfr PSW = 0xD0;sbit CY = PSW^7;sbit AC = PSW^6;sbit F0 = PSW^5;sbit RS1 = PSW^4;sbit RS0 = PSW^3;sbit OV = PSW^2;sbit F1 = PSW^1;sbit P = PSW^0;sfr ACC = 0xE0;sfr WDT_CONTR = 0xE1;
sfr ISP_DATA = 0xE2;
sfr ISP_ADDRH = 0xE3;
sfr ISP_ADDRL = 0xE4;
sfr ISP_CMD = 0xE5;
sfr ISP_TRIG = 0xE6;
sfr ISP_CONTR = 0xE7;sfr P4 = 0xE8;sbit P40 = P4^0;sbit P41 = P4^1;sbit P42 = P4^2;sbit P43 = P4^3;sbit P44 = P4^4;sbit P45 = P4^5;sbit P46 = P4^6;sbit P47 = P4^7;sfr B = 0xF0;/#endif
4.2 Protues仿真
Led点阵屏上数字一直扫描移动,在实际应用时也是扫描移动显示。
配套示例程序
5 总结
- LED点阵广告牌作为一种现代化、高效能的广告展示工具,已经成为城市景观、商业广告和活动展示中不可或缺的一部分。其高亮度、高清晰度和多功能性使其在各种场合中展现出色彩斑斓的效果,吸引眼球、传递信息。
- 商业广告牌:用于商业广告、品牌宣传、产品推广等。
- 交通指示牌:用于道路交通指示、公共交通站点显示等。
- 活动场馆广告:用于体育场馆、演艺场所、会展中心等的广告宣传和信息展示。
- 城市景观工程:用于城市建筑、广场、公园等的景观照明和信息展示。
- 活动现场背景:用于大型活动现场的背景布置和互动展示。
配套示例程序
相关文章:

51单片机嵌入式开发:20、STC89C52R基于C51嵌入式点阵广告屏的设计
STC89C52R基于C51嵌入式点阵广告屏的设计 1 概述2 LED点阵介绍2.1 特点和优势2.2 工作原理:2.3 使用方法: 3 LED点阵原理3.1 Led点阵内部电路3.2 原理图电路3.3 74HC595 4 软件实现点阵图案的滑动4.1 软件工程代码4.2 Protues仿真 5 总结 配套示例程序 1…...

VLC输出NDI媒体流
目录 1. 下载安装VLC Play 2. 首先在电脑上安装NDI Tools 3. 运行VLC进行输出配置 4. 播放视频 5. 验证 (1)用Studio Monitor验证 (2)用OBS验证 NDI(Network Device Interface)即网络设备接口,是由美国 NewTek 公司开发的免费标准,它可使兼容的视频产品以高质量…...
WiFi 局域网通信 - 发现服务和解析
1. nsdManager nsdManager requireContext().getSystemService(Context.NSD_SERVICE) as NsdManager2. NsdManager.DiscoveryListener 注意:在onStartDiscoveryFailed 和 onStopDiscoveryFailed里不要调用nsdManager.stopServiceDiscovery(this) 方法࿰…...
ChatGPT建议前端学习计划
HTML&CSS基础 - 学习HTML标签、CSS属性、页面布局等基础知识 JavaScript基础 - 学习变量、数据类型、控制流、函数等基础知识 jQuery - 学习如何使用jQuery处理文档对象模型(DOM)、事件、动画等 Ajax - 全称为 Asynchronous JavaScript and XML&…...

YOLO5项目目录最强解析
YOLO5项目目录解析 YOLOv5 项目目录下的文件和目录的结构,以下是对每个目录和文件的解释: 目录 📁 .github: 存放 GitHub 相关配置和文件,如 GitHub Actions 工作流文件、Issue 模板等,用于自动化构建和持续集成等功…...

【python】sklearn基础教程及示例
【python】sklearn基础教程及示例 Scikit-learn(简称sklearn)是一个非常流行的Python机器学习库,提供了许多常用的机器学习算法和工具。以下是一个基础教程的概述: 1. 安装scikit-learn 首先,确保你已经安装了Python和…...

Linux:传输层(2) -- TCP协议(2)
目录 1. 流量控制 2. 滑动窗口 3. 拥塞控制 4. 延迟应答 5. 捎带应答 6. 面向字节流 7. 粘包问题 8. TCP异常情况 1. 流量控制 接收端处理数据的速度是有限的. 如果发送端发的太快 , 导致接收端的缓冲区被打满 , 这个时候如果发送端继续发送 , 就会造成丢包, 继而引…...

AcWing 802. 区间和
var说明add存储了插入操作,在指定 x x x下标所在位置 a [ x ] c a[x]c a[x]cquery是求 [ L , R ] [L,R] [L,R]区间和用到的数组,最后才用到alls 是存储离散化之后的值 , 对于会访问到的每个下标,统统丢到 a l l s 里面 ,会把 x 和 [ L , R …...

实验2-2-1 温度转换
#include<stdio.h> #include <math.h> int main(){int c,f150;c5*(f-32)/9;printf("fahr 150, celsius %d",c); }...

Spark实时(六):Output Sinks案例演示
文章目录 Output Sinks案例演示 一、File sink 二、Memory Sink 三、Foreach Sink 1、foreachBatch 2、foreach Output Sinks案例演示 当我们对流式…...
在SQL编程中DROP、DELETE和TRUNCATE的区别
在SQL编程中,DROP、DELETE和TRUNCATE都是用于删除数据的命令,但它们之间有着显著的区别,主要体现在它们删除数据的范围、操作的不可逆性、对表结构的影响、性能以及事务日志的影响上。 DROP: 作用:DROP命令用于删除整个表及其所有…...

【AI大模型】Prompt 提示词工程使用详解
目录 一、前言 二、Prompt 提示词工程介绍 2.1 Prompt提示词工程是什么 2.1.1 Prompt 构成要素 2.2 Prompt 提示词工程有什么作用 2.2.1 Prompt 提示词工程使用场景 2.3 为什么要学习Prompt 提示词工程 三、Prompt 提示词工程元素构成与操作实践 3.1 前置准备 3.2 Pro…...

学习记录day18——数据结构 算法
算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂,结构式程序设计的肉体 算法:计算机解决问题的方法护额步骤 算法的特性 1、确定性:算法中每一条语句都有确定的含义,不能模棱两可 2、有穷性:程序执行一…...
一篇文章带你学完Java所有的时间与日期类
目录 一、传统时间与日期类 1.Date类 构造方法 获取日期和时间信息的方法 设置日期和时间信息的方法 2.Calendar类 主要特点和功能 常用方法 1. 获取当前日历对象 2. 获取日历中的某个信息 3. 获取日期对象 4. 获取时间毫秒值 5. 修改日历的某个信息 6. 为某个信息增…...

利用GPT4o Captcha工具和AI技术全面识别验证码
利用GPT4o Captcha工具和AI技术全面识别验证码 🧠🚀 摘要 GPT4o Captcha工具是一款命令行工具,通过Python和Selenium测试各种类型的验证码,包括拼图、文本、复杂文本和reCAPTCHA,并使用OpenAI GPT-4帮助解决验证码问…...
大学生算法高等数学学习平台设计方案 (第一版)
目录 目标用户群体的精准定位 初阶探索者 进阶学习者 资深研究者 功能需求的深度拓展 个性化学习路径定制 概念图谱构建 公式推导展示 交互式问题解决系统 新功能和创新点的引入 虚拟教室环境 数学建模工具集成 算法可视化平台 学术论文资源库 技术实现的前瞻性…...

机器学习算法与Python实战 | 两行代码即可应用 40 个机器学习模型--lazypredict 库!
本文来源公众号“机器学习算法与Python实战”,仅用于学术分享,侵权删,干货满满。 原文链接:两行代码即可应用 40 个机器学习模型 今天和大家一起学习使用 lazypredict 库,我们可以用一行代码在我们的数据集上实现许多…...

使用WebSocket协议调用群发方法将消息返回客户端页面
目录 一.C/S架构: 二.Http协议与WebSocket协议的区别: 1.Http协议与WebSocket协议的区别: 2.WebSocket协议的使用场景: 三.项目实际操作: 1.导入依赖: 2.通过WebSocket实现页面与服务端保持长连接&a…...

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十七章 Linux中断实验
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...

每日一题~961div2A+B+C(阅读题,思维,数学log)
A 题意:给你 n*n 的表格和k 个筹码。每个格子上至多放一个 问至少占据多少对角线。 显然,要先 格数的多的格子去放。 n n-1 n-2 …1 只有n 的是一个(主对角线),其他的是两个。 #include <bits/stdc.h> using na…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...