一份不知道哪里来的第十五届国赛模拟题
这是一个不知道来源的模拟题目,没有完全完成,只作代码记录,不作分析和展示,极其冗长,但里面有长按短按双击的复合,可以看看。
目录
- 题目
- 代码
- 底层驱动
- 主程序核心代码
- 关键:双击单击长按复合代码
题目
代码
底层驱动
IIC(EEPROM没在主程序用)
unsigned char guangmin(){unsigned char ret;I2CStart();I2CSendByte(0x90);I2CWaitAck();I2CSendByte(0x41);I2CWaitAck();I2CStart();I2CSendByte(0x91);I2CWaitAck();ret = I2CReceiveByte();I2CSendAck(1);I2CStop();return ret;
}void DAC(unsigned char dat){I2CStart();I2CSendByte(0x90);I2CWaitAck();I2CSendByte(0x41);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop();
}void eepromwirte(unsigned char addr,unsigned char dat){I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(addr);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop();
}unsigned char eepromread(unsigned char addr){unsigned char ret;I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(addr);I2CWaitAck();I2CStart();I2CSendByte(0xa1);I2CWaitAck();ret = I2CReceiveByte();I2CSendAck(1);I2CStop();return ret;
}
主程序核心代码
#include <STC15F2K60S2.H>
#include "intrins.h"
#include "inithc138.h"
#include "delay.h"
#include "onewire.h"
#include "iic.h"
#include "ds1302.h"#define de 5
code unsigned char Seg_Table[17] =
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0x88, //A
0x83, //b
0xc6, //C
0xa1, //d
0x86, //E
0x8e, //F
0xbf
};
unsigned char show = 0;//显示功能切换
unsigned char canshu = 0;//参数界面切换
bit mode = 1;//控制模式切换
unsigned char jiaozhun = 0;//校准设置切换
bit huixian = 0;//回显模式切换
unsigned int temp = 0;//温度
bit ce = 1;
unsigned int time = 0;//超声波传播时间
long distance = 0;//距离
unsigned char cejushangxian = 80;//测距上限
unsigned char cejuxiaxian = 20;//测距下限
unsigned int tempcan = 30;//温度参数
unsigned char light = 0;//光敏参数
unsigned char ds1302writeaddr[3] = {0x80,0x82,0x84};
unsigned char ds1302readaddr[3] = {0x81,0x83,0x85};
unsigned char rtctime[3] = {0x05,0x29,0x10};
char disjiao = 0;//距离校准值
int tempjiao = 0;//温度校准值
unsigned char temptime[3] = {0};//温度超限时间
unsigned char distime[3] = {0};//温度超限时间
double daczhi = 0;//DAC输出大小
bit zhouqi = 0;//1为进入按键周期
unsigned char keycount = 0;//按键周期计时
unsigned char cishu = 0;
bit zhouqi1 = 0;//1为进入按键周期
unsigned char keycount1 = 0;//按键周期计时
unsigned char cishu1 = 0;
bit keystat = 0;//按键状态(长短按)
unsigned int count = 0;//长按计时
unsigned char ledstat = 0xff;
unsigned char ledcount = 0;
bit ledflag = 0;
bit chaoxian = 0;
unsigned int tempshow = 0;//校准后的温度
//*****************************************测温模块
void cewen(){unsigned char LSB,MSB;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);if(ce){Delay(520);}ce = 0;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);LSB = Read_DS18B20();MSB = Read_DS18B20();init_ds18b20();temp = ((MSB << 8) | LSB) * 0.625;tempshow = temp + tempjiao;}
//*****************************************
//*****************************************超声波模块
sbit TX = P1^0;
sbit RX = P1^1;
void showselect();
void Delay13us(void) //@12.000MHz
{unsigned char data i;_nop_();_nop_();i = 36;while (--i);
}void fangbo(){unsigned char i;for(i = 0;i < 8;i++){TX = 1;Delay13us();TX = 0;Delay13us();}
}void initpca(){CMOD = 0x01;CCON = 0x00;
}void ceju(){CH = 0x00;CL = 0x00;CF = 0;CR = 0; fangbo();CR = 1;while((RX == 1) && (CH < 0x17));CR = 0;if(RX == 0){RX = 1;time = (CH << 8) | CL;distance = time * 0.017;}
}
//*****************************************
//*****************************************DS1302实时时钟
void ds1302config(){unsigned char i;Write_Ds1302_Byte(0x8e,0x00);for(i = 0;i < 3;i++){Write_Ds1302_Byte(ds1302writeaddr[i],rtctime[i]);}Write_Ds1302_Byte(0x8e,0x80);
}void ds1302read(){unsigned char i;for(i = 0;i < 3;i++){rtctime[i] = Read_Ds1302_Byte(ds1302readaddr[i]);}
}
//*****************************************
//*****************************************显示功能
void shujujiemian(){//数据界面showsmg(1,Seg_Table[12]);showsmg(2,Seg_Table[tempshow / 100]);showsmg(3,Seg_Table[tempshow / 10 % 10] & 0x7f);showsmg(4,Seg_Table[tempshow % 10]);if((distance + disjiao) >= 0){showsmg(8,Seg_Table[(distance + disjiao) % 10]);if((distance + disjiao) > 9){showsmg(7,Seg_Table[(distance + disjiao) / 10 % 10]);}}else{showsmg(7,0xc7);showsmg(8,0xc7);}
}void p1(){//参数P1showsmg(1,0x8c);showsmg(2,Seg_Table[1]);showsmg(6,0x89);showsmg(7,Seg_Table[cejushangxian / 10]);showsmg(8,Seg_Table[cejushangxian % 10]);
}void p2(){//参数P2showsmg(1,0x8c);showsmg(2,Seg_Table[2]);showsmg(6,0xc7);showsmg(7,Seg_Table[cejuxiaxian / 10]);showsmg(8,Seg_Table[cejuxiaxian % 10]);
}void p3(){//参数P3showsmg(1,0x8c);showsmg(2,Seg_Table[3]);showsmg(7,Seg_Table[tempcan / 10]);showsmg(8,Seg_Table[tempcan % 10]);
}void p4(){//参数P4showsmg(1,0x8c);showsmg(2,Seg_Table[4]);if(mode){showsmg(4,0x8c);showsmg(5,Seg_Table[14]);}else{showsmg(4,Seg_Table[10]);showsmg(5,0xc1);}showsmg(8,Seg_Table[light % 10]);if(light > 9){showsmg(7,Seg_Table[light / 10 % 10]);}if(light > 99){showsmg(6,Seg_Table[light / 100 % 10]);}
}void canshujiemian(){//参数界面switch(canshu){case 0:p1();break;case 1:p2();break;case 2:p3();break;case 3:p4();break;}
}void shijianjiemian(){//时间显示showsmg(1,Seg_Table[rtctime[2] / 16]);showsmg(2,Seg_Table[rtctime[2] % 16]);showsmg(3,Seg_Table[16]);showsmg(4,Seg_Table[rtctime[1] / 16]);showsmg(5,Seg_Table[rtctime[1] % 16]);showsmg(6,Seg_Table[16]);showsmg(7,Seg_Table[rtctime[0] / 16]);showsmg(8,Seg_Table[rtctime[0] % 16]);
}void f1(){showsmg(1,Seg_Table[15]);showsmg(2,Seg_Table[1]);if(disjiao >= 0){showsmg(8,Seg_Table[disjiao % 10]);if(disjiao > 9){showsmg(7,Seg_Table[disjiao / 10 % 10]);}}else if(disjiao < 0){if(disjiao >= -9){showsmg(8,Seg_Table[-(disjiao) % 10]);showsmg(7,Seg_Table[16]);}if(disjiao < -9){showsmg(8,Seg_Table[-(disjiao) % 10]);showsmg(7,Seg_Table[-(disjiao) / 10 % 10]);showsmg(6,Seg_Table[16]);}}
}void f2(){showsmg(1,Seg_Table[15]);showsmg(2,Seg_Table[2]);if(tempjiao > 0){showsmg(8,Seg_Table[tempjiao % 10]);showsmg(7,Seg_Table[tempjiao / 10 % 10] & 0x7f);}else if(tempjiao < 0){showsmg(8,Seg_Table[(-tempjiao) % 10]);showsmg(7,Seg_Table[(-tempjiao) / 10 % 10] & 0x7f);showsmg(6,Seg_Table[16]);}else if(tempjiao == 0){showsmg(8,Seg_Table[0]);}
}void f3(){showsmg(1,Seg_Table[15]);showsmg(2,Seg_Table[3]);if(mode){showsmg(7,0x8c);showsmg(8,Seg_Table[14]);}else{showsmg(7,Seg_Table[10]);showsmg(8,0xc1);}
}void jiaozhunshezhi(){//校准设置界面switch(jiaozhun){case 0:f1();break;case 1:f2();break;case 2:f3();break;}
}void wenduchaoxian(){//温度超限时间记录showsmg(1,0x8b);showsmg(2,0xa7);if(temptime[2] != 0){showsmg(3,Seg_Table[temptime[2] / 16]);showsmg(4,Seg_Table[temptime[2] % 16]);showsmg(5,Seg_Table[temptime[1] / 16]);showsmg(6,Seg_Table[temptime[1] % 16]);showsmg(7,Seg_Table[temptime[0] / 16]);showsmg(8,Seg_Table[temptime[0] % 16]);}
}void julichaoxian(){//距离超限时间记录showsmg(1,0x8b);showsmg(2,0xa1);if(distime[2] != 0){showsmg(3,Seg_Table[distime[2] / 16]);showsmg(4,Seg_Table[distime[2] % 16]);showsmg(5,Seg_Table[distime[1] / 16]);showsmg(6,Seg_Table[distime[1] % 16]);showsmg(7,Seg_Table[distime[0] / 16]);showsmg(8,Seg_Table[distime[0] % 16]);}
}void huixianmoshi(){//回显模式if(huixian == 0){wenduchaoxian();}else{julichaoxian();}
}
//*****************************************
//*****************************************DAC输出
void DACshuchu(){if((disjiao + distance) <= cejuxiaxian){daczhi = 51;}else if((disjiao + distance) >= cejushangxian){daczhi = 255;}else{daczhi = (204 / (cejushangxian - cejuxiaxian)) * (disjiao + distance - cejuxiaxian) + 51;}DAC(daczhi);
}
//*****************************************
//*****************************************
void showselect(){switch(show){case 0:shujujiemian();break;case 1:canshujiemian();break;case 2:shijianjiemian();break;case 3:jiaozhunshezhi();break;case 4:huixianmoshi();break;}
}
//*****************************************
//*****************************************单击双击检测
void Timer0_Isr(void) interrupt 1
{ledcount++;if(zhouqi){keycount++;}if(keycount == 100){zhouqi = 0;}if(zhouqi1){keycount1++;}if(keycount1 == 100){zhouqi1 = 0;}if(keystat){count++;}if(ledcount == 200){ledcount = 0;}if(ledcount % 20 == 0){ledflag = ~ledflag;}
}void Timer0_Init(void) //5毫秒@12.000MHz
{AUXR |= 0x80; //定时器时钟1T模式TMOD &= 0xF0; //设置定时器模式TL0 = 0xA0; //设置定时初始值TH0 = 0x15; //设置定时初始值TF0 = 0; //清除TF0标志TR0 = 1; //定时器0开始计时ET0 = 1; //使能定时器0中断EA = 1;
}//*****************************************
//*****************************************按键扫描
void scankey(){P33 = 0;P32 = 1;P44 = 1;P35 = 1;if(P44 == 0){//S4Delay(de);while(P44 == 0){showselect();}show++;jiaozhun = 0;canshu = 0;huixian = 0;show %= 5;}if(P35 == 0){//S12Delay(de);if(P35 == 0){zhouqi = 1;}while(P35 == 0){showselect();}cishu++;if(show == 1){if(canshu == 2){tempcan++;if(tempcan > 40){tempcan = 40;}}else if((canshu == 3) && (mode == 1)){light += 10;if(light > 200){light = 200;}}}if(show == 3){if(jiaozhun == 0){disjiao++;if(disjiao > 10){disjiao = 10;}}else if(jiaozhun == 1){tempjiao++;if(tempjiao > 30){tempjiao = 30;}}}}if(show == 1){if(zhouqi == 0){if(cishu == 1){//单击if(show == 1){if(canshu == 0){cejushangxian++;if(cejushangxian > 90){cejushangxian = 90;}}else if(canshu == 1){cejuxiaxian++;if(cejuxiaxian > (cejushangxian - 20)){cejuxiaxian = cejushangxian - 20;}}}}if(cishu == 2){//双击if(show == 1){if(canshu == 0){cejushangxian += 10;if(cejushangxian > 90){cejushangxian = 90;}}else if(canshu == 1){cejuxiaxian += 10;if(cejuxiaxian > (cejushangxian - 20)){cejuxiaxian = cejushangxian - 20;}}}}keycount = 0;cishu = 0;}}P33 = 1;P32 = 0;P44 = 1;P35 = 1;if(P44 == 0){//S5Delay(de);while(P44 == 0){showselect();}if(show == 1){canshu++;canshu %= 4;}if(show == 3){jiaozhun++;jiaozhun %= 3;}if(show == 4){huixian = ~huixian;}}if(P35 == 0){//S13Delay(de);if(P35 == 0){zhouqi1 = 1;}while(P35 == 0){keystat = 1;showselect();}keystat = 0;if(count < 400){//短按cishu1++;if(show == 1){if(canshu == 2){tempcan--;if(tempcan < 20){tempcan = 20;}}else if((canshu == 3) && (mode == 1)){light -= 10;if(light > 200){light = 0;}}}if(show == 3){if(jiaozhun == 0){disjiao--;if(disjiao < -10){disjiao = -10;}}else if(jiaozhun == 1){tempjiao--;if(tempjiao < -30){tempjiao = -30;}}}}else{if(show == 3){if(jiaozhun == 0){disjiao = 0;}if(jiaozhun == 1){tempjiao = 0;}}}count = 0;}if(show == 1){if(zhouqi1 == 0){if(cishu1 == 1){//单击if(show == 1){if(canshu == 0){cejushangxian--;if(cejushangxian < (cejuxiaxian + 20)){cejushangxian = cejuxiaxian + 20;}}else if(canshu == 1){cejuxiaxian--;if(cejuxiaxian < 10){cejuxiaxian = 10;}}}}if(cishu1 == 2){//双击if(show == 1){if(canshu == 0){cejushangxian -= 10;if(cejushangxian < (cejuxiaxian + 20)){cejushangxian = (cejuxiaxian + 20);}}else if(canshu == 1){cejuxiaxian -= 10;if(cejuxiaxian < 10){cejuxiaxian = 10;}}}}keycount1 = 0;cishu1 = 0;}}
}
//*****************************************
//*****************************************LED模块与超限判断
void chaoxianpanduan(){if(((temp + tempjiao) / 10) > tempcan){chaoxian = 1;temptime[0] = rtctime[0];temptime[1] = rtctime[1];temptime[2] = rtctime[2];//eepromwirte()}
}void led(){unsigned char tmp = 0;if(tempshow > tempcan * 10){ledstat = ledstat & ~0x10;}else{ledstat = ledstat | 0x10;}if((show == 0) && (ledflag == 1)){ledstat = ledstat & ~0x01;}else{ledstat = ledstat | 0x01;}if((show == 3) && (ledflag == 1)){ledstat = ledstat & ~0x02;}else{ledstat = ledstat | 0x02;}if(((distance + disjiao) <=cejushangxian) && ((distance + disjiao) >= cejuxiaxian)){ledstat = ledstat | 0x08;}else{ledstat = ledstat & ~0x08;}tmp = guangmin();if((mode == 1) && (tmp > light)){ledstat = ledstat & ~0x80;}else{ledstat = ledstat | 0x80;}outputp0(4,ledstat);
}
//*****************************************
void main(){ds1302config();cewen();initpca();initsys();ceju();Timer0_Init();while(1){if(mode == 0){light = guangmin();}cewen();led();ceju();showselect();ds1302read();DACshuchu();scankey();chaoxianpanduan();}
}
关键:双击单击长按复合代码
以S12为例
//*****************************************单击双击检测
void Timer0_Isr(void) interrupt 1
{ledcount++;if(zhouqi){keycount++;}if(keycount == 100){zhouqi = 0;}if(zhouqi1){keycount1++;}if(keycount1 == 100){zhouqi1 = 0;}if(keystat){count++;}if(ledcount == 200){ledcount = 0;}if(ledcount % 20 == 0){ledflag = ~ledflag;}
}void Timer0_Init(void) //5毫秒@12.000MHz
{AUXR |= 0x80; //定时器时钟1T模式TMOD &= 0xF0; //设置定时器模式TL0 = 0xA0; //设置定时初始值TH0 = 0x15; //设置定时初始值TF0 = 0; //清除TF0标志TR0 = 1; //定时器0开始计时ET0 = 1; //使能定时器0中断EA = 1;
}//*****************************************P33 = 0;P32 = 1;P44 = 1;P35 = 1;if(P44 == 0){//S4Delay(de);while(P44 == 0){showselect();}show++;jiaozhun = 0;canshu = 0;huixian = 0;show %= 5;}if(P35 == 0){//S12Delay(de);if(P35 == 0){zhouqi = 1;}while(P35 == 0){showselect();}cishu++;if(show == 1){if(canshu == 2){tempcan++;if(tempcan > 40){tempcan = 40;}}else if((canshu == 3) && (mode == 1)){light += 10;if(light > 200){light = 200;}}}if(show == 3){if(jiaozhun == 0){disjiao++;if(disjiao > 10){disjiao = 10;}}else if(jiaozhun == 1){tempjiao++;if(tempjiao > 30){tempjiao = 30;}}}}if(show == 1){if(zhouqi == 0){if(cishu == 1){//单击if(show == 1){if(canshu == 0){cejushangxian++;if(cejushangxian > 90){cejushangxian = 90;}}else if(canshu == 1){cejuxiaxian++;if(cejuxiaxian > (cejushangxian - 20)){cejuxiaxian = cejushangxian - 20;}}}}if(cishu == 2){//双击if(show == 1){if(canshu == 0){cejushangxian += 10;if(cejushangxian > 90){cejushangxian = 90;}}else if(canshu == 1){cejuxiaxian += 10;if(cejuxiaxian > (cejushangxian - 20)){cejuxiaxian = cejushangxian - 20;}}}}keycount = 0;cishu = 0;}}
注意几个要点:
1、涉及到双击,要把判断部分抽离按键按下阶段,否则不会进行判断
2、注意按键周期,在编程过程中可以用数码管显示按键周期和按键按下进行调试。
3、定时器尽量使用1T,优先级尽量高。
相关文章:

一份不知道哪里来的第十五届国赛模拟题
这是一个不知道来源的模拟题目,没有完全完成,只作代码记录,不作分析和展示,极其冗长,但里面有长按短按双击的复合,可以看看。 目录 题目代码底层驱动主程序核心代码关键:双击单击长按复合代码 …...

机器人动力学模型与MATLAB仿真
机器人刚体动力学由以下方程控制!!! startup_rvc mdl_puma560 p560.dyn 提前计算出来这些“disturbance”,然后在控制环路中将它“抵消”(有时候也叫前馈控制) 求出所需要的力矩,其中M项代表克服…...

SAPUI5基础知识3 - 引导过程(Bootstrap)
1. 背景 在上一篇博客中,我们已经建立出了第一个SAPUI5项目,接下来,我们将为这个项目添加引导过程。 在动手练习之前,让我们先解释一下什么引导过程。 1.1 什么是引导过程? 在计算机科学中,引导过程也称…...

ABAP 借助公司封装的钉钉URL,封装的RFC给钉钉发送消息
FUNCTION ZRFC_BC_SMSSEND_DINGTALK. *"---------------------------------------------------------------------- *"*"本地接口: *" IMPORTING *" VALUE(DESTUSRID) TYPE CHAR255 *" VALUE(CONTENT) TYPE CHAR255 *&quo…...

登录校验及全局异常处理器
登录校验 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话请求间共享数据会话跟踪方案 客户端…...

计算机视觉与模式识别实验1-2 图像的形态学操作
文章目录 🧡🧡实验流程🧡🧡1.图像膨胀2.图像腐蚀3.膨胀与腐蚀的综合使用4.对下面二值图像的目标提取骨架,并分析骨架结构。 🧡🧡全部代码🧡🧡 🧡🧡…...
【前端每日基础】day31——uni-app
uni-app 开发详细介绍 基本概念 uni-app:uni-app 是一个使用 Vue.js 开发多端应用的框架,可以编译到微信小程序、支付宝小程序、百度小程序、字节跳动小程序、H5、App等多个平台。 跨平台:一次开发,多端部署。通过条件编译实现多…...

云动态摘要 2024-05-31
给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [1.5折起]年中盛惠--AI分会场 腾讯云 2024-05-30 人脸核身、语音识别、文字识别、数智人、腾讯混元等热门AI产品特惠,1.5折起 云服务器ECS试用产品续用 阿里云 2024-04-14 云…...
Oracle数据块如何存储真实数据
上周休假了几天,颓废了,没有输出。今天写一点内容。 先抛出一个问题。表中的数据在Oracle数据块中是如何存储的呢?今天简单说一下这个问题。通常数据库中的表会存储字符,数字,日期 这3种常见的数据类型。下面的例子就用这3种数据类型作说明 首先,Oracle数据块底层存储这…...

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第30课-门的移动动画
【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第30课-门的移动动画 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…...
智能化改造给企业带来的实际效果
1. 提高生产效率:通过自动化和智能化的生产线,减少人工操作,显著提升单位时间内的生产量。 2. 提升产品质量:智能化改造通过精确控制生产过程,减少人为错误,提高产品的一致性和可靠性。 3. 降低生产成本&am…...

深度学习-语言模型
深度学习-语言模型 统计语言模型神经网络语言模型语言模型的应用序列模型(Sequence Model)语言模型(Language Model)序列模型和语言模型的区别 语言模型(Language Model)是自然语言处理(NLP&…...

微型导轨在自动化制造中有哪些优势?
微型导轨在自动化制造中发挥重要作用,能够满足自动化设备制造中对精度要求较高的工艺环节。适用于自动装配线、自动检测设备和机器人操作等环节,推动了行业的进步与发展。那么,微型导轨在使用中有哪些优势呢? 1、精度高和稳定性强…...

探索气象数据的多维度三维可视化:PM2.5、风速与高度分析
探索气象数据的多维度可视化:PM2.5、风速与高度分析 摘要 在现代气象学中,数据可视化是理解复杂气象模式和趋势的关键工具。本文将介绍一种先进的数据可视化技术,它能够将PM2.5浓度、风速和高度等多维度数据以直观和动态的方式展现出来。 …...

【传知代码】双深度学习模型实现结直肠癌检测(论文复现)
前言:在医学领域,科技的进步一直是改变人类生活的关键驱动力之一。随着深度学习技术的不断发展,其在医学影像诊断领域的应用正日益受到关注。结直肠癌是一种常见但危害极大的恶性肿瘤,在早期发现和及时治疗方面具有重要意义。然而…...

平衡二叉树的应用举例
AVL 是一种自平衡二叉搜索树,其中任何节点的左右子树的高度之差不能超过 1。 AVL树的特点: 1、它遵循二叉搜索树的一般属性。 2、树的每个子树都是平衡的,即左右子树的高度之差最多为1。 3、当插入新节点时,树会自我平衡。因此…...

一键安装 HaloDB 之 Ansible for Halo
↑ 关注“少安事务所”公众号,欢迎⭐收藏,不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽,国产数据库!Halo DB! 三步走,Halo DB 安装指引 以及 HaloDB 的 Oracle 和 MySQL 兼容模式: …...
el-table的上下筛选功能
el-table的sort-change事件可以监听到筛选的事件; 会返回prop属性和order排序的顺序; html: <el-table :data"tableData" border style"width: 100%" :cell-style"{ textAlign: center }"header-cell-c…...
【手撕面试题】Vue(高频知识点一)
每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么&…...

LabVIEW车轮动平衡检测系统
LabVIEW车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...