一份不知道哪里来的第十五届国赛模拟题

news2025/1/17 6:01:16

这是一个不知道来源的模拟题目,没有完全完成,只作代码记录,不作分析和展示,极其冗长,但里面有长按短按双击的复合,可以看看。

目录

  • 题目
  • 代码
    • 底层驱动
    • 主程序核心代码
    • 关键:双击单击长按复合代码

题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

底层驱动

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(){//参数P1
	showsmg(1,0x8c);
	showsmg(2,Seg_Table[1]);
	showsmg(6,0x89);
	showsmg(7,Seg_Table[cejushangxian / 10]);
	showsmg(8,Seg_Table[cejushangxian % 10]);
}

void p2(){//参数P2
	showsmg(1,0x8c);
	showsmg(2,Seg_Table[2]);
	showsmg(6,0xc7);
	showsmg(7,Seg_Table[cejuxiaxian / 10]);
	showsmg(8,Seg_Table[cejuxiaxian % 10]);
}

void p3(){//参数P3
	showsmg(1,0x8c);
	showsmg(2,Seg_Table[3]);
	showsmg(7,Seg_Table[tempcan / 10]);
	showsmg(8,Seg_Table[tempcan % 10]);
}

void p4(){//参数P4
	showsmg(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){//S4
		Delay(de);while(P44 == 0){showselect();}
		show++;jiaozhun = 0;canshu = 0;huixian = 0;
		show %= 5;
	}
	if(P35 == 0){//S12
		Delay(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){//S5
		Delay(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){//S13
		Delay(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){//S4
		Delay(de);while(P44 == 0){showselect();}
		show++;jiaozhun = 0;canshu = 0;huixian = 0;
		show %= 5;
	}
	if(P35 == 0){//S12
		Delay(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,优先级尽量高。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[有监督学习]1.详细图解线性回归

线性回归&#xff08;linear regression&#xff09;是用于预测回归问题的算法。该算法不难理解&#xff0c;算法中根据训练数据计算使损失最小的参数的做法是有监督学习算法的共同之处。 概述 线性回归是对“目标变量随着某个特征变量的增大而增大&#xff08;或者减小&#…

如何利用智能算法降低成本,扩大收益?

算法交易&#xff08;Algorithm Trading&#xff09;是一种投资策略&#xff0c;它使用计算机算法来分析市场数据&#xff0c;制定交易决策&#xff0c;并自动执行交易。算法交易的主要目标是利用市场价格波动来获取利润&#xff0c;同时降低人为干预的风险和成本。 量化交易中…

django中,出现CSRF verification failed. Request aborted.错误

这是跨站点访问的防范机制&#xff0c;csrf是一个令牌&#xff0c;会验证登录&#xff0c;需要在setting中把 "django.middleware.csrViewMiddleware" 注释掉 并在html文件中的<body>内添加 {% csrf token %} 就可以了

使用shell命令开启隧道转发的方式

1.适用场景 中转电脑可以通公网&#xff0c;也可以通内网&#xff0c;想把内网映射出去&#xff0c;公网其他电脑就可以通过该隧道远程访问内网的情况 2.命令 开隧道&#xff08;21235是自定义的转发端口&#xff09;&#xff1a; ssh -R 21235:内网地址:ssh端口 用户名公网服…

DuDuTalk:营业厅智能质检终端在通信运营商线下营业厅应用价值

在通信行业日益竞争的今天&#xff0c;线下营业厅网点是企业与客户互动的黄金触点&#xff0c;但由于缺乏有效管控和人员能力素质的层次不齐&#xff0c;如何提升线下营业厅的服务质量、提高运营效率&#xff0c;成为各大通信运营商亟待解决的问题。 在此背景下&#xff0c;我…

本地电脑通过远程服务器进行ssh远程转发

☆ 问题描述 想要实现这样一个事情&#xff1a; 我想要提供一个ai服务&#xff0c;但是租计算服务器太贵了&#xff0c;我自己有配的台式机。那么用我的台式机作为服务器&#xff0c;租一个服务器做端口转发可行吗&#xff1f; ★ 解决方案 1. 修改服务器上的sshd_config文件…

一、初识Qt 之 Hello world

一、初识Qt 之 Hello world 提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 初识Qt 之 Hello world文章目录 一、Qt 简介二、Qt 获取安装三、Qt 初步使用四、Qt 之 Hello world1.新建一个项目 总结 一、Qt 简介 C &#xf…

html+css web前端 多边形

<!DOCTYPE html><html><head><meta charset"UTF-8"><title>多边形</title><style type"text/css">#pentagon_6_1 {position: absolute;top: 0px;height: 0; width: 100; border-left: 100px solid rgb(255, 255…

5.31——进军MYSQL

目录 简略版&#xff1a; 详解版&#xff1a; 一. myaql概述&#xff1a; 数据库&#xff1a; 数据库管理系统&#xff1a; SQL&#xff1a; 二. masql的安装&#xff1a; 启动与停止&#xff1a; 1. MYSQL提供的命令行 2. windows提供的命令行工具 三.数据模型 …

快手发布大模型产品“可图”,超20种创新AI图像玩法限免上线

近日&#xff0c;快手自研大模型产品“可图”&#xff08;Kolors&#xff09;正式对外开放&#xff0c;支持文生图和图生图两类功能&#xff0c;已上线20余种AI图像玩法。目前&#xff0c;用户可以通过“可图大模型”官方网站和微信小程序&#xff0c;免费使用各项AI图像功能。…

光学仪器镀膜上下料设备:智能化生产的引领者

当智能技术与制造业相融合&#xff0c;富唯智能镀膜上下料设备成为智能化生产的新引擎。它不仅将智能化、自动化理念融入到生产的各个环节&#xff0c;更为企业带来了生产效率的提升和成本的降低。 富唯智能镀膜上下料设备以其卓越的性能&#xff0c;在实现单面和两面镀膜的上料…

RocketMQ学习(2) 深入学习

RokcetMQ的介绍和基础知识见这篇博客——RocketMQ学习(1) 快速入门 本篇为上一篇的深入学习&#xff0c;很多基础知识不再赘述。 目录 消息重复消费问题(去重;幂等)布隆过滤器 重试机制死信消息 SpringBoot集成RocketMQ集成SpringBoot发送不同消息模式(同步消息)异步消息单向消…

预编码算法(个人总结)

引言 预编码算法是现代无线通信系统中的关键技术&#xff0c;特别是在多输入多输出&#xff08;MIMO&#xff09;系统中。它们通过在发送端对信号进行处理&#xff0c;减少干扰并提高信道容量。这种技术广泛应用于5G、Wi-Fi和卫星通信系统中。本教程将详细介绍预编码算法的背景…

高精度GNSS模块的无人机导航

高精度GNSS模块提供更高的精度和可靠性&#xff0c;有助于提高无人机的安全性和效率。这些模块允许无人机遵循预定的飞行路线&#xff0c;与障碍物保持安全距离&#xff0c;并以更高的精度悬停。高精度GNSS模块广泛应用于测绘、农业建设、石油天然气、公安等行业。 GNSS模块技…

文件系统小册(FusePosixK8s csi)【1 Fuse】

文件系统小册&#xff08;Fuse&Posix&K8s csi&#xff09;【1 Fuse&#xff1a;用户空间的文件系统】 Fuse(filesystem in userspace),是一个用户空间的文件系统。通过fuse内核模块的支持&#xff0c;开发者只需要根据fuse提供的接口实现具体的文件操作就可以实现一个文…

LNMP部署及应用

目录 1.LNMP概述 Nginx 特点 Nginx 作用 2.分布式部署LNMP操练 Nginx主机&#xff1a;CentOS 7-1 PHP主机: CentOS 7-2 1.LNMP概述 Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&…

idea中使用maven-helper插件阅读排查【经典版】2

一 maven-helper的使用 1.1 helper页面 打开pom文件&#xff0c;并可以切换tab&#xff0c;简单使用&#xff0c;如下图&#xff1a; Conflicts&#xff08;查看冲突&#xff09; All Dependencies as List&#xff08;列表形式查看所有依赖&#xff09; All Dependencies …

字符串和字符串函数(2)

前言&#xff1a; 在字符串和字符串函数&#xff08;1&#xff09;-CSDN博客中&#xff0c;已将将字符串和字符函数的使用了解&#xff0c;并且实现模拟了一些字符串的库函数。 接下来将继续深入学习字符串和字符串函数。并且模拟实现一些较为复杂的函数。 可控制字符…

香港云服务器好还是国内的好?

香港云服务器与国内云服务器各有其优点和缺点&#xff0c;选择哪种类型的云服务器主要取决于业务需求、用户群体、网络需求以及成本考虑。以下是对两者进行详细比较的内容。 首先&#xff0c;从网络速度和稳定性来看&#xff0c;香港云服务器具有独特的优势。由于香港是全球数据…

day18

第一题 493. 翻转对 这道题我们采用分治的思想&#xff0c;通过单调性和双指针的策略来解决&#xff1a; 策略一&#xff1a; 我们通过递归将每一个分的左区域和右区域变成降序排列&#xff0c;最后在同一层的左右区域进行判断&#xff0c;当前数组为降序时&#xff0c;固定每…