当前位置: 首页 > news >正文

fffdddd

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;entity GJL isport(clk, reset: in std_logic;btn_green, btn_red: in std_logic; -- 新增控制按键r1, r2, y1, y2, g1, g2: out std_logic;ledag: out std_logic_vector(6 downto 0);led_sel: buffer std_logic_vector(2 downto 0));
end GJL;architecture str1 of GJL issignal sec10, sec1: integer range 0 to 9;signal ledag_temp: std_logic_vector(6 downto 0);signal dir_flag: std_logic;signal led_temp: integer range 0 to 15;signal direction: integer range 0 to 15;signal counter: integer range 0 to 511;signal clkcount, clk1Hz: std_logic;signal led_seg_s: std_logic_vector(2 downto 0);
beginp1: process(clk)beginif rising_edge(clk) thenif counter = 499 thencounter <= 0;clkcount <= not clkcount;elsecounter <= counter + 1;end if;clk1Hz <= clkcount;end if;end process;p2: process(clk1Hz, reset)beginif reset = '0' thensec10 <= 2;sec1 <= 0;dir_flag <= '0';elsif rising_edge(clk1Hz) thenif sec10 = 0 and sec1 = 0 thensec10 <= 1;sec1 <= 9;dir_flag <= not dir_flag;elsif sec10 > 0 and sec1 = 0 thensec10 <= sec10 - 1;sec1 <= 9;elsesec1 <= sec1 - 1;end if;end if;end process;p3: process(sec10, sec1, reset, dir_flag)beginif reset = '0' thenr1 <= '1'; r2 <= '1'; g1 <= '0'; g2 <= '0';elseif dir_flag = '0' thenr1 <= '0';r2 <= '1';g1 <= '1';g2 <= '0';elser1 <= '1';r2 <= '0';g1 <= '0';g2 <= '1';end if;end if;end process;p5: process(dir_flag)beginif dir_flag = '0' thendirection <= 11;elsedirection <= 10;end if;end process;p6: process(led_sel)begincase led_sel iswhen "000"=> led_temp <= direction;when "001"=> led_temp <= direction;when "010"=> led_temp <= sec10;when "011"=> led_temp <= sec1;when "100"=> led_temp <= direction;when "101"=> led_temp <= direction;when "110"=> led_temp <= sec10;when "111"=> led_temp <= sec1;when others => null;end case;end process;p7: process(clk)beginif rising_edge(clk) thenif led_seg_s = "111" thenled_seg_s <= "000";elseled_seg_s <= led_seg_s + 1;end if;ledag <= ledag_temp;led_sel <= led_seg_s;end if;end process;p8: process(led_temp)begincase led_temp iswhen 0 => ledag_temp <= "0111111";when 1 => ledag_temp <= "0000110";when 2 => ledag_temp <= "1011011";when 3 => ledag_temp <= "1001111";when 4 => ledag_temp <= "1100110";when 5 => ledag_temp <= "1101101";when 6 => ledag_temp <= "1111101";when 7 => ledag_temp <= "0000111";when 8 => ledag_temp <= "1111111";when 9 => ledag_temp <= "1101111";when 10 => ledag_temp <= "1001000";when 11 => ledag_temp <= "0010100";when others => ledag_temp <= "0000000";end case;end process;-- 新增过程,控制绿灯和红灯的开关p9: process(clk, reset, btn_green, btn_red)beginif reset = '0' thenr1 <= '1'; r2 <= '1'; g1 <= '0'; g2 <= '0';elsif rising_edge(clk) thenif btn_green = '1' theng1 <= '0'; g2 <= '0'; -- 所有绿灯灭elsif btn_red = '1' thenr1 <= '0'; r2 <= '0'; -- 所有红灯灭else-- 保持原有逻辑不变,或者根据需要调整end if;end if;end process;
end str1;

http://www.lryc.cn/news/379555.html

相关文章:

  • SpringSecurity实战入门——授权
  • Linux 网络请求工具:curl
  • leetcode 二分查找·系统掌握 寻找旋转排序数组中的最小值II
  • Flink 容错
  • OpenAI策略:指令层级系统让大模型免于恶意攻击
  • 芝麻清单助力提升学习工作效率 专注时间完成有效的待办事项
  • Docker 容器操作命令
  • 华为配置创建vlan及划接口,trunk干道,DHCP池塘配置
  • vue3 computed与watch,watchEffect比较
  • 论文:R语言数据分析之机器学习论文
  • 【C++】STL中优先级队列的使用与模拟实现
  • C#开发-集合使用和技巧(二)Lambda 表达式介绍和应用
  • Qt底层原理:深入解析QWidget的绘制技术细节(2)
  • 【Gradio】表格数据科学与图表-连接到数据库
  • 艾多美用“艾”为生命加油,献血活动回顾
  • 人工智能在气象预报领域的崛起:GraphCast引领新纪元
  • http和https的区别在哪
  • windows10远程桌面端口,Windows 10远程桌面端口修改的两个方法
  • 力扣1504.统计全1子矩形
  • vue3高德地图组件化,解决复用地图组件时渲染失败问题
  • Langchain 如何工作
  • 【数据结构】顺序表实操——通讯录项目
  • C++继承与多态—多重继承的那些坑该怎么填
  • 论文阅读:基于谱分析的全新早停策略
  • 1.接口测试-postman学习
  • 2024年码蹄杯本科院校赛道初赛(省赛)
  • PHP蜜语翻译器在线文字转码解码源码
  • 安卓浏览器区分启动、打开、分享
  • C/C++ 数组负数下标
  • 钓鱼网站开发原理(社会工程学)