des加密算法及实例,加密解密组件 支持版本: Delphi 4, 5, 6, 7 and 2005,2009 and Kylix 1 and 2 开源官方站点:http://www.cityinthesky.co.uk/ 支持加密算法: Blowfish Cast 128 Cast 256 DES, 3DES Ice, Thin Ice, Ice2 IDEA Mars Misty1 RC2, RC4, RC5, RC6 Rijndael (the new AES) Serpent Tea Twofish HASH算法: Haval MD4 MD5 RipeMD-128 RipeMD-160 SHA-1 SHA-256, SHA-384, SHA-512 Tiger
上传时间: 2016-01-19
上传用户:yanshf
#include "STC90.h" #include < intrins.h > #define uchar unsigned char #define uint unsigned int #define led_port P1 sbit IR_RE = P3^2; sbit led_r = P1^3; sbit led_g = P1^4; sbit led_b = P1^5; sbit led_wd = P1^7; sbit K1 =P3^0 ; //增加键 sbit K2 =P3^1 ; //减少键 sbit BEEP =P3^7 ; //蜂鸣器 uchar temp,temp1; bit k=0; //红外解码判断标志位,为0则为有效信号,为1则为无效 bit Flag2; uchar date[4]={0,0,0,0}; //date数组为存放地址原码,反码,数据原码,反码 uint lade_1,lade_2,lade_3,lade_4; uint num; uchar date_ram,ee_temp,ee_temp1; uchar WDT_NUM=0; uchar const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567 uchar code seg[]={7,6,5,4,3,2,1,0};//分别对应相应的数码管点亮,即位码 unsigned long disp_date; void fade(); void fade1(); /*************************** 看门狗子程序*************************/ void watchdog_timer() { if(WDT_NUM==5) { WDT_NUM=0; led_wd=!led_wd; } WDT_NUM++; WDT_CONTR=0x3f; } /******************************************************************/ void delay(unsigned int cnt) { while(--cnt); } /*--------------------------延时1ms程子程序-----------------------*/ void delay_1ms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=126;y>0;y--); } /*--------------------------延时1ms程子程序-----------------------*/ delay1000() { uchar i,j; i=5; do{j=95; do{j--;} while(j); i--; } while(i); } /*---------------------------延时882us子程序-----------------------*/ delay882() { uchar i,j; i=6; do{j=71; do{j--;} while(j); i--; }while(i); } /*--------------------------延时2400us程子程序-----------------------*/ delay2400() { uchar i,j; i=5; do{j=237; do{j--;} while(j); i--; }while(i); } /**********************************************************************/ /* void display() { uchar i; for(i=0;i<8;i++) { P0=dofly[disp_date%10];//取显示数据,段码 P2=seg[i]; //取位码 delay_1ms(1); disp_date/=10; } } */ /*********************************************************************/ uchar EEPROM_read(uint addr)//EEPROM字节读 { ISP_CONTR=0x83; //系统时钟<12M时,对ISP_CONTR寄存器设置的值,本电路为11.0592M ISP_CMD=1; //字节读 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); return ISP_DATA; } //-------------------------------------------------------------------- void EEPROM_write(uint addr,uchar dat)//EEPROM字节写 { ISP_CONTR=0x83; //系统时钟<12M时,对ISP_CONTR寄存器设置的值,本电路为11.0592M ISP_CMD=2; //字节编程 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_DATA=dat; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //-------------------------------------------------------------------- void EEPROM_ERASE(uint addr)//EEPROM扇区擦除 { ISP_CONTR=0x83; //系统时钟<12M时,对ISP_CONTR寄存器设置的值,本电路为11.0592M ISP_CMD=3; //扇区擦除 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //************************************************************** /*----------------------------------------------------------*/ /*-----------------------红外解码程序(核心)-----------------*/ /*----------------------------------------------------------*/ void IR_decode() { uchar i,j; while(IR_RE==0); delay2400(); if(IR_RE==1) //延时2.4ms后如果是高电平则是新码 { delay1000(); delay1000(); for(i=0;i<4;i++) { for(j=0;j<8;j++) { while(IR_RE==0); //等待地址码第1位高电平到来 delay882(); //延时882us判断此时引脚电平 ///CY=IR_RE; if(IR_RE==0) { date[i]>>=1; date[i]=date[i]|0x00; } else if(IR_RE==1) { delay1000(); date[i]>>=1; date[i]=date[i]|0x80; } } //1位数据接收结束 } //32位二进制码接收结束 } } /* void LED_PWM() { lade_2=num; //384 lade_4=num; //384 while(lade_2!=0&Flag2==1) { for(lade_3=512;lade_3>lade_4;lade_3--) //512 { led_port=0x00; delay(1); } lade_3=512; //512 lade_4--; for(lade_1=0;lade_1<lade_2;lade_1++) { led_port=0x38; //c7 delay(1); } lade_1=0; lade_2--; if(temp!=0x0c&Flag2==1) { lade_2=0; } lade_2=num; //384 lade_4=num; //384 } } */ void calc() { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; //************************************* 1 /* if(date[3]==0xff&Flag2==1) { if(num>=20) { num=num-80; } //else num=1; LED_PWM(); } if(date[3]==0xfe&Flag2==1) { if(num<=500) { num=num+80; } // else num=511; LED_PWM(); } if(ee_temp1==0xfd) { led_port=0x00; watchdog_timer(); } if(ee_temp1==0xfc) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } */ //********************************************** 2 if(ee_temp1==0xfb) { led_port=0x00; led_r=1; watchdog_timer(); } if(ee_temp1==0xfa) { led_port=0x00; led_g=1; watchdog_timer(); } if(ee_temp1==0xf9) { led_port=0x00; led_b=1; watchdog_timer(); } if(ee_temp1==0xf8) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } //************************************** 3 if(ee_temp1==0xf7) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x07) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x07) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf6) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x06) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x06) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf5) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x05) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x05) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf4) { while(ee_temp==4) { led_port=0x00; led_r=1; delay_1ms(200); led_port=0x00; led_r=1; led_g=1; delay_1ms(200); led_port=0x00; led_g=1; delay_1ms(200); watchdog_timer(); led_port=0x00; led_g=1; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; led_r=1; delay_1ms(200); watchdog_timer(); } } //************************************** 4 if(ee_temp1==0xf3) { uint fade_1,fade_2,fade_3,fade_4; fade_2=416; //384 fade_4=416; //384 while(fade_2!=0&ee_temp==0x03) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x03) { fade_2=0; } watchdog_timer(); fade_2=416; //384 fade_4=416; //384 } } if(ee_temp1==0xf2) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x02) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x02) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xf1) { uint fade_1,fade_2,fade_3,fade_4; fade_2=348; //384 fade_4=348; //384 while(fade_2!=0&ee_temp==0x01) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x01) { fade_2=0; } watchdog_timer(); fade_2=348; //384 fade_4=348; //384 } } if(ee_temp1==0xf0) { while(ee_temp==0) { led_port=0x00; led_r=1; delay_1ms(500); watchdog_timer(); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); watchdog_timer(); } } //******************************************** 5 if(ee_temp1==0xef) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x0f) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0f) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xee) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0e) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0e) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xed) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0d) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0d) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xec) fade(); //******************************************* 6 if(ee_temp1==0xeb) { led_port=0x00; led_r=1; led_g=1; watchdog_timer(); } if(ee_temp1==0xea) { led_port=0x00; //led_r=0; led_g=1; led_b=1; watchdog_timer(); } if(ee_temp1==0xe9) { led_port=0x00; led_r=1; //led_g=0; led_b=1; watchdog_timer(); } if(ee_temp1==0xe8) fade1(); } void fade() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0c) { fade_2=0; } } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); // watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); // watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); } void fade1() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x08) { fade_2=0; } } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); } void init() { led_port=0x00; /* led_r=1; delay_1ms(500); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); led_port=0x00; */ delay_1ms(2); WDT_CONTR=0x3f; delay_1ms(500); } //******************************** void main() { init(); Flag2=0; SP=0x60; //堆栈指针 EX0=1; //允许外部中断0,用于检测红外遥控器按键 EA=1; num=255; while(1) { calc(); } } //******************************************************************** /*------------------------外部中断0程序-------------------------*/ /*------------------主要用于处理红外遥控键值--------------------*/ void int0() interrupt 0 { uchar i; Flag2=0; /////// k=0; EX0=0; //检测到有效信号关中断,防止干扰 for(i=0;i<4;i++) { delay1000(); if(IR_RE==1){k=1;} //刚开始为9ms的引导码. } led_port=0x00; if(k==0) { IR_decode(); //如果接收到的是有效信号,则调用解码程序 if(date[3]>=0xe8) { if(date[3]<=0xfb) { temp1=date[3]; EEPROM_ERASE(0x2000); //STC_EEROM_0X2000 temp1 EEPROM_write(0x2000,temp1); EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; /* temp=date[3]&0x0f; EEPROM_ERASE(0x2004); //STC_EEROM_0X2004 temp EEPROM_write(0x2004,temp); */ } else { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; } } delay2400(); delay2400(); delay2400(); delay_1ms(500); } EX0=1; //开外部中断,允许新的遥控按键 }
上传时间: 2016-07-02
上传用户:184890962
ddsp,实验指导书sp,实验指导书dsp,实验指导书dsp,实验指导书dsp,实验指导书dsp,实验指导书
上传时间: 2017-02-24
上传用户:mzy223
Optical wireless communication is an emerging and dynamic research and development area that has generated a vast number of interesting solutions to very complicated communication challenges. For example, high data rate, high capacity and minimum interference links for short-range communication for inter-building communication, computer-to-computer communication, or sensor networks. At the opposite extreme is a long-range link in the order of millions of kilometers in the new mission to Mars and other solar system planets.
标签: Communication Wireless Optical Systems
上传时间: 2020-05-31
上传用户:shancjb
SP协议最早由是由 MMUSIC ETI工作组在1995年研究的,由T组织在1999年提议成为的一个标准。SP主要借鉴了Web网的HTP和SMTP两个协议3GPPR5/R6的MS子系统采用SP。3GPP制定的MS子系统相关规范推动了SP的发展。lETF提出的P电话信令协议基于文本的应用层控制协议独立于底层协议,可以使用TCP或UDP传输协议用于建立、修改和终止一个或多个参与者的多媒体会话。SIP协议是应用层控制(信令)协议SIP协议支持代理、重定向、登记定位等功能,支持用户移动。SIP协议和其他协议一起给用户提供完整的服务,包括:RSP(资源预留协议)RTP(实时传输协议)RTSP(实时流协议)SAP(会话通告协议)SDP(会话描述协议)SIP支持以下五方面的能力来建立和终止多媒体通讯用户定位:确定通信所用的端系统位置用户能力交换:确定所用的媒体类型和媒体参数用户可用性判定:确定被叫方是否空闲和是否愿意加入通信呼叫建立:邀请和提示被叫,在主被叫之间传递呼叫参数呼叫处理:包括呼叫终结和呼叫转交Proxy代理服务器》为其它的客户机代理,进行SP消息的转接和转发的功能。消息机制与UAC和UAS相似》对收到的请求消息进行翻译和处理后,传递给其他的服务器》对SP请求及响应进行路由■重定向服务器》接收S|P请求,把请求中的原地址映射为零个或多个地址,返回给客户机,客户机根据此地址重新发送请求》重定向服务器不会发起自己的呼叫(不发送请求,通过3x响应进行重定向)》重定向服务器不接收呼叫终止,也不主动终止呼叫
标签: sip协议
上传时间: 2022-03-30
上传用户:kent
目前cPU+ Memory等系统集成的多芯片系统级封装已经成为3DSiP(3 Dimension System in Package,三维系统级封装)的主流,非常具有代表性和市场前景,SiP作为将不同种类的元件,通过不同技术,混载于同一封装内的一种系统集成封装形式,不仅可搭载不同类型的芯片,还可以实现系统的功能。然而,其封装具有更高密度和更大的发热密度和热阻,对封装技术具有更大的挑战。因此,对SiP封装的工艺流程和SiP封装中的湿热分布及它们对可靠性影响的研究有着十分重要的意义本课题是在数字电视(DTV)接收端子系统模块设计的基础上对CPU和DDR芯片进行芯片堆叠的SiP封装。封装形式选择了适用于小型化的BGA封装,结构上采用CPU和DDR两芯片堆叠的3D结构,以引线键合的方式为互连,实现小型化系统级封装。本文研究该SP封装中芯片粘贴工艺及其可靠性,利用不导电胶将CPU和DDR芯片进行了堆叠贴片,分析总结了SiP封装堆叠贴片工艺最为关键的是涂布材料不导电胶的体积和施加在芯片上作用力大小,对制成的样品进行了高温高湿试验,分析湿气对SiP封装的可靠性的影响。论文利用有限元软件 Abaqus对SiP封装进行了建模,模型包括热应力和湿气扩散模型。模拟分析了封装体在温度循环条件下,受到的应力、应变、以及可能出现的失效形式:比较了相同的热载荷条件下,改变塑封料、粘结层的材料属性,如杨氏模量、热膨胀系数以及芯片、粘结层的厚度等对封装体应力应变的影响。并对封装进行了湿气吸附分析,研究了SiP封装在85℃RH85%环境下吸湿5h、17h、55和168h后的相对湿度分布情况,还对SiP封装在湿热环境下可能产生的可靠性问题进行了实验研究。在经过168小时湿气预处理后,封装外部的基板和模塑料基本上达到饱和。模拟结果表明湿应力同样对封装的可靠性会产生重要影响。实验结果也证实了,SiP封装在湿气环境下引入的湿应力对可靠性有着重要影响。论文还利用有限元分析方法对超薄多芯片SiP封装进行了建模,对其在温度循环条件下的应力、应变以及可能的失效形式进行了分析。采用二水平正交试验设计的方法研究四层芯片、四层粘结薄膜、塑封料等9个封装组件的厚度变化对芯片上最大应力的影响,从而找到最主要的影响因子进行优化设计,最终得到更优化的四层芯片叠层SiP封装结构。
标签: sip封装
上传时间: 2022-04-08
上传用户:
统计学习基础:数据挖掘、推理与预测介绍了这些领域的一些重要概念。尽管应用的是统计学方法,但强调的是概念,而不是数学。许多例子附以彩图。《统计学习基础:数据挖掘、推理与预测》内容广泛,从有指导的学习(预测)到无指导的学习,应有尽有。包括神经网络、支持向量机、分类树和提升等主题,是同类书籍中介绍得最全面的。计算和信息技术的飞速发展带来了医学、生物学、财经和营销等诸多领域的海量数据。理解这些数据是一种挑战,这导致了统计学领域新工具的发展,并延伸到诸如数据挖掘、机器学习和生物信息学等新领域。许多工具都具有共同的基础,但常常用不同的术语来表达。【内容推荐】《统计学习基础:数据挖掘、推理与预测》试图将学习领域中许多重要的新思想汇集在一起,并且在统计学的框架下解释它们。随着计算机和信息时代的到来,统计问题的规模和复杂性都有了急剧增加。数据存储、组织和检索领域的挑战导致一个新领域“数据挖掘”的产生。数据挖掘是一个多学科交叉领域,涉及数据库技术、机器学习、统计学、神经网络、模式识别、知识库、信息提取、高性能计算等诸多领域,并在工业、商务、财经、通信、医疗卫生、生物工程、科学等众多行业得到了广泛的应用。【作者简介】Trevor Hastie,Robert Tibshirani和Jerome Friedman都是斯坦福大学统计学教授,并在这个领域做出了杰出的贡献。Hastie和Tibshirani提出了广义和加法模型,并出版专著“Generalized Additive Models”。Hastie的主要研究领域为:非参数回归和分类、统计计算以及生物信息学、医学和工业的特殊数据挖掘问题。他提出主曲线和主曲面的概念,并用S-PLUS编写了大量统计建模软件。Tibshirani的主要研究领域为:应用统计学、生物统计学和机器学习。他提出了套索的概念,还是“An Introduction to the Bootstrap”一书的作者之一。Friedman是CART、MARS和投影寻踪等数据挖掘工具的发明人之一。他不仅是位统计学家,而且是物理学家和计算机科学家,先后在物理学、计算机科学和统计学的一流杂志上表发论文80余篇。
标签: 统计
上传时间: 2022-05-04
上传用户:
Spi接口是一种外围串行接口,主要由四根线组成:SDI(数据输入),sDO(数据输出).SCK(时钟),cs(片选)。(1)SDO主机输出/从机输入。(2)SDI主机输入/从机输出。(3)SCK-时钟信号,由主设备产生。(4)cs-从设备使能信号,由主设备控制。在一个基于SPT的设备中,至少有一个主控设备。与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SP的数据输入和输出线独立,所以允许同时完成数据的输入和输出。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,工作简单高效。然而SPI接口也有缺点:没有指定的流控制,没有应答机制确认是否接收到数据。SPI通讯是通过数据交换完成的。在主机提供的时钟脉冲SCK下,SDI,SDO完成数据传输。数据输出通过SDO线,在SCK时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被从机读取,完成一位数据传输。输入情况同理。因此,在至少8次时钟信号的改变(上沿和下沿为一次),可以完成8位数据的传输。
上传时间: 2022-06-20
上传用户:
本章参考资料《CM3 权威指南CnR2》第三章: Cortex-M3 基础,第四章:指令集。官方暂时没有《CM4 权威指南》,有关内核的部分暂时只能参考CM3,所幸的是CM4 跟CM3 有非常多的相似之处,资料基本一样。还有一个资料是ARM Development Tools:这个资料主要用来查询ARM 的汇编指令。1.1 启动文件简介启动文件由汇编编写,是系统上电复位后第一个执行的程序。主要做了以下工作:1、初始化堆栈指针SP=_initial_sp2、初始化PC 指针=Reset_Handler3、初始化中断向量表4、配置系统时钟5、调用C 库函数_main 初始化用户堆栈,从而最终调用main 函数去到C 的世界1.2 查找ARM 汇编指令在讲解启动代码的时候,会涉及到ARM 的汇编指令和Cortex 内核的指令,有关Cortex 内核的指令我们可以参考CM3 权威指南CnR2》第四章:指令集。剩下的ARM 的汇编指令我们可以在MDK->Help->Uvision Help 中搜索到,以EQU 为例,检索如下:
标签: stm32
上传时间: 2022-06-23
上传用户:aben
第一章引言目前基于单片微机的语音系统的应用越来越广泛,如电脑语音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等等。本文作者用Flash单片机ANT89C51和录放时间达90%的数码语音芯片ISD2590设计了一套智能语音录放系统,实现了谱音的分段录取、组合回放,整段录取.循环播放,通过软件修改可以实现很多场合的应用。第二章ISD2590语音芯片本系统采用关国ISD公司的ISD2590芯片,ISD2500系列具有抗断电、音质好,使用方便等优点。它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10个地址输入端(1400系列仅为8个),寻址能力可达1024位;最多能分600段;设有OVF(溢出)端,便于多个器件级联。2.1内部框图图2-1为ISD2590芯片的内部结构框图。录音时,语音信号从MIC,MICREF(17,18)引聊输入,经过一个前置放大器放大,该放大器的增益由AGC(Auto Gain Control,19)引脚所接的器件的伯控制。经放大的信号从ANAOUT脚输出,经过阻容注被后ANAIN进入芯片内部。然后经过放大和滤波后存入EEPROM阵列中,放音时,在正确的时序控制的前提下,声音信号将从EEPROM中经滤波放大后从SP+,SP一中输出。
上传时间: 2022-06-24
上传用户:1208020161