李斌微波炉.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
李斌微波炉

西安文理学院物理与机械电子工程学院 课程设计报告 专业班级 10级电子信息工程2班 课 程 CPLD/FPGA技术及应用 题 目 微波炉控制器的设计 学 号 08101100219 姓 名 李斌 同 组 人 王景 成 绩 2013年6月 一、设计目的 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力。 二、系统总体设计 微波炉控制器外部接口符号图 上图中的各信号的功能及要求如下: CLK 1是时钟脉冲输入。 CLK 2是置数时钟扫描脉冲输入。 RES为复位信号。高电平有效,用于芯片的复位功能。 TEST 为测试信号。高电平有效,用于测试4个七段数码二极管工作是否正常。 able是烹调时间设置控制信号。高电平有效。 START 是烹调开始的控制信号。高电平有效。 SEGOUT是数码管段选。 SELOUT是数码管位选。 LIGHT是加热指示灯。 该微波炉控制器的具体功能要求如下: 微波炉控制器的总体设计方案: 根据该微波炉控制器的功能设计要求,本系统可由以下4个模块组成: ①状态控制器first; ②数据输出控制器; ③烹调计时器jianjishu; 其内部组成原理如图2所示。 图2 系统原理框图 图3 KZQ 的输入输出端口图 (2)、计数装载器的设计 计数模块的输入、输出端口如图4 所示。根据其应完成的逻辑功能,它本质上就是一个三选一数据选择器。本设计采用一个进程来完成。但由于三个被选择的数据只有一个来自输入端口。因此另两个被选择的数据则通过在进程的说明部分定义两个常数来产生。由于用于显示“5959”的常数ALL-8 需分解成4 个8 分别经过四个4—7 译码器译码后才是真正的显示驱动信息编码。因此该常数应是4 个分段的是4 位BCD 码。故应设为“0101100101011001”。 同理,显示“0000”的常数DONE 可设为“000000000000000”。 图4 计数器的输入输出端口图 (3)、位选,段选显示译码器的设计 本显示译码器YMQ47 不但要对数字0-9 进行显示译码其译码对照表如表1 所示。译码器的输入、输出端口如图7 所示。 表1 YMQ47 的译码对照表 显示的数字或字母 BCD 编码 七段显示驱动编码(g-a) 0 0000 0111111 1 0001 0000110 2 0010 1011011 3 0011 1001111 4 0100 1100110 5 0101 1101101 6 0110 1111101 7 0111 0000111 8 1000 1111111 9 1001 1101111 段选、位选的端口图 源程序 状态控制器的分频源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin is port(clk:in std_logic; outclk,screen:out std_logic); end; architecture first of fenpin is signal Q1,Q2:std_logic; begin one:process(clk) variable count1:integer range 0 to 1002; begin Q1=0; if count11000 then Q1=1;count1:=0; elsif clkevent and clk=1 then count1:=count1+1; end if; end process; two:process(clk) variable count2:integer range 0 to 500; begin if clkevent and clk=1 then if count2250

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档