intmain(void){delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级uart_init(115200);//串口初始化为115200LED_Init();//初始化与LED连接的硬件接口TM1637_Init();while(1){delay_ms(1);//延时1msTM1637_NixieTubeDisplay();TM1637_NixieTubeDisplayChar(1,0);//第一位显示1TM1637_NixieTubeDisplayChar(2,1);//第二位显示2TM1637_NixieTubeDisplayChar(3,2);//第三位显示3TM1637_NixieTubeDisplayChar(4,3);//第四位显示4}}
2024/6/28 16:21:43 2.55MB STM32 TM1637 四段数码管
1
1.VB编写的自动化控制上位机,包含手动、自动控制,内有自动控制流程,其中自动控制有报警机制,在员工失误操作或外部异常时报警,如气缸感应器异常或员工物料未放置正确报警提示。
2.该程序是控制一套夹具动作的程序,动作较简单,但整个程序结构完整,适合学VB不久,或者会VB,但不会使用VB编写工业自动化控制的,可作参考。
3.采用TIMER双线程,一线程读取IO模块的输入输出状态,另一线程利用DELAY延时来进行自动化动作控制。
说明:此夹具已经上线使用一年,一切正常。
该VB程序的下位机为控汇的串口IO开发模块使用(5输入4输出),直接控制气缸等动作,省去电箱和触摸屏。
该程序可与此模块配合使用,或者自己外接其它作调试程序参考用。
2024/5/14 19:02:45 217KB VB工业控制 VB控制源码 多线程
1
#include//单片机51头文件,存放着单片机的寄存器#include//为了使用空指令加载的头文件charcodestr[]="www.22sky.com\n";voidsend_str();//用到函数声明,注册函数voiddelayms(unsignedcharms);//用到函数声明,注册函数voidsend_char(unsignedchartxd);//用到函数声明,注册函数main(){
1
MIMOOFDMSimulator:OFDM.m:OFDMSimulator(outerfunction)create_channel.m:GeneratesaRayleighfadingfrequency-selectivechannel,parametrizedbytheantennaconfiguration,theOFDMconfiguration,andthepower-delayprofile.svd_decompose_channel.m:Sincefullchannelknowledgeisassumed,transmissionisacrossparallelsingularvaluemodes.Thisfunctiondecomposesthechannelintothesemodes.BitLoad.m:Applythebit-loadingalgorithmtoachievethedesiredbitandenergyallocationforthecurrentchannelinstance.ComputeSNR.m:Giventhesubcarriergains,thissimplefunctiongeneratestheSNRvaluesofeachchannel(eachsingularvalueoneachtoneisaseparatechannel).chow_algo.m:ApplyChow'salgorithmtogenerateaparticularbitandenergyallocation.EnergyTableInit.m:GiventheSNRvalues,formatableofenergyincrementsforeachchannel.campello_algo.m:ApplyCampello'salgorithmtoconvergetotheoptimalbitandenergyallocationforthegivenchannelconditions.ResolvetheLastBit.m:Anoptimalbit-loadingofthelastbitrequiresauniqueoptimization.modulate.m:Modulatetherandominputsequenceaccordingtothebitallocationsforeachchannel.ENC2.mat:BPSKModulatorENC4.mat:4-QAMModulator(Graycoded)ENC16.mat:16-QAMModulator(Graycoded)ENC64.mat:64-QAMModulator(Graycoded)ENC256.mat:256-QAMModulator(Graycoded)precode.m:Precodethetransmittedvectorateachtimeinstancebyfilteringthemodulatedvectorwiththeright-inverseofthechannel'srightsingluarmatrix.ifft_cp_tx_blk.m:IFFTblockoftheOFDMsystem.channel.m:ApplythechanneltotheOFDMframe.fft_cp_rx_blk.m:FFTblockoftheOFDMsystem.shape.m:Completethediagonalizationofthechannelbyfilteringthereceivedvectorwiththeleft-inverseofthechannel'sleftsingularmatrix.demodulate.m:Performanearestneighborsearchknowingthetransmitconstellationused.
2024/5/11 19:05:15 1.65MB OFDM-MIMO,matlab,
1
MagicaCloth1.8.0是革命性的高速布料服饰模拟系统插件游戏素材,区别于ObiCloth之类的旧插件,这是完全由Jobs+Burst驱动的高速实现方式(支持除WebGL之外的全平台),解决了布料模拟系统性能沉重的最大弊端,因此在同样的性能开销下可提供更逼真、生动的模拟效果。
AddedSurfacePenetration/ColliderPenetrationsystem!AddedDelayedexecutionsystem!AddedDressupsystem!AddedWindcontrol!SupportforUnity2018
2024/4/20 6:15:09 391B unity magicacloth 布料
1
#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLED_DATP0sbitLED_SEG0=P2^7;sbitLED_SEG1=P2^6;sbitLED_SEG2=P2^5;sbitLED_SEG3=P2^4;#defineTIME_CYLC100//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100#definePLUS_PER10//码盘的齿数,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈#defineK1.65//校准系数unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchardataDisbuf[4];//显示缓冲区uintTcounter=0;//时间计数器bitFlag_Fresh=0;//刷新标志bitFlag_clac=0;//计算转速标志bitFlag_Err=0;//超量程标志voidDisplayFresh();//在数码管上显示一个四位数voidClacSpeed();//计算转速,并把结果放入数码管缓冲区voidinit_timer();//初始化定时器T0\T1voidDelay(uintms);//延时函数voidit_timer0()interrupt1/*interruptaddressis0x000b*/{TF0=0;//定时器T0用于数码管的动态刷新TH0=0xC0;TL0=0x00;Flag_Fresh=1;Tcounter++;if(Tcounter>TIME_CYLC){Flag_clac=1;//周期到,该重新计算转速了}}voidit_timer1()interrupt3/*interruptaddressis0x001b*/{TF1=0;//定时器T1用于单位时间内收到的脉冲数//要速度不是很快,T1永远不会益处Flag_Err=1;//如果速度很高,我们应考虑另外一种测速方法:T测速法}voidmain(void){Disbuf[0]=0;//开机时,初始化为0000Disbuf[1]=0;Disbuf[2]=0;Disbuf[3]=0;init_timer();while(1){if(Flag_Fresh){Flag_Fresh=0;DisplayFresh();//定时刷新数码管显示}if(Flag_clac){Flag_clac=0;ClacSpeed();//计算转速,并把结果放入数码管缓冲区Tcounter=0;//周期定时清零TH1=TL1=0x00;//脉冲计数清零}if(Flag_Err)//超量程处理{Disbuf[0]=0x9e;//开机时,初始化为0000Disbuf[1]=0x9e;Disbuf[2]=0x9e;Disbuf[3]=0x9e;while(1){DisplayFresh();//不再测速等待复位i}}}}//在数码管上显示一个四位数voidDisplayFresh(){P2|=0xF0;LED_SEG0=0;LED_DAT=table[Disbuf[0]];Delay(1);P2|=0xF0;LED_SEG1=0;LED_DAT=table[Disbuf[1]];Delay(1);P2|=0xF0;LED_SEG2=0;LED_DAT=table[Disbuf[2]];Delay(1);P2|=0xF0;LED_SEG3=0;LED_DAT=table[Disbuf[3]];Delay(1);P2|=0xF0;}//计算转速,并
2024/3/2 19:19:54 400KB 光电传感器、测速、protus、pcb
1
实验七Java多线程一、实验目的:熟悉利用Thread类建立多线程方法。
熟悉利用Thread接口建立多线程方法。
二、实验内容:1.阅读下列程序,分析并上机检验其功能。
classDelayThreadexendsThread{privatestaticintcount=0;privateintno;privateintdelay;publicDelayThread(){count++;no=count;}publicvoidrun(){try{for(inti=0;i<10;i++){delay=(int)(Math.random()*5000);sleep(delay);System.out.println(“Thread”+no+”withadelay”+delay);}}catch(InterruptedExceptione){}}}publicclassMyThread{publicstaticvoidmain(Stringargs[]){DelayThreadthread1=newDelayThread();DelayThreadthread2=newDelayThread();thread1.start();thread2.start();try{Thread.sleep(1000);}catch(InterruptedExceptione){System.out.println(“Threadwrong”);}}}2.讲上列程序利用Runnable接口改写,并上机检验。
3.利用多线程编写一个模拟时钟(AWT程序、Runnable接口),有时/分/秒针编写一个应用程序,创建三个线程分别显示各自的时间。
三、实验要求:1.通过实验掌握Thread、Runnable使用方法;
2.程序必须能够实现多线程;
3.程序必须能够完成题目要求;
4.写出实验报告。
四、实验步骤:首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。
通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
2024/2/26 3:55:02 2KB JAVA
1
%Time-FrequencyToolbox.%Version1.0January1996%Copyright(c)1994-96byCNRS(France)-RICEUniversity(USA).%%SignalGenerationFiles%%sigmerge-AddtwosignalswithgivenenergyratioindB.%%ChoiceoftheInstantaneousAmplitude%amexpo1s-Generateone-sidedexponentialamplitudemodulation.%amexpo2s-Generatebilateralexponentialamplitudemodulation.%amgauss-Generategaussianamplitudemodulation.%amrect-Generaterectangularamplitudemodulation.%amtriang-Generatetriangularamplitudemodulation.%%ChoiceoftheInstantaneousFrequency%fmconst-Signalwithconstantfrequencymodulation.%fmhyp-Signalwithhyperbolicfrequencymodulation.%fmlin-Signalwithlinearfrequencymodulation.%fmodany-Signalwitharbitraryfrequencymodulation.%fmpar-Signalwithparabolicfrequencymodulation.%fmpower-Signalwithpower-lawfrequencymodulation.%fmsin-Signalwithsinusoidalfrequencymodulation.%gdpower-Signalwithapower-lawgroupdelay.%%ChoiceofParticularSignals%altes-Altessignalintimedomain.%anaask-AmplitudeShiftKeyed(ASK)signal.%anabpsk-BinaryPhaseShiftKeyed(BPSK)signal.%anafsk-FrequencyShiftKeyed(FSK)signal.%anapulse-Analyticprojectionofunitamplitudeimpulsesignal.%anaqpsk-QuaternaryPhaseShiftKeyed(QPSK)signal.%anasing-Lipschitzsingularity.%anastep-Analyticprojectionofunitstepsignal.%atoms-LinearcombinationofelementaryGaussianwavepackets.%dopnoise-GeneratecomplexDopplerrandomsignal.%doppler-GeneratecomplexDopplersignal.%klauder-Klauderwaveletintimedomain.%mexhat-Mexicanhatwaveletintimedomain.%tftb_window-Windowgeneration(previouslywindow.m).%%AdditionofNoise%noisecg-Analyticcomplexgaussiannoise.%noisecu-Analyticcomplexuniformnoise.%%Modification%s
2024/2/8 14:54:52 17KB matlab FRFT 分数阶 分数阶傅里叶
1
//***************************************************voidSingle_Write_HMC5883(ucharREG_Address,ucharREG_data){HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(REG_Address);//内部寄存器地址,请参考中文pdfHMC5883_SendByte(REG_data);//内部寄存器数据,请参考中文pdfHMC5883_Stop();//发送停止信号}//********单字节读取内部寄存器*************************ucharSingle_Read_HMC5883(ucharREG_Address){ucharREG_data;HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(REG_Address);//发送存储单元地址,从0开始HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress+1);//发送设备地址+读信号REG_data=HMC5883_RecvByte();//读出寄存器数据HMC5883_SendACK(1);HMC5883_Stop();//停止信号returnREG_data;}//******************************************************////连续读出HMC5883内部角度数据,地址范围0x3~0x5////******************************************************voidMultiple_read_HMC5883(void){uchari;HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress);//发送设备地址+写信号HMC5883_SendByte(0x03);//发送存储单元地址,从0x3开始HMC5883_Start();//起始信号HMC5883_SendByte(SlaveAddress+1);//发送设备地址+读信号for(i=0;i<6;i++)//连续读取6个地址数据,存储中BUF{BUF[i]=HMC5883_RecvByte();//BUF[0]存储数据if(i==5){HMC5883_SendACK(1);//最后一个数据需要回NOACK}else{HMC5883_SendACK(0);//回应ACK}}HMC5883_Stop();//停止信号Delay5ms();}//初始化HMC5883,根据需要请参考pdf进行修改****voidInit_HMC5883(){Single_Write_HMC5883(0x02,0x00);//}
2024/2/2 6:29:11 73KB HMC5883L QMC5883L
1
uchara[]="温湿度传感器";ucharb[]="温度:";ucharc[]="湿度:";uchard[]="0123456789";typedefunsignedcharU8;typedefunsignedintU16;U8U8flag,k;U8U8temp;U8U8WD_H,U8WD_L,U8SD_H,U8SD_L,U8checkdata;U8U8WDH_temp,U8WDL_temp,U8SDH_temp,U8SDL_temp,U8checkdata_temp;U8U8comdata;voiddelay_1ms(uintn){uinti,j;for(i=0;i<=n;i++)for(j=0;j<110;j++);}voiddelay_10us(){U8i;i--;i--;i--;i--;i--;i--;}voidwrite_com(ucharcom){rs=0;rw=0;en=0;P2=com;delay_1ms(1);en=1;delay_1ms(1);en=0;}voidwrite_data(uchardate){rs=1;rw=0;en=0;P2=date;delay_1ms(1);en=1;delay_1ms(1);en=0;}voidpos(ucharx,uchary){ucharpos;if(x==0)x=0x80;elseif(x==1)x=0x90;elseif(x==2)x=0x88;elseif(x==3)x=0x98;pos=x+y;write_com(pos);}voiddisplay(U8WD_H,U8WD_L,U8SD_H,U8SD_L){U8yi,er,san,si;yi=U8WD_H/10;er=U8WD_H;san=U8SD_H/10;si=U8SD_H;pos(1,4);write_data(d[yi]);pos(1,5);write_data(d[er]);pos(2,4);write_data(d[san]);pos(2,5);write_data(d[si]);}voidcom(){U8i;for(i=0;i<8;i++){U8flag=2;while((!SJK)&&U8flag++);delay_10us();delay_10us();delay_10us();U8temp=0;if(SJK)U8temp=1;U8flag=2;while((SJK)&&U8flag++);if(U8flag==1)break;U8comdata<<=1;U8comdata|=U8temp;}}
2024/1/28 1:02:12 26KB DHT11
1
共 56 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡