Turbo码是一种低信噪比条件下也能达到优异纠错性能的信道编码。早期为了强调Turbo码接近香农限的优异性能,研究的码字长度非常大[1~2],存在译码复杂度大、译码时延长等问题。突发数据通信以传输中小长度的数据报文业务为主,所以突发通信中的Turbo码的码长也是中等长度以下的。本文面向突发数据通信中的信道编码应用,研究了短帧长Turbo码编译码算法的FPGA实现。实现中采用了优化的编译码算法,以降低译码复杂度和译码延时。最后仿真和测试了Turbo译码器的纠错性能和吞吐量。
上传时间: 2013-12-09
上传用户:yuchunhai1990
摘要: 本文介绍了利用A3955对步进电机实现控制的方法及其电路设计。关键词: 步进电机;PIC16C621A; A3955;脉宽调制 步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。 步进电机控制步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机制。步进电机可分为反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。就转动一个角度,因此非常适合于单片机控。
上传时间: 2013-12-05
上传用户:lionlwy
做看门狗应用实验时不能用51单片机仿真模块或51单片机仿真器,因为仿真模块或仿真器都占用串口资源。在while循环语句中应用喂狗延时程序,单片机不会复位,蜂鸣器响一声。
上传时间: 2014-11-28
上传用户:qweqweqwe
进行键盘扫描及键处理时,在程序中直接调用函数KeyProcess()即可。键处理函数原 型声明在头文件Key.h中,键处理函数可放在程序的任何地方,一个按键对应一个处理函 数。 该键盘扫描程序去抖动为什么不需软件延时?因为从无按键到键被按下,要进行两次 扫描,此间相当于延时去抖动。 该键盘扫描程序还有一特色:用二维数组进行按键功能处理,使程序更简单。 /*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 矩阵键盘键值扫描,功能处理函数 本程序处理4*4的矩阵键盘,直接用于8051系列单片机,也可移植到其它机型. 行输出在P1口高四位 列输入在P1口低四位,如果不同,则需修改键值读取函数 即:GetKeyCode() 有10个数字键0--9,1个小数点,1个负号键。 第二功能键和回车键共用一个,如果连续按下该键2秒钟,则键盘进入第二功能。 在键盘初始化程序InitKeyboard中把ucKey1和ucKey2赋值0xff
标签: 键盘扫描
上传时间: 2016-02-19
上传用户:二驱蚊器
进行键盘扫描及键处理时,在程序中直接调用函数KeyProcess()即可。键处理函数原 型声明在头文件Key.h中,键处理函数可放在程序的任何地方,一个按键对应一个处理函 数。 该键盘扫描程序去抖动为什么不需软件延时?因为从无按键到键被按下,要进行两次 扫描,此间相当于延时去抖动。 该键盘扫描程序还有一特色:用二维数组进行按键功能处理,使程序更简单。 /*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 矩阵键盘键值扫描,功能处理函数 本程序处理4*4的矩阵键盘,直接用于8051系列单片机,也可移植到其它机型. 行输出在P1口高四位 列输入在P1口低四位,如果不同,则需修改键值读取函数 即:GetKeyCode() 有10个数字键0--9,1个小数点,1个负号键。 第二功能键和回车键共用一个,如果连续按下该键2秒钟,则键盘进入第二功能。 在键盘初始化程序InitKeyboard中把ucKey1和ucKey2赋值0xff
标签: 键盘扫描
上传时间: 2013-12-21
上传用户:dreamboy36
单片机开发系统延时间程序,C语言开发,采用中断实现,程序简单易用,可以自由更改, 延时1秒到99999秒均可以实现。
上传时间: 2013-12-03
上传用户:sunjet
该程序的功能是把演示板当做一个按键计数器。接通电源时,按下IDE软软件的运行键6只数码管全显示000000。 每按下开关S3(RB0)时,计数器的值加1,数码管显示也增加1,然后松开按钮;以些类推,反复循环。 2、程序中包含按键按下检测跟释放检测,并且都伴有一定的延时去抖功能,只有在一次按键被释放后才进行第2次按键的判断 3、程序中需开启B口的内部弱上拉功能,因DEMO板上无上拉电阻;并把A口全部设置为普通I/O口,上电复位后A口为模拟输入口
上传时间: 2016-08-30
上传用户:frank1234
注:protel电路图 1.INPUT12为高压气压和低压压传感器输入端. 2.OUTPUT为充气输出控制端. 3.当高低压有接地信号时,电机正转,气阀打开. 4.INPUT2低气压时有信号时,充气OUTPUT输出,充气电机转. 5.RS1与RS2是调节阀门距离用地 6.RS3是与气阀电机同步时,是气阀电机的转动圈数传感器. 7.RS4是调节延时时间用地
上传时间: 2014-01-09
上传用户:waizhang
DMA20001X提供了比IS95B更为丰富的数据业务,SCH数据速率可以从9.6kpbs到153.6kbps不等。吞吐量是衡量数据业务性能优劣的重要指标之一,对于网络的每一层(物理层、SDU层、Mux层、RLP层、PPP层、TCP/IP层、应用层)都有相应的吞吐量,虽然在物理层能够提供最大数据业务吞吐量为153.6+9.6=163.2kpbs,但是由于层间复用,在数据包中增加了数据头,使得经过多层复用以后数据包长度变长;另外由于采用了RLP重传机制,以及RLP层应答延时的引入,使得一个终端用户实际感受到的有效吞吐量要小得多。 本文分析了各层复用所引入的信息冗余,以及由于误码导致重传而引起的有效吞吐量的降低,通过计算,定量分析,为CDMA20001X数据业务吞吐量的优化提供了理论依据
上传时间: 2014-01-18
上传用户:wlcaption
在本课中,我们要用一个按键来实现跑马灯的 10 级调速。这又会涉及到键的去抖的问 题。 本课的试验结果是,每按一次按键,跑马速度就降低一级,共 10 级。 这里我们又增加了一个变量 speedlever,来保存当前的速度档次。 在按键里的处理中,多了当前档次的延时值的设置。 请看程序: ―――――――――――――――― #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一个 52 标准内核的头文件 sbit P10 = P1^0; //头文件中没有定义的 IO 就要自己来定义了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //长定时溢出标记,预置是 0 uchar speed=10; //设置一个变量保存默认的跑马灯的移动速度 uchar speedlever=0; //保存当前的速度档次 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的 //一个按键控制的 10 级变速跑马灯试验 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//预定的写入 P1 的值 uchar ledi; //用来指示显示顺序 uint n; RCAP2H =0x10; //赋 T2 的预置值 0x1000,溢出 30 次就是 1 秒钟 RCAP2L =0x00; TR2=1; //启动定时器 ET2=1; //打开定时器 2 中断 EA=1; //打开总中断 while(1) //主程序循环 { if(ldelay) //发现有时间溢出标记,进入处理 { ldelay=0; //清除标记 P1=ledp[ledi]; //读出一个值送到 P1 口 ledi++; //指向下一个 if(ledi==4) { ledi=0; //到了最后一个灯就换到第一个 } } if(!K1) //如果读到 K1 为 0 { for(n=0;n<1000;n++); //等待按键稳定 while(!K1); //等待按键松开 for(n=0;n<1000;n++); //等待按键稳定松开 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //档次和延时之间的预算法则,也可以用查表方法,做出 不规则的法则 } } } //定时器 2 中断 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比较一个变化的数值,以实现变化的时间溢出,同时限制了最慢速 度为 1 秒 { t=0; ldelay=1;//每次长时间的溢出,就置一个标记,以便主程序处理 } } ―――――――――――――――――――――― 请打开 lesson11 目录的工程,编译,运行,看结果: 按 K1,速度则降低一次,总共 10 个档次。
上传时间: 2017-11-06
上传用户:szcyclone