单片机控制的舞台视景的设计 毕业论文_第1页
单片机控制的舞台视景的设计 毕业论文_第2页
单片机控制的舞台视景的设计 毕业论文_第3页
单片机控制的舞台视景的设计 毕业论文_第4页
单片机控制的舞台视景的设计 毕业论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE10核准通过,归档资料。未经允许,请勿外传!单片机控制的舞台视景的设计摘要二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。它的出现是近代计算机技术发展史上的一个重要里程碑,因为它体积小,通常都藏在被控机械的“肚子”里。它在这个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。本研究针对舞台视景的控制方法,尤其是舞台灯光的智能控制方面的发展现状,分析了舞台灯光智能控制的原理和实现方法,提出了基于单片机的舞台灯光智能控制系统的设计思路,并在此基础上开发了智能控制系统的硬件装置和相应软件。关键词:单片机;舞台;灯光;吊杆目录摘要 I目录 II1绪论 11.1单片机的基础知识 11.2单片机的发展趋势 11.2.1微型单片化 11.2.2低功耗CMOS化 21.2.3主流与多品种共存 22.舞台视景中吊杆的设计 32.1舞台吊杆控制系统的组成及工作原理 32.2舞台吊杆控制器的硬件设计 42.2.1舞台吊杆控制器的硬件组成及工作原理 42.2.2单片机控制系统 52.3舞台吊杆控制器的软件设计 62.3.1通信协议设计 62.4可靠性设计 72.4.1电机惯性引起误差的补偿方法 72.4.2系统的抗干扰设计 83.舞台视景灯光的设计 103.1舞台整体视觉 103.2舞台灯光用具 113.3剧场电路及网络控制系统 123.4舞台灯光用具的配置示意 133.5舞台空间布光要素 143.6演示空间设计构想图 153.7舞台灯光的色彩对比 163.8灯光设计中的常用公式 173.9舞台布光方式 184灯光显示模式设计 194.1显示灯的排列: 194.2显示模式: 194.3程序流程图 204.3.1主程序流程图 204.3.2中断服务程序流程图 214.4程序设计 215.灯光闪烁控制装置的调试 245.1系统调试 245.1.1检查硬件连接 245.1.2检查软件系统 245.2测试结果 24结论 25参考文献 26致谢 27附录 281绪论1.1单片机的基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。MCS-51系列单片机主要包括8031、8051和8751等通用产品。DP-51S单片机仿真实验仪是由广州致远电子有限公司设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。1.2单片机的发展趋势单片机现在可以说是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供了广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1.2.1微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。1.2.2低功耗CMOS化MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。像80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗像电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。1.2.3主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以80C51占据了半壁江山。而Microchip公司的PIC精简指令集合(RISC)也有着强劲的发展势头,中国台湾的HOLTEX公司近年的单片机产量与日俱增,与其底价质优的优势,占据一定的市场份额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补、相辅相成、共同发展的道路。九十年代以后,单片机在结构上采用双CPU或内部流水线,CPU位数有8位、16位、32位,时钟频率高达20MHZ,片内带有PWM输出、监视定时器WDT、可编程计数器阵列PCA、DMA传输、调制解调器等。芯片向高度集成化、低功耗方向的发展,使得单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网等方面得到大量应用。这类单片机有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。2.舞台视景中吊杆的设计在舞台机械设备中,吊杆起着重要的伤脑筋。在大型的影剧院,一场演出往往需要调动大量的舞台背景,有时要控制多达64路的吊杆同时动作。操作人员要在现场不断变换舞台背景,控制室人员要不断地和现场人员进行协调,这给舞台控制带来了很大不便。对吊杆的集中控制、实时响应来自多路的请求及吊杆位置的精确定位是设计中要解决的三个关键问题。目前的舞台控制系统大都通过采用光电编码盘产生脉冲信号的方式来获取吊杆的移动距离,并直接用单片机进行计数和控制。这种方法在响应多路请求时,往往会因为单片机任务繁重而造成计数脉冲丢失,引起测量误差。综上所述,本文提出了用CYGNAL单片机和FPGA设计舞台吊杆控制器的方法。2.1舞台吊杆控制系统的组成及工作原理舞台吊杆控制系统主要由远程控制端(PC机)、舞台吊杆控制器、现场设备、LCD显示器等组成,如图1所示。系统采用分布式结构。远程控制端作为管理机,负责管理和协调现场设备,通过局域网使用UDP/IP协议发送控制指令并采集现场数据;舞台吊杆控制器作为终端,接收远程控制端送来的指令,并根据接收到的控制命令控制现场设备动作,采集到现场数据后把数据以UDP格式打包送给远程控制端,以便远程控制端实时进行现场监控。同时为使现场能够观察到单个设备的运行情况。还把这些数据通过串口送给现场LCD显示器。2.2舞台吊杆控制器的硬件设计在整个控制系统中,舞台吊杆控制器是设计的关键,它的功能有两个:其一,接收与发送UDP数据包,解析数据包并转化成FPGA控制器能够识别的格式。其二,接收FPGA控制器送来的现场信息。2.2.1舞台吊杆控制器的硬件组成及工作原理舞台吊杆控制器主要由C8051F020单片机、FPGA控制器、LCD显示器、E2PROM存储器、RTL8019网卡芯片和JTAG程序下载及调度接口等组成。其硬件组成框图如图2所示。工作原理如下:C8051F020单片机通过RTL8019网卡芯片接收远程控制端送来的UDP格式的控制命令数据包,从该控制命令数据包解析出控制指令,传输给FPGA控制器。FPGA控制器根据控制指令控制现场设备动作,并且把相关的现场数据返回给单片机。单片机把这些现场数据存入E2PROM中作为备份数据,同时送给LCD显示器,并打成UDP数据包通过网卡芯片发送给远程控制端。下面主要介绍单片机控制系统和FPGA控制器的设计。2.2.2单片机控制系统单片机控制系统主要由C8051F020单片机组成,主要完成数据的接收与处理。C8051F020的特点是运算速度快、集成度高、引脚可配置、工作稳定和可靠性高。它完全能够满足舞台吊杆控制器对存储器容量、多种总线接口、处理速度和浮点运算等方面的要求。C8051F020单片机有UART0和UART1两个串口,其中,串口UART0与LCD显示器连接,用于把舞台吊杆运行时的位置数据送给LCD显示器。单片机利用它的SMBUS接口连接带有I2C总线接口的E2PROM(FM24C64铁片存储器),把现场数据存入存储器,以备在掉电后得新上电时能够读出吊杆的当前位置,连续控制吊杆的运动;同时利用它的普通I/O口与网卡芯片RTL8019和FPGA控制器相连,实现数据的收发。2.2.3FPGA控制器的设计FPGA控制器是利用EDA方法实现的,主要用于对霍尔传感器过来的脉冲进行计数并控制电机。由于吊杆运动过程中产生的脉冲频率高,FPGA控制器计数量大,所以本设计选择了高容量、高性能的可编程逻辑器件,即ALTERA公司的FLEX10K系列FPGA。(1)FPGA控制器的模块划分根据系统功能要坟,FPGA控制器的顶层模块被划分为以下四个模块:两个5-32译码器、八路与门模块、八路16位可逆并行计数模块、电机控制模块,如图3所示。两个5-32译码器模块的功能是提供与单片机的接口,实现可编程接口逻辑。八路计数模块(COUNTER8_FILE_LAST模块)包括八个单路计数模块、数据转换模块等,其功能是对霍尔传感器过来的八路脉冲信号进行可逆计数并完成16位数据与8位数据之间的转换。由于C8051F020单片机的数据长度是8位,而计数模块完成的是16位坟数,所以必须进行数据位数的转换。(2)FPGA模块的功能仿真FPGA控制器是用ALTERA公司的FLEX10K10芯片,在MAX+PLUSII软件中进行设计综合的。根据上述的模块划分,在MAX+PLUSII中的仿真波形图如图4所示。2.3舞台吊杆控制器的软件设计舞台吊杆控制器的软件主要包括:主程序、UDP数据的传输与解析程序、串口数据的发送程序、数据存储程序等。2.3.1通信协议设计在舞台吊杆控制系统中,远程控制端通过局域网采用UDP/IP协议给舞台吊杆控制器发送命令并接收来自控制器的数据包。UDP/IP数据包的格式如下:

在使用该协议时,命令信息和状态数据都在UDPDATA数据区。为了完成控制目的,必须对这块数据区的数据制定协议,协议格式如表1所示。表1协议格式2.3.2主程序设计主程序主要完成单片机和各个功能模块的初始化、对各个功能模块的调用以及对FPGA控制器的控制。由于篇幅关系,只给出主程序的流程图,如图5所示。2.4可靠性设计2.4.1电机惯性引起误差的补偿方法在电机拖动系统中,要考虑电机的惯性问题以便及时进行误差补偿。目前系统中,大都利用一次或二次函数来近似电机的惯性量。而本系统则采用在远程控制端人工输入补偿系数Q的方法来实现误差补偿。这里的补偿系数Q的测量可在排演时进行。系统工作时,远程控制端需设定路标要运行到的位置,即计数终值和误差补偿系数。当接收到补偿系数测量命令时,控制系统将开始测量补偿系数Q。这里假设输入终止位置值为S1,实际终止位置值为S2,那么Q=(S2-S1)/S1×100%(由于惯性的缘大处着眼,S2>S1)。接着控制系统把这个误差补偿系数Q送回给远程控制器,并且存入存储器中。在吊杆实际运动时,控制系统都会对输入值进行误差补偿,即:实际运行终止值S=输入值S1-输入值S1×Q。用此方法得到的电机惯性量非常精确。2.4.2系统的抗干扰设计为了保证舞台吊杆控制器能够长期可靠地运行,系统在硬件和软件两方面采取了有效的抗干扰措施。其中硬件方面主要采取了3.3V电源和5V电源隔离(它们与电磁隔离)、“看门狗”等方法。通过电源隔能够有效防止电源电平不稳和其它电器对控制器的干扰,保证了系统的稳定性;通过“看门狗”能保证程序的正常运行,保证了系统的可靠性。软件方面采取了软件陷阱等方法。行前研制的大规模舞台控制系统使用8044单片机完成数据处理及计数功能,通过BitBusU总线完成通信功能。由于单片机的任务非常繁重,在实际应用中经常出现脉冲丢失以及系统相应速度慢的问题。而本设计采用了EDA技术,将舞台吊杆控制器用CYGNAL单片机和FPGA实现,并且UDP/IP协议实现局域网内的通信,解决了上述问题。舞台控制系统现场应用表明,该吊杆控制器性能完全达到了要求。某某专科毕业论文(设计)单片机控制的舞台视景的设计PAGE393.舞台视景灯光的设计3.1舞台整体视觉3.2舞台灯光用具3.3剧场电路及网络控制系统3.4舞台灯光用具的配置示意3.5舞台空间布光要素3.6演示空间设计构想图3.7舞台灯光的色彩对比3.8灯光设计中的常用公式3.9舞台布光方式4灯光显示模式设计4.1显示灯的排列:L1L1L2L3L15L14L13L12L11L10L9L8L7L6L5L4L164.2显示模式:模式号显示状态参数08L1~L6全亮P1=FFH,P0=FFH07L1~L8亮,L9~L16不亮P1=FFH,P0=00H06L1~L8不亮,L9~L16亮P1=00H,P0=FFH05L1~L16奇数亮,偶数不亮P1=AAH,P0=AAH04L1~L16偶数亮,奇数不亮P1=55H,P0=55H03L1、L2、L5、L6、L9、L10、L13、L14亮P1=CCH,P0=CCH02L3、L4、L7、L8、L11、L12、L15、L16亮P1=33H,P0=33H01L1~L4、L9~L12亮P1=F0H,P0=F0H以上是对电灯显示模式分析出来的表格,每个不同的模式号对应不同的显示状态,对应的参数也不同。本装置在使用中,是用到定时器来控制不同的闪烁方式的。当一个完整的闪烁结束后,即可转入新的闪烁方式。4.3程序流程图4.3.1主程序流程图4.3.2中断服务程序流程图4.4程序设计以下是灯光闪烁控制装置的完整源程序:***************************************主程序***************************************MAIN:MOVSP,#SPMOV30H,#08HMOVP1,#FFHMOVP0,FFHCLRTR0TO:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0

T1:MOV30H,#50M8:CJNE30H,#00H,M8CJNE31H,08H,M7MOVP1,FFHMOVP0,FFHDEC31HSJMPT1M7:CJNE31H,07H,M6MOVP1,FFHMOVP0,00HDEC31HSJMPT1M6:CJNE31H,06H,M5MOVP1,00HMOVP0,FFHDEC31HSJMPT1M5:CJNE31H,05H,M4MOVP1,F0HMOVP0,F0HDEC31HSJMPT1M4:CJNE31H,04H,M3MOVP1,AAHMOVP0,AAHDEC31HSJMPT1M3:CJNE31H,03H,M2MOVP1,CCHMOVP0,CCHDEC31HSJMPT1M2:CJNE31H,02H,M1MOVP1,55HMOVP0,55HDEC31HLJMPT1M1:CJNE31H,01HMOVP1,33HMOVP0,33HMOV31H,08HLJMPT1***************************************中断服务程序***************************************INT1:PUSH30HPUSH31HCLRTR0MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HDEC30HPOP31HPOP30HSETBTR0RETI

5.灯光闪烁控制装置的调试5.1系统调试5.1.1检查硬件连接包括各元器件的正确使用,例如:地线、电源线的接口。检查电路板,各线路是否正确连接,各元器件是否安全焊上,是否牢固等等。5.1.2检查软件系统1、根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。2、分别写出各指令的正确含义,包括中断定时延时时间和初始化时方式字和控制口地址。3、将所有程序组织起来,在软件环境下运行,检查程序是否正确。通过对硬件和软件系统的认真检查,反复测试,结果系统检测成功,可以进一步运行调试。4、运行调试:在电脑输入程序后,各硬件连接正确无误时,接上电源,输入命令开始运行调试。5.2测试结果本系统基本上能符合设计者的要求,因条件所限还未有实际的运行。结论通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在本次课程设计中首先是硬件方案的确定,接下来是对系统整体电路中各子模块电路的设计,其中绘图、确定参数等过程都使我得到了很大的提高。参考文献[1]孙雪梅,范久臣.实时时钟芯片在单片机系统中的应用.沈阳教育学院学报,2005.2.7[2]CharlesPetzold.Windows程序设计[M].北京:北京大学出版社,2000.[3]NicolaiM.Josuttis.VisualC++标准程序库[M].湖北:华中科技大学出版社,2002.4.[4]张志良编著.《单片机原理与控制技术》.第2版.机械工业出版社[5]周立功编著.《单片机基础实验指导书》.第1版.广州周立功单片机发展有限公司出版社致谢本课题研究是在某某高老师悉心指导下完成的,倾注着老师的心血和汗水。某老师实事求是的科学作风,敏锐深刻的洞察力,严谨的治学精神,不断开拓的工作热情,为科技事业忘我工作的精神,无不使笔者受益匪浅,对笔者今后的成长产生深远影响。谨此向伍老师致以最崇高的敬意和最衷心的感谢!最后,衷心感谢所有关心、帮助和支持过我的老师、同学和朋友们。还有,一直在幕后默默理解、支持和帮助我的家人和亲戚朋友们。附录灯光控制程序代码:usingSystem;namespaceLightControl

{

///<summary>

///LigthControl的摘要说明。

///全开全关程序流程:

///1.先判断是否有com

///2.更新数据库中t_Light表中的状态信息

///3.判断控制器的个数

///4.循环设置每个控制器的状态,调用setcom

///单独开关灯流程:

///1.先判断是否有com

///2.更新数据库中t_Light表中的状态信息

///3.根据灯编号计算控制器所对应的灯编号范围

///4.根据数据库中的状态形成新的控制字

///5.发送控制字

///6.控制字举例:AABB010000000000000000EEEE24

///(AABB)开始位(01)控制器地址(00000000)控制字(00000000)辅助字(EEEE)校验位(24)结束位

///</summary>

publicclassLightControl

{

publicLightControl()

{

//

//TODO:在此处添加构造函数逻辑

//

}

///<summary>

///生成控制字

///</summary>

///<paramname="aData"></param>

///<paramname="be"></param>

///<paramname="aSize"></param>

///<returns></returns>

privatestaticintCRC_16(byte[]aData,intbe,intaSize)

{

intreg_crc=0x0000;

inti=0,j=0;

for(i=0;i<aSize;i++)

{

//异或结果reg_crc当前八位的控制字

reg_crc^=aData[i+be];

for(j=0;j<8;j++)

{

//判断最低为是否为零

if((reg_crc&0x01)==1)

{

//如果为零,右移1位,再异或设定的十六进制数,彻底屏蔽最低位的1

reg_crc=(reg_crc>>1)^0xa001;

}

//如果不为零,右移1位

elsereg_crc=reg_crc>>1;

}

};

returnreg_crc;

}

///<summary>

///转换16进制形式的全控制字

///</summary>

///<paramname="pathcount"></param>

///<paramname="setcom">静态控制字符串01010101模式,d1-d8</param>

///<returns></returns>

privatestaticbyte[]Num16(intpathcount,string[]setcom)

{

inti;

pathcount=8;

byte[]newsetcom=newbyte[pathcount+6];

newsetcom[0]=0xAA;

newsetcom[1]=0xBB;

newsetcom[2]=0x01;

for(i=3;i<pathcount+3;i++)

{

newsetcom[i]=(byte)Convert.ToInt32("0x"+Convert.ToString(Convert.ToInt32(setcom[i-3],2),16),16);

}

newsetcom[i]=0xEE;

newsetcom[i+1]=0xEE;

newsetcom[i+2]=0x24;

returnnewsetcom;

}

///<summary>

///生成控制器编号

///</summary>

///<paramname="LNum">灯的编号</param>

///<returns></returns>

privatestaticintCreateControlNum(stringLNum)

{

//控制器地址(利用灯光编号计算控制器地址,控制器编号从一开始1-32为第一个地址)

if((Convert.ToInt32(LNum)%32)==0)

{

returnConvert.ToInt32(LNum)/32;

}

else

{

returnConvert.ToInt32(LNum)/32+1;

}

}

///<summary>

///生成控制字中的d的编号,即第几个八位模块,输入的灯属于哪个8位模块中

///</summary>

///<paramname="LNum">灯的编号,从1开始</param>

///<returns></returns>

privatestaticintCreateBitNum(stringLNum)

{

intnum,num1;

num=Convert.ToInt32(LNum);

num1=num-num/32*32;

//if余数为0,则为32、64等,应返回第4个模块

if(num1==0)

{

return4;

}

else

{

if((num1%8)==0)

{

returnnum1/8;

}

else

{

returnnum1/8+1;

}

}

}

///<summary>

///从数据库中得到当前控制器的d1-d8,2进制形式的控制字

///</summary>

///<paramname="key4">4个元素的string数组,每个元素为8个二进制形式的string,如a[0][0]为'000111011',从数据库中得到的目前灯的状态</param>

///<returns></returns>

publicstaticstring[]createSetCom(string[][]key4)

{

string[]setcom;

//设置灯控的状态

setcom=newstring[8];

for(inti=0;i<4;i++)

{

//生成前四个模块字

for(intj=0;j<8;j++)

{

setcom[i]=key4[i][j]+setcom[i];//控制字的是以8位为一个单元,与实际的顺序相反,数据库中(00111011)而控制字为(11011100)

}

}

//生成后四个辅助字,先默认为零

for(inti=4;i<8;i++)

{

setcom[i]+="00000000";

}

returnsetcom;

}

///<summary>

///根据数据库中的数据生成控制字

///</summary>

///<paramname="LNum">灯的编号</param></param>

///<paramname="setcom">改变了的控制字,从数据库中得到,8个下标,d1-d8</param>

///<returns>形成的新控制字</returns>

publicstaticbyte[]ControlKey(stringLNum,string[]setcom)

{

intj=0;

byte[]Contrlchar=newbyte[14];

Contrlchar=Num16(8,setcom);//十六进制的控制字

//控制器地址(利用灯光编号计算控制器地址,并转化为16进制形式,控制器编号从一开始1-32为第一个模块)

Contrlchar[2]=(byte)CreateControlNum(LNum);

for(j=3;j<7;j++)

{

//

d5d6d7d8

通道辅助字:

//

d5:

当通道1控制字d1=0x24时,需将d1改为0xEE,此位为d5=1,否则为d5=0

//

d6:

当通道2控制字d2=0x24时,需将d2改为0xEE,此位为d6=1,否则为d6=0

//

d7:

当通道3控制字d3=0x24时,需将d3改为0xEE,此位为d7=1,否则为d7=0

//

d8:

当通道4控制字d4=0x24时,需将d4改为0xEE,此位为d8=1,否则为d8=0

//重新生成控制字

if(Contrlchar[j]==0x24)

{

Contrlchar[j]=0xEE;

Contrlchar[j+4]=0x01;

}

else

{

Contrlchar[j+4]=0x00;

}

}

Contrlchar[11]=0xEE;

Contrlchar[12]=0xEE;

Contrlchar[13]=0x24;

Contrlchar[11]=(byte)((CRC_16(Contrlchar,2,9)&0xFF00)>>8);

if(Contrlchar[11]==0x24)

{

Contrlchar[11]=0xEE;

}

Contrlchar[12]=(byte)(CRC_16(Contrlchar,2,9)&0x00FF);

if(Contrlchar[12]==0x24)

{

Contrlchar[12]=0xEE;

}

returnContrlchar;

}

///<summary>

///全部开关灯,灯控程序最多是用于32路的控制,共8个模块,d0为控制器地址,前d1-d4,4个控制开关,后d5-d8,4个为辅助字

///</summary>

///<paramname="pathcount">最多的模块数(目前为8)</param>

///<paramname="addr">控制器地址</param>

///<paramname="initstuta">控制字符16进制</param>

///<returns>byte类型数组</returns>

publicstaticbyte[]OnOffAll(intaddr,stringinitstuta)

{

inti,pathcount;

//模块数限定为8个,为固定值

pathcount=8;

byte[]bsend=newbyte[path

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论