1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片: 如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,汉诺塔问题也是程序设计中的经典递归问题
上传时间: 2016-07-25
上传用户:gxrui1991
本文针对我国当今大型仓库、大型粮库的监测与控制现状,进行研究开发,采用较为实用和先进的单片微型机控制系统,运用温度传感器和湿度传感器对温度、湿度的敏感性设计了一种基于多级通讯总线的粮库温、湿度自动监测系统,主要包括通讯控制总站以及下位机的设计。操作人员可以通过向通讯控制总站发送命令,提取下位机温、湿度数据,下位机实现温、湿度检测;同时可以查看历史检测数据,进行粮情分析和粮库管理等一系列操作。 温湿度的测量和控制系统通常被认为是一项较为简单的控制技术,但是由于湿敏元件的稳定性差,寿命短等问题,实际应用系统中能正常运行的不多,除非建立有严格的管理制度,而且管理人员的综合素质要达到一定的要求。所以,本文重点分析了湿敏传感测量的机制,选型和技术措施。在研究了多种湿度传感器性能的基础上选用了合适的湿度传感器,这是本设计的一个重点。本设计还有一个重点,用CPLD设计了一个模拟开关和显示部分。 本设计研制的上位机采用PC机,通过RS-232接口与转换器相连,转换器通过RS-485总线连接下位机,实现监控室与现场的数据通信。每台下位机位于各粮仓内,需要监测256路的温、湿度信号,为了能实现共256路温湿度的数据采集工作,本设计中用CPLD设计了一个模拟开关,每次只采集一路数据送入到单片机中去;另外,本设计的显示部分也独特的选用了CPLD来实现。正常情况下上位机每4小时向下位机发布一次检测信号(同时在任何时刻也可监控某个粮仓的温湿度情况),下位机利用PICl6F877单片机来实现粮仓中128路温度和128路湿度的测控。 该粮仓温、湿度测控系统实用性强,成本低,数据传输效率高,可靠性好。它不仪可以应用于粮库的监控管理,而且也可推广到其他监控领域,因此具有广泛的应用前景。
上传时间: 2013-05-23
上传用户:liuwei6419
交换机与多个现场单片机连通。现场单片机完成对各物理参量的数据采集,进行数字滤波、数据处理、比值告警、现场显示及对现场设备进行控制等,并定时或随机地向中央管理PC机报告过程情况。中央管理PC机定时或随机地汇集各测试点的信息,进行数据处理、显示打印、声光报警,并负责全局的综合控制、管理调度和策划指挥等任务。中央PC机可通过电话网依次自动拨号呼叫下属各现场单片机,单片机收到呼叫并建立联接后发送数据到中央管理PC机,各现场单片机之间则不能进行呼叫联络。由于单片机应用系统的安装数量和分布范围不同,与中心站的距离一般为几公里到几十公里,在单片机与PC机之间需要传送的数据量不是很大的情况下,采用调制解调器通过电话线路进行通信较为适用。下位单片机以其所在单位的电话号码作为其唯一的地址,并由单片机控制电话的使用,可以实现无人值守自动通信。每当电话响铃一定次数后仍无人接听,则单片机自动接入线路,通过不同标志来判断是主机呼叫还是人打电话。若是主机呼叫,表示中心站要求通信,单片机将保持与上位PC机连接,将各种测量数据发送出去并接收主机发来的命令;若是人打电话,则断开连接继续进行数据采集,并接通模拟响铃电路,提醒人们接听。
上传时间: 2014-12-27
上传用户:赵一霞a
现场总线技术是当前自动化技术中的一个热点,但目前国际上常用的多种现场总线协议均由世界级厂商提出和垄断。CAN总线是公认的最具发展前景的现场总线之一,其应用层协议有国外公司的CANopen和DeviceNet,由广州致远电子推出的现场总线iCAN协议以其简洁方便的特点受到广泛关注,尤其得到国内用户的积极相应。为了在高校的现场总线教学中推广具有我们国家自主知识产权的现场总线应用,需要为学生提供一套功能完善、综合性强的基于iCAN协议现场总线技术的实验室教学系统。本课题正是针对这一问题而构建基于现场总线iCAN协议的综合测试系统,力求使学生通过该系统的学习掌握现场总线iCAN协议相关知识,为将来快速进入相关工作岗位打下基础。 本文首先介绍基于现场总线iCAN协议综合测试系统的研究背景、目的及其意义,详细介绍了现场总线技术和CAN总线的相关知识,对iCAN协议进行了详细的介绍和分析。所设计的基于现场总线iCAN协议的综合测试系统由基本系统和扩展系统两部分构成。基本测试系统设计面向基本的标准实验设备,利用广州致远的iCAN系列功能模块构成;扩展系统设计面向测试系统的综合性设计,实现iCAN网络与其它控制网络如PLC网络的互连,并通过CANET-100转换器实现iCAN总线与上位PC机的通信。测试系统的上位监控界面设计采用工业组态软件MCGS完成,MCGS与总线的数据交互采用OPC方式实现。通过OPC实现iCAN网络与MCGS间的数据传输。在完成基于现场总线iCAN协议综合测试系统的基础上,本文还进一步讨论了如何采用基于DSPTMS320LF2407A主控芯片设计iCAN综合数据采集卡,叙述了其整体设计思想, 给出了具体的硬件和软件设计以及如何实现对iCAN协议的解析。本文的最后通过设计三个实际的实验例子,进一步展示了系统的构成和功能。 综上所述,该测试系统由基本测试系统和综合测试系统构成,并提供iCAN综合数据采集卡的设计方法和三个实验例程,可为学生提供分层学习、综合学习以及设计开发平台,实践证明该系统具有良好的新颖性和实用性。本课题研究的测试系统模式同样适用于其它工业现场总线测试系统。 关键词:CAN总线,iCAN协议,DSP,PLC,组态软件
上传时间: 2013-04-24
上传用户:diaorunze
随着现代DSP、FPGA等数字芯片的信号处理能力不断提高,基于软件无线电技术的现代通信与信息处理系统也得到了更为广泛的应用。软件无线电的基本思想是以一个通用、标准、模块化的硬件系统作为其应用平台,把尽可能多的无线及个人通信和信号处理的功能用软件来实现,从而将无线通信新系统、新产品的开发逐步转移到软件上来。另一方面,现代信号处理系统对数据的处理速度、处理精度和动态范围的要求也越来越高,需要每秒完成几千万到几百亿次运算。因此研制具备高速实时信号处理能力的通用硬件平台越来越受到业界的重视。 @@ 目前的高速实时信号处理系统一般均采用DSP+FPGA的架构,其中DSP主要负责完成系统通信和基带信号处理算法,而FPGA主要完成信号预处理等前端算法,并提供系统常用的各种外部接口逻辑。本文的主要工作就在于完成通用型高速实时信号处理系统的FPGA软件设计。 @@ 本文提出了一种基于多DSP与FPGA的通用高速实时信号处理系统的架构。综合考虑各方面因素,作者选择使用两片ADSP-TS201浮点DSP以混合耦合模型构成系统信号处理核心;以Xilinx公司最新的高性能FPGA Virtex-5系列的XC5VLX50T提供系统所需的各种接口,包括与ADSP-TS201的高速Linkport接口以及SPI、UART、SPORT等常用外设接口。此外,作者还选择了ADSP-BF533定点DSP加入系统当中以扩展系统音视频信号处理能力,体现系统的通用性。 @@ 基于FPGA的嵌入式系统设计正逐渐成为现代FPGA应用的一个热点。结合课题需要,作者以Xilinx公司的MicroBlze软核处理器为核心在Virtex-5片内设计了一个嵌入式系统,完成了对CF卡、DDR2 SDRAM存储器的读写控制,并利用片内集成的三态以太网MAC硬核模块,实现了系统与上位PC机之间的以太网通信链路。此外,为扩展系统功能,适应未来可能的软件升级,进一步提高系统的通用性,还将嵌入式实时操作系统μC/OS-II移植到MicroBlaze处理器上。 @@ 最后,作者介绍了基于Xilinx RocketIO GTP收发器的高速串行传输设计的关键技术和基本的设计方法,充分体现了目前高速实时信号处理系统的发展要求和趋势。 @@关键词:高速实时信号处理;FPGA;Virtex-5;嵌入式系统;MicroBlaze
上传时间: 2013-05-17
上传用户:wangchong
语音通信是人类通信的重要组成部分,伴随着数字通信技术和计算机技术的发展,特别是Internet的出现,基于因特网的数字语音通信技术得了到迅速的发展。由于设备、环境、人为操作等因素的影响,网络上传输的语音信号可能出现忽大忽小的情况,为了得到较好的语音信号输出效果,需要在接收端对语音信号进行处理。针对以上情况,本文研究并实现了基于ARM的网络语音AGC系统。 本文结合嵌入式系统和AGC技术的发展,设计实现了一个基于ARM的网络语音AGC系统。本文首先对AGC算法进行了深入研究,在对LMS算法进行研究的基础上提出了一种基于LMS的数字语音AGC算法,通过Matlab软件对算法进行了仿真;设计了一个由AT91RM9200微处理器、网络控制器、音频芯片构成的嵌入式AGC处理终端硬件平台,构建了嵌入式Linux操作系统,并在此基础上设计实现了网络语音AGC系统的下位机终端。该终端主要实现了用基于LMS的数字语音AGC算法实时地处理从网络上传过来的忽大忽小的数字语音信号,取得良好的语音信号输出,并且稳定性可靠;设计实现了上位PC机程序,上位机实现了通过网络将数字语音信号实时地传送到嵌入式终端的功能。 本设计采用高性能微处理器,配合嵌入式Linux强大支持功能的实现方案,具有高性能、低成本、小型化、实时性强等诸多优点。相比传统的实现架构,该设计具有更好的灵活性和操作性,性价比更高,功能更强大,同时可扩展性和可移植性也更好,具有一定的技术先进性和广泛的应用前景。
上传时间: 2013-06-11
上传用户:几何公差
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230