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

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

目录

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

题目

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

代码

底层驱动

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,优先级尽量高。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

七年之痒!一个 PHP 程序员职业生涯的自述

大家好&#xff0c;我是码农先森。 今年刚好是我毕业的第七个年头&#xff0c;在婚姻感情当中都有一种「七年之痒」的说法&#xff0c;这次我把这个词「七年之痒」用一次在我的职业生涯复盘上。七年前我从告别校园&#xff0c;踏入互联网编程行业&#xff0c;七年后我依旧在编…

FreeRtos进阶——中断的内部逻辑

中断与非中断API的区别 BaseType_t xQueueSendToBack(QueueHandle_t xQueue,const void *pvItemToQueue,TickType_t xTicksToWait); BaseType_t xQueueSendToBackFromISR(QueueHandle_t xQueue,const void *pvItemToQueue,BaseType_t *pxHigherPriorityTaskWok…

SpringBoot源码(自动装配、内嵌Tomcat)

文章目录 依赖管理pom依赖管理Web依赖自定义starter 一、WebMvcAutoConfiguration1.1 Filter1.2 Interceptor 二、源码解析2.1 SpringApplication2.1.1 构造方法1、填充webApplicationType2、自动装配Initializers3、自动装配Listeners 2.1.2 run(args) 2.2 SpringApplicationR…

实用软件分享---超级轻量级的强力卸载软件工具UninstallView_1.51

专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…

【OrangePi AIpro】从开箱到第一个AI应用开发

第一章 OrangePi AIpro介绍和开发环境搭建 1.1 OrangePi AIpro介绍 OrangePi AIpro(8T)采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;集成图形处理器&#xff0c;支持8TOPS AI算力&#xff0c;拥有8GB/16GB LPDDR4X&#xff0c;可以外接32GB/64GB/…

CANOE制造dll文件,以及应用dll文件

1、使用canoe自带的capl dll 2、然后使用Visual Studio 2022 打开项目 3、项目打开后修改下项目属性 4、修改capldll.cpp文件 4.1 添加的内容 void CAPLEXPORT far CAPLPASCAL appSum(long i, long j, long* s){*s i j;} {"sum", (CAPL_FARCALL)appSum, "…

FinalShell无法连接Linux

Linux使用Vmware会创建一个网络&#xff0c;让两个子网处于一个网关&#xff0c;这样就能在windows中连接Linux&#xff0c;只有在这种情况下才能FinalShell才能连接Linux

Redis 和 Mysql 如何保证两者数据一致性

文章目录 概述解决方案消息队列异步重试 基于 RocketMQ 的可靠性消息通信&#xff0c;来实现最终一致Canal 组件&#xff0c;监控 Mysql 中 binlog 的日志&#xff0c;把更新后的数据同步到 Redis 里面延时双删弱一致性和强一致性Canal详解 概述 在分布式系统中&#xff0c;保…

2024中国军民两用智能装备与通信技术产业展览会带你走进轻元素量子材料世界

在科技创新的浪潮中&#xff0c;北京怀柔科学城迎来了一场革命性的突破——世界首个轻元素量子材料平台正式启动运行。这一里程碑事件不仅彰显了中国在量子科学研究上的领先地位&#xff0c;也为全球科技界带来了一股新风潮。由北京大学领衔打造的这一平台&#xff0c;专注于轻…

[论文笔记]MemGPT: Towards LLMs as Operating Systems

引言 今天介绍一篇论文MemGPT: Towards LLMs as Operating Systems。翻过过来就是把LLM看成操作系统。 大语言模型已经在人工智能领域引起了革命性的变革&#xff0c;但受到有限上下文窗口的限制&#xff0c;在扩展对话和文档分析等任务中的效用受到了阻碍。为了能够利用超出…

免费生物蛋白质的类chatgpt工具助手copilot:小分子、蛋白的折叠、对接

参考: https://310.ai/copilot 可以通过自然语言通话晚上蛋白质的相关处理:生成序列、折叠等 应该是agent技术调用不同工具实现 从UniProt数据库中搜索和加载蛋白质。使用ESM Fold方法折叠蛋白质。使用310.ai基础模型设计新蛋白质。使用TM-Align方法比较蛋白质。利用Protei…

谁是镰刀谁是韭菜?程序交易与手动交易的博弈,靠技术还是靠运气

备受争议的话题&#xff0c;很多人认为程序化交易是在破坏市场的平衡&#xff0c;大量的程序交易订单可能会造成市场价格的异常波动&#xff0c;尤其是在高频交易未被监管时&#xff0c;程序化交易者占尽优势&#xff0c;来回收割。 而支持程序交易的人认为&#xff0c;市场是…

Java八股文:程序员的“面试经”还是技术壁垒?

Java八股文&#xff1a;程序员的“面试经”还是技术壁垒&#xff1f; “八股文”&#xff0c;在中国古代科举考试中&#xff0c;指的是一种程式化的文章写作格式&#xff0c;内容空洞&#xff0c;缺乏创新。而如今&#xff0c;这个词语被赋予了新的含义&#xff0c;用来形容技术…

python基础(习题、资料)

免费提取资料&#xff1a; 练习、资料免费提取。持续更新迅雷云盘https://pan.xunlei.com/s/VNz6kH1EXQtK8j-wwwz_c0k8A1?pwdrj2x# 本文为Python的进阶知识合辑&#xff0c;包括列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;、字典&#xff08;Dic…

微信密码忘记了怎么找回?自助找回2个方法揭晓!

在微信的世界里&#xff0c;密码就像是我们通往个人世界的“钥匙”&#xff0c;一旦丢失&#xff0c;就仿佛被锁在了自己的门外。微信密码忘记了怎么找回&#xff1f;别担心&#xff0c;微信提供了多种自助找回密码的方法&#xff0c;让我们一起来揭秘这些找回密码的秘诀吧&…

在全志H616核桃派开发板上配置SSH远程终端方法详解

熟悉指令用户可以对已经联网的核桃派进行局域网SSH远程终端控制&#xff0c;方便使用自己的PC对核桃派远程进行各种指令操作。 普通用户&#xff08;默认&#xff09; 账号&#xff1a;pi ; 密码&#xff1a;pi管理员账户 账号&#xff1a;root ; 密码&#xff1a;root 在这之…

【MySQL访问】

文章目录 一、C远程连接到MySQLmysql_init()函数mysql_real_connect&#xff08;&#xff09;函数实战案例 二、处理查询select的细节mysql_store_result()函数获取结果行和列获取select结果获取行内容获取列属性 三、MySQL图形化界面连接 关于动态链接&#xff0c;请看这篇文章…

【C语言】基于C语言实现的贪吃蛇游戏

【C语言】基于C语言实现的贪吃蛇游戏 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C语言学习之路 文章目录 【C语言】基于C语言实现的贪吃蛇游戏前言一.最终实现效果一.Win32 API介绍1.1Win32 API1.2控制台程序1.3控制台屏幕上的坐标COORD…

类和对象(中)【类的6个默认成员函数】 【零散知识点】 (万字)

类和对象&#xff08;中&#xff09; 1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1…