基于FPGA无叶风扇控制器的设计与制作知识讲解.doc

上传人:1595****071 文档编号:52358695 上传时间:2022-10-22 格式:DOC 页数:50 大小:1.21MB
返回 下载 相关 举报
基于FPGA无叶风扇控制器的设计与制作知识讲解.doc_第1页
第1页 / 共50页
基于FPGA无叶风扇控制器的设计与制作知识讲解.doc_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《基于FPGA无叶风扇控制器的设计与制作知识讲解.doc》由会员分享,可在线阅读,更多相关《基于FPGA无叶风扇控制器的设计与制作知识讲解.doc(50页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Good is good, but better carries it.精益求精,善益求善。基于FPGA无叶风扇控制器的设计与制作-杭州电子科技大学继续教育学院毕业设计(论文)题目基于FPGA无叶风扇控制器的设计与制作学习类别成人本科年级2011级专业电子信息工程班级金华学习中心(函授站)学号11131401007学生姓名彭召翔指导教师刘子坚完成日期2013年5月15日-基于FPGA无叶风扇控制器的设计与制作杭州电子科技大学电子信息工程专业彭召翔摘要本产品是无叶风扇的核心部件之一,使用简单,运行稳定可靠。功能丰富,质量可靠,人性化设计,尤其是众多的保护功能使产品返修率降到非常低的水平。具有升级

2、容易、通用性强、调速范围广等特点,安装十分方便。本控制器以FPGA为核心,采用Xilinx公司的XC6SLX9-TQG144芯片实现了压力的准确控制、数码管显示设定值与测量值、按键设定气压大小和起动停止控制功能、人体红外感应的控制、电机驱动的脉宽调制控制。关键词:无叶风扇;无叶风扇;FPGAFPGAdesignbladelessfancontroller(MajorofAppliedElectronicTechnology,InformationandEngineeringCollege,PengZhaoXiang)ABSTRACTThisproductisacorecomponentofth

3、enon-leaffan,easytouse,stableandreliable.Bladelessfanalsocalledairdoubler,itcanproducenaturalcontinuouscoolbreeze,noleaves,nodustcover,orinjurytothefingersofcuriouschildren.Evenmoreamazingisitspeculiarshape,theappearanceofboththeflowlinesandfresh,givingthevisualeffectcannotbecompared.Thecontrollerus

4、esFPGAasthecorechip,feature-rich,stableperformance,reliablequality,user-friendlydesign,especiallythemanyprotectionfunctionsproductfailureratesdowntoverylowlevels.Easytoupgrade,powerful,andawiderangeofversatility,speed,andveryeasytoinstall.Keyword:Noleaffan;Controller;FPGA目录引言11方案论证与确定21.1方案的选择21.2方案

5、论证与确定32硬件设计42.1硬件整体结构及原理42.2各模块电路52.2.1最小系统52.2.2人机接口电路与人体红外感应电路62.2.3电源电路72.2.4串口AD转换电路82.2.5电机驱动电路92.2.6压力传感器电路102.2.7差动放大电路113控制程序设计123.1程序流程图设计123.2程序设计介绍134系统联机调试164.1操作细则164.1.1设定功能164.1.2起停功能164.1.3调试总结164.2面板介绍174.3后面板介绍17结论18致谢19参考文献20附件21附件1:部分元器件清单21附件2:程序清单24附件2.电路实物图44引言无叶风扇也叫空气增倍机,它能产生

6、自然持续的凉风,因无叶片,不会覆盖尘土或伤到好奇儿童手指。更奇妙的是其造型奇特,外表既流线又清爽。无叶风扇的灵感源于空气叶片干手器。空气叶片干手器的原理是迫使空气经过一个小口来“吹”干手上的水,空气增倍器是让空气从一个1.0毫米宽、绕着圆环放大器转动的切口里吹出来。由于空气是被强制从这一圆圈里吹出来的,通过的空气量可增原先的15倍,它的时速可达到35公里。空气增倍器的空气流动比普通风扇产生的风更平稳。它产生的空气量相当于目前市场上性能最好的风扇。因为没有风扇片来切割空气,使用者不会感到阶段性冲击和波浪形刺激。它通过持续的空气流让你感觉更加自然的凉爽。”无叶风扇于2009年10月12日在英国首度

7、推出。2009年11月26日,浙江嵊州农民企业家胡国贤向国家知识产权局申请了无风叶风扇发明专利。2011年2月在香港推出第二代。要让无叶风扇实现我们需要的功能,必须要加一个控制器来控制风的大小、方向等等功能。我们使用FPGA为核心控制器,FPGA设计周期最短、开发费用最低、风险最小的器件,功耗低,系统集成度、可靠性的最佳。1方案论证与确定1.1方案的选择目前大多数的压力的控制系统都采用了以单片机作为控制器的设计,但是随着可编程逻辑器件的发展,家用电器的控制部分也越来越多地使用可编程逻辑器件来实现,所以下面提供了以单片机和可编程逻辑器件(FPGA)为核心控制器件的2个方案进行选择。方案1:该方案

8、采用的是AT89C51单片机为核心控制器件,用它来处理各个单元电路的工作以及检测其运行情况。首先通过压力传感器对空气进行采集,将采集的气压信号作A/D转换,使其模拟信号转变成数字信号,然后输给单片机,再由单片机控制显示,并比较采集的气压与设定的气压是否一致,然后驱动电机的运行,本设计中我们采用的是MPXV7002DP压力传感器模块,通过压力传感器模块采集电路采集相关压力数值,再由AD0809组成的A/D转换电路进行转换,最终的到数字信号,将其直接输给单片机,然后由单片机机根据内部程序判断,执行相关控制程序,驱动个单元电路的工作。其方框图如下:图11方案1结构框图方案2:该方案以FPGA为核心控

9、制器件,采用MPXV7002DP压力传感器模块进行压力采集,通过压力传感器模块采集电路采集相关压力数值,经信号调理电路处理,再由AD7991组成的A/D转换电路进行转换,最终的到数字信号。另一路由KP500B热释电红外传感器感应的人体的信号再经过芯片BISS001的处理,再加到FPGA芯片处理。同时通过FPGA芯片还可以实现测量和设定显示,使用6个数码管将传感器测量到的压强,设定的压强。其方框图如下:气压传感器风扇电机控制器热释电红外传感器LED显示图12方案2结构框图1.2方案论证与确定通过比较两个方案,方案1采用单片机为核心控制器件,该方案的优点是容易控制,系统原理比较简单,电路可靠,容易

10、实现控制目的。但是该方案中的单片机,容易产生误差等一系列问题。方案2采用的是以FPGA为核心控制器件,同时压力传感器采用的是MPXV7002DP压力传感器,通过该传感器采集的压力信息需要经过信号放大和A/D转换直接以数字信号的形式传递给控制芯片,使得电路的连接大大的简化了,减小了电路复杂所带来的误差等问题。而且FPGA芯片所具有的可编程修改的特点以及其强大的逻辑功能都是单片机难以达到的,这样不但给设计过程中带来一系列的便利,而且在电风扇的功能日趋人性化和智能话的发展趋势下,以FPGA为控制器件的设计无疑更加具有市场竞争力。所以同过上面的对两个方案的比较论证,本次设计采用方案2来实现。2硬件设计

11、2.1硬件整体结构及原理硬件电路主要包括电源电路、石英晶振、压力传感器、FPGA控制器、数码管显示组成。本设计使用的FPGA芯片是Xilinx公司的XC6SLX9系列的TQG144,压力传感器采用MPXV7002DP。整个硬件的框图如图所示。FPGA100MHz石英晶振电源电路风扇执行机构数码管显示压力传感器按钮图21整个硬件的结构框图整个电路的工作原理是由100MHz石英晶振FPGA提供时钟信号,FPGA芯片所需要的1.2V和3.3V电压由外部的5V电源通过电源电路获得。压力传感器MPXV7002DP将采集的压力信息经过信号放大和A/D转换直接以数字信号的形式传递给FPGA芯片,用户也可通过

12、按钮根据需要自己设定压力值。采集压力和设定压力都送给FPGA控制器,控制器通过对两个压力值的比较做出判断,当测量压力大于设定压力时就想电风扇的电机发出减小的控制信号;当测量压力小于设定压力时,则发出一增加的控制信号;当两者相等时则不减小也不增加。通过执行机构工作状态的转换来达到改变风扇风力大小的目的。同时,FPGA还可以对设定压力进行定时,并将定时的时间、测量压力和设定压力的值通过6个数码管显示出来。2.2各模块电路2.2.1最小系统图22最小系统电路图最小系统由FPGA芯片、晶振电路、配置电路、复位电路等四部分构成。其中,FPGA为核心,可用于构建强大的数字系统;晶振电路选用100MHz有源

13、晶振,作为系统主时钟;配置电路选用SPI接口的Flash芯片W25Q128BV;复位电路采用简单的阻容耦合方式,低电平复位。采用AD7991,该转换芯片的工作电压及参考电压选择为+3.3V,而信号调理电路输出电压范围为05V,因此需要分压、缓冲电路实现05V到03.3V转换,在运放同相端及输出接口处加二极管进行限幅,实现对运放及后级电路的保护;A/D芯片输出接口采用IIC接口,在其输出SCL、SDA部分必须接上拉电阻;为了提高测量精度,Vin3在此处接参考电压。2.2.2人机接口电路与人体红外感应电路图23人机接口与人体红外感应电路图本系统人机接口电路采用独立按键加数码管相结合的方式。按键采用

14、微动开关,其一端通过一电阻上拉至3.3V,另外一端接地,当某个键被按下时,对应输出被拉低;数码管显示电路中,数码管选用共阳数码管,为节约端口采用动态扫描方式,段码驱动电路选用74HC245总线驱动芯片,位选驱动电路采用74HC245与三极管相结合的方式。红外传感器增加了后级处理芯片BISS0001,Rt为光敏电阻,用来检测环境照度。当作为照明控制时,若环境较明亮,Rt的电阻值会降低,使9脚的输入保持为低电平,从而封锁触发信号Vs。1脚是工作方式选择,当1脚与+5V端连通时,芯片处于可重复触发工作方式;当1脚与地端连通时,芯片则处于不可重复触发工作方式。输出延迟时间Tx由外部的R55和C24的大

15、小调整,值为Tx24576xR55C24;触发封锁时间Ti由外部的R56和C25的大小调整,值为Ti24xR56C25,稳压二极管在输出起保护作用。2.2.3电源电路图24电源电路图外面接12V开关电源,经过SW1开关,再整流滤波以后通过3个LM2576分别产生5V,3.3V,1.2V的电压。其中,3.3V和1.2V用了很多电容抗高频干扰,保证了FPGA的工作稳定。同时在图中还有EPROM,在电路中R43作为M93C66的4脚的下拉电阻。2.2.4串口AD转换电路图25串口AD转换电路图主要由芯片LF353构成电压跟随器,还有2个TL084N构成反相放大器。并且输入和输出都有二极管限幅保护作用

16、。由它们组成两路05V输入和两路-55V输入。4路输出再经过AD7991的模数转换,产生的数字信号在加到FPGA控制芯片。该电源另外采用LM2576集成电源,防止共用一个3.3V电源时电流不足。LED串联一个3.3K限流电阻指示灯。2.2.5电机驱动电路图26电机驱动电路图该电机驱动电路采用光耦TLP521隔离,还附加了LED指示灯,方便调试。当JH1为低电平时1、2脚导通,LED指示灯亮。同时场效应管栅极为高,场效应管导通24V电流流过电机,电机工作,否则电机不工作。D1、D2分别为电机和场效应管的继流二极管,防止不被反向电压击穿。2.2.6压力传感器电路图27压力传感器电路图MPXV700

17、2DP为小型封装(SOP)压阻式传感器是最新型的单片式硅压力传感器,可广泛用于各种应用,可提供与被测压力成正比、精确的高电平模拟输出信号。可用于测量正压和负压。此外,本实验采用特定输出2.5V的零位偏移替代了传统的0V,该新系列传感器每个端口允许测量的压力高达7kPa,也适用于真空检测。该电源也是使用外接的12V开关电源在经过Ua7805三端稳压管,输出5V电压,同时还增加了滤波和LED指示灯。2.2.7差动放大电路图27差动放大电路图电源电路采用2个二极管VD1VD2限幅保护作用。瓷片电容C3至C6100PF并联在正负电源上起高频抗干扰的作用。正负电源分别用LED1LED2指示,并且LED1

18、LED2分别串联一个3.3K限流电阻.差动放大电路采用3个集成运算放大器组成,调节RW1改变放大倍数,调节电位器RW2可使失调电压为零,UA741集成运算放大器构成电压跟随器。放大信号,缓冲隔离,阻抗匹配的作用。3控制程序设计3.1程序流程图设计图31程序流程图3.2程序设计介绍3.2.1程序功能CLK:instd_logic;-100MHZ时钟信号RESET:instd_logic;-人体热释电INFRARED_RECEIVE:instd_logic;-红外人体感应输出信号INF_LED:outstd_logic;-人体红外热释电感应到就灯亮-按键控制KEY_IN:instd_logic_v

19、ector(3downto0);-四个按键-AD7991采样LED3:outstd_logic;-转换成功标志SDA:inoutstd_logic;SCL:outstd_logic;AD_CONVERSION_SPEED:outstd_logic;-ad采样速度,用于观察-电机控制PWM_OUT:outstd_logic;-数码管显示DOT:outstd_logic;-小数点LED7:outstd_logic_vector(6downto0);-gfedcbacomAnodeBIT8:outstd_logic_vector(0to7)-bit8(7)tothefirstsmg-按键子程序com

20、ponentManyKeysport(CLK:instd_logic;RESET:instd_logic;KEY_IN:instd_logic_vector(3downto0);-四个按键KEY_OUT:outstd_logic_vector(3downto0)-按键输出指示,对应key1key4);endcomponent;-AD采样componentack_checkport(CLK:instd_logic;-100MHZRESET:instd_logic;Sampling_fre:outstd_logic;-AD7991每次转换标志LED3:outstd_logic;-转换成功标志SDA

21、:inoutstd_logic;SCL:outstd_logic;AD_CONVERSION_SPEED:outstd_logic;DATA_OUT:outstd_logic_vector(11downto0);endcomponent;-电机控制程序componentMotor_Controlport(CLK:instd_logic;RESET:instd_logic;KEY1,KEY2,KEY3,KEY4:instd_logic;-四个独立按键SAMPLING_FLAG:instd_logic;-AD7991每次采样标志INFRARED_RECEIVE:instd_logic;-红外热释电

22、接收信号INF_LED:outstd_logic;-人体红外热释电感应到就灯亮SAMPLING_DATA:instd_logic_vector(11downto0);-AD7991每次采样输出的12bits数据SMG_DATA_SV:outstd_logic_vector(11downto0);-给数码管显示的设定数据;SMG_DATA_PV:outstd_logic_vector(11downto0);-给数码管显示的测量值PWM_DUTY:outstd_logic_vector(6downto0)-控制PWM的数值);endcomponent;-PWM控制componentPWMport(

23、CLK:instd_logic;RESET:instd_logic;DUTY:instd_logic_vector(6downto0);-从0100%PWM_OUT:outstd_logic);endcomponent;-数码管显示componentSmg_Displayport(CLK:instd_logic;-100MHZRESET:instd_logic;DATA_SV:instd_logic_vector(11downto0);DATA_PV:instd_logic_vector(11downto0);DOT:outstd_logic;-MSBLSBLED7:outstd_logic_

24、vector(6downto0);-gfedcbacomAnodeBIT8:outstd_logic_vector(0to7)-bit8(7)tothefirstsmg);3.2.2AD转换1.该AD转换采用的是12bits的串行iic协议的AD7991,AD7991可以在三种模式下运行,分别是2.标准模式,快速模式,高速模式,对应的时钟最高分别为100K,400K,和3.4MHZ。3.此程序跑的是标准模式;SDA和SCL分别为AD7991的数据线和时钟线;3.2.3电机控制1.红外热释电要求选择可重复触发模式,即BISS001的A=1,选择高电平就可以;要求人不停地移动2.才能重复触发使输出

25、为高电平,平常为低电平,只有突然感应到人体红外线才能触发为高电平;之后又恢复到低电平3.电机控制按键:key1:控制电机启动;key2:停止;key3:气压增加按键;key4:气压减小按键;3.2.4PWM发生器1.PWM控制电机,PWM输出低电平就启动电机转,而不是高电平,因此这里的占空比2.是低电平与周期的比值,这里设置PWM开关频率为2KHZ;分100等分;4系统联机调试4.1操作细则通过无叶风扇控制器前面板的按键,可以实现无叶风扇的气压(风量)大小设定和起动停止控制功能,要求实现如下功能:4.1.1设定功能按上升“”键或下降“”键可以设定无叶风扇气压的大小,设定值在左边4位数码管上显示

26、,每按一次按键,增加或减小10帕气压值,设定范围从0帕到400帕。按键可以单次释放细调,也可以长按快速调节。4.1.2起停功能按起动功能键可实现无叶风扇的起动功能,按停止功能键可实现无叶风扇的停止功能,在开机时控制器要处于停止状态,设定值和测量值均显示“000”。无叶风扇运行时实际输出的气压应闭环控制,跟随设定的气压。实际的气压值在右边4位数码管上显示,显示的气压单位为“帕”,气压值以整数显示。按停止键后无叶风扇停止运行,气压设定值保持不变。气压传感器可通过U形气压计标定。无叶风扇控制器的前面板上有人体红外感应器,在无叶风扇处于停止状态时,当感应器检测到有人体活动存在,风扇自动运行至设定气压值

27、。4.1.3调试总结在调试的过程中,差动放大电路比较不好调节。我们最好当压力传感器在静态工作的时候先测量压力传感器输出电压,然后把差动放大电路的RW1电位器分压调到与传感器输出电压相同,才能把输出信号接到差动放大电路中,然后调节电位器RW2可使失调电压为零。在经过UA741集成运算放大器构成电压跟随器,信号缓冲隔离,阻抗匹配输入到串口AD转换电路。4.2面板介绍图32面板示意图所示为本系统的前面板,主要包括显示区、按键区、电源开关及传感器信号输入。其中,左边显示区用于显示设定压力值,右边显示区用于显示测量压力值。按键区中启动键用于启动操作;停止键用于停止操作;上升键用于增加压力值操作;下降键用

28、于减小压力值操作。电源开关用于接通或关断与220V市电的连接。4.3后面板介绍图33后板示意图所示为本系统的后面板,主要包括交流220V电源输入端子、电机接口输出端子、传感器信号输入端子。其中,交流220V电源输入端子里面还自带保险丝。结论通过对无叶风扇控制器的设计与制作与模拟仿真实验等调试工作,得出以下结论:1.根据课题任务书要求,正确设计了FPGA控制系统的主电路、外部接口电路及控制程序等,经过实验表明,设计方案正确可行。完成整个系统实物装配与调试。2.无叶风扇有、安全、环保、健康、省电、方便、价廉等优势,在市场中有一定的竞争力的产品。3.如果要进入市场当做一般的扇风的电风扇使用,成本还是

29、比较高的,如果用在什么类似的测量的地方是比较好的。4.本课题的研究中尚存在的问题是差动放大电路中的电位器调节时,不能很精确调到自己想要的,很容易松动。建议调好以后再改使用固定的电阻。5.本无叶风扇控制器中风扇的电机要的电流比较大,建议不要共用一个开关电源。在焊接FPGA芯片时,由于管脚比较多,在焊接时一定放正、焊牢。6.本产品还可以增加定时、报警、倾斜保护、转向、遥控等常用功能。致谢本论文设计在刘子坚老师的悉心指导和严格要求下业已完成,从课题选择到具体的写作过程,无不凝聚着刘子坚老师的心血和汗水,在我的毕业论文写作期间,刘子坚老师为我提供了种种专业知识上的指导和一些富于创造性的建议,没有这样的

30、帮助和关怀,我不会这么顺利的完成毕业论文。在此向刘子坚老师表示深深的感谢和崇高的敬意。在临近毕业之际,我还要借此机会向在这三年中给予了我帮助和指导的所有老师表示由衷的谢意,感谢他们三年来的辛勤栽培。不积跬步何以至千里,各位任课老师认真负责,在他们的悉心帮助和支持下,我能够很好的掌握和运用专业知识,并在设计中得以体现,顺利完成毕业论文。同时,在论文写作过程中,我还参考了有关的书籍和论文,在这里一并向有关的作者表示谢意。参考文献1潘明,潘松.数字电子技术基础M.科学出版社,2008:108295.2姚远,李辰等.FPGA应用开发入门与典型实例M.北京:人民邮电出版社,2010.3王金明.数字系统设

31、计与VerilogHDL(第4版)M.北京:电子工业出版社,2011.4刘文光.硅压阻式轮胎气压传感器电路设计J.轮胎工业,2006:299301.5陈杰,黄鸿.传感器与检测技术(第2版)M.北京:高等教育出版社,2010.6辜文杰,方宏.基于热释电效应的红外人体检测J.电子世界,2012:4849.7胡宴如,耿苏燕.模拟电子技术(第3版)M.高等教育出版社,2008:28251.8陈学平.AltiumDesignerSummer10电路设计与制作M.电子工业出版社,2011:41192.附件附件1:部分元器件清单附件2:程序清单顶层libraryIEEE;useIEEE.STD_LOGIC_

32、1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityTotal_Programisport(CLK:instd_logic;-100MHZ时钟信号RESET:instd_logic;-人体热释电INFRARED_RECEIVE:instd_logic;-红外人体感应输出信号INF_LED:outstd_logic;-人体红外热释电感应到就灯亮-按键控制KEY_IN:instd_logic_vector(3downto0);-四个按键-AD7991采样LED3:outstd_logic;-转换成功标志

33、SDA:inoutstd_logic;SCL:outstd_logic;AD_CONVERSION_SPEED:outstd_logic;-ad采样速度,用于观察-电机控制PWM_OUT:outstd_logic;-数码管显示DOT:outstd_logic;-小数点LED7:outstd_logic_vector(6downto0);-gfedcbacomAnodeBIT8:outstd_logic_vector(0to7)-bit8(7)tothefirstsmg);endTotal_Program;architectureBehavioralofTotal_Programis-按键子程序

34、componentManyKeysport(CLK:instd_logic;RESET:instd_logic;KEY_IN:instd_logic_vector(3downto0);-四个按键KEY_OUT:outstd_logic_vector(3downto0)-按键输出指示,对应key1key4);endcomponent;-AD采样componentack_checkport(CLK:instd_logic;-100MHZRESET:instd_logic;Sampling_fre:outstd_logic;-AD7991每次转换标志LED3:outstd_logic;-转换成功标志

35、SDA:inoutstd_logic;SCL:outstd_logic;AD_CONVERSION_SPEED:outstd_logic;DATA_OUT:outstd_logic_vector(11downto0);endcomponent;-电机控制程序componentMotor_Controlport(CLK:instd_logic;RESET:instd_logic;KEY1,KEY2,KEY3,KEY4:instd_logic;-四个独立按键SAMPLING_FLAG:instd_logic;-AD7991每次采样标志INFRARED_RECEIVE:instd_logic;-红外

36、热释电接收信号INF_LED:outstd_logic;-人体红外热释电感应到就灯亮SAMPLING_DATA:instd_logic_vector(11downto0);-AD7991每次采样输出的12bits数据SMG_DATA_SV:outstd_logic_vector(11downto0);-给数码管显示的设定数据;SMG_DATA_PV:outstd_logic_vector(11downto0);-给数码管显示的测量值PWM_DUTY:outstd_logic_vector(6downto0)-控制PWM的数值);endcomponent;-PWM控制componentPWMpo

37、rt(CLK:instd_logic;RESET:instd_logic;DUTY:instd_logic_vector(6downto0);-从0100%PWM_OUT:outstd_logic);endcomponent;-数码管显示componentSmg_Displayport(CLK:instd_logic;-100MHZRESET:instd_logic;DATA_SV:instd_logic_vector(11downto0);DATA_PV:instd_logic_vector(11downto0);DOT:outstd_logic;-MSBLSBLED7:outstd_log

38、ic_vector(6downto0);-gfedcbacomAnodeBIT8:outstd_logic_vector(0to7)-bit8(7)tothefirstsmg);endcomponent;signalkey_reg:std_logic_vector(3downto0);signalsampling_reg:std_logic;signalad_reg:std_logic_vector(11downto0);signalduty_reg:std_logic_vector(6downto0);signalsv_smg,pv_smg:std_logic_vector(11downto

39、0);beginUA:ManyKeysportmap(CLK=CLK,RESET=RESET,KEY_IN=KEY_IN,KEY_OUT=key_reg);UB:ack_checkportmap(CLK=CLK,RESET=RESET,Sampling_fre=sampling_reg,LED3=LED3,SDA=SDA,SCL=SCL,AD_CONVERSION_SPEED=AD_CONVERSION_SPEED,DATA_OUT=ad_reg);UC:Motor_Controlportmap(CLK=CLK,RESET=RESET,KEY1=key_reg(3),KEY2=key_reg(

40、2),KEY3=key_reg(1),KEY4=key_reg(0),SAMPLING_FLAG=sampling_reg,INFRARED_RECEIVE=INFRARED_RECEIVE,INF_LED=INF_LED,SAMPLING_DATA=ad_reg,SMG_DATA_SV=sv_smg,SMG_DATA_PV=pv_smg,PWM_DUTY=duty_reg);UD:PWMportmap(CLK=CLK,RESET=RESET,DUTY=duty_reg,PWM_OUT=PWM_OUT);UE:Smg_Displayportmap(CLK=CLK,RESET=RESET,DAT

41、A_SV=sv_smg,DATA_PV=pv_smg,DOT=DOT,LED7=LED7,BIT8=BIT8);endBehavioral;libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityManyKeysisport(CLK:instd_logic;RESET:instd_logic;KEY_IN:instd_logic_vector(3downto0);-四个按键KEY_OUT:outstd_logic_vector(3downto0

42、)-按键输出指示,对应key1key4);endManyKeys;architectureBehavioralofManyKeysiscomponentIndependent_Keysport(CLK:instd_logic;-100MHZRESET:instd_logic;-CPURESETKEY:instd_logic;-输入按键KOUT:outstd_logic-按键输出指示);endcomponent;beginG1:foriin0to3generateux:Independent_Keysportmap(CLK=CLK,RESET=RESET,KEY=KEY_IN(i),KOUT=K

43、EY_OUT(i);endgenerate;endBehavioral;-程序功能:单个按键按下并要求释放后才算一次按键,按下和释放都去抖了,一次按键按下并释放后-按键输出只持续10ms高电平-libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityIndependent_Keysisport(CLK:instd_logic;-100MHZRESET:instd_logic;-CPURESETKEY:instd_logic;-输入按键KOUT:outstd_logic-按键输出指示);endIndependent_Keys;architectureBehavioralofIndependent_Keysissignalclk100hz:std_logic;typestateis(s0,s1,s2,s3,s4,s5);signalcurrent_state:state;beginprocess(CLK,RESET)-产生10ms周期的时钟信号variablecount:integerrange0to500000;beginifRESET=0thencount:=0;clk100hz=0;elsifrising_edge(CLK)th

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com