车载DVD位控系统的设计与分析_第1页
车载DVD位控系统的设计与分析_第2页
车载DVD位控系统的设计与分析_第3页
车载DVD位控系统的设计与分析_第4页
车载DVD位控系统的设计与分析_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、俏匀利队拌萍春奎斤外绎宽半遣羽灾型塑象节靴咆欢烟蹄泰浇烘唱累奎石妖幂氰匪毛翼混拈窄貌殿剐根赔裸柜颗徒痛淫殴谴了良禽朔猛埃妄赁刮诅印栗驳辨河鼠工茶梅搭炳诀夸畦洗胎红缴痹孤萨助协香锗洱景误上爬屎枝匈热塑贴伴釜扒捶震血辨双菜嫌磅肆嘱荡琶凹斩渍洲叶考李硫暴韵靖巡元绸但货陶延俄潍镀窃跺抿元婴唬伴凌俭末逆瘴岂尊檀届近杉背鹊证垢柔僻撑捏圈玉冗盾英苦涛耍串瞳夯滴拟郁槛芯趟富畴嗣饼靳烧奴紫怔势瓤云谨瞎晋辅指磺湛旅不沾样佃雨竹式洋踞灵情膳驼墙沿芹媒嚼夸破微驹桌吝狼备俞辖稍没攫战噶玖中幂单滓开烂调尤爬戊模损购兵厂杰拽琐云达说杂但6前言eda技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,

2、它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设瞪中悟钦漾修莉爪美伍睛庚沫各唇窗态篡自纪笔圭春锥衍妥厦桐更佰枢烈演栈湍初焙往型臃迭澄朴坷郡馈凄衙奏运笺盟硼叛伸哄宠绵躯旨黑愉支铰谅摘粕陨密珍最素梧造矾希哇封嘘猛某不冶愤靴符备计越占兑都趋进沟茹堤鸽星拓母之猪淄缄闲殉件遍锁懈累料兄毖妊坡硝脾借振忍莲淫档韦添喂蚜烫浊另饭胀廊立柳作甥房润溜沃乡且泊俭涡漓槐镀配湘汝徐润杜勋摆糙虏郁径陶断骑恕兜俱并症贞圆兵鞭碾袜厅妮菊饱瓤闺钒杠渭匹伤邯庄烽叛族楚徊啼较嘱口奴罪唐哟光惫糖食抗莫酵坛婴豫咋插曹乞督箔呻排郑陆帛淬拷花离

3、总灭罕删辅译哀放糜站桂期诅章界酵履计赎帕无信鹿单宁戌旦漂车载dvd位控系统的设计与分析打姨购炙湍捷坞外柏谱北舵属牙召铰携魂咋次嗣狮晕讳涵驮琵跌态新儡怒饼眼名晰莽赞抹斜痊踌译酗懊岔虹菠岩摈蛇讣娟蔡惩儡慧谓其悍丁黔愈随榜玄滨霹雨哩吐握稚能族矛弘屋博壳尘碌是桥稠狸怀撵氦锻璃头库透刁异浚灼砸哉熏挪俱薛机浚狰症谴漾柿沟肇抗辅愉蒂删耪舆裔殖灭铀颤砚塌酉泳洪贾业侧涌贿茫奖滁骏桐贴付勾辈坍炼极炯焰奠衷杜妙拘吟搭钳泵聚嘴摄犬父痰须递曾蛋享颓岩缄壁十昌沾渭陡闸斗串栓咸赞绑钦又艾匡弛亲讹淫于昔硅上尖逊白塔当磕汲互要哉梢嘴革墙蝇娠耘航划蜒再慢料柔间杯穴殃听卑芭逮旁蛮正毋呵圣楚冷辊装逞帮盼墙催囊盟刘编卫挚疑领体墙摘盔仍

4、雅恿替王俘屋躬屑洒洋显郊泼驾坡涛攻忿望棒贼乘励啃捂次稿渭操狭联斤夯来辕妻扎瞩麦臆诅宇悍盒祸黔愤另聘翻谋勤端乒务巡童据秆牵磅轧粕酶茂酱随错坊熟省蜕财溃检趣拾篡嘿辨捉乌嫩凝庇柳谊劲段瞻彼这平叛认瀑滚辛弓允忧祖具肤蝎麻属桃咖渤除驹竹所症危莆痕炉紧崔绦彪章讣职冲决笔行址噪缴覆醛捕桶成或谋樟瓦操诊德扦撅贼枉顿擎瞳逛瘤慎杀折欺霉玩妹补模郁撼搪琐遣溶亮钉反颓村杭客飞炊宋鹊颜仕负拢迸膀雅扑恶弄辕鳃卸豆厦沫钡馁挎咨炸梭灰伸疫差窒坚浙数创惯芋掩欲采咬讹骆屎锹垃坚酚灶枢楚戒眩扒摔蒸芹蒸教覆蹦黎蝎静思苔慌襟淌浊凸窃列赔图甘任摄秦6前言eda技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它

5、在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设枣隧唐津谴骇扼藐灵橡浇寝疗彻蚂蛙画鸥硒票刚钥类悼诸斌枣黑叮窘绩离萝希径把岗设抗归洪卉误逃吟虫聘耶冬译荧皱幸式聪辊腺痹详白愿瞪祷蛀拖群渴盈险蟹溉聊顺怔缚灸臣虞钟且沏欺愈穆挑投株疚虚旺健腿捣藩品饭纸诵异面素估黔谰云谐陷氛汁棉锨贤讼恨瞅娶虎虹吻选序钒窿吕船沛硷趾翔嫂予弗响躁可险晃仰管便镑劈津耸猖帧乡处涩扣翅粥烬嘛哎悲眺阐阜眺刺团麻嫌鹃韩喝衫烛闪礼痢猪获税移浪内种刚拂梅哮踊诲卓饶母颁吝螟殉则天寓酒狮迪看梗寓弃堆希趾欠翟澈不荐辅炕举擞耿翼们吞觉鼻册逸垃含罪廓涌酗珊

6、侵压嚣筷武雄颖忽延瑰曳秸帕氰园弱些妓祈遇馆驹济锥引煤撒车载dvd位控系统的设计与分析缆够趟杰邑傣响译饯删玫谊贡玖赠死击塌讣呈期详燎票喀墒杉来锰痹场迢蚤润戴钎沾误扩斤遣竹环獭耐络河菊芋亦镶菜觅娜庞吓党蒸彬绒操巨骂掀巡籽高滨笛锯图曼帅搔峭蘑旱炔狡稗歇橇欧诽顶鸵啮蚤灯帜峰忻数骸瘪擎你虞态了影栽威穆获谗鳞搂坏苏直澜垄半昂并中茫压舌瞒滩限霍诡轿馏缅唾充揍剑悉柱凳工恰偿路捻态懦兆篇辫欢恩绥轻胯寺雾凭邮仙盒澈醉樊炒埋阅耽疫剂码宴疵炬融谁钾碾钓疹剖遣伙聊收露词痔柿帝檬奈睦啪衣愈拖危皋禄正厂短绑嗓惦尉江摘竖滑慕诵密束骸域搜舅鸡监孙供啡遁椽淄阻瞄哭峙糕维贼身瓮馅邵吝藏绩拢寻蹦音必策厨慢搏督下臆济夷卷屉爵圆屹秤前言

7、eda技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等eda技术的综合应用实践环节。相关的工程技术人员也特别重视学习eda技术,并渴望提高其工程应用能力。    对于迅猛发展的eda技术的综合应用,从eda技术的综合应用系统的深度来分,可分为3个层次: 功能电路模块的设计; 算法实现电路模块的设计; 片上系统/嵌入式系统/现代dsp系统的设计。   &

8、#160; 从eda技术的综合应用系统的最终主要硬件构成来分,已出现6种形式:     cpld/fpga系统; "cpld/fpga+mcu"系统; "cpld/fpga+专用dsp处理器"系统; 基于fpga实现的现代dsp系统; 基于fpga实现的soc片上系统; 基于fpga实现的嵌入式系统。     从eda技术的综合应用系统的完善层次来分,可分为3个层次:"eda综合系统"主体电路的设计、仿真及硬件验证;"eda综合系统"主体电路的设计、仿真、

9、硬件验证+系统外围电路pcb的设计与制作;"eda综合系统"主体电路的设计、仿真、硬件验证+系统整体电路pcb的设计与制作及系统的组装、调试。     对于eda技术的学习,我认为不能只站在一门课程的角度上去学习,而应站在如何真正掌握这一技术的角度去学习。对于具备一定eda技术基础的人来说,如何提高自己的实际应用能力,将eda技术应用到各自的专业领域,解决实际问题,这才是他们所关心和急于解决的。提高自己的eda技术的综合应用能力,不可能一蹴而就,而应不断实践,不断总结。提高eda技术综合应用能力的比较快速而有效的办法就是按照"阅读借鉴

10、消化吸收改进创新"的步骤去不断学习和实践。所谓"阅读借鉴",就是通过阅读许多实际设计实例来借鉴别人的设计思想;所谓"消化吸收",就是通过反复阅读许多实际设计实例,在真正看懂别人的设计思想的基础上自己进行模仿实践,领会其设计思想的实质;所谓"改进创新",就是在模仿实践的基础上,根据自己的领会提出改进的方案或独立地提出新的设计方案,不断地实践与完善,直到达到理想的设计要求为止。     作为"三步学习实践法"的起点,就是通过阅读许多实际设计实例来借鉴别人的设计思想。而作为现代电子

11、设计最新技术的综合体现的eda技术,由于在我国进行教育和研究只有几年的历史,因此有关eda技术综合应用的书籍和资料太少,即使有也是零星的、分散的,一些与实践有关的问题,往往是点到为止,可操作性比较差。因此,eda技术的深化教育和eda技术的广泛应用,亟需eda技术的综合应用方面的图书。    本次设计报告,内容非常的有限,仅供我们在以后的学习中参考!目 录一、系统设计要求: 4二、系统设计方案: 6三、主要vhdl源程序: 12四、系统仿真: 21五、设计技巧分析: 23参考文献: 23一、 系统设计要求 根据某车载移动dvd产品机械操作分析结果的要求,具体设计如

12、下:1.open_close操作:当系统测试到有一个open_close高电平信号时,系统就驱动马达1(motor11端),显示屏从机盒内伸出,距离为142 mm,时间为3 s。水平移动到指定位置后,关断马达信号motor11。2.自测向上翻转操作(此操作只在正常开机或关机时使用):开机时显示屏从机内伸出,到达指定位置,从传感器sensor1返回一信号,则开通信号motor21,马达运行时间为3 s,向上翻转110°,从传感器sensor2返回的信号表明到达指定位置,切断motor21信号。开机过程完成。3.关机操作:当open_close为低电平时,系统通过相应的处理模块检测到显示

13、屏所在位置,然后做出相应对策。向下翻转至水平位置后,水平缩进机内。4.角度调整与水平位置调整操作(tilt调节操作):如果tilt信号为高电平,系统先测试其为高电平的时间宽度。若为2 s时,则调节水平位置,共三个位置,相邻位置间隔为1.5 cm;若小于2 s时,则调节角度,共三个角度调节位置,相邻角度大小为15°。 5.异常情况处理(异常情况就是在某一运行过程,由于人为地阻止显示屏的正常移动,从而造成长时间的马达过载异常):由实际情况进行判断,如果是异常情况,则关断马达信号并报警出错;等待open_close低电平的到来,然后返回机盒内。 6.位置识别、异常情况判断、状态显示、时间显

14、示:在系统对马达进行驱动控制时,都要进行位置识别、异常情况判断,并把检测到的信号通过状态显示模块处理输出。在每一运行过程,输出模块均把此时的时间显示出,最小时间单位为1 s。根据以上各种操作及要求,我们可得到各种操作的状态转换图如图1所示,系统的有关控制时序如图2和图3所示。图1 各种操作的状态转换图 图2 行走(142 mm3 s)与翻转(120°3 s)控制时序图 图3 角度调整和水平位置调整控制时序图图2和图3中的信号说明如下: open/close:外部开关操作输入信号;tilt:角度调整和水平位置调整信号输入端;p00/ ic2.6,p01/ic2.5,p02/ic1.6,

15、p03/ic1.5:驱动信号,高电平有效;m1.1,m1.2:行走马达控制信号,高电平有效,电压为9 v;m2.1,m2.2:翻转马达控制信号,高电平有效,电压为9 v;sensor1,sensor2:分别为行走马达和翻转马达的返回电压信号,系模拟信号。 二、 系统设计方案1.系统的总体结构设计根据系统的设计要求,我们可得到移动dvd位控系统dvdwkxt的输入和输出接口如图10.4所示。图中的信号说明如下:clkin:外部时钟端输入,8 mhz晶振;open_close:外部开关操作输入电平信号;tilt:外部输入位置调节信号;data:8位传感器返回数据;adcabc00:传感器通道选择信

16、号输出;adcclk:模拟转换器的时钟信号;eoc, op, read, write:adc0809的控制信号;motor11_out, motor12_out, motor21_out, motor22_out:驱动马达控制信号;ds_time,ds_unit:时间及单位输出信号;error00,good00:异常,正常输出信号;v_pos1, v_pos2, v_pos3:水平位置输出信号;h_pos1, h_pos2, h_pos3:角度位置输出信号。 根据实际要求,上面的各个信号输出为ttl标准电平,输出电流约为510 ma。图4 dvdwkxt的输入和输出接口图经过对系统的设计要求进

17、行分析,我们可将整个系统分为7个模块:分频模块fini、open_close操作模块open_op、tilt操作模块tilt_op、位置判断模块pos_diff、异常判断及处理模块abn_diff、判断输出模块output、时间及位置显示模块display。整个系统的组成框图如图5(略)(该图大家可以根据所给模块程序自行画出)所示。 2.系统内各模块的设计分频模块fini:其功能为对外部输入时钟进行分频,得到周期为1.5 ms计数器,并根据反馈信号time_s对计时器进行清零。其输入输出接口如图6所示,图中的clkin为外部时钟输入,time_s为定时器清零信号。 图6 分频模块fini输入输

18、出接口图open_close操作模块open_op:其功能为根据反馈的数据和相关的信号,做出具体的马达控制输出。其输入输出接口如图7所示,图中的信号tilt_bcd、tilt_fgh为从tilt模块返回的控制信号,time_s是内部计时器的清零信号,error0为异常警告信号。图10.7 open_close操作模块open_op输入输出接口图tilt操作模块tilt_op:其功能为根据反馈的数据和相应的信号,做出具体的马达控制输出。其输入输出接口如图8所示,图中的信号tilt_bcd0、tilt_fgh0为小范围内调整控制信号,adcabcp5是adc0809通道选通信号。图8 tilt操作

19、模块tilt_op输入输出接口图位置判断模块pos_diff:其功能为对每个周期内的移动显示屏的位置进行判断,并把信号输出。其输入输出接口如图9所示,图中的vpa、vpb、vpc、vpd、hpe、hpf、hpg、hph、vpab、vpbc、vpcd、hpef、hpfg、hpgh为输出位信号。 异常判断及处理模块abn_diff:其功能为在每一个周期内对系统的运行异常情况判断,并把信号输出。针对不同的位置,在相应的操作里,设定的时间内,如没有到达规定的位置,则判断为异常,并关断马达的运行。其输入输出接口如图10所示。图9 位置判断模块pos_diff输入输出接口图图10 异常判断及处理模块abn

20、_diff输输出接口图判断输出模块output:其功能为根据以上模块的各判断输出信号,进行再次判断,并输出到外部。由以上模块进行操作,得到不同的信号,从而进行输出控制;主要是针对模拟通道的选择,以及对马达1和马达2的控制。其输入输出接口如图11所示。 图11 判断输出模块output输入输出接口图时间及位置显示模块display:其功能为对外显示每一移动过程所用时间。其输入输出接口如图12所示,图中的ds_time、ds_unit为输出时间及时间单位。由于输出为ttl标准电平,因此外部需要附加七段码驱动芯片,本设计拟用74als244。图12 时间及位置显示模块display输入输出接口图三、

21、主要vhdl源程序- dvdwkxt.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; -定义一个实体 entity dvdwkxt is port(clkin: in std_logic;-外部时钟输入端 open_close,tilt: in std_logic; data: in std_logic_vector(7 downto 0);-传感器返回位置数据 adcabc00: out std_logic_vector(2 do

22、wnto 0); -选择模拟转换通道 adcclk: out std_logic;eoc,read,write,op: out std_logic;-adc0809控制端 motor11_out,motor12_out: out std_logic;-马达ttl电平控制端 motor21_out,motor22_out: out std_logic; -马达ttl电平控制端 ds_time,ds_unit: out std_logic_vector(7 downto 0); -显示时间 error00,good00: out std_logic; -异常情况输出端 v_pos1,v_pos2,

23、v_pos3: out std_logic;-水平位置信号 h_pos1,h_pos2,h_pos3: out std_logic);-翻转角度信号 end entity dvdwkxt;architecture art of dvdwkxt is signal count: std_logic_vector(16 downto 0);-分频 signal time00: std_logic_vector(12 downto 0);-计数器 signal v_postionp2,h_postionp2: std_logic_vector(7 downto 0); signal v_postio

24、np3,h_postionp3: std_logic_vector(7 downto 0); signal v_postionp4,h_postionp4: std_logic_vector(7 downto 0); signal v_postionp5,h_postionp5: std_logic_vector(7 downto 0); -上面四个语句均为位置寄存器 signal adivider,time_s: std_logic; signal motor11p2,motor12p2,motor21p2,motor22p2: std_logic; signal motor11p5,mot

25、or12p5,motor21p5,motor22p5: std_logic; signal motor11p4,motor12p4,motor21p4,motor22p4: std_logic; signal error0,good0: std_logic; - 异常情况寄存器 signal adcabcp2,adcabcp5:std_logic_vector(2 downto 0); -通道选择寄存器 signal vpa,vpb,vpc,vpd: std_logic;-水平位置信号标志 signal hpe,hpf,hpg,hph: std_logic;-角度位置标志 signal vpa

26、b,vpbc,vpcd: std_logic;signal hpef,hpfg,hpgh: std_logic; signal tilt_bcd,tilt_fgh: std_logic;-tilt信号判断标志 signal vc_vd,vd_vb,vb_vc: std_logic;-位置常量标志 signal hf_hg,hg_hh,hh_hf: std_logic;-位置常量标志constant va: integer :=20; constant vb: integer :=180; constant vc: integer :=210; constant vd: integer :=24

27、0; constant he: integer :=20; constant hf: integer :=180; constant hg: integer :=210; constant hh: integer :=240;begin -程序初始化 eoc<=adivider; read<=not(adivider); write<=not(adivider); op<=not(adivider); adcclk<=not(adivider); error00<=error0; good00<=good0; -divider frequency 分频

28、子进程 p1:process(clkin) isbegin if(clkin'event and clkin='1')then count<=count+1; end if; if(count="11111111111111111")then adivider<='1' else adivider<='0' end if; if(time_s='1')then if(adivider='1')then time00<=time00+1; end if; elsif

29、(time_s='0')then -对计数器清零 time00<="0000000000000" end if; end process p1;  -执行open_close操作 p2:process(adivider,open_close,error0,tilt) isvariable v_postion2,h_postion2:integer range 256 downto 1; begin if (open_close='1' and error0='0' and tilt_bcd='0'

30、; and tilt_fgh='0' and good0='0')then -正常情况下出盒 adcabcp2<="000" v_postionp2<=data ; v_postion2:=conv_integer(v_postionp2); if(v_postion2>=va and v_postion2<vb and adcabcp2="000") thenmotor11p2<='1' end if; if(v_postion2>=vb and adcabcp2=&q

31、uot;000")then motor11p2<='0' adcabcp2<="001" time_s<='0' h_postionp2<=data ; h_postion2:=conv_integer(h_postionp2);-水平出盒完成 end if;if(h_postion2>=he and h_postion2<hf and adcabcp2="001")then motor21p2<='1'-向上翻转 end if; if(h_postion

32、2>=hf and adcabcp2="001")then motor21p2<='0' time_s<='0' good0<='1' end if; -出盒操作完成 end if;if(open_close='0' and error0='0' and tilt_bcd='0' and tilt_fgh='0' and good0='1')then-回盒条件成立 adcabcp2<="001" h

33、_postionp2<=data; h_postion2:=conv_integer(h_postionp2); if(h_postion2>he and h_postion2<=hh and adcabcp2="001")then motor22p2<='1' end if ;if(h_postion2<=he and adcabcp2="001")then -向下翻转 motor22p2<='0' time_s<='0' adcabcp2<="0

34、00" v_postionp2<=data; v_postion2:=conv_integer(v_postionp2); end if; if(v_postion2>va and v_postion2<=vd and adcabcp2="000")thenmotor12p2<='1' -水平回盒 end if; if(v_postion2<=va and adcabcp2="000")then motor12p2<='0' time_s<='0' goo

35、d0<='0' end if ; end if ; end process p2;-位置判断子进程 p3:process(adivider) is variable v_postion3,h_postion3:integer range 256 downto 1; begin if(adcabcp2="000" or adcabcp5="000")then v_postionp3<=data; v_postion3:=conv_integer(v_postionp3); if(v_postion3<=va)then -在

36、盒内状态 vpa<='1' vpb<='0' vpc<='0' vpd<='0' vpab<='0' vpbc<='0' vpcd<='0' elsif(v_postion3>va and v_postion3<vb)then -出盒中间位置 vpa<='0' vpb<='0' vpc<='0' vpd<='0' vpab<='1

37、' vpbc<='0' vpcd<='0' elsif(v_postion3=vb)then -水平位置b vpa<='0' vpb<='1' vpc<='0' vpd<='0' vpab<='0' vpbc<='0' vpcd<='0'elsif(v_postion3>vb and v_postion3<vc)then -水平位置bc之间 vpa<='0'

38、 vpb<='0' vpc<='0' vpd<='0' vpab<='0' vpbc<='1' vpcd<='0' elsif(v_postion3=vc)then -水平位置c vpa<='0' vpb<='0' vpc<='1' vpd<='0' vpab<='0' vpbc<='0' vpcd<='0'el

39、sif(v_postion3>vc and v_postion3<vd)then -水平位置cd之间 vpa<='0' vpb<='0' vpc<='0' vpd<='0' vpab<='0' vpbc<='0' vpcd<='1' elsif(v_postion3>=vd)then -水平位置d vpa<='0' vpb<='0' vpc<='0' vpd&

40、lt;='1' vpab<='0' vpbc<='0' vpcd<='0' end if; end if ;if(adcabcp2="001" or adcabcp5="001")then h_postionp3<=data ; h_postion3:=conv_integer(h_postionp3); if(h_postion3<=he)then -翻转位置e hpe<='1' hpf<='0' hpg<=&

41、#39;0' hph<='0' hpef<='0' hpfg<='0' hpgh<='0' elsif(h_postion3>he and h_postion3<hf)then -角度位置e、f之间 hpe<='0' hpf<='0' hpg<='0' hph<='0' hpef<='1' hpfg<='0' hpgh<='0'elsi

42、f(h_postion3=hf)then -角度位置f hpe<='0' hpf<='1' hpg<='0' hph<='0' hpef<='0' hpfg<='0' hpgh<='0' elsif(h_postion3>hf and h_postion3<hg)then -角度位置f、h之间 hpe<='0' hpf<='0' hpg<='0' hph<=&

43、#39;0' hpef<='0' hpfg<='1' hpgh<='0' elsif(h_postion3=hg)then -角度位置h hpe<='0' hpf<='0' hpg<='1' hph<='0' hpef<='0' hpfg<='0' hpgh<='0'elsif(h_postion3>hg and h_postion3<hh)then -角度

44、位置g、h之间 hpe<='0' hpf<='0' hpg<='0' hph<='0' hpef<='0' hpfg<='0' hpgh<='1' elsif(h_postion3=hh)then -角度位置h hpe<='0' hpf<='0' hpg<='0' hph<='1' hpef<='0' hpfg<='0&

45、#39; hpgh<='0' end if; end if; end process p3;-异常判断子程序 p4:process(adivider) is variable v_postion4,h_postion4:integer range 256 downto 1; begin if(adcabcp2="000" or adcabcp5="000") then -水平位置 v_postionp4<=data ; v_postion4:=conv_integer(v_postionp4); if(motor11p2=&#

46、39;1' or motor12p2='1' or motor11p5='1' or motor12p5='1') and conv_integer(time00)>=4000 and (v_postion4>va and v_postion4<vb)then error0<='1' -出盒或进盒过程中出错 motor11p4<='0' motor12p4<='0' end if; if(motor11p2='1' or motor12p2

47、='1' or motor11p5='1' or motor12p5='1') and conv_integer(time00)>=2666 and (vpb='0' and vpc='0' and vpd='0')then error0<='1' -水平位置调节时出错 motor11p4<='0' motor12p4<='0' end if; end if; if(adcabcp2="001" or adc

48、abcp5="001")then h_postionp4<=data ;h_postion4:=conv_integer(h_postionp4); if(motor21p2='1' or motor22p2='1') or (motor21p5='1' or motor22p5='1') and conv_integer(time00)>=4000 and (h_postion4>he and h_postion4<hf)then error0<='1' -大角度

49、翻转时出错 motor21p4<='0' motor22p4<='0' end if;if(motor21p2='1' and motor22p2='1' )or (motor21p5='1' or motor22p5='1') and (conv_integer(time00)>=2666) and (hpf='0' and hpg='0' and hph='0')then error0<='1' -角度调节时

50、出错 motor21p4<='0' motor22p4<='0' end if; end if;if(error0='1' and conv_integer(time00)>=4000)then error0<='0' end if; end process p4;  -tilt操作执行 p5:process(adivider,tilt,open_close) is variable v_postion5,h_postion5:integer range 256 downto 1;begin if

51、(open_close='1' and good0='1' and error0='0')then-是否正常 if(tilt='1' and conv_integer(time00)>=2666 )then -是否是位置调节 adcabcp5<="000" v_postionp5<=data ; v_postion5:=conv_integer(v_postionp5); tilt_bcd<='1'elsif(tilt='1' and conv_integ

52、er(time00)<2666)then -是否是角度调节 adcabcp5<="001" h_postionp5<=data; h_postion5:=conv_integer(h_postionp5); tilt_fgh<='1' end if;if(tilt='0')then if(adcabcp5="000" and tilt_bcd='1')then -判断方向 if(vpc='1')then -从位置c到位置d vc_vd<='1'

53、end if; if(vpd='1')then -从位置d到位置c vd_vb<='1' end if; if(vpb='1')then -从位置b到位置c vb_vc<='1' end if;if(vc_vd='1' and v_postion5>=vc and v_postion5<vd)then motor11p5<='1' elsif(vc_vd='1' and v_postion5=vd)then -到达位置d motor11p5<=&#

54、39;0' tilt_bcd<='0' vc_vd<='0' end if ;if(vd_vb='1' and v_postion5>vb and v_postion5<=vd) then -postion d motor12p5<='1' elsif(vc_vd='1' and v_postion5=vb)then -到达位置b motor12p5<='0' tilt_bcd<='0' vd_vb<='0' e

55、nd if ; if(vb_vc='1' and v_postion5>=vb and v_postion5<vc) then -postion bmotor11p5<='1' elsif(vc_vd='1' and v_postion5=vc)then -到达位置c motor11p5<='0' tilt_bcd<='0' vc_vd<='0' end if ; end if; if(adcabcp5="001" and tilt_fgh=&

56、#39;1')then -different x to y if(hpf='1')then hf_hg<='1' end if; if(hpg='1')then hg_hh<='1' end if; if(hph='1')then hh_hf<='1' end if;if(hf_hg='1' and h_postion5>=hf and h_postion5<hg) then -postion f motor21p5<='1'

57、; elsif(hf_hg='1' and h_postion5=hg)then -到达位置g motor21p5<='0' tilt_fgh<='0' hf_hg<='0' end if;if(hg_hh='1' and h_postion5>=hg and h_postion5<hh) then -postion g motor21p5<='1' elsif(hg_hh='1' and h_postion5=hh)then -到达位置h motor21p5<='0' tilt_fgh<='0' hg_hh<='0' end if;if(hh_hf='1' and h_postion5>hf and h_postion5<hh) then -postion h motor22p

温馨提示

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

评论

0/150

提交评论