【蓝桥杯单片机入门记录】动态数码管

news/发布时间2024/5/15 23:14:22

目录

一、数码管动态显示概述

二、动态数码管原理图

(1)原理图

(2)动态数码管如何与芯片相连

(3)“此器件” ——>锁存器74HC573

三、动态数码管显示例程

(1)例程1:两个数码管显示不同内容。本例以第一个数码管显示数字“0”,第二个数码管显示数字“1”为例。

 (2)例程2:多个数码管显示不同内容(二)。注:创建数码管显示子函数。

(3)例程3:多个数码管显示不同内容(二)。注:创建数码管显示子函数。

①法一:

②法二:

③法三

(4)例程4:多位数码管倒计时。本例以第6、7、8位数码管显示255→0的倒计时为例,其他数码管保持熄灭。


一、数码管动态显示概述

  • LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一。
  • 动态驱动是将所有数码管的8个显示笔划(段选端)“a,b,c,d,e,fg,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。当单片机输出字形码时,单片机先对位选通COM端电路进行控制,再对段选通进行输出,该位就显示出字形,没有选通的数码管就不会亮。
  • 通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
  • 在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

二、动态数码管原理图

(1)原理图

(2)动态数码管如何与芯片相连

(3)“此器件” ——>锁存器74HC573

  • 74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,0输出将随数据(D)输入而变当使能为低时,将输出锁存在已建立的数据电平上。
  • 输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
  • 这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,1/0通道,双向总线驱动器和工作寄存器。
  • Y7C为高电平,a-dp会随着p0变化;Y7C为低电平时,锁存置为低电平的那一刻的数据,不再变化
  • Y7C和Y6C同时只能有一个为低电平


三、动态数码管显示例程

(1)例程1:两个数码管显示不同内容。本例以第一个数码管显示数字“0”,第二个数码管显示数字“1”为例。

//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>//变量声明区域
unsigned int i = 0;//函数声明区域
void Delay(int ms);//程序主体
void main()
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序  while(1){P2=0XC0;P0=0X01;//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=0XC0;//大家控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay(1);P2=0XC0;P0=0X02;//打开控制数码管位选的锁存器,然后选中第二个数码管P2=0XFF;P0=0XF9;//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay(1);}	}//函数定义区域
void Delay(int ms)		//@11.0592MHz
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}}

 (2)例程2:多个数码管显示不同内容(二)。注:创建数码管显示子函数。

#include <STC15F2K60S2.H>
#include<intrins.h>void Delay_MS(unsigned int MS);void main(void)
{IO_Init();P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;		//初始化程序,后期详解;while(1){P2=0XC0;P0=0X01; 	//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=0XC0;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X02; 	//打开控制数码管位选的锁存器,然后选中第二个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X04; 	//打开控制数码管位选的锁存器,然后选中第三个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X08; 	//打开控制数码管位选的锁存器,然后选中第四个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X10; 	//打开控制数码管位选的锁存器,然后选中第五个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X20; 	//打开控制数码管位选的锁存器,然后选中第六个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X40; 	//打开控制数码管位选的锁存器,然后选中第七个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P2=0XC0;P0=0X80; 	//打开控制数码管位选的锁存器,然后选中第八个数码管P2=0XFF;P0=0XF9;	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);}
}void Delay_MS(unsigned int MS)
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}}

(3)例程3:多个数码管显示不同内容(二)。注:创建数码管显示子函数。

①法一:
//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>//变量声明区域
unsigned int i = 0;
unsigned char DSEG[]= {0X00,0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
unsigned char code SEG[] = {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};//函数声明区域
void Delay(int ms);
void DSED_Display(unsigned char dseg,unsigned char seg);//程序主体
void main()
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序  while(1){DSED_Display(1,1);DSED_Display(2,2);DSED_Display(3,3);DSED_Display(4,4);DSED_Display(5,5);DSED_Display(6,6);DSED_Display(7,7);DSED_Display(8,8);}	}//函数定义区域
void Delay(int ms)		//@11.0592MHz
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}}void DSED_Display(unsigned char dseg,unsigned char seg)
{P0 = 0XFF;//消影P2=0XC0;P0=DSEG[dseg];//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=SEG[seg];Delay(1);}
②法二:
 
#include <STC15F2K60S2.H>
#include<intrins.h>unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
//unsigned char code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;void Delay(int ms);
void SEG_Display(unsigned char yi,unsigned char er,unsigned char san,unsigned char si,unsigned char wu,unsigned char liu,unsigned char qi,unsigned char ba);void main(void)
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;		//初始化程序,后期详解;while(1){SEG1=1,SEG2=2,SEG3=3,SEG4=4,SEG5=5,SEG6=6,SEG7=7,SEG8=8;SEG_Display(SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8);}
}void SEG_Display(unsigned char yi,unsigned char er,unsigned char san,unsigned char si,unsigned char wu,unsigned char liu,unsigned char qi,unsigned char ba)
{P0=0XFF;P2=0XC0;P0=0X01; 	//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=tab[yi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X02; 	//打开控制数码管位选的锁存器,然后选中第二个数码管P2=0XFF;P0=tab[er];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X04; 	//打开控制数码管位选的锁存器,然后选中第三个数码管P2=0XFF;P0=tab[san];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X08; 	//打开控制数码管位选的锁存器,然后选中第四个数码管P2=0XFF;P0=tab[si];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X10; 	//打开控制数码管位选的锁存器,然后选中第五个数码管P2=0XFF;P0=tab[wu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X20; 	//打开控制数码管位选的锁存器,然后选中第六个数码管P2=0XFF;P0=tab[liu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X40; 	//打开控制数码管位选的锁存器,然后选中第七个数码管P2=0XFF;P0=tab[qi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X80; 	//打开控制数码管位选的锁存器,然后选中第八个数码管P2=0XFF;P0=tab[ba];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);	
}void Delay(int ms)		//@11.0592MHz
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}}
③法三
 
#include <STC15F2K60S2.H>
#include<intrins.h>//#define uchar unsigned char
//#define uint unsigned inttypedef unsigned char uchar ;
typedef unsigned int uint ;unsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
//unsigned char code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;void Delay(int ms);
void SEG_Display12(uchar yi,uchar er);
void SEG_Display34(uchar san,uchar si);
void SEG_Display56(unsigned char wu,unsigned char liu);
void SEG_Display78(unsigned char qi,unsigned char ba);void main(void)
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;		//初始化程序,后期详解;while(1){SEG1=1,SEG2=2,SEG3=3,SEG4=4,SEG5=5,SEG6=6,SEG7=7,SEG8=8;SEG_Display12(SEG1,SEG2);SEG_Display34(SEG3,SEG4);SEG_Display56(SEG5,SEG6);SEG_Display78(SEG7,SEG8);}
}void SEG_Display12(unsigned char yi,unsigned char er)
{P0=0XFF;P2=0XC0;P0=0X01; 	//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=tab[yi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X02; 	//打开控制数码管位选的锁存器,然后选中第二个数码管P2=0XFF;P0=tab[er];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);	
}void SEG_Display34(unsigned char san,unsigned char si)
{P0=0XFF;P2=0XC0;P0=0X04; 	//打开控制数码管位选的锁存器,然后选中第三个数码管P2=0XFF;P0=tab[san];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X08; 	//打开控制数码管位选的锁存器,然后选中第四个数码管P2=0XFF;P0=tab[si];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);	
}void SEG_Display56(unsigned char wu,unsigned char liu)
{P0=0XFF;P2=0XC0;P0=0X10; 	//打开控制数码管位选的锁存器,然后选中第五个数码管P2=0XFF;P0=tab[wu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X20; 	//打开控制数码管位选的锁存器,然后选中第六个数码管P2=0XFF;P0=tab[liu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);
}
void SEG_Display78(unsigned char qi,unsigned char ba)
{P0=0XFF;P2=0XC0;P0=0X40; 	//打开控制数码管位选的锁存器,然后选中第七个数码管P2=0XFF;P0=tab[qi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X80; 	//打开控制数码管位选的锁存器,然后选中第八个数码管P2=0XFF;P0=tab[ba];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);		
}void Delay(int ms)		//@11.0592MHz
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}}

(4)例程4:多位数码管倒计时。本例以第6、7、8位数码管显示255→0的倒计时为例,其他数码管保持熄灭。

#include <STC15F2K60S2.H>
#include<intrins.h>#define uchar unsigned char
#define uint unsigned intunsigned char tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
//unsigned char code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;
unsigned char Num = 255 ;
unsigned char Num_Refresh = 0 ;void Delay(uint MS);
void SEG_Display12(uchar yi,uchar er);
void SEG_Display34(uchar san,uchar si);
void SEG_Display56(unsigned char wu,unsigned char liu);
void SEG_Display78(unsigned char qi,unsigned char ba);void main(void)
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;		//初始化程序,后期详解;P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;		//打开第一个数码管,后期详解;SEG1=11,SEG2=11,SEG3=11,SEG4=11,SEG5=11;SEG6=2,SEG7=5,SEG8=5;while(1){		if(++Num_Refresh==125){Num_Refresh = 0 ;Num = Num -1; //Num--;SEG6=Num/100,SEG7=Num%100/10,SEG8=Num%10;}SEG_Display12(SEG1,SEG2);SEG_Display34(SEG3,SEG4);SEG_Display56(SEG5,SEG6);SEG_Display78(SEG7,SEG8);}
}void SEG_Display12(unsigned char yi,unsigned char er)
{P0=0XFF;P2=0XC0;P0=0X01; 	//打开控制数码管位选的锁存器,然后选中第一个数码管P2=0XFF;P0=tab[yi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X02; 	//打开控制数码管位选的锁存器,然后选中第二个数码管P2=0XFF;P0=tab[er];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);	
}void SEG_Display34(unsigned char san,unsigned char si)
{P0=0XFF;P2=0XC0;P0=0X04; 	//打开控制数码管位选的锁存器,然后选中第三个数码管P2=0XFF;P0=tab[san];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X08; 	//打开控制数码管位选的锁存器,然后选中第四个数码管P2=0XFF;P0=tab[si];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);	
}void SEG_Display56(unsigned char wu,unsigned char liu)
{P0=0XFF;P2=0XC0;P0=0X10; 	//打开控制数码管位选的锁存器,然后选中第五个数码管P2=0XFF;P0=tab[wu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X20; 	//打开控制数码管位选的锁存器,然后选中第六个数码管P2=0XFF;P0=tab[liu];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);
}
void SEG_Display78(unsigned char qi,unsigned char ba)
{P0=0XFF;P2=0XC0;P0=0X40; 	//打开控制数码管位选的锁存器,然后选中第七个数码管P2=0XFF;P0=tab[qi];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);P0=0XFF;P2=0XC0;P0=0X80; 	//打开控制数码管位选的锁存器,然后选中第八个数码管P2=0XFF;P0=tab[ba];	//打开控制数码管段选的锁存器,然后给上述打开的数码管输出码值Delay_MS(1);		
}void Delay(uint MS)	//@11.0592MHz
{unsigned char i, j;for(i = 0;i < ms;i++){_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);}

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

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

【架构】GPU架构总结

文章目录 GPU架构GPU渲染内存架构Streaming Multiprocessor(SM)CUDA CoreTensor CoreRT CoreCPU-GPU异构系统GPU资源管理模型 GPU架构演进G80 架构Fermi 架构Maxwell架构Tesla架构Pascal架构Volta 架构Turing架构Ampere 架构Hopper架构 参考文献 GPU架构 主要组成包括&#xf…

订单视角看支付

支付是指为清偿商品交换和劳务活动所引起的债权债务&#xff0c;货币债权从付款人向收付人的转移的过程。支付能力是电商产品的核心能力之一&#xff0c;作为订单同学&#xff0c;有必要了解关联域支付的流程以及基本概念&#xff0c;同时支付领域的很多设计思路与资损防控经验…

Aethir推出其首次去中心化AI节点售卖

Aethir&#xff0c;去中心化GPU云基础设施领导者&#xff0c;宣布其备受期待的节点销售。Aethir是一家企业级的以AI和游戏为重点的GPU即服务提供商。Aethir的去中心化云计算基础设施使GPU提供商能够与需要NVIDIA的H100芯片提供强大AI/ML任务支持的企业客户相连接。 此外&#x…

蓝桥杯Learning

Part 1 递归和递推 1. 简单斐波那契数列 n int(input())st [0]*(47) # 注意这个地方&#xff0c;需要将数组空间设置的大一些&#xff0c;否则会数组越界 st[1] 0 st[2] 1 # 这个方法相当于是递推&#xff0c;即先求解一个大问题的若干个小问题 def dfs(u):if u 1:print(…

「优选算法刷题」:矩阵区域和

一、题目 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1…

卷积神经网络介绍

卷积神经网络(Convolutional Neural Networks&#xff0c;CNN) 网络的组件&#xff1a;卷积层&#xff0c;池化层&#xff0c;激活层和全连接层。 CNN主要由以下层构造而成&#xff1a; 卷积层&#xff1a;Convolutional layer&#xff08;CONV&#xff09;池化层&#xff1a…

颠覆传统,企业邮件营销如何一键实现个性化、自动化

市场营销大环境&#xff1a;在当今竞争激烈的市场中&#xff0c;邮件营销成为吸引潜在客户和联系人的关键战略。而个性化则是提高电子邮件营销效果的不二选择。在谈论成功的电子邮件营销技巧之前&#xff0c;数据的充足性显得至关重要。如果您的数据不够充足&#xff0c;别担心…

C/C++暴力/枚举/穷举题目持续更新(刷蓝桥杯基础题的进!)

目录 前言 一、百钱买百鸡 二、百元兑钞 三、门牌号码&#xff08;蓝桥杯真题&#xff09; 四、相乘&#xff08;蓝桥杯真题&#xff09; 五、卡片拼数字&#xff08;蓝桥杯真题&#xff09; 六、货物摆放&#xff08;蓝桥杯真题&#xff09; 七、最短路径&#xff08;蓝…

Spring篇----第十篇

系列文章目录 文章目录 系列文章目录前言一、spring JDBC API 中存在哪些类?二、使用 Spring 访问 Hibernate 的方法有哪些?三、列举 spring 支持的事务管理类型四、spring 支持哪些 ORM 框架五、什么是 AOP?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

Apache Paimon 主键表解析

Primary Key Table-主键表 1.概述 主键表是创建表时的默认表类型&#xff0c;用户可以插入、更新或删除表中的记录&#xff1b; 主键由一组列组成&#xff0c;这些列包含每条记录的唯一值&#xff1b; Paimon通过对每个桶中的主键排序来强制数据有序&#xff0c;允许用户在…

Qt QWidget 简约美观的加载动画 第五季 - 小方块风格

给大家分享两个小方块风格的加载动画 &#x1f60a; 第五季来啦 &#x1f60a; 效果如下: 一个三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *arg…

Ubuntu服务器fail2ban的使用

作用&#xff1a;限制ssh远程登录&#xff0c;防止被人爆破服务器&#xff0c;封禁登录ip 使用lastb命令可查看到登录失败的用户及ip&#xff0c;无时无刻的不在爆破服务器 目录 一、安装fail2ban 二&#xff0c;配置fail2ban封禁ip的规则 1&#xff0c;进入目录并创建ssh…

Java集合基础梳理(集合体系+ArrayList)

目录 Java集合体系 为什么要使用集合类 ? 如何选用集合? 哪些集合类是线程安全的&#xff1f;哪些不安全&#xff1f; 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么&#xff1f; 遍历的同时修改一个List有几种方式 ArrayList 如何进行元素的遍历操作&#x…

高数考研 -- 公式总结(更新中)

1. 两个重要极限 (1) lim ⁡ x → 0 sin ⁡ x x 1 \lim _{x \rightarrow 0} \frac{\sin x}{x}1 limx→0​xsinx​1, 推广形式 lim ⁡ f ( x ) → 0 sin ⁡ f ( x ) f ( x ) 1 \lim _{f(x) \rightarrow 0} \frac{\sin f(x)}{f(x)}1 limf(x)→0​f(x)sinf(x)​1. (2) lim ⁡…

使用 React 和 ECharts 创建地球模拟扩散和飞线效果

在本博客中&#xff0c;我们将学习如何使用 React 和 ECharts 创建一个酷炫的地球模拟扩散效果。我们将使用 ECharts 作为可视化库&#xff0c;以及 React 来构建我们的应用。地球贴图在文章的结尾。 最终效果 准备工作 首先&#xff0c;确保你已经安装了 React&#xff0c;并…

信息安全计划

任何管理人员或人力资源专业人士都知道&#xff0c;除非彻底记录标准和实践&#xff0c;否则永远无法真正实施和执行标准和实践。正如您可能想象的那样&#xff0c;在保护您的网络、技术和数据系统免受网络威胁以及在发生这些事件时规划最及时、高效和有效的响应时&#xff0c;…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(八)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型&#xff0c;由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”&#xff08;そら sora&#xff09;&#xff0c;即天空之意&#xff0c;以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

猜测了一个sora模型结构

如果是上述的这种结构&#xff0c;可以确定的是patch 的size &#xff08;一个图像的小片&#xff09;是固定大小的 那么调节一个视觉分辨率大小通过patchs的大小决定。 如图所示可以证明输入的时候图片没有本物理人为的分割为小片&#xff0c;是通过一个模型进行分割为 小片。…

常用实验室器皿耐硝酸盐酸进口PFA材质容量瓶螺纹盖密封效果好

PFA容量瓶规格参考&#xff1a;10ml、25ml、50ml、100ml、250ml、500ml、1000ml。 别名可溶性聚四氟乙烯容量瓶、特氟龙容量瓶。常用于ICP-MS、ICP-OES等痕量分析以及同位素分析等实验&#xff0c;也可在地质、电子化学品、半导体分析测试、疾控中心、制药厂、环境检测中心等机…

记一次生产jvm oom问题

前言 jvm添加以下参数&#xff0c;发生OOM时自动导出内存溢出文件 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/opt 内存分析工具&#xff1a; MAT, 下载地址&#xff1a;Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation&#xff0c; 注意工具地址…
推荐文章