一份不知道哪里来的第十五届国赛模拟题
这是一个不知道来源的模拟题目,没有完全完成,只作代码记录,不作分析和展示,极其冗长,但里面有长按短按双击的复合,可以看看。
目录
- 题目
- 代码
- 底层驱动
- 主程序核心代码
- 关键:双击单击长按复合代码
题目
代码
底层驱动
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车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…...
【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记(保姆级别的,非常详细)
六,selenium 想要下载PDF或者md格式的笔记请点击以下链接获取 python爬虫学习笔记点击我获取 Scrapyselenium详细学习笔记点我获取 Python超详细的学习笔记共21万字点我获取 1,下载配置 ## 安装: pip install selenium## 它与其他库不同…...
【Linux】Linux环境基础开发工具_3
文章目录 四、Linux环境基础开发工具2. vim3. gcc和g动静态库的理解 未完待续 四、Linux环境基础开发工具 2. vim vim 怎么批量化注释呢?最简单的方法就是在注释开头和结尾输入 /* 或 */ 。当然也可以使用快捷键: Ctrl v 按 hjkl 光标移动进行区域选择…...
数字水印 | 图像噪声攻击(高斯/椒盐/泊松/斑点)
目录 Noise Attack1 高斯噪声(Gaussian Noise)2 椒盐噪声(Salt and Pepper Noise)3 泊松噪声(Poisson Noise)4 斑点噪声(Speckle Noise)5 完整代码 参考博客:Python…...
LeetCode-47 全排列Ⅱ
LeetCode-47 全排列Ⅱ 题目描述解题思路代码说明 题目描述 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 : 输入:nums [1,1,2]输出: [[1,1,2], [1,2,1], [2,1,1]] b站题目解读讲的不好&…...
list 的实现
目录 list 结点类 结点类的构造函数 list的尾插尾删 list的头插头删 迭代器 运算符重载 --运算符重载 和! 运算符重载 * 和 -> 运算符重载 list 的insert list的erase list list实际上是一个带头双向循环链表,要实现list,则首先需要实现一个结点类,而一个结点需要…...
一个程序员的牢狱生涯(47)学法
星期一 学法 二铺不知道什么时候走到了我的身边,向我说道,这是二铺在我进来号子后主动过来和我说话。 我听到二铺这声突兀的说话后,抬起头。这时我才看到,除了二铺,还有六子、棍子都围在我的身边,看着我。虽然六子和棍子依旧一副‘吊儿郎当’的样子,但我从他们几个的眼神…...
微信小程序-页面导航
一、页面导航 页面导航指的是页面之间的相互跳转,例如:浏览器中实现页面导航的方式有如下两种: 1.<a>链接 2.location.href 二、小程序中实现页面导航的两种方式 1.声明式导航 在页面上声明一个<navigator>导航组件 通过点击…...
计算机网络- 特定服务类型(Type of Service, TOS) 服务质量(Quality of Service, QoS)
特定服务类型(Type of Service, TOS) 具有特定服务类型(Type of Service, TOS)的数据包是指在IP头部中包含特定TOS字段设置的数据包。TOS字段用于指示数据包的服务质量要求,如延迟、吞吐量、可靠性等。现代IP网络通常…...
2.6 Docker部署多个前端项目
2.6 Docker部署多个项目 三. 部署前端项目 1.将前端项目打包到同一目录下(tcm-ui) 2. 部署nginx容器 docker run --namenginx -p 9090:9090 -p 9091:9091 -d nginx3. 复制nginx.conf文件到主机目录 docker cp nginx:/etc/nginx/nginx.conf /root/ja…...
如何格式化只读U盘?
U盘只读无法格式化,该怎么处理?别担心!本文将向你提供一些实用方法,助你解决U盘写保护的难题。这些方法能有效帮助你解除U盘的只读状态,从而可以顺利进行格式化和其他操作。 不能格式化只读U盘 “我购买了一个U盘&…...
【并查集】专题练习
题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 模板 836. 合并集合 - AcWing题库 #include<bits/stdc.h> using lllong long; //#define int ll const int N1e510,mod1e97; int n,m; int p[N],sz[N]; int find(int a) {if(p[a]!a) p[a]find(p[a]);return p[a…...
服装连锁店收银系统需要具备的五大功能
当今服装连锁店在市场竞争中需要拥有高效的收银系统来提升业务效率和顾客满意度。以下是服装连锁店收银系统需要具备的五大功能: 首先,完善的商品管理功能是至关重要的。这包括商品信息的录入、管理、更新和查询。收银系统应该能够快速而准确地识别商品&…...
IMU状态预积分代码实现 —— IMU状态预积分类
IMU状态预积分代码实现 —— IMU状态预积分类 实现IMU状态预积分类 实现IMU状态预积分类 首先,实现预积分自身的结构。一个预积分类应该存储一下数据: 预积分的观测量 △ R ~ i j , △ v ~ i j , △ p ~ i j \bigtriangleup \tilde{R} _{ij},\bigtrian…...
C语言编程:探索最小公倍数的奥秘
C语言编程:探索最小公倍数的奥秘 在编程的世界中,计算两个数的最小公倍数(LCM)是一个常见的数学问题。C语言作为一种基础且强大的编程语言,为我们提供了实现这一功能的工具。本文将从四个方面、五个方面、六个方面和七…...
Java设计模式-活动对象与访问者
活动对象 Java设计模式中,活动对象是指一个对象始终处于活动的状态,该对象包括一个线程安全的数据结构以及一个活跃的执行线程。 如上所示,ActiveCreature类的构造函数初始化一个线程安全的数据结构(阻塞队列)、初始化…...
用HAL库改写江科大的stm32入门-6-3 PWM驱动LED呼吸灯
接线图: 2 :实验目的: 利用pwm实现呼吸灯。 关键PWM定时器设置: 代码部分: int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*…...
[数据集][目标检测]喝水检测数据集VOC+YOLO格式995张3类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):995 标注数量(xml文件个数):995 标注数量(txt文件个数):995 标注类别…...
【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路…...
git使用流程与规范
原文网址:git代码提交流程与规范-CSDN博客 简介 本文git提交流程与规范是宝贵靠谱的经验,它能解决如下问题: 分支差距过大,导致合代码无数的冲突合完代码后发现代码丢失分支不清晰,无法追溯问题合代码耗时很长&…...
力扣 264. 丑数 II python AC
堆 from heapq import heappop, heappushclass Solution:def nthUglyNumber(self, n):q [1]vis {1}for _ in range(n - 1):now heappop(q)for i in [2, 3, 5]:if now * i not in vis:vis.add(now * i)heappush(q, now * i)return heappop(q)...
resetlogs强制拉库失败并使用备份system文件还原数据库故障处理---惜分飞
接手一个库,在open的过程中遭遇到ORA-600 2662错误 Sun May 26 10:15:54 2024 alter database open RESETLOGS RESETLOGS is being done without consistancy checks. This may result in a corrupted database. The database should be recreated. RESETLOGS after incomplete…...
解析Java中1000个常用类:Error类,你学会了吗?
在 Java 编程中,异常处理是一个至关重要的部分。Java 提供了丰富的异常处理机制,包括 Exception 和 Error。 本文将深入探讨 Error 类的功能、用法、实际应用中的注意事项,以及如何处理和预防这些错误。 什么是 Error 类? Error 类是 Java 中 Throwable 类的一个子类,用…...
【C++】——string模拟实现
前言 string的模拟实现其实就是增删改查,只不过加入了类的概念。 为了防止与std里面的string冲突,所以这里统一用String。 目录 前言 一 初始化和销毁 1.1 构造函数 1.2 析构函数 二 迭代器实现 三 容量大小及操作 四 运算符重载 4.1 bool…...
unity2D跑酷游戏
项目成果 项目网盘 导入资源包 放入Assets文件Assets资源文件 游戏流程分析 摄像机size调小,让图片占满屏幕 人跑本质,相对运动,图片无限向右滚动 图片720,缩小100倍第二个图片x为7.2每unit px100两张图片刚好挨着连贯 空对象Bg…...
OWASP top10--SQL注入(四、sqlmap安装及使用)
目录 sqlmap工具安装: 工具说明: 主要功能特性包括: 基本使用示例: 先下载python2.7.9版本 sqlmap运行 sqlmap工具使用 -u -r –-levelLEVEL扫描深度级别 --riskRISK 执行测试的风险 -threads 线程数 -batch-smart智能…...
Java基础入门day62
day62 AJAX 概念 AJAX: Asynchronous Javascript And XML AJAX是一种无需重新加载整个网页的情况下,能够更新部分网页的技术 AJAX是一种用于创建快速动态网页的技术 通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新 传统…...
Oracle中两张表具有相同结构,如何将一张表内容全部插入到另一个表中
在Oracle中,如果两张表具有相同的结构,你可以使用INSERT INTO ... SELECT语句将一张表的内容插入到另一张表中。以下是一个示例: 假设有两个表:table1 和 table2,它们具有相同的列结构。要将 table1 的所有内容插入到…...
比特币的理论上限是多少个?
标签: 比特币的理论上限; 已经挖出多少个比特币; 问题:比特币的理论上限是多少个?截至2023年10月,已经挖出多少个比特币出来了? 比特币的理论上限 比特币的设计者中本聪在比特币协议中设定了比…...
LeetCode-131 分割回文串
LeetCode-131 分割回文串 题目描述解题思路C 代码 题目描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”],…...
Flutter 中的 SliverPrototypeExtentList 小部件:全面指南
Flutter 中的 SliverPrototypeExtentList 小部件:全面指南 Flutter 是一个功能强大的 UI 框架,由 Google 开发,允许开发者使用 Dart 语言构建跨平台的移动、Web 和桌面应用。在 Flutter 的丰富组件库中,SliverPrototypeExtentLis…...