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

单片机课程设计

单片机课程设计:设备甲每隔3s利用18B20进行一次温度采集,然后将采集数据填入一帧中(数据帧),发送到设备乙,设备乙收到该数据后并校验,无误后显示到数码管上,同时向设备甲发送应答帧,有错误时不显示,只发送错误应答帧。设备甲接收到应答帧后,校验无误,在数码管上显示O,否则显示E。设备甲乙都是单片机。

在这里插入图片描述

通过课设要求可以知道,上位机负责采集数据(十六位数据)并且将该数据通过modbus协议传输给下位机,而下位机负责校验数据并且将该数据显示到动态数码管上。所以我们先来编写上位机的有关程序:
1.DS18B20传感器的温度数据提取:

/----------------------------temp.h-------------------------------/
#ifndef __temp_h_
#define __temp_h_#include<reg51.h>
//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif#ifndef uint 
#define uint unsigned int
#endif//--定义使用的IO口--//
sbit DSPORT=P3^7;//--声明全局函数--//
void Delay1ms(uint );
uchar Ds18b20Init();
void Ds18b20WriteByte(uchar com);
uchar Ds18b20ReadByte();
void  Ds18b20ChangTemp();
void  Ds18b20ReadTempCom();
int Ds18b20ReadTemp();#endif
/----------------------------temp.c-------------------------------/
#include"temp.h"void Delay1ms(uint y)
{uint x;for( ; y>0; y--){for(x=110; x>0; x--);}
}uchar Ds18b20Init()
{uchar i;DSPORT = 0;			 //将总线拉低480us~960usi = 70;	while(i--);//延时642usDSPORT = 1;			//然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低i = 0;while(DSPORT)	//等待DS18B20拉低总线{Delay1ms(1);i++;if(i>5)//等待>5MS{return 0;//初始化失败}}return 1;//初始化成功
}void Ds18b20WriteByte(uchar dat)
{uint i, j;for(j=0; j<8; j++){DSPORT = 0;	     	  //每写入一位数据之前先把总线拉低1usi++;DSPORT = dat & 0x01;  //然后写入一个数据,从最低位开始i=6;while(i--); //延时68us,持续时间最少60usDSPORT = 1;	//然后释放总线,至少1us给总线恢复时间才能接着写入第二个数值dat >>= 1;}
}uchar Ds18b20ReadByte()
{uchar byte, bi;uint i, j;	for(j=8; j>0; j--){DSPORT = 0;//先将总线拉低1usi++;DSPORT = 1;//然后释放总线i++;i++;//延时6us等待数据稳定bi = DSPORT;	 //读取数据,从最低位开始读取/*将byte左移一位,然后与上右移7位后的bi,注意移动之后移掉那位补0。*/byte = (byte >> 1) | (bi << 7);						  i = 4;		//读取完之后等待48us再接着读取下一个数while(i--);}				return byte;
}void  Ds18b20ChangTemp()
{Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);		//跳过ROM操作命令		 Ds18b20WriteByte(0x44);	    //温度转换命令//Delay1ms(100);	//等待转换成功,而如果你是一直刷着的话,就不用这个延时了}void  Ds18b20ReadTempCom()
{	Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);	 //跳过ROM操作命令Ds18b20WriteByte(0xbe);	 //发送读取温度命令
}int Ds18b20ReadTemp()
{int temp = 0;uchar tmh, tml;Ds18b20ChangTemp();			 	//先写入转换命令Ds18b20ReadTempCom();			//然后等待转换完后发送读取温度命令tml = Ds18b20ReadByte();		//读取温度值共16位,先读低字节tmh = Ds18b20ReadByte();		//再读高字节temp = tmh;temp <<= 8;temp |= tml;return temp;
}

以上代码如果想要自己编写的话需要懂如何通过时序图来编写代码,感兴趣的同学可以上网查找资料来学习。你有可能会问为什么温度数据最大是十六位的,这是因为温度数据显示出来的十位进制数是五个数字,如:12000。而二的十六次方是65536,二的八次方是256,所以最大位数就是十六位的。但是SBUF(发)一次只能发送八位,所以要对数据进行处理:

listing[4] = temp/256;//前八位,用一个数组listing[]来存储温度数据
listing[5] = temp%256;//后八位

这里又为什么需要使用数组呢?这是因为modbus通信协议中规定一帧数据的传输需要有地址位、功能位、数据位、CRC校验码(同时意味着一帧数据要全部包含这些),所以需要用数组。CRC校验码的计算需要遵从特殊计算方法。
2.modbus通信CRC校验码计算:

void getcrcdatas(uchar *buffer,uchar len)//长度在这里为6
{uint wcrc = 0xffff;uchar temp = 0;uint i = 0, j = 0;for(i = 0;i < len;i++){temp = *buffer & 0x00ff;buffer++;wcrc ^= temp;for (j = 0; j < 8; j++){if (wcrc & 0x0001){wcrc >>= 1;wcrc ^= 0xa001;}else{wcrc >>= 1;}}}CRC_L = wcrc & 0xff;//CRC_H,CRC_L为全局变量CRC_H = wcrc >> 8;
}

3.RS485方式
RS485只是在原本的通信方式上加入了MAX485芯片
在这里插入图片描述
485_RE为0 时允许接收,486_RE为1时允许发送。接线方面需要注意:单片机的RXD要与MAX485的RXD连接,TXD同上,两块MAX485的A要互相连接,B要互相连接。程序方面只需要定义一个使能位如:

sbit RS485RE=P1^0;

在传输,接收时只需要按要求时之等于0或者1即可。
最后,需要注意的点已经全部叙述完成,这里最后给出最后的主函数:

#include<reg51.h>
#include<temp.h>
#define uchar unsigned char
#define uint unsigned int
#define NODE1_ADDR 0x01 //地址
#define functional_Tcode 0x01 //正确应答
#define functional_Fcode 0x00 //错误应答
sbit RS485RE=P1^0;//MAX485芯片使能位
uchar CRC_L = 0;
uchar CRC_H = 0;
uint temp = 0;
uint counter = 0;
uchar i=0;
uchar ACK_DATA[8]={0};//数组初始化
void sbufdata();
void getcrcdatas(uchar *listing,uchar len_math);
uchar listing[8]={0x01,0x01,0x00,0x00};
void usart() interrupt 4
{if(RI == 1){RI = 0;ACK_DATA[i] = SBUF;i++;if(i==8) i=0;}
}
void main()
{SCON = 0X50;			//设置为工作方式1TMOD = 0X21;			//设置计数器工作方式2PCON = 0X80;			//波特率加倍TH1 = 0XF3;				//计数器初始值设置,注意波特率是4800的TL1 = 0XF3;TH0 = 0XFC;	//给定时器赋初值,定时1msTL0 = 0X18;	ET0 = 1;//打开定时器0中断允许EA = 1;//打开总中断ES = 1;TR0 = 1;//打开定时器		TR1 = 1;					//打开计数器while(1){if((ACK_DATA[0] == NODE1_ADDR)&&(ACK_DATA[1] == functional_Tcode)){if((ACK_DATA[7] == 0x3c)&&(ACK_DATA[6] == 0x0a)){P0 = 0xc0;}}if((ACK_DATA[0] == NODE1_ADDR)&&(ACK_DATA[1] == functional_Fcode)){if((ACK_DATA[7] == 0x01)&&(ACK_DATA[6]==0xca)){P0=0x8e;}}}
}
void getcrcdatas(uchar *buffer,uchar len)
{uint wcrc = 0xffff;uchar temp = 0;uint i = 0, j = 0;for(i = 0;i < len;i++){temp = *buffer & 0x00ff;buffer++;wcrc ^= temp;for (j = 0; j < 8; j++){if (wcrc & 0x0001){wcrc >>= 1;wcrc ^= 0xa001;}else{wcrc >>= 1;}}}CRC_L = wcrc & 0xff;CRC_H = wcrc >> 8;
}
void sbufdata()//发送函数
{uchar j = 0;for(j = 0;j < 8;j++){SBUF = listing[j];while(!TI);TI = 0;}
}
void timer() interrupt 1
{counter++;TH0 = 0XFC;	//给定时器赋初值,定时1msTL0 = 0X18;if(counter == 3000)//三秒{RS485RE=1;counter = 0;temp = Ds18b20ReadTemp();listing[4] = temp/256;listing[5] = temp%256;getcrcdatas(&listing[0],6);listing[6] = CRC_H;listing[7] = CRC_L;sbufdata();RS485RE=0;}
}

接下来来编写下位机的代码,下位机在收到这一帧数据后首先需要将这一帧数据放入一个数组中,并且需要验证数据是否正确,正确则在数码管上显示温度并且返回正确应答帧,反之则返回错误应答帧。

第一点:在接收到一帧数据后需要验证我接收到的前六位所计算出来的CRC校验码是否与从上位机接收到的CRC校验码是否相同。在此同上位机一样需要有CRC校验码的计算函数。
第二点:modbus通信协议规定一帧HEX数据之间需要有3.5个字符的停顿时间,那怎么计算字符停顿时间呢?我们知道波特率的单位是位每秒,传输一个0X**需要有十位,一帧数据有八个字节所以传输一帧数据要有八十位,我们使用的是4800波特率的由此即可计算出一帧时间。在此我们可以这样做每接收一个字节定时器重新装载初值,一旦超过这个3.5 个字符时间证明上位机已经将一帧数据发送完毕,这时让计数的全局变量i = 0,这样便可保证数据的正确性。

下位机的代码如下:

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define NODE1_ADDR 0x01
#define functional_code 0x01
sbit RS485DIR=P1^0;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar CRC_L = 0;
uchar CRC_H = 0;
uchar crcdata = 0;
uchar i = 0;
int temp=0;
uchar receivedata[8]={0};
uchar DisplayData[8]={0};
uchar ACK_T[8]={0x01,0x01,0,0,0,0,0x0a,0x3c};//提前将CRC校验码算好
uchar ACK_F[8]={0x01,0,0,0,0,0,0xca,0x01};
uchar code led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void sbufdata(uchar *listing);
void DigDisplay();
void delay(uint time);
void datapros(int temp);
void getcrcdatas(uchar *listing,uchar len_math);
void usart() interrupt 4
{if(RI == 1){TR0=1;RI = 0;receivedata[i] = SBUF;i++;TH0=0x1d;TL0=0x70;}
}
void timer() interrupt 1
{i = 0;TH0=0x1d;TL0=0x70;TR0=0;
}
void main()
{uchar j = 0;SCON = 0X50;			//设置为工作方式1TMOD = 0X21;			//设置计数器工作方式2PCON = 0X80;			//波特率加倍TH1 = 0XF3;				//计数器初始值设置,注意波特率是4800的TL1 = 0XF3;TH0=0x1d;TL0=0x70;ET0=1;ES = 1;						//打开接收中断EA = 1;						//打开总中断TR1 = 1;					//打开计数器RS485DIR=0;while(1){//下面校验数据的正确性if((i == 8)&&(TF0!=1)){if((receivedata[0] == NODE1_ADDR)&&(receivedata[1] == functional_code)){getcrcdatas(&receivedata[0],6);if((CRC_L == receivedata[7])&&(CRC_H == receivedata[6])){temp = (receivedata[4]<<8)|receivedata[5];//将温度数据恢复为十六位数据RS485DIR=1;sbufdata(&ACK_T[0]);RS485DIR=0;}else{RS485DIR=1;sbufdata(&ACK_F[0]);RS485DIR=0;}}}datapros(temp);//开始显示00000DigDisplay();}
}
void getcrcdatas(uchar *buffer,uchar len)
{uint wcrc = 0xffff;uchar temp = 0;uint i = 0, j = 0;for(i = 0;i < len;i++){temp = *buffer & 0x00ff;buffer++;wcrc ^= temp;for (j = 0; j < 8; j++){if (wcrc & 0x0001){wcrc >>= 1;wcrc ^= 0xa001;}else{wcrc >>= 1;}}}CRC_L = wcrc & 0xff;CRC_H = wcrc >> 8;
}
void delay(uint time)
{while(time--);
}
void datapros(int temp)  
{float tp;  if(temp< 0)					//当温度值为负数{DisplayData[0] = 0x40; 	//负号temp=temp-1;			//因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=~temp;tp=temp;temp=tp*0.0625*100+0.5;	//浮点型转换成整型后会四舍五入}else						//如果温度为正数{			DisplayData[0] = 0x00;tp=temp;							//因为数据处理有小数点所以将温度赋给一个浮点型变量temp=tp*0.0625*100+0.5;						//浮点型转换成整型后会四舍五入}DisplayData[1] = led[temp / 10000];DisplayData[2] = led[temp % 10000 / 1000];DisplayData[3] = led[temp % 1000 / 100] | 0x80;//显示小数点DisplayData[4] = led[temp % 100 / 10];DisplayData[5] = led[temp % 10];
}void DigDisplay()//动态数码管位选
{uchar i;for(i=0;i<6;i++){switch(i){case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;}P0=DisplayData[i];delay(10);P0 = 0x00;}		
}
void sbufdata(uchar *listing)//发送函数
{uchar j = 0;for(j = 0;j<8;j++){SBUF = *listing;listing++;while(!TI);TI = 0;}
}

实际效果:
上位机
在这里插入图片描述
最后,这是我第一次撰写博客难免有欠缺考虑不足之处,欢迎大家批评指正!谢谢!

相关文章:

  • HCIE之路-1 华为数据通信基础思维导图(不定期更新,纯个人理解,欢迎批评指正!!!)
  • 串口通信基础知识(UART)
  • 数据通信基础知识
  • 计算机网络物理层之数据通信的基础知识
  • 数据通信基础(物理层)学习笔记
  • 【计算机网络】数据通信的基础知识
  • 【构建ML驱动的应用程序】第 10 章 :为模型构建安全措施
  • 第二章 物理层 2,3 数据通信基础知识 [计算机网络笔记]
  • 软考(4)-数据通信基础
  • 物理层及数据通信基础
  • 物理层(1.物理层基本概念2.数据通信基础知识)
  • 数据通信基础1——软考
  • 『华为ICT』数据通信网络基础
  • 软考中级之第02课:数据通信基础(一)
  • 数据通信基础知识点(二)
  • 计算机网络-第2章 数据通信基础
  • 计算机网络数据通信基础题,数据通信基础练习题(含答案)
  • 第二章数据通信基础(冲!)
  • 计算机网络-数据通信基础知识
  • 第二章 数据通信基础
  • 一文搞懂傅里叶级数与变换
  • 数据通信的基础知识(计算机网络 谢希仁)
  • 王道计算机网络 第二章 物理层
  • MATLAB制作mif文件——正弦信号发生器2
  • dsp_builder matlab 7.9 正弦信号发生器,基于Matlab/DSP Builder多波形信号发生器的设计...
  • 单片机正弦信号发生器示列
  • DDS信号源MATLAB,Xilinx-Verilog-学习笔记(19):正弦波信号发生器与DDS
  • DDS正弦信号发生器
  • matlab与FPGA联合产生一个正弦信号发生器(DDS原理介绍)
  • MATLAB制作mif文件——正弦信号发生器1
  • 正弦信号发生器的设计
  • 51单片机dds信号发生器 扫频 c语言,基于DDS正弦信号发生器设计.doc
  • C++入门(2)-类与对象
  • 正弦信号发生器C语言,正弦信号发生器c程序及解释(C program and explanation of sine signal generator).doc...
  • matlab firl,matlab 利用matlab工具箱函数fir1 联合开发网 - pudn.com
  • matlab 而且,MATLAB MATLAB是一种科学计算软件 联合开发网 - pudn.com
  • stokes方程matlab,Navier-Stokes matlab 238万源代码下载- www.pudn.com
  • contourlet matlab 源码,contourlet_toolbox matlab 238万源代码下载- www.pudn.com
  • myline java线段类,2008010 编写一个线段类 MyLine 联合开发网 - pudn.com
  • myline java线段类,MyLine 编写一个线段类 MyLine 联合开发网 - pudn.com
  • matlab seawater,seawater Matlab seawater工具包 联合开发网 - pudn.com
  • sou.php,phpsou RiSearchPHP是一个高效 联合开发网 - pudn.com
  • 无刷直流电机四象限matlab pudn,Matlabmodel 在分析无刷直流电机 BLDC 数学模型的基础上 提出了无刷直 联合开发网 - pudn.com...
  • adc matlab代码,pudn-几种ADC设计的matlab源码
  • php mui.picker,www MUI框架里边有很多例子教你如何使用 开发手机界面 WEB(ASP,PHP,...) 251万源代码下载- www.pudn.com...
  • matlab物探版,s4m matlab中画地震图件的子程序源代码,对物探人员很有用。 238万源代码下载- www.pudn.com...
  • osr matlab,DPD-Matlab-FPGA 好不容易找到的马岳林的 数字预失真 DPD仿真代码 包括 simulink 和 实现 275万源代码下载- www.pudn.com...
  • matlab bp结果,BP-networkmatlab BP神经网络实现手写数字识别,使用 。内有测试数据及实验结果,非常适合入门 276万源代码下载- www.pudn.com...
  • 登录会员管理系统java_huiyuan 会员管理,一款基于java web 的 软件,可以实现登录、注册、充值功能。 Jsp/Servlet 262万源代码下载- www.pudn.com...
  • 新闻更新php html,phphtml 新闻发布系统,运用php+mysql,里面包括数据库和php文件。 Other systems 其他 249万源代码下载- www.pudn.com...
  • gabor matlab pudn,matlab-Face-recognition 基于Gabor特征提取和人工智能的人脸检测系统 271万源代码下载- www.pudn.com...
  • 串口通讯 电脑和dsp_Sci 使用DSP2812的SCIA模块和PC机进行串口通信,用FIFO功能实现数据的发送和接受。 DSP program 261万源代码下载- www.pudn.com...
  • matlab 地震正演程序,seismic-forward 地球物理勘探中,基础的地震波正演模拟程序,包括五个 (高阶中心差分 matlab 266万源代码下载- www.pudn.com...
  • 地震勘探算法matlab,SeismicLab 地震勘探,matlab程序包, 地球物理, 学。作图工具等。 249万源代码下载- www.pudn.com...
  • 数据库的管理和维护
  • 二阶采样matlab程序,Sea-clutter-simulation 海杂波仿真程序,包括单基地雷达和双 的一阶、二阶 matlab 272万源代码下载- www.pudn.com...
  • cmi码型变换matlab程序,DDC 通信原理仿真 码型反变换的仿真实现 Ⅰ、基本任务:由抽样 联合开发网 - pudn.com...
  • PUDN
  • 下载代码去 pudn.com每个编程人员都需要的网站
  • pudn下载地址的规律
  • AM335x 通过GPMC 与 FPGA 之间通信
  • AM335x使用
  • am335x pll
  • am335x嵌入式开发-GPIO操作
  • AM335 嵌入式 linux,AM335X linux嵌入式平台can驱动移植
  • AM335X——1-Wire和IrDA驱动
  • am335x otg配置
  • am335x修改串口波特率
  • am335x linux源码,TI am335x sdk 自带linux源码下编译驱动出错解决办法
  • am335x LCD lvds VGA驱动调试
  • am335x usb linux配置,AM335X Usb 配置设备 RNDIS
  • AM335x评估板快速测试(3)
  • am335x linux内核烧写_am335x文件系统烧写问题
  • AM335X——SPI设备驱动
  • am335x linux修改ip,TI AM335x如何修改PHY及双网络
  • am335x linux 编译,TI am335x 内核源码编译命令等
  • am335x uboot移植
  • am335x linux内核烧写_AM335X uboot烧写
  • AM335X的汇编语言与c语言,AM335x的PRUSSv2简介与使用
  • am335x linux内核烧写_am335x 烧写 uboot
  • am335x linux 编译,** am335x中uboot的编译流程
  • AM335x开发板Linux,linux下am335x点亮LED
  • Linux下am335x的引脚配置
  • 工业级AM335X核心模块选型
  • AM335x(TQ335x)学习笔记——WM8960声卡驱动移植
  • AM335X ARM CORTEX-A8 微处理器技术参考手册 (中文版详解)1
  • AM335x SPL 代码分析
  • 命令关闭所有cmd窗口
  • Windows Cmd
  • Windows中CMD下如何查看文件MD5值
  • cmd启动浏览器
  • cmd中cd命令使用
  • cmd设置IP
  • cmd下使用ls命令
  • cmd破解wifi
  • cmd操作txt文件
  • cmd闪退
  • Python调用cmd
  • windows下CMD常用命令
  • CMD 十大危险指令
  • CMD切换用户
  • CMD权限不够怎么办
  • cmd5在线解密
  • C语言/实现MD5加密
  • STM32F4IO口模拟多个IIC方案
  • 51单片机12864串口硬件电路图和程序
  • 串口通信编程--多线程异步方式
  • 了解数据转换器错误及参数-AD转换设计中的基本问题整理
  • Delphi串口通信技术资料
  • 热门Java IDE——MyEclipse的数据库和持久化支持
  • 【全志T113-S3_100ask】8-USB串口获取GPS数据(含解析)
  • 基于WK2168的串口服务器设计方案
  • Camera 接口学习【转】
  • linux怎么安装pcie串口卡驱动,pci串口卡驱动是什么接口 pci串口卡驱动安装方法...
  • 关于各种串口
  • 区分:串口,COM口,UART,USART,RS232等等
  • STM32串口TTL和RS-232
  • p1口实验_【正点原子FPGA连载】第二章 实验平台简介-摘自【正点原子】开拓者 FPGA 开发指南...
  • 串口相关
  • 区分:串口,COM口,UART,USART
  • FPGA串口通信
  • 最常见接口与协议汇总之----RS485、RS232、RS422、Modbus RTU/TCP、 串口、并口、COM口、 TTL详解
  • (转载)PCI转并口 SJF 配置全过程
  • 行业便携终端串口扩展方案
  • PCI转并口 SJF 配置全过程
  • 什么是串并口硬盘 串口与并口硬盘的区别
  • 组态屏-笔记
  • 什么是组态屏
  • PLC组态
  • linux下组态软件,linux组态软件入门使用
  • Qt组态软件设计文章导航
  • 组态软件定义
  • 有哪些开源html5的组态软件,FScada组态软件
  • 组态王串口服务器通讯不稳定,组态王通信频繁掉线
  • 数仓建设教程
  • html组态插件_BY组态 插件 web组态 插件 物联网组态 插件
  • android 组态软件,Livzenwex安卓版组态软件
  • 在线组态工具 html,组态工具-界面组件
  • html组态插件_组态 web组态 组态插件 编辑器 工业组态 物联网组态 组态编辑器...
  • 适合python组态软件_组态软件心得体会
  • 组态中怎么使用mysql数据库,组态王写入MySQL数据库
  • 组态王图素制作_组态王主界面制作
  • 【工控入门】组态软件概念科普与基本构架描述
  • 组态王图素制作_组态王教程 很实用
  • 多比软件详细解读组态软件的构成,什么是组态软件?
  • java写组态_【Java】什么是云组态
  • WEB组态到底是个啥呢
  • 【串口屏基础知识分享】什么是指令集串口屏?什么是组态串口屏?
  • 什么是组态软件
  • 什么是云组态
  • 组态(Configuration)
  • 组态软件介绍
  • 什么是组态?组态的概念及发展趋势
  • 什么是组态
  • window.open一个新网页显示,已拦截此网页上的弹出式窗口
  • 浏览器插件:google浏览器允许弹出式窗口和重定向
  • 解决 Visual Studio Code terminal终端打开时为弹出式窗口问题
  • layui 实现点击弹出小窗口
  • java怎么弹出窗口_java怎么样实现弹出窗口
  • Jupyter Notebook弹出式窗口显示动图
  • 浏览器弹出阻止弹出式窗口怎么办,怎么设置浏览器不能访问的网址
  • 解决VSCode运行终端terminal为弹出式窗口
  • Android 中PopupWindow弹出式窗口的使用
  • 如何考察候选人 Vue 技术水平?
  • QT5 新建一个弹出式窗口
  • wincc 关闭弹出窗口C语言,退出WINCC操作画面时弹出对话框要求输入用户名和密码-工业支持中心-西门子中国...
  • Java Swing(九):弹出窗口
  • ABAP常用弹出窗口函数
  • matlab标弹出式菜单使用图行,MATLAB GUI设计之弹出式菜单的使用
  • 谷歌浏览器Google如何设置站点弹出窗口
  • html弹出式登录窗口(DIV悬浮窗口)实现
  • wincc关闭当前弹出窗口_wincc7.4弹出可关闭的画面除了用画面窗口做还有没有其他办法-工业支持中心-西门子中国...
  • python处理网页弹窗,用于处理弹出式浏览器窗口的Python webdriver
  • javafx弹出式窗口_JavaFX 8的弹出式编辑器
  • pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率
  • QT通过点击按钮弹出新的窗口(新建弹出式窗口)
  • android中弹出窗口,如何在Android中创建弹出窗口(PopupWindow)
  • 弹出式窗口详解
  • MFC创建弹出式的CWnd窗口
  • Qt弹出式窗口、Qt::popup闪退问题、设置窗口无焦点问题
  • 计算机设备图形符号,常用一次设备的图形符号和文字符号
  • 常见电容器图片_常用电容器的标识方法(图)
  • 贴片铝电容识别及型号_如何识别各种材质贴片电容
  • 电子电路学习笔记(2)——电容
  • 音响常用电解电容转发
  • 电容器的基础知识(1)
  • 3、电容器
  • 独石电容、瓷片电容、CBB电容、电解电容等各种电容相关知识
  • 电容器在电路中的作用(很全)
  • 【Linux】(五)GateWay远程开发方式-实验室服务器使用GateWay远程开发
  • 电容的分类
  • con 元器件符号_电子元器件常用的符号
  • 电解电容的ESR,想说三句话
  • IoT硬件-电容器
  • con 元器件符号_multisim元器件符号速查
  • 电容作用和选取
  • con 元器件符号_protel中常用元件电器符号
  • cad2017插入电气符号_电气电气CAD图形符号大全.pdf
  • con 元器件符号_PROTEUS中元器件符号
  • 电容知识点汇总
  • 数模电路基础知识 —— 3. 常见电路符号说明(电容、电阻、电感)
  • 常见电容器图片_电容的电路符号及图片识别
  • 电容大全
  • 电容详解
  • 电解电容的符号
  • kolla-ansible搭建 Openstack Yoga 版 ALLinone节点
  • allinone部署fate集群两方-1.9.0
  • 快速体验k8s集群的测试、开发环境--allinone部署
  • Hi3861_wifiiot_app_allinone.bin的烧录
  • kubeasz-2 kubeasz离线部署AllinOne K8S
  • 从零搭建云原生技术kubernetes(K8S)环境-通过kubesPhere的AllInOne方式
  • 生产环境中使用Kolla部署OpenStack-allinone云平台(红帽8版本)
  • 众至统一安全管理平台GuardIt AllInOne,一站式、轻量化、低成本、快接入
  • openstack --allinone
  • horizon创建实例(wallaby版本-allinone)
  • kubeasz-1 K8S AllinOne部署
  • ununtun18.04安装ns-allinone-2.35
  • fate AllinOne 安装遇到的问题
  • OpenStack(二)——使用Kolla部署OpenStack-allinone云平台
  • Openstack——allinone搭建(该文档基于Openstack Stein版本的All in One)
  • OpenStack-allinone安装(基于CentOS)
  • 彻底弄懂 Java 线程池原理
  • oVirt4.4单台主机Allinone部署(非HostedEngine方式)
  • packstack部署allinone
  • oVirt AllInOne
  • 搭建一套 Allinone 模式的 KubeSphere
  • Centos7 allinone方式安装openstack
  • OpenStack rdo一键allinone部署
  • AllinOne安装OpenStack
  • OpenStack-allinone-使用方法
  • (四)FATE框架AllinOne集群部署
  • Ubuntu 20.04 搭建OpenStack Yoga(allinone)
  • OpenStack(三)——allinone云平台的使用方法
  • 光耦4N33驱动继电器注意CTR参数
  • a4504光耦怎么检测好坏_怎样判断光耦的好坏
  • 高速光耦常用型号
  • 电子器件系列26:el 375n光耦 电气特性参数
  • 《光耦元器件》的特性分析
  • a4504光耦怎么检测好坏_贴片光耦怎么测量好坏,测量光耦好坏方法有哪些?
  • OCT1400 光耦参数测试仪
  • 光耦参数
  • 如何驱动光耦?计算相关参数?使电路正常工作
  • 简记_光耦的主要参数及应用
  • 数仓之范式
  • 光耦参数理解(转载)
  • vivo X9L的usb调试模式在哪里,开启vivo X9Lusb调试模式的流程
  • vivo X9s的USB调试模式在哪里,打开vivo X9sUSB调试模式的经验
  • android取消自动调试模式,安卓手机打开和关闭“USB调试”功能的方法
  • 手机无法弹出允许usb调试解决方法
  • chrome中usb调试手机不显示
  • 手机开发|USB调试时未弹出授权对话框
  • ImportError: cannot import name ‘xxx‘ from ‘xxx‘关于python导包的问题
  • 计算机丢失OX0000007B,win7系统开机蓝屏提示代码0x000007B的原因及解决方_博客
  • matlab 0x000007b,电脑蓝屏代码0x000007b,教您怎么办
  • win7电脑0x000007b蓝屏怎么办
  • 如何解决蓝屏代码0x000007B问题
  • win7蓝屏0x000000f4修复_关于电脑蓝屏代码0X000000F4的处理和预防方法
  • 计算机状态oxc0000001,0x0000001,教您怎么解决蓝屏故障0x0000001
  • 2016更改计算机名蓝屏,电脑蓝屏出现错误代码0x00000001的解决方法
  • wince蓝屏_win7电脑开机蓝屏提示错误代码0x0000000074
  • 系统遭遇STOP 0X0000007B蓝屏,附解决方案
  • win7蓝屏0x000000f4修复_关于电脑蓝屏代码0X000000F4的处理和预防
  • 计算机开机故障报错,电脑蓝屏报错0x0000004e怎么办_电脑开机蓝屏显示0x0000004e如何解决-win7之家...
  • win7蓝屏_WIN7蓝屏代码0X000000F4的处理和预防方法
  • 计算机蓝屏代码0x000000ED,电脑蓝屏代码0x000000ed的解决方法
  • 计算机蓝屏代码74,win7电脑开机蓝屏提示错误代码0x0000000074的解决办法
  • 计算机中Ox,0x000000116,详细教您解决电脑蓝屏代码0x000000116
  • 计算机状态oxc0000001,电脑蓝屏代码0x00000001解决方法
  • 服务器开机显示0x000000ca,使用电脑出现蓝屏代码0x000000CA故障该如何解决?
  • 因计算机丢失libapr然后蓝屏,如何修复蓝屏错误代码0x0000003b
  • c语言让系统蓝屏,0x000000116,教您解决电脑蓝屏代码0x000000116
  • win7启动出现蓝屏STOP: 0X0000007B
  • 联想服务器系统蓝屏,联想电脑蓝屏并提示“STOP:0X0000007B的原因分析和解决方法...
  • 蓝屏代码0x00000109 错误分析
  • 移动硬盘启动win7蓝屏7b_win7启动蓝屏0X0000007B代码的解决方法
  • Win7蓝屏代码 0x0000007B
  • 0x0000007b蓝屏的解决方法,怎么修复蓝屏问题?
  • 计算机蓝屏代码0x0000007b,开机出现蓝屏代码0X0000007B原因分析及解决方法
  • 2021-07-19C#CAD二次开发创建多线段
  • 关于unity用LineRenderer画图
  • Unity中LineRenderer相关知识点
  • Unity 基于LineRenderer组件实现连线功能
  • Unity中使用LineRenderer实现鼠标点击移动场景中画线
  • Unity3DUnity3D中LineRenderer的使用
  • 现代软件工程复习
  • 让微积分穿梭于工作与学习之间(15):圆弧直线的圆心,半径及其在趋于直线时的极限
  • 软件工程复习12:软件质量
  • 控制图纸多线相交交点凸起(Control PolyLine Bulge open and close )
  • Unity_MegaFiers_Bulge
  • bulge bracket 投行
  • 「GoCN酷Go推荐」​全文检索库bluge
  • 林伟 刘念《曾经爱过我》
  • 【评分】软件工程实践2017第一次作业-准备
  • 游戏夜读 | 刀塔选手比较老吗?
  • 博客版企划书(日不落战队)
  • 团队作业 - 项目验收与总结博客
  • 2017软工实践K班总结
  • diliucizuoye
  • 香港经典古装电视剧
  • 龙格现象 matlab,龙格现象matlab算法.doc
  • C语言循环结构作业总结
  • C语言分支/顺序作业总结
  • 阿里八八——预则立他山之石
  • 日期抽象数据类型设计与实现作业总结
  • 数据结构线性表博客作业总结
  • ZT 80-90年代港台300部电视剧 你看过多少?
  • 07-查找作业总结
  • 阿里八八“好记”测试报告
  • 阿里八八团队选题——做时间的智者
  • c语言第五次作业-指针-总结博客
  • 图作业总结
  • C语言第零次作业总结
  • 反应式架构:基本概念
  • Biotin-PEG2-alkyne|紫外线可裂解生物素-二聚乙二醇-炔烃|提供光谱图
  • 阿里八八“好记”——系统设计
  • 微电网重构|基于群稀疏性的机会约束微电网重构(Matlab代码和Python代码实现)
  • 2021年第一季度中国电竞行业网络关注度分析报告
  • 佟鑫 PHP,对话NB CEO佟鑫:引援、青训与轮换
  • 阿里八八Alapa事后诸葛亮
  • 史上最全最牛的XT800百科问答与使用指南
  • Mac查看jks签名文件信息
  • typecho修改分类
  • 葡萄酒酒进销存单机版_葡萄酒商人
  • python的第一篇文章
  • 如何编写可撤销的vba代码_编写可理解且可维护的VBA代码指南
  • kubernetes 机器_机器学习管道:设置本地Kubernetes
  • 介绍gruntwork模块服务和体系结构目录
  • mistake for/mix up/narrow down等动词词组
  • hapi.js_使用Hapi.js制作RESTful API
  • 艾伦图灵_艾伦唤醒控制
  • 文明4 java_文明4主题曲《Baba Yetu》(敬请关注中文歌词部分~)
  • cocos2d-x android 环境搭配,Cocos2d-x的android开发环境配置(Mac版)
  • two truths to live by——Hold fast, and let go
  • 比React—Redux和Redux好用100倍的原子级状态管理器,是我们公司自己封装的npm包,如果感兴趣可以研究研究,会大大提高开发效率
  • 查询隐藏的QQ
  • 让电脑不在卡顿
  • PHP获取QQ昵称和头像API
  • Vercel 部署静态页面教程
  • Flarum 宝塔完美迁移教程
  • 互联网小白拥有自己的博客
  • 英语第五次练习
  • 全国电子设计大赛资料打包网盘10G
  • 信号失真度测量装置(A 题)--2021 年全国大学生电子设计竞赛试题
  • 2017年全国大学生电子设计竞赛K题报告
  • 基于互联网的摄像测量系统(D 题)-- 2021 年全国大学生电子设计竞赛
  • 如何准备全国大学生电子设计大赛控制题?
  • 2021全国大学生电子设计竞赛F题(智能送药小车)国一赛后总结
  • 电子设计大赛-电源类题目分析
  • 2017全国大学生电子设计竞赛个人总结--B题滚球控制系统
  • 电子设计大赛-仪器仪表类题目分析
  • 电子设计大赛应该准备什么
  • 关于电子设计大赛
  • 2017 年全国大学生电子设计竞赛(本科组)题目√
  • 电子设计竞赛应该如何准备?
  • 19电子设计速成实战宝典pdf_Altium Designer 19(中文版) 电子设计速成实战宝典
  • 2021 全国大学生电子设计竞赛题目
  • 2019 全国大学生电子设计竞赛题目
  • 19电子设计速成实战宝典pdf_ALTIUMDESIGNER19(中文版)电子设计速成实战宝典
  • 电子设计竞赛(7)-2017年电赛A题:微电网模拟系统教程
  • 照度稳定可调 LED 台灯(K 题)【高职高专组】-- 2021 年全国大学生电子设计竞赛
  • 用电器分析识别装置(H 题)--2021 年全国大学生电子设计竞赛
  • iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入
  • 2021 年全国大学生电子设计竞赛实施过程说明
  • 2019电子设计大赛电磁曲射炮制作分享
  • 植保飞行器(G 题)--2021 年全国大学生电子设计竞赛
  • 2019电子设计大赛:纸张计数显示装置
  • 什么是全国大学生电子设计大赛?如何备战?
  • 电子电路设计
  • 电子初学者需要掌握的几款电子设计软件
  • 电子设计基础知识
  • 电脑计算机配置应用程序兼容性,电脑怎么打开兼容模式怎么办
  • android sdk版本与兼容,Android sdk版本以及兼容性问题
  • android兼容低版本方法,Android 应用程序向低版本兼容的问题
  • 计算机开机引导兼容模式,bios怎么设置ide兼容模式 bios设置ide兼容模式方法
  • 鸿蒙手机兼容安卓,鸿蒙系统能不能兼容安卓应用呢?兼容性怎么样?
  • 向前兼容与向后兼容
  • 游戏跟计算机不兼容,端游不兼容怎么解决
  • 汽车电磁兼容-中汽研电磁兼容室介绍
  • 索辰科技在科创板过会:拟募资金额有所下调,上半年亏损4000万元
  • html文档兼容模式,怎么取消兼容模式 excel出现兼容模式怎么取消
  • kotlin 不兼容java_Kotlin兼容性
  • matlab 兼容,matlab版本兼容问题
  • 前端 iOS 和 Android 的兼容问题
  • ie常见兼容性问题
  • 兼容产生的原因以及解决办法
  • 解决delphi7注册过期方法
  • 最新delphi7序列号和破解文件
  • DELPHI读取CPU的序列号
  • DELPHI利WMI获得硬盘参数
  • 【2.Delphi语法基础】7.程序异常处理
  • delphi 获取硬盘序列号、cpu号、bios号、网卡号
  • 安装delphi 10.4 社区版
  • Delphi利用字符串序列号对象
  • windows c语言 sata 序列号,【Delphi】获取IDE/SATA硬盘序列号
  • DELPHI获取硬盘、CPU、网卡序列号
  • Delphi 2009 安装序列号
  • DELPHI利用WMI获取主板参数
  • 获取CPU序列号的Delphi程序
  • Delphi XE7 下载 安装序列号 破解
  • Delphi 7序列号过期的解决方法
  • Spring Boot——日志文件
  • Delphi7 sn
  • MD5彩虹表
  • 2022最新彩虹表
  • 有一种攻击叫彩虹表攻击
  • 彩虹表rainbowtable
  • 【密码学】彩虹表
  • 深入理解 MD5 加密、彩虹表算法原理
  • 为什么说网上的md5加密解密站都是通过彩虹表解密的?
  • RainbowCrack:彩虹表进行口令破解
  • 1.4离线攻击工具:彩虹表破解
  • Ophcrack与彩虹表
  • 彩虹表的攻击与防御
  • Spark制作手机号md5彩虹表
  • 高效的彩虹表密码攻击法
  • 彩虹表
  • 网络安全 彩虹表 彩虹表破解 使用john
  • 密码学 / 什么是彩虹表?
  • 密码破解之王:Ophcrack彩虹表(Rainbow Tables)原理详解+120G彩虹表下载
  • 算法高级(23)-彩虹表(Rainbow Table)
  • 彻底搞懂彩虹表的实现原理
  • 【转载】pytorch 安装验证
  • 【转载】vue报错: error ‘xxx‘ is defined but never used no-unused-vars
  • OpenCV批量处理图片
  • OpenCV 鼠标点击获取像素坐标并写入txt文件
  • 【构建ML驱动的应用程序】第 11 章 :监控和更新模型
  • Python计算机视觉(一)
  • 图像到图像的映射
  • OpenCV 相机标定
  • 图像检索 Bag Of Features
  • javascript对象不完全探索记录05:小伙子,你对象咋来的?下篇 - 啥样的对象适合你...
  • 委托,匿名,lambda
  • ASP.NET MVC
  • javascript对象不完全探索记录03:小伙子,你对象咋来的?上篇
  • python中字典的一些tips
  • C++ Primer(第五版)课后习题记录 —— 第六章
  • [复试经验]2018届中科大考研面试过程
  • javascript对象不完全探索记录04:小伙子,你对象咋来的?中篇 - 现出你的原型!...
  • 尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版(一)
  • OpenCV+Python实现SIFT匹配地理标记图像
  • js计算两个yyy-MM-dd日期相差的天数
  • js获取当前时间 yyy-MM-dd hh:mm:ss
  • [xxx@yyy ~]$或者xxx@yyy:~$分别代表的意思
  • js new Date(yyy-MM-dd) getToday
  • 洛谷P2393 yyy loves Maths II
  • 【暑期每日一题】洛谷 P2393 yyy loves Maths II
  • 洛谷——P2393 yyy loves Maths II
  • P1803 凌乱的yyy / 线段覆盖(贪心)
  • 【题解】洛谷P2396 yyy loves Maths VII 状压DP
  • 【OpenCV-Python】教程:3-9 轮廓(5)轮廓层级
  • 洛谷-P1803-凌乱的yyy / 线段覆盖-(贪心)
  • 洛谷P1803凌乱的yyy
  • 凌乱的yyy
  • yyy loves Maths II
  • [Luogu P2396] yyy loves Maths VII
  • 贪心——凌乱的yyy / 线段覆盖
  • yyy送礼物
  • 洛谷 P2393 yyy loves Maths II
  • 【洛谷】P1803 凌乱的yyy / 线段覆盖
  • P2372 yyy2015c01挑战算周长
  • P2394 yyy loves Chemistry I
  • P2393 yyy loves Maths II
  • yyy
  • P1803 凌乱的yyy / 线段覆盖
  • 【洛谷】P1803 凌乱的yyy 题解
  • Labview项目经典压装机程序源码,经典框架,研华数据采集卡
  • (NI/研华)采集卡1ms以上采集程序,包括储存。 为保密只截图部分。 可配置采集参数,以曲线图显示实时数据。
  • 三菱plc+研华采集卡+上位机源码
  • C#工程源码,给客戶交付的设备源程序 和西门子1200P L C通讯,研华数据采集卡还有C A N通讯模块
  • 计算机控制系统实验报告matlab,计算机控制工程实验报告.pdf
  • 数据处理——时间戳处理
  • Qt环境下研华数据采集卡AI和DI应用于DemoDevice并显示的练习
  • 以PCI-1710为例,如何获取研华数据采集卡的驱动、SDK以及产品手册
  • matlab数据采集工具箱在,欢迎访问虹科 - 数据采集板 | 实时工具包 | Matlab工具包 | 控制系统教具...
  • VB.net 研华IO卡1762的编程方法 控件方法 VS2010专业版
  • PCIE版本CAN数据采集卡计算机启动无法正常工作
  • 用LabVIEW开发简仪USB101数据采集卡会是怎样的?
  • 研华USB4711A采集卡高速中断模式采集总结
  • LeetCode 84.柱状图中最大的矩形
  • matlab usb采集,MATLAB调用研华USB数据采集卡实现数据实时采集_董超.pdf
  • labview与研华采集卡应用中的问题
  • 研华采集卡参数说明
  • 研华 matlab,Advantech-monitoring 基于MATLAB与研华数据采集卡的测控应用程序代码 238万源代码下载- www.pudn.com...
  • 研华DAQ数据采集卡编程
  • “为lan使用代理服务器”总是不断地自动勾上,怎么取消?
  • 为什么要用代理服务器?
  • 树莓派 teamviewer 使用代理服务器上网
  • 使用代理服务器哪些风险?
  • 【Python】使用代理服务器访问网站
  • 判断网络是否使用代理服务器
  • CentOS7虚拟机网络设置及使用代理服务器
  • QQ如何设置使用代理服务器?
  • 谷歌浏览器:为LAN使用代理服务器变成灰色不可操作
  • Python之使用代理服务器访问网页
  • 电脑自动使用代理服务器导致无法上网
  • 使用css形变实现一个立方体
  • Ubuntu使用代理服务器上网
  • 代理服务器使用全攻略(转)
  • matlab中fir1滤波器阶数,选择滤波器的最小阶数.ppt
  • matlab的巴特沃斯滤波器,巴特沃斯滤波器滤波