版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可编程逻辑器件应用项目报告书项目名称:花样彩灯指导老师:姓名:学号:班级:广东水利电力职业技术学院(以后写报告要包含以下一些内容:)一、设计要求--------------------------------------------------------------------------------二、设计目的--------------------------------------------------------------------------------三、设计方案--------------------------------------------------------------------------------四、设计程序---------------------------------------------------------------------------------五、管脚分配---------------------------------------------------------------------------------六、硬件下载实现现象描述------------------------------------------七、体会、对设计工作的总结与展-------------------------------------------一、设计要求:要求设计一个8路彩灯控制器,能控制8路彩灯按照两种节拍、三种花型循环变化。两种节拍分别为0.25s和0.5s。三种花型分别是:8路彩灯从左至右按次序渐亮,全亮后逆次序渐灭。从中间到两边对称的渐亮,全亮后仍由中间向两边逐次渐灭。8路彩灯分成两半,从左至右顺次渐亮,全亮后则全灭。二、设计方案:(1)、采用状态机的方式,用点阵在硬件上实现各种花形彩灯,并使用复位键(2)、用0.25s和0.5s两种频率的选择,并采用按键控制输出(3)、对于点阵的扫描是采用了1s三、程序语言:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_ARITH.ALL;USEIEEE.std_logic_UNSIGNED.ALL;----------------------------------------------------ENTITYcaidengISport(clk,rst:INstd_logic;---------------12--------------aj:instd_logic;-------------频率选择30Light:outstd_logic_vector(7downto0);------点阵列-----(82-73)hang:outstd_logic_vector(7downto0)-------------(90-83));endcaideng;architectureoneofcaidengistypestatesis(s0,s1,s2,s3,s4);------表示状态------signalstate:states;signalclk_hz,clk_1s:std_logic:='0';signalcnt1:std_logic_vector(3downto0):="0000";signalcnt2:std_logic_vector(2downto0):="000";signalcnt3:std_logic_vector(2downto0):="000";signalcnt4:std_logic_vector(2downto0):="000";signalcnt5:std_logic_vector(3downto0):="0000";BEGINhang<="11111111";--------------------频率选择----------------- process(clk)variablecnt1:integerrange0to6250000;------------4hz即0.25svariablecnt2:integerrange0to12500000;------------2hz即0.5sbegin ifclk'eventandclk='1'thencaseajis--------------------拨码按键控制2种频率的输出when'0'=> ifcnt1=6250000then cnt1:=0; clk_hz<=notclk_hz; else cnt1:=cnt1+1; endif;when'1'=>ifcnt2=12500000then cnt2:=0; clk_hz<=notclk_hz; else cnt2:=cnt2+1; endif; whenothers=>null;endcase;endif; endprocess; --------------------------------------------------------- process(clk)variablecnt1:integerrange0to20000;variablecnt2:integerrange0to10000;beginifclk'eventandclk='1'thenifcnt1=20000thencnt1:=0;ifcnt2=10000thencnt2:=0;clk_1s<=notclk_1s; else cnt2:=cnt2+1; endif; else cnt1:=cnt1+1;endif;endif;endprocess; process(rst,clk_hz) begin if(rst='0')then state<=s0; elsif(clk_1s'EVENTANDclk_1s='1')then casestateis whens0=>state<=s1; whens1=>state<=s2; whens2=>state<=s3; whens3=>state<=s4; whens4=>state<=s0; endcase; endif; endprocess; ---------------------------------------------------------- process(state,clk_hz)beginifrst='0' thenlight<="00000000";elseif(clk_hz'EVENTANDclk_hz='1')thencasestateiswhens0=> ifcnt1="1111"then cnt1<="0000"; else cnt1<=cnt1+1; endif;casecnt1is when"0000"=>light<="01111111"; when"0001"=>light<="00111111"; when"0010"=>light<="00011111"; when"0011"=>light<="00001111"; when"0100"=>light<="00000111"; when"0101"=>light<="00000011"; when"0110"=>light<="00000001"; when"0111"=>light<="00000000"; when"1000"=>light<="00000000"; when"1001"=>light<="00000001"; when"1010"=>light<="00000011"; when"1011"=>light<="00000111"; when"1100"=>light<="00001111"; when"1101"=>light<="00011111"; when"1110"=>light<="00111111"; whenothers=>light<="01111111";endcase;whens1=> ifcnt2="111"thencnt2<="000"; elsecnt2<=cnt2+1; endif; casecnt2is when"000"=>light<="11100111"; when"001"=>light<="11000011"; when"010"=>light<="10000001"; when"011"=>light<="00000000"; when"100"=>light<="00000000"; when"101"=>light<="10000001"; when"110"=>light<="11000011"; whenothers=>light<="11100111"; endcase;whens2=> ifcnt3="111"then cnt3<="000"; elsecnt3<=cnt3+1; endif; casecnt3is when"000"=>light<="01110111"; when"001"=>light<="00110011"; when"010"=>light<="00010001"; when"011"=>light<="00000000"; when"100"=>light<="10000001"; when"101"=>light<="11000011"; when"110"=>light<="11100111"; when"111"=>light<="11111111"; whenothers=>light<="00000000"; endcase;whens3=> ifcnt4="100"then cnt4<="000"; elsecnt4<=cnt4+1; endif;casecnt4is when"000"=>light<="01110111"; when"001"=>light<="00110011"; when"010"=>light<="00010001"; when"011"=>light<="00000000"; when"100"=>light<="11111111"; whenothers=>light<="00000000";endcase; whens4=> ifcnt5="1111"then cnt5<="0000"; elsecnt5<=cnt5+1; endif; casecnt5is when"0000"=>light<="10000000"; when"0001"=>light<="01000000"; when"0010"=>light<="00100000"; when"0011"=>light<="00010000"; when"0100"=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026西藏那曲安多县粮食有限责任公司社会招聘企业管理人员的1人备考题库有答案详解
- 2026青海黄南州泽库县藏医院编外医务科人员招聘1人备考题库附参考答案详解(综合题)
- 2026中兴财经暑假实习生招聘备考题库附参考答案详解(考试直接用)
- 2026山东日照市老年大学春季兼职教师招聘备考题库带答案详解(培优)
- 2026浙江丽水开放大学招聘专业技术人员1人备考题库附答案详解(考试直接用)
- 2026黑龙江哈尔滨工业大学机电工程学院机械设计系招聘备考题库及答案详解【考点梳理】
- 2026广西玉林市北流市妇幼保健院招聘编外人员43人备考题库及参考答案详解(典型题)
- 健康食堂食品管理制度(3篇)
- 刚格栅施工方案(3篇)
- 加宽路段施工方案(3篇)
- 2026年交管12123驾照学法减分题库100道含答案(夺分金卷)
- 井下电气作业安全课件
- 冲压件质量检验标准操作规程
- 类器官技术用于药物剂量优化策略
- 白塞病口腔溃疡的护理对策
- 2026年山西单招旅游大类文化素质模拟卷含答案语数英合卷
- DB31∕T 634-2020 电动乘用车运行安全和维护保障技术规范
- 《光伏材料检测技术》课件-太阳电池生产过程中光学性能检测
- 焦油事故应急预案(3篇)
- 2025年智联招聘国企笔试题库及答案
- 专升本生物专业2025年分子生物学测试试卷(含答案)
评论
0/150
提交评论