当前位置: 首页 > news >正文

蓝桥杯第十二届电子类单片机组程序设计

目录

 

前言

蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课(点击查看)

单片机资源数据包_2023(点击下载)

一、第十二届比赛原题

1.比赛题目

2.题目解读

蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客

二、代码实现

main.c

onewire.c

onewire.h

iic.c

iic.h


 

前言

完成了第14届的题目之后,再看往些年的题目真的就太简单了,现在年也过完了,相比备战蓝桥杯的同学们也已经回到学校开启忙碌的学习了。但是学习之余也不要忘了做几道前几年简单的题目,保持手感,临近比赛时再做一些比较难的题目,比如国赛题和最近的省赛题。

老规矩,先放题目链接

蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课(点击查看)

单片机资源数据包_2023(点击下载)

一、第十二届比赛原题

1.比赛题目

5fa747278f4442c89fa0f4bd32c095be.png

4d1099ab03e14d5c9a93bab5cb7f1e5a.png

6d35fd8bead540889c636dbb473320b1.png

bda82a75e24149d1af4070ce5a5005ed.png

2.题目解读

第十二届的题目非常简单,不管是按键和菜单还是LED灯,都非常简单:菜单只有三个,没有子菜单;每个按键都只有一个功能,且没有长按短按;LED灯只有简单的指示,不涉及闪烁,也不涉及满足特殊条件后才点亮。总之就是特别简单,感兴趣的可以对比一下第十四届的省赛题目。

蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客

至于刚才提到的长按短按,和对小数的处理,都在第四届的题目中提到过,本篇文章在写代码时就不过多介绍了。

二、代码实现

main.c

#include <stc15.h>
#include <intrins.h>
#include "iic.h"
#include "onewire.h"code unsigned char Seg_Table[] =
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //90x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,
0xFF,//20 熄灭
0xC6,//21 C
0x8C,//22 P
0x88,//23 A
};
unsigned char Led_Num=0xFF;
#define LED_ON(x)		Led_Num&=~(0x01<<x);		P0=Led_Num;P2|=0x80;P2&=0x9F;P2&=0x1F;
#define LED_OFF(x)	Led_Num|=0x01<<x;				P0=Led_Num;P2|=0x80;P2&=0x9F;P2&=0x1F;#define NIXIE_CHECK()		P2|=0xC0;P2&=0xDF;P2&=0x1F;
#define NIXIE_ON()			P2|=0xE0;P2&=0xFF;P2&=0x1F;void Delay100ms(void);	//@12.000MHz
void Timer0_Init(void);		//1毫秒@12.000MHz
void get_key(void);//按键处理
void show_menu(void);//菜单显示
void led_run(void);//控制led灯
void DAC_out(void);//控制DAC输出unsigned char Nixie_num[]={20,20,20,20,20,20,20,20};
unsigned char location=0;
unsigned char key_value=0;
unsigned int temp=0;
unsigned char mod=0;
unsigned char wendu_canshu=25;//温度参数,默认为25
unsigned int DAC=0;//DAC要求保留小数点后两位,这里的DAC的值扩大了100倍bit mo_shi=0;//0:DAC输出模式1,1:DAC输出模式2
void main()
{Timer0_Init();EA=1;read_temp();//温度传感器初始化Delay100ms();while(1){get_key();temp=read_temp();//读取温度led_run();//LED灯控制DAC_out();//DAC输出Delay100ms();show_menu();}
}
void Timer0_Isr(void) interrupt 1
{P0=0x01<<location;NIXIE_CHECK();P0=Seg_Table[Nixie_num[location]];NIXIE_ON();if(++location==8)location=0;
}void Timer0_Init(void)		//1毫秒@12.000MHz
{AUXR |= 0x80;			//定时器时钟1T模式TMOD &= 0xF0;			//设置定时器模式TL0 = 0x20;				//设置定时初始值TH0 = 0xD1;				//设置定时初始值TF0 = 0;				//清除TF0标志TR0 = 1;				//定时器0开始计时ET0 = 1;				//使能定时器0中断
}void Delay100ms(void)	//@12.000MHz
{unsigned char data i, j, k;_nop_();_nop_();i = 5;j = 144;k = 71;do{do{while (--k);} while (--j);} while (--i);
}
void Delay5ms(void)	//@12.000MHz
{unsigned char data i, j;i = 59;j = 90;do{while (--j);} while (--i);
}
void get_key(void)
{unsigned char key_P3=P3;unsigned char key_P4=P4;P3=0xFF;P4=0xFF;P44=0;if(P32==0){Delay5ms();while(P32==0);Delay5ms();key_value=5;}else if(P33==0){Delay5ms();while(P33==0);Delay5ms();key_value=4;}P42=0;if(P32==0){Delay5ms();while(P32==0);Delay5ms();key_value=9;}else if(P33==0){Delay5ms();while(P33==0);Delay5ms();key_value=8;}//s4模式切换if(key_value==4){if(mod==0)//菜单0mod=1;else if(mod==1)//菜单1mod=2;else if(mod==2)//菜单2mod=0;}//s8 减else if(key_value==8){if(mod==1){wendu_canshu--;}}//s9 加else if(key_value==9){if(mod==1){wendu_canshu++;}}//s5 切换DAC输出模式else if(key_value==5){mo_shi=~mo_shi;//切换模式}key_value=0;P3=key_P3;P4=key_P4;
}
void show_menu(void)
{if(mod==0)//菜单0 显示温度{Nixie_num[0]=21;Nixie_num[1]=20;Nixie_num[2]=20;Nixie_num[3]=20;Nixie_num[4]=temp/1000%10;Nixie_num[5]=temp/100%10+10;Nixie_num[6]=temp/10%10;Nixie_num[7]=temp/1%10;}else if(mod==1)//菜单1 显示参数{Nixie_num[0]=22;Nixie_num[1]=20;Nixie_num[2]=20;Nixie_num[3]=20;Nixie_num[4]=20;Nixie_num[5]=20;Nixie_num[6]=wendu_canshu/10%10;Nixie_num[7]=wendu_canshu/1%10;}else if(mod==2)//菜单2 显示DAC输出值{Nixie_num[0]=23;Nixie_num[1]=20;Nixie_num[2]=20;Nixie_num[3]=20;Nixie_num[4]=20;Nixie_num[5]=DAC/100%10+10;//注意DAC的值是扩大100倍之后的Nixie_num[6]=DAC/10%10;Nixie_num[7]=DAC/1%10;}
}bit L1_is_on=0;
bit L2_is_on=0;
bit L3_is_on=0;
bit L4_is_on=0;
void led_run(void)
{if(mo_shi==0&&L1_is_on==0)//如果DAC处在模式1,且L1未点亮{LED_ON(0);//则点亮L1L1_is_on=1;}else if(mo_shi!=0&&L1_is_on==1)//如果DAC不处在模式1.且L1被点亮了{LED_OFF(0);//则熄灭L1L1_is_on=0;}if(mod==0&&L2_is_on==0)//如果在温度显示界面,且L2未点亮{LED_ON(1);//则点亮L2L2_is_on=1;}else if(mod!=0&&L2_is_on==1)//如果不在温度显示界面,且L2被点亮{LED_OFF(1);//则熄灭L2L2_is_on=0;}if(mod==1&&L3_is_on==0)//如果在参数显示界面,且L3未点亮{LED_ON(2);//则点亮L3L3_is_on=1;}else if(mod!=1&&L3_is_on==1)//如果不在参数显示界面,且L3被点亮{LED_OFF(2);//则熄灭L3L3_is_on=0;}if(mod==2&&L4_is_on==0)//如果在DAC显示界面,且L4未点亮{LED_ON(3);//则点亮L4L4_is_on=1;}else if(mod!=2&&L4_is_on==1)//如果不在DAC显示界面,且L4被点亮{LED_OFF(3);//则熄灭L4L4_is_on=0;}
}
void DAC_out(void)
{if(mo_shi==0&&mod!=1)//如果是DAC输出模式1{//对于当前是否输出0V或者5V的判断,是为了防止重复操作引起误差(不判断也行)if(temp/100<wendu_canshu&&DAC!=0)//如果温度大于阈值,且没有输出0.00VDAC=0;//输出0Velse if(temp/100>wendu_canshu&&DAC!=500)//如果温度大于阈值,且没有输出5.00VDAC=500;//则输出5.00V}else if(mo_shi==1)//如果是DAC输出模式2{//拟合出直线,并限制DAC取值范围在100到400之间//注意为方便操作DAC的小数,DAC的值被扩大了100百,100到400就对应1V到4V之间DAC=temp*3/20-200>100 ? temp*3/20-200:100;DAC=temp*3/20-200<400 ? temp*3/20-200:400;}write_pcf((unsigned char)(DAC/5*255/100));//将电压转化为0到255,并输出(注意DAC扩大了100倍)
}

onewire.c

/*	# 	单总线代码片段说明1. 	本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 	参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求,进行代码调试和修改。
*/
#include <stc15.h>
#include <intrins.h>
#include "onewire.h"
sbit DQ=P1^4;//
void Delay_OneWire(unsigned int t)  
{unsigned char i;while(t--){for(i=0;i<12;i++);}
}//
void Write_DS18B20(unsigned char dat)
{unsigned char i;for(i=0;i<8;i++){DQ = 0;DQ = dat&0x01;Delay_OneWire(5);DQ = 1;dat >>= 1;}Delay_OneWire(5);
}//
unsigned char Read_DS18B20(void)
{unsigned char i;unsigned char dat;for(i=0;i<8;i++){DQ = 0;dat >>= 1;DQ = 1;if(DQ){dat |= 0x80;}	    Delay_OneWire(5);}return dat;
}//
bit init_ds18b20(void)
{bit initflag = 0;DQ = 1;Delay_OneWire(12);DQ = 0;Delay_OneWire(80);DQ = 1;Delay_OneWire(10); initflag = DQ;     Delay_OneWire(5);return initflag;
}unsigned int read_temp(void)
{unsigned char low=0;unsigned char high=0;unsigned int temp=0;unsigned char xiaoshu=0;init_ds18b20();Write_DS18B20(0xCC);Write_DS18B20(0x44);Delay_OneWire(200);init_ds18b20();Write_DS18B20(0xCC);Write_DS18B20(0xBE);low=Read_DS18B20();high=Read_DS18B20();temp=high;temp&=0x0F;temp<<=8;temp|=low;temp>>=4;//处理小数部分xiaoshu=low;xiaoshu&=0x0F;temp=temp*100+xiaoshu;//处理小数部分,温度也扩大了100倍return temp;}

onewire.h

#ifndef _ONEWIRE_H_
#define _ONEWIRE_H_unsigned int read_temp(void);#endif

iic.c

/*	#   I2C代码片段说明1. 	本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 	参赛选手可以自行编写相关代码或以该代码为基础,根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求,进行代码调试和修改。
*/#define DELAY_TIME	5
#include <stc15.h>
#include <intrins.h>
#include "iic.h"
sbit sda=P2^1;
sbit scl=P2^0;
//
static void I2C_Delay(unsigned char n)
{do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();		}while(n--);      	
}//
void I2CStart(void)
{sda = 1;scl = 1;I2C_Delay(DELAY_TIME);sda = 0;I2C_Delay(DELAY_TIME);scl = 0;    
}//
void I2CStop(void)
{sda = 0;scl = 1;I2C_Delay(DELAY_TIME);sda = 1;I2C_Delay(DELAY_TIME);
}//
void I2CSendByte(unsigned char byt)
{unsigned char i;for(i=0; i<8; i++){scl = 0;I2C_Delay(DELAY_TIME);if(byt & 0x80){sda = 1;}else{sda = 0;}I2C_Delay(DELAY_TIME);scl = 1;byt <<= 1;I2C_Delay(DELAY_TIME);}scl = 0;  
}//
unsigned char I2CReceiveByte(void)
{unsigned char da;unsigned char i;for(i=0;i<8;i++){   scl = 1;I2C_Delay(DELAY_TIME);da <<= 1;if(sda) da |= 0x01;scl = 0;I2C_Delay(DELAY_TIME);}return da;    
}//
unsigned char I2CWaitAck(void)
{unsigned char ackbit;scl = 1;I2C_Delay(DELAY_TIME);ackbit = sda; scl = 0;I2C_Delay(DELAY_TIME);return ackbit;
}//
void I2CSendAck(unsigned char ackbit)
{scl = 0;sda = ackbit; I2C_Delay(DELAY_TIME);scl = 1;I2C_Delay(DELAY_TIME);scl = 0; sda = 1;I2C_Delay(DELAY_TIME);
}void write_pcf(unsigned char dat)
{I2CStart();I2CSendByte(0x90);I2CWaitAck();I2CSendByte(0x40);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop();
}

iic.h

#ifndef _IIC_H_
#define _IIC_H_void write_pcf(unsigned char dat);#endif

正在准备蓝桥杯的UU们这个时候也不能泄气,如果你是寒假偷懒,还没开始学习的话,也不要担心后续我也会发几期开荒的文章供大家参考,还有一个月,多花点时间学学,混个奖应该没什么问天。

 

 

相关文章:

蓝桥杯第十二届电子类单片机组程序设计

目录 前言 蓝桥杯大赛历届真题_蓝桥杯 - 蓝桥云课&#xff08;点击查看&#xff09; 单片机资源数据包_2023&#xff08;点击下载&#xff09; 一、第十二届比赛原题 1.比赛题目 2.题目解读 蓝桥杯第十四届电子类单片机组程序设计_蓝桥杯单片机哪一届最难-CSDN博客 二、…...

基于springboot+vue的工作流程管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

【LeetCode刷题】146. LRU 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -…...

奇酷网络用AI思维办公:不允许做PPT,只能用Word,只能一页纸

在AI时代&#xff0c;视频制作领域正经历着一场革命。Sora 作为首个文生视频大模型&#xff0c;可能攻克了自然语言处理、计算机视觉和深度学习等难点&#xff0c;使视频生成更真实、自然。奇酷网络是一家很另类、很奇怪的“AI游戏”创业公司&#xff0c;奇酷网络董事长吴渔夫(…...

【笔记】-编程语言以及应用领域

C/C 永远不会衰败的语言&#xff0c;适合偏底层&#xff0c;例如&#xff1a;Windows操作系统80%以上都是由C/C完成的&#xff0c;C/C也集成用于写应用层C/S架构的软件 JAVA 是真正的跨平台的语言 “一次编程&#xff0c;到处使用”Java适合应用层的开发&#xff0c;无论是…...

MWC 2024丨美格智能推出5G RedCap系列FWA解决方案,开启5G轻量化新天地

2月27日&#xff0c;在MWC 2024世界移动通信大会上&#xff0c;美格智能正式推出5G RedCap系列FWA解决方案。此系列解决方案具有低功耗、低成本等优势&#xff0c;可以显著降低5G应用复杂度&#xff0c;快速实现5G网络接入&#xff0c;提升FWA部署的经济效益。 RedCap技术带来了…...

mTLS: openssl创建CA证书

证书可以通过openssl或者keytool创建&#xff0c;在本篇文章中&#xff0c;只介绍openssl。 openssl 生成证书 申请操作流程 生成ca证书私钥, 文件名&#xff1a;ca.key生成ca证书&#xff0c;文件名&#xff1a;ca.crt生成Server/Client 证书私钥&#xff0c;文件名&#x…...

Python 进阶语法:os

3.1.1 文件和目录操作 os.getcwd(): 获取当前工作目录的路径。 import os# 获取当前工作目录 current_directory os.getcwd() print("当前工作目录是:", current_directory) os.chdir(path): 改变当前工作目录到指定的路径。 import os# 改变当前工作目录 os.c…...

测试需求平台9-Table 组件应用产品列表优化

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版&#xff0c;拥抱Vue3.0将前端框架替换成字节最新开源的arco.design&#xff0c;其中约60%重构和20%新增内容&#xff0c;定位为从 0-1手把手实现简单的测试平台开发教程&#xff0c;内容将囊括基础、扩展和实战&a…...

targetSdkVersion > 30 如何将下载的网络视频 保存到手机相册里更新

在 targetSdkVersion 31 中&#xff0c;将下载的网络视频保存到手机相册中涉及几个关键步骤。由于 Android 12&#xff08;API 级别 31&#xff09;引入了更多的隐私和安全限制&#xff0c;特别是作用域存储&#xff08;Scoped Storage&#xff09;&#xff0c;因此你需要遵循这…...

C#,无监督的K-Medoid聚类算法(K-Medoid Algorithm)与源代码

1 K-Medoid算法 K-Medoid&#xff08;也称为围绕Medoid的划分&#xff09;算法是由Kaufman和Rousseeuw于1987年提出的。中间点可以定义为簇中的点&#xff0c;其与簇中所有其他点的相似度最小。 K-medoids聚类是一种无监督的聚类算法&#xff0c;它对未标记数据中的对象进行聚…...

宏定义中#与##的注意事项

1. #是字符串化操作符。它的作用是将宏参数转换成字符串 2. ##是标记粘贴操作符。它的作用是将两个标记连接起来形成一个新的标记 #define TEST1(a) #a #define TEST2(a) b##a/***********************************************************/ 举例&#xff1a;TEST1(hello) 会…...

Java函数式编程

Java函数式编程 Java函数式编程&#xff08;Functional Programming in Java&#xff09;是指使用函数式编程范式来编写Java代码的一种编程方式。函数式编程是一种编程范式&#xff0c;它强调使用函数作为基本构建块&#xff0c;并将计算视为数学上的函数求值&#xff0c;避免…...

【深度优先搜索】【树】【C++算法】2003. 每棵子树内缺失的最小基因值

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 深度优先搜索 LeetCode2003. 每棵子树内缺失的最小基因值 有一棵根节点为 0 的 家族树 &#xff0c;总共包含 n 个节点&#xff0c;节点编号为 0 到 n - 1 。给你一个下标从 0 开始的整数数组 parents &#xff0c;其中…...

电脑开机显示器没有信号而且键盘鼠标不亮怎么解决?

大家在使用电脑的过程,开机没有反应是比较经常遇到的问题,就有用户反映说自己的电脑启动之后,显示器无信号,键盘鼠标灯也不亮,怎么操作都没有效果。对开机有影响的硬件主要是内存条,内存条是非常容易松动的,而且金手指如果氧化了,都会导致开不了机 大家在使用电脑的过程…...

RLWE同态加密编码打包——系数打包

RLWE同态加密的明文域 RLWE的加密方案&#xff0c;如BGV、BFV&#xff0c;加密的对象&#xff0c;实际上是分圆多项式环上的一个整系数多项式。而我们在平时接触到的需要加密的数据&#xff0c;如图像或者工资&#xff0c;通常是一个数。所以&#xff0c;在使用RLWE同态加密时…...

Codeforces Round 930 (Div. 2 ABCDEF题) 视频讲解

A. Shuffle Party Problem Statement You are given an array a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​. Initially, a i i a_ii ai​i for each 1 ≤ i ≤ n 1 \le i \le n 1≤i≤n. The operation swap ( k ) \texttt{swap}(k) swap(k) for an…...

【LeetCode-中等】209.长度最小的子数组-双指针/滑动窗口

力扣题目链接 1. 暴力解法 这道题的暴力解法是两层嵌套for循环&#xff0c;第一层循环从 i 0 开始遍历至数组末尾&#xff0c;第二层循环从 j i 开始遍历至找到总和大于等于 target 的连续子数组&#xff0c;并将该连续子数组的长度与之前找到的子数组长度相比较&#xff0…...

MACOS/LINUX/WINDOWS C++ 获取当前可执行程序的完整路径

依赖本人写的多平台编译器宏判断&#xff1a; C/C MACOS、Windows、Linux、HarmonyOS 平台宏判断-CSDN博客 MACOS头文件依赖&#xff1a; #if defined(_MACOS) #include <libproc.h> #endif #include <mach-o/dyld.h> 只需要链接 libSystem.dylib 就行了&#…...

【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务

这篇文章&#xff0c;主要介绍如何通过Nginx服务器转发客户端的WebSocket接口到后端服务【知识星球】。 目录 一、Nginx配置WebSocket 1.1、Nginx配置内容 1.2、客户端请求地址 1.3、创建WebSocket测试工程 1.4、启动测试 1.5、WebSocket超时问题 1.5.1、设置超时时间 …...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...