




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭州电子科技大学 继 续 教 育 学 院 毕业设计(论文)毕业设计(论文) 题题 目目 基于基于 fpgafpga 无叶风扇控制器的设计与制作无叶风扇控制器的设计与制作 学习类别学习类别 成人本科成人本科 年年 级级 20112011 级级 专专 业业 电子信息工程电子信息工程 班班 级级 金华学习中心金华学习中心 (函授站)(函授站) 学学 号号 1113140100711131401007 学生姓名学生姓名 彭召翔彭召翔 指导教师指导教师 刘子坚刘子坚 完成日期完成日期 20132013 年年 5 5 月月 1515 日日 杭州电子科技大学继续教育学院毕业设计(论文) 基于基于 fpgafpga 无叶风扇控制器的设计与制作无叶风扇控制器的设计与制作 杭州电子科技大学电子信息工程专业杭州电子科技大学电子信息工程专业 彭召翔彭召翔 摘要摘要 本产品是无叶风扇的核心部件之一,使用简单,运行稳定可靠。功能丰富, 质量可靠, 人性化设计, 尤其是众多的保护功能使产品返修率降到非常低的水平。 具有升级容易、通用性强、调速范围广等特点,安装十分方便。本控制器以 fpga 为核心,采用 xilinx 公司的 xc6slx9-tqg144 芯片实现了压力的准确控制、数码 管显示设定值与测量值、按键设定气压大小和起动停止控制功能、人体红外感应 的控制、电机驱动的脉宽调制控制。 关键词:关键词:无叶风扇;无叶风扇;fpga 杭州电子科技大学继续教育学院毕业设计(论文) fpga design bladeless fan controller (major of applied electronic technology,information and engineering college,peng zhaoxiang) abstract this product is a core component of the non-leaf fan, easy to use, stable and reliable. bladeless fan also called air doubler, it can produce natural continuous cool breeze, no leaves, no dust cover, or injury to the fingers of curious children. even more amazing is its peculiar shape, the appearance of both the flow lines and fresh, giving the visual effect can not be compared. the controller uses fpga as the core chip, feature- rich, stable performance, reliable quality, user-friendly design, especially the many protection functions product failure rates down to very low levels. easy to upgrade, powerful, and a wide range of versatility, speed, and very easy to install. keyword: no leaf fan;controller;fpga 杭州电子科技大学继续教育学院毕业设计(论文) 目录目录 引言 .1 1 方案论证与确定2 1.1 方案的选择2 1.2 方案论证与确定3 2 硬件设计4 2.1 硬件整体结构及原理4 2.2 各模块电路5 2.2.1 最小系统5 2.2.2 人机接口电路与人体红外感应电路6 2.2.3 电源电路 7 2.2.4 串口 ad 转换电路 .8 2.2.5 电机驱动电路 9 2.2.6 压力传感器电路 .10 2.2.7 差动放大电路 .11 3 控制程序设计.12 3.1 程序流程图设计.12 3.2 程序设计介绍.13 4 系统联机调试.16 4.1 操作细则 .16 4.1.1 设定功能 .16 4.1.2 起停功能 .16 4.1.3 调试总结.16 4.2面板介绍17 4.3后面板介绍17 结论 18 致谢 19 参考文献 20 附件 21 附件 1 :部分元器件清单21 附件 2:程序清单.24 附件 2.电路实物图44 杭州电子科技大学继续教育学院毕业设计(论文) 1 引言引言 无叶风扇也叫空气增倍机,它能产生自然持续的凉风,因无叶片,不会覆盖 尘土或伤到好奇儿童手指。更奇妙的是其造型奇特,外表既流线又清爽。无叶风 扇的灵感源于空气叶片干手器。空气叶片干手器的原理是迫使空气经过一个小口 来“吹”干手上的水,空气增倍器是让空气从一个 1.0 毫米宽、绕着圆环放大器 转动的切口里吹出来。由于空气是被强制从这一圆圈里吹出来的,通过的空气量 可增原先的 15 倍,它的时速可达到 35 公里。空气增倍器的空气流动比普通风扇 产生的风更平稳。它产生的空气量相当于目前市场上性能最好的风扇。因为没有 风扇片来切割空气,使用者不会感到阶段性冲击和波浪形刺激。它通过持续 的空气流让你感觉更加自然的凉爽。 ” 无叶风扇于 2009 年 10 月 12 日在英国首度推出。2009 年 11 月 26 日,浙江 嵊州农民企业家胡国贤向国家知识产权局申请了无风叶风扇发明专利。2011 年 2 月在香港推出第二代。要让无叶风扇实现我们需要的功能,必须要加一个控制器 来控制风的大小、方向等等功能。我们使用 fpga 为核心控制器,fpga 设计周期 最短、开发费用最低、风险最小的器件,功耗低,系统集成度、可靠性的最佳。 杭州电子科技大学继续教育学院毕业设计(论文) 2 1 1 方案论证与确定方案论证与确定 1.1 方案的选择方案的选择 目前大多数的压力的控制系统都采用了以单片机作为控制器的设计,但是随 着可编程逻辑器件的发展,家用电器的控制部分也越来越多地使用可编程逻辑器 件来实现,所以下面提供了以单片机和可编程逻辑器件(fpga)为核心控制器件 的 2 个方案进行选择。 方案方案 1 1:该方案采用的是 at89c51 单片机为核心控制器件,用它来处理各个 单元电路的工作以及检测其运行情况。首先通过压力传感器对空气进行采集,将 采集的气压信号作 a/d 转换,使其模拟信号转变成数字信号,然后输给单片机, 再由单片机控制显示,并比较采集的气压与设定的气压是否一致,然后驱动电机 的运行,本设计中我们采用的是 mpxv7002dp 压力传感器模块,通过压力传感器 模块采集电路采集相关压力数值,再由 ad0809 组成的 a/d 转换电路进行转换, 最终的到数字信号,将其直接输给单片机,然后由单片机机根据内部程序判断, 执行相关控制程序,驱动个单元电路的工作。其方框图如下: 图 11 方案 1 结构框图 杭州电子科技大学继续教育学院毕业设计(论文) 3 方案方案 2 2:该方案以 fpga 为核心控制器件,采用 mpxv7002dp 压力传感器模 块进行压力采集,通过压力传感器模块采集电路采集相关压力数值,经信号调理 电路处理,再由 ad7991 组成的 a/d 转换电路进行转换,最终的到数字信号。另 一路由 kp500b 热释电红外传感器感应的人体的信号再经过芯片 biss001 的处 理,再加到 fpga 芯片处理。同时通过 fpga 芯片还可以实现测量和设定显示,使 用 6 个数码管将传感器测量到的压强,设定的压强。其方框图如下: 图 12 方案 2 结构框图 1.2 方案论证与确定 通过比较两个方案,方案 1 采用单片机为核心控制器件,该方案的优点是容 易控制,系统原理比较简单,电路可靠,容易实现控制目的。但是该方案中的单 片机,容易产生误差等一系列问题。方案 2 采用的是以 fpga 为核心控制器件, 同时压力传感器采用的是 mpxv7002dp 压力传感器,通过该传感器采集的压力信 息需要经过信号放大和 a/d 转换直接以数字信号的形式传递给控制芯片,使得电 路的连接大大的简化了,减小了电路复杂所带来的误差等问题。而且 fpga 芯片 所具有的可编程修改的特点以及其强大的逻辑功能都是单片机难以达到的,这样 不但给设计过程中带来一系列的便利,而且在电风扇的功能日趋人性化和智能话 的发展趋势下,以 fpga 为控制器件的设计无疑更加具有市场竞争力。所以同过 上面的对两个方案的比较论证,本次设计采用方案 2 来实现。 控制器 气压传感器 热释电红外 传感器 风扇电机 led 显示 杭州电子科技大学继续教育学院毕业设计(论文) 4 2 2 硬件设计硬件设计 2.12.1 硬件整体结构及原理硬件整体结构及原理 硬件电路主要包括电源电路、石英晶振、压力传感器、fpga 控制器、数码管 显示组成。本设计使用的 fpga 芯片是 xilinx 公司的 xc6slx9 系列的 tqg144,压 力传感器采用 mpxv7002dp。整个硬件的框图如图所示。 fpga 100mhz 石英晶振 电源电路 风扇执行机构 数码管显示 压力传感器 按钮 图21 整个硬件的结构框图 整个电路的工作原理是由 100mhz 石英晶振 fpga 提供时钟信号,fpga 芯片所 需要的 1.2v 和 3.3v 电压由外部的 5v 电源通过电源电路获得。压力传感器 mpxv7002dp 将采集的压力信息经过信号放大和 a/d 转换直接以数字信号的形式传 递给 fpga 芯片,用户也可通过按钮根据需要自己设定压力值。采集压力和设定 压力都送给 fpga 控制器,控制器通过对两个压力值的比较做出判断,当测量压 力大于设定压力时就想电风扇的电机发出减小的控制信号;当测量压力小于设定 压力时,则发出一增加的控制信号 ;当两者相等时则不减小也不增加。通过执 行机构工作状态的转换来达到改变风扇风力大小的目的。同时,fpga 还可以对设 定压力进行定时,并将定时的时间、测量压力和设定压力的值通过 6 个数码管显 示出来。 杭州电子科技大学继续教育学院毕业设计(论文) 5 2.22.2 各模块电路各模块电路 2.2.12.2.1 最小系统最小系统 图 22 最小系统电路图 最小系统由 fpga 芯片、晶振电路、配置电路、复位电路等四部分构成。其 中,fpga 为核心,可用于构建强大的数字系统;晶振电路选用 100mhz 有源晶振, 作为系统主时钟;配置电路选用 spi 接口的 flash 芯片 w25q128bv;复位电路采 用简单的阻容耦合方式,低电平复位。采用 ad7991,该转换芯片的工作电压及参 考电压选择为+3.3v,而信号调理电路输出电压范围为 05v,因此需要分压、缓 冲电路实现 05v 到 03.3v 转换,在运放同相端及输出接口处加二极管进行限 幅,实现对运放及后级电路的保护;a/d 芯片输出接口采用 iic 接口,在其输出 scl、sda 部分必须接上拉电阻;为了提高测量精度,vin3 在此处接参考电压。 杭州电子科技大学继续教育学院毕业设计(论文) 6 2.2.22.2.2 人机接口电路与人体红外感应电路人机接口电路与人体红外感应电路 图 23 人机接口与人体红外感应电路图 本系统人机接口电路采用独立按键加数码管相结合的方式。按键采用微动开 关,其一端通过一电阻上拉至 3.3v,另外一端接地,当某个键被按下时,对应输 出被拉低;数码管显示电路中,数码管选用共阳数码管,为节约端口采用动态扫 描方式,段码驱动电路选用 74hc245 总线驱动芯片,位选驱动电路采用 74hc245 与三极管相结合的方式。红外传感器增加了后级处理芯片 biss0001,rt 为光敏 电阻,用来检测环境照度。当作为照明控制时,若环境较明亮,rt 的电阻值会降 低,使 9 脚的输入保持为低电平,从而封锁触发信号 vs。1 脚是工作方式选择, 当 1 脚与+5v 端连通时,芯片处于可重复触发工作方式;当 1 脚与地端连通时, 芯片则处于不可重复触发工作方式。输出延迟时间 tx 由外部的 r55 和 c24 的大 小调整,值为 tx24576xr55c24;触发封锁时间 ti 由外部的 r56 和 c25 的大小 调整,值为 ti24xr56c25,稳压二极管在输出起保护作用。 杭州电子科技大学继续教育学院毕业设计(论文) 7 2.2.32.2.3 电源电路电源电路 图 24 电源电路图 外面接 12v 开关电源,经过 sw1 开关,再整流滤波以后通过 3 个 lm2576 分 别产生 5v,3.3v,1.2v 的电压。其中,3.3v 和 1.2v 用了很多电容抗高频干扰,保 证了 fpga 的工作稳定。同时在图中还有 eprom,在电路中 r43 作为 m93c66 的 4 脚的下拉电阻。 杭州电子科技大学继续教育学院毕业设计(论文) 8 2.2.42.2.4 串口串口 adad 转换电路转换电路 图 25 串口 ad 转换电路图 主要由芯片 lf353 构成电压跟随器,还有 2 个 tl084n 构成反相放大器。并 且输入和输出都有二极管限幅保护作用。由它们组成两路 05v 输入和两路- 55v 输入。4 路输出再经过 ad7991 的模数转换,产生的数字信号在加到 fpga 控制芯片。该电源另外采用 lm2576 集成电源,防止共用一个 3.3v 电源时电流不 足。led 串联一个 3.3k 限流电阻指示灯。 杭州电子科技大学继续教育学院毕业设计(论文) 9 2.2.52.2.5 电机驱动电路电机驱动电路 图 26 电机驱动电路图 该电机驱动电路采用光耦 tlp521 隔离,还附加了 led 指示灯,方便调试。 当 jh1 为低电平时 1、2 脚导通,led 指示灯亮。同时场效应管栅极为高,场效应 管导通 24v 电流流过电机,电机工作,否则电机不工作。d1、d2 分别为电机和场 效应管的继流二极管,防止不被反向电压击穿。 杭州电子科技大学继续教育学院毕业设计(论文) 10 2.2.62.2.6 压力传感器电路压力传感器电路 图 27 压力传感器电路图 mpxv7002dp 为小型封装(sop)压阻式传感器是最新型的单片式硅压力传感器, 可广泛用于各种应用,可提供与被测压力成正比、精确的高电平模拟输出信号。 可用于测量正压和负压。此外,本实验采用特定输出 2.5v 的零位偏移替代了传 统的 0v,该新系列传感器每个端口允许测量的压力高达 7kpa,也适用于真空检 测。该电源也是使用外接的 12v 开关电源在经过 ua7805 三端稳压管,输出 5v 电 压,同时还增加了滤波和 led 指示灯。 杭州电子科技大学继续教育学院毕业设计(论文) 11 2.2.72.2.7 差动放大电路差动放大电路 图 27 差动放大电路图 电源电路采用 2 个二极管 vd1 vd2 限幅保护作用。瓷片电容 c3 至 c6 100pf 并联在正负电源上起高频抗干扰的作用。正负电源分别用 led1 led2 指示,并且 led1 led2 分别串联一个 3.3k 限流电阻.差动放大电路采用 3 个集成运算放大器 组成,调节 rw1 改变放大倍数,调节电位器 rw2 可使失调电压为零,ua741 集成 运算放大器构成电压跟随器。放大信号,缓冲隔离,阻抗匹配的作用。 杭州电子科技大学继续教育学院毕业设计(论文) 12 3 3 控制程序设计控制程序设计 3.13.1 程序流程图设计程序流程图设计 开始 ad采集压力传感器 电压值 数码管显示设定压 力值和实测压力值 是否设定压力 值? 是否启动风 扇? 是否检测到有 人? 是否增大压 力? 是否减小压 力? 风扇启动 pi算法处理使稳定 在设定值 否 是 是 压力相应加减,并 返回压力设定值 否 否 否 是 是 结束 图 31 程序流程图 杭州电子科技大学继续教育学院毕业设计(论文) 13 3.23.2 程序设计介绍程序设计介绍 3.2.13.2.1 程序功能程序功能 clk : in std_logic ;-100mhz 时钟信号 reset : in std_logic ; -人体热释电 infrared_receive : in std_logic;-红外人体感应输出信号 inf_led : out std_logic;-人体红外热释电感应到就灯亮 -按键控制 key_in : in std_logic_vector(3 downto 0);-四个按键 -ad7991 采样 led3:out std_logic;-转换成功标志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic;-ad 采样速度,用于观察 -电机控制 pwm_out : out std_logic; -数码管显示 dot: out std_logic;-小数点 led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg -按键子程序 component manykeys port( clk : in std_logic; reset : in std_logic; key_in : in std_logic_vector(3 downto 0);-四个按键 key_out : out std_logic_vector(3 downto 0) -按键输出 指示,对应 key1key4 ); end component ; -ad 采样 component ack_check port( clk : in std_logic; -100mhz reset : in std_logic; 杭州电子科技大学继续教育学院毕业设计(论文) 14 sampling_fre: out std_logic;-ad7991 每次转换标志 led3:out std_logic;-转换成功标志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic; data_out: out std_logic_vector(11 downto 0) ); end component ; -电机控制程序 component motor_control port( clk : in std_logic; reset : in std_logic; key1,key2,key3,key4 : in std_logic ;-四个独立按键 sampling_flag : in std_logic;-ad7991 每次采样标志 infrared_receive : in std_logic;-红外热释电接收信号 inf_led : out std_logic;-人体红外热释电感应到就灯亮 sampling_data : in std_logic_vector(11 downto 0);-ad7991 每次采样输出的 12bits 数据 smg_data_sv : out std_logic_vector(11 downto 0);-给数码管 显示的设定数据; smg_data_pv : out std_logic_vector(11 downto 0);-给数码管 显示的测量值 pwm_duty : out std_logic_vector(6 downto 0) -控制 pwm 的数 值 ); end component ; -pwm 控制 component pwm port( clk : in std_logic; reset : in std_logic; duty : in std_logic_vector(6 downto 0);-从 0100% pwm_out : out std_logic ); end component ; -数码管显示 杭州电子科技大学继续教育学院毕业设计(论文) 15 component smg_display port( clk :in std_logic;-100mhz reset : in std_logic; data_sv : in std_logic_vector(11 downto 0); data_pv : in std_logic_vector(11 downto 0); dot: out std_logic; -msb lsb led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg ); 3.2.23.2.2 adad 转换转换 1.该 ad 转换采用的是 12bits 的串行 iic 协议的 ad7991,ad7991 可以在三 种模式下运行,分别是 2.标准模式,快速模式,高速模式,对应的时钟最高分别为 100k,400k,和 3.4mhz。 3.此程序跑的是标准模式;sda 和 scl 分别为 ad7991 的数据线和时钟线; 3.2.33.2.3 电机控制电机控制 1. 红外热释电要求选择可重复触发模式,即 biss001 的 a=1,选择高电平就 可以;要求人不停地移动 2. 才能重复触发使输出为高电平,平常为低电平,只有突然感应到人体红 外线才能触发为高电平;之后又恢复到低电平 3. 电机控制按键:key1:控制电机启动;key2:停止;key3:气压增加按 键;key4:气压减小按键; 3.2.43.2.4 pwmpwm 发生器发生器 1. pwm 控制电机,pwm 输出低电平就启动电机转,而不是高电平,因此这里 的占空比 2. 是低电平与周期的比值,这里设置 pwm 开关频率为 2khz;分 100 等分; 杭州电子科技大学继续教育学院毕业设计(论文) 16 4 4 系统联机调试系统联机调试 4.14.1 操作细则操作细则 通过无叶风扇控制器前面板的按键,可以实现无叶风扇的气压(风量)大小 设定和起动停止控制功能,要求实现如下功能: 4.1.14.1.1 设定功能设定功能 按上升“”键或下降“”键可以设定无叶风扇气压的大小,设定值在左 边 4 位数码管上显示,每按一次按键,增加或减小 10 帕气压值,设定范围从 0 帕到 400 帕。按键可以单次释放细调,也可以长按快速调节。 4.1.24.1.2 起停功能起停功能 按起动功能键可实现无叶风扇的起动功能,按停止功能键可实现无叶风扇的 停止功能,在开机时控制器要处于停止状态,设定值和测量值均显示“000” 。 无叶风扇运行时实际输出的气压应闭环控制,跟随设定的气压。实际的气压 值在右边 4 位数码管上显示,显示的气压单位为“帕” ,气压值以整数显示。按 停止键后无叶风扇停止运行,气压设定值保持不变。气压传感器可通过 u 形气压 计标定。 无叶风扇控制器的前面板上有人体红外感应器,在无叶风扇处于停止状态时, 当感应器检测到有人体活动存在,风扇自动运行至设定气压值。 4.1.34.1.3 调试总结调试总结 在调试的过程中,差动放大电路比较不好调节。我们最好当压力传感器在静 态工作的时候先测量压力传感器输出电压,然后把差动放大电路的 rw1 电位器分 压调到与传感器输出电压相同,才能把输出信号接到差动放大电路中,然后调节 电位器 rw2 可使失调电压为零。在经过 ua741 集成运算放大器构成电压跟随器, 信号缓冲隔离,阻抗匹配输入到串口 ad 转换电路。 杭州电子科技大学继续教育学院毕业设计(论文) 17 4.24.2面板介绍面板介绍 图32 面板示意图 所示为本系统的前面板,主要包括显示区、按键区、电源开关及传感器信号 输入。其中,左边显示区用于显示设定压力值,右边显示区用于显示测量压力值。 按键区中启动键用于启动操作;停止键用于停止操作;上升键用于增加压力值操 作;下降键用于减小压力值操作。电源开关用于接通或关断与 220v 市电的连接。 4.34.3后后面板介绍面板介绍 图33 后板示意图 所示为本系统的后面板,主要包括交流 220v 电源输入端子、电机接口输出 端子、传感器信号输入端子。其中,交流 220v 电源输入端子里面还自带保险丝。 杭州电子科技大学继续教育学院毕业设计(论文) 18 杭州电子科技大学继续教育学院毕业设计(论文) 19 结论结论 通过对无叶风扇控制器的设计与制作与模拟仿真实验等调试工作,得出以下 结论: 1.根据课题任务书要求,正确设计了 fpga 控制系统的主电路、外部接口电 路及控制程序等,经过实验表明,设计方案正确可行。完成整个系统实物装配与 调试。 2.无叶风扇有、安全、环保、 健康、省电、方便、价廉等优势,在市场中 有一定的竞争力的产品。 3.如果要进入市场当做一般的扇风的电风扇使用,成本还是比较高的,如果 用在什么类似的测量的地方是比较好的。 4. 本课题的研究中尚存在的问题是差动放大电路中的电位器调节时,不能 很精确调到自己想要的,很容易松动。建议调好以后再改使用固定的电阻。 5. 本无叶风扇控制器中风扇的电机要的电流比较大,建议不要共用一个开 关电源。在焊接 fpga 芯片时,由于管脚比较多,在焊接时一定放正、焊牢。 6.本产品还可以增加定时、报警、倾斜保护、转向、遥控等常用功能。 杭州电子科技大学继续教育学院毕业设计(论文) 20 致谢致谢 本论文设计在刘子坚老师的悉心指导和严格要求下业已完成,从课题选择到 具体的写作过程,无不凝聚着刘子坚老师的心血和汗水,在我的毕业论文写作期 间,刘子坚老师为我提供了种种专业知识上的指导和一些富于创造性的建议,没 有这样的帮助和关怀,我不会这么顺利的完成毕业论文。在此向刘子坚老师表示 深深的感谢和崇高的敬意。 在临近毕业之际,我还要借此机会向在这三年中给予了我帮助和指导的 所有老师表示由衷的谢意,感谢他们三年来的辛勤栽培。不积跬步何以至千里, 各位任课老师认真负责,在他们的悉心帮助和支持下,我能够很好的掌握和运用 专业知识,并在设计中得以体现,顺利完成毕业论文。同时,在论文写作过程中, 我还参考了有关的书籍和论文,在这里一并向有关的作者表示谢意。 杭州电子科技大学继续教育学院毕业设计(论文) 21 参考文献参考文献 1 潘明, 潘松. 数字电子技术基础m. 科学出版社,2008: 108295. 2 姚远,李辰等. fpga 应用开发入门与典型实例m.北京: 人民邮电出版 社, 2010. 3 王金明. 数字系统设计与 verilog hdl(第 4 版)m.北京:电子工业 出版社,2011. 4 刘文光. 硅压阻式轮胎气压传感器电路设计 j. 轮胎工业, 2006: 299301. 5 陈杰,黄鸿. 传感器与检测技术(第 2 版)m. 北京:高等教育出版 社,2010. 6 辜文杰,方宏. 基于热释电效应的红外人体检测 j. 电子世界, 2012: 4849. 7 胡宴如, 耿苏燕. 模拟电子技术(第 3 版)m. 高等教育出版社, 2008: 28251. 8 陈学平. altium designer summer10 电路设计与制作m. 电子工业出 版社,2011: 41192. 杭州电子科技大学继续教育学院毕业设计(论文) 22 附件附件 附件附件 1 1 :部分元器件清单:部分元器件清单 杭州电子科技大学继续教育学院毕业设计(论文) 23 杭州电子科技大学继续教育学院毕业设计(论文) 24 杭州电子科技大学继续教育学院毕业设计(论文) 25 附件附件 2 2:程序清单:程序清单 顶层 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity total_program is port( clk : in std_logic ;-100mhz 时钟信号 reset : in std_logic ; -人体热释电 infrared_receive : in std_logic;-红外人体感应输出信号 inf_led : out std_logic;-人体红外热释电感应到就灯亮 -按键控制 key_in : in std_logic_vector(3 downto 0);-四个按键 -ad7991 采样 led3:out std_logic;-转换成功标志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic;-ad 采样速度,用于观察 -电机控制 pwm_out : out std_logic; -数码管显示 dot: out std_logic;-小数点 led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg ); end total_program; architecture behavioral of total_program is -按键子程序 component manykeys port( clk : in std_logic; reset : in std_logic; key_in : in std_logic_vector(3 downto 0);-四个按键 key_out : out std_logic_vector(3 downto 0) -按键输出指示,对应 key1key4 ); end component ; -ad 采样 component ack_check port( clk : in std_logic; -100mhz reset : in std_logic; 杭州电子科技大学继续教育学院毕业设计(论文) 26 sampling_fre: out std_logic;-ad7991 每次转换标志 led3:out std_logic;-转换成功标志 sda : inout std_logic; scl : out std_logic; ad_conversion_speed :out std_logic; data_out: out std_logic_vector(11 downto 0) ); end component ; -电机控制程序 component motor_control port( clk : in std_logic; reset : in std_logic; key1,key2,key3,key4 : in std_logic ;-四个独立按键 sampling_flag : in std_logic;-ad7991 每次采样标志 infrared_receive : in std_logic;-红外热释电接收信号 inf_led : out std_logic;-人体红外热释电感应到就灯亮 sampling_data : in std_logic_vector(11 downto 0);-ad7991 每次采样 输出的 12bits 数据 smg_data_sv : out std_logic_vector(11 downto 0);-给数码管显示的设 定数据; smg_data_pv : out std_logic_vector(11 downto 0);-给数码管显示的测 量值 pwm_duty : out std_logic_vector(6 downto 0) -控制 pwm 的数值 ); end component ; -pwm 控制 component pwm port( clk : in std_logic; reset : in std_logic; duty : in std_logic_vector(6 downto 0);-从 0100% pwm_out : out std_logic ); end component ; -数码管显示 component smg_display port( clk :in std_logic;-100mhz reset : in std_logic; data_sv : in std_logic_vector(11 downto 0); data_pv : in std_logic_vector(11 downto 0); dot: out std_logic; -msb lsb led7 :out std_logic_vector(6 downto 0);-gfedcba com anode bit8 :out std_logic_vector(0 to 7)-bit8(7) to the first smg ); end component ; signal key_reg : std_logic_vector(3 downto 0); signal sampling_reg : std_logic; signal ad_reg : std_logic_vector(11 downto 0); signal duty_reg : std_logic_vector(6 downto 0); 杭州电子科技大学继续教育学院毕业设计(论文) 27 signal sv_smg,pv_smg : std_logic_vector(11 downto 0); begin ua : manykeys port map ( clk = clk , reset = reset , key_in = key_in , key_out= key_reg ); ub : ack_check port map ( 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_control port map ( clk = clk , reset = reset , key1 =key_reg(3), key2 =key_reg(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 : pwm port map ( clk = clk , reset = reset , duty =duty_reg, pwm_out= pwm_out ); ue : smg_display port map ( clk = clk , reset = reset , data_sv = sv_smg, data_pv = pv_smg, dot =dot , led7 = led7, bit8 = bit8 ); end behavioral; 杭州电子科技大学继续教育学院毕业设计(论文) 28 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity manykeys is port( clk : in std_logic; reset : in std_logic; key_in : in std_logic_vector(3 downto 0);-四个按键 key_out : out std_logic_vector(3 downto 0) -按键输出指示,对应 key1key4 ); end manykeys; architecture behavioral of manykeys is component independent_keys port( clk : in std_logic;-100mhz reset : in std_logic;-cpu reset key : in std_logic;-输入按键 kout : out std_logic-按键输出指示 ); end component ; begin g1 : for i in 0 to 3 generate ux : independent_keys port map ( clk=clk, reset=reset, key=key_in(i), kout= key_out(i) ); end generate; end behavioral; -程序功能:单个按键按下并要求释放后才算一次按键,按下和释放都去抖了, 一次按键按下并释放后 -按键输出只持续 10ms 高电平- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity independent_keys is port( 杭州电子科技大学继续教育学院毕业设计(论文) 29 clk : in std_logic;-100mhz reset : in std_logic;-cpu reset key : in std_logic;-输入按键 kout : out std_logic-按键输出指示 ); end independent_keys; architecture behavioral of independent_keys is signal clk100hz : std_logic; type state is (s0,s1,s2,s3,s4,s5); signal current_state : state; begin process(clk,reset)-产生 10ms 周期的时钟信号 variable count:integer range 0 to 500000; begin if reset=0 then count:=0;clk100hz kout kout if key=1 then kout if key=0 then current_state current_state kout current_state=500000 then count:=0; clock count1:=count1+1;-启动信号 case count1 is when 1 = sdascl sda scl count1:=0;current_statenull; end case; when transmit_slave_address = count1:=count1+1;-写地址 case count1 is when 1 =sdasclsclcnt1:=cnt1-1;count1:=0; if cnt1=0 then cnt1:=8;current_statenull; end case; when check_ack1 = count1:=count1+1; -应答信号检查 case count1 is when 1 =sdasclif sda=0 then count1:=0;current_statecurrent_statenull; 杭州电子科技大学继续教育学院毕业设计(论文) 33 end case; when transmit_reg = count1:=count1+1;-写寄存器数据 case count1 is when 1=sdasclsclcnt1:=cnt1-1;count1:=0; if cnt1=0 then cnt1:=8;current_statenull; end case; when check_ack2 = count1:=count1+1; -应答信号检查 case count1 is when 1 =sdasclif sda=0 then count1:=0;current_statecurrent_statenull; end case; when stop = count1:=count1+1;-停止 case count1 is when 1=sdasclsdacount1:=0;current_statenull; end case; -read conversion- when read_start = count1:=count1+1;-读启动信号 case count1 is when 1 = sdascl sda scl count1:=0;current_statenull; end case; when read_slave_address
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术表情创意课件
- 2025年电商内容营销策略优化:种草经济下的品牌战略研究报告
- 2025年事业单位工勤技能-湖北-湖北广播电视天线工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-海南-海南铸造工四级(中级工)历年参考题库含答案解析
- 2025年零售门店数字化智能化门店导购系统技术应用与用户体验优化案例研究报告
- 2025年事业单位工勤技能-河南-河南计量检定工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-江苏-江苏工程测量员四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西政务服务办事员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东防疫员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东机械冷加工三级(高级工)历年参考题库典型考点含答案解析
- 2025年度运输业安全生产知识竞赛试题(附答案)
- 光伏居间的合同8篇
- GB/T 45418-2025配电网通用技术导则
- 医疗风险防控培训课件
- 机械设计部绩效考核制度
- 诊疗规范培训课件
- 《KANO模型培训》课件
- 复苏室患者的交接流程
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 新能源集控中心建设方案
- 《中国老年糖尿病诊疗指南(2024版)》解读课件
评论
0/150
提交评论