EDA课程设计键盘扫描及显示完整程序_键盘扫描课程设计

2020-02-28 其他范文 下载本文

EDA课程设计键盘扫描及显示完整程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“键盘扫描课程设计”。

LIBRARY

IEEE;USE

IEEE.STD_LOGIC_1164.ALL;USE

STD_LOGIC_ARITH.ALL;USE

STD_LOGIC_UNSIGNED.ALL;

ENTITY

KEYBOARD IS PORT(CLK_1K : IN STD_LOGIC;

CLK_40K : IN STD_LOGIC;

KEY_LIE : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

START :OUT STD_LOGIC;

KEY_HANG :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

DATA_P : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

DISP_DATA : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);

DISP_SEL : OUT STD_LOGIC_VECTOR(1 downto 0);END;ARCHITECTURE RTL OF KEYBOARD IS SIGNAL INT : STD_LOGIC;SIGNAL CLK_SEL : STD_LOGIC;SIGNAL START_REG:STD_LOGIC;SIGNAL SIGNAL SIGNAL SIGNAL

DISP_SEL_REG:STD_LOGIC_VECTOR(1 DOWNTO 0);DATA_L,DATA_H:STD_LOGIC_VECTOR(3 DOWNTO 0);DATA_TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);KEY_HANG__TMP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL DISP_DATA_REG:STD_LOGIC_VECROR(3 DOWNTO 0);SIGNAL KEY_CODE:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL DATA_P_REG:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN KEY_CODE

PROCESS(CLK_SEL,CLK_40,INT)VARIABLE STATE : INTEGER RANG 0 TO 3;BEGIN IF RISING_EDGE(CLK_40K)THEN INT

WHEN 0=>

KEY_HANG_TMP

STATE :=1;

WHEN 1 =>

KEY_HANG_TMP

STATE :=2;

WHEN 3 =>

KEY_HANG_TMP

STATE :=3;

WHEN 4=>

KEY_HANG_TMP

STATE :=0;

END CASE;END IF;END PROCESS;

PROCESS(CLK_40K , INT)VARIABLE STATE :INTEGER RANGE 0 TO 3;VARIABLE COUNTER : INTEGER RANGE 0 TO 31;BEGIN IF INT='0' THEN

STATE:=0;

COUNTER:=0;ELSIF RISING_EDGE(CLK_40K)THEN CASE STATE IS

WHEN 0 => DATA_TMP

STATE:=1;

WHEN 1 =>

CASE KEY_CODE IS

WHEN “01110111” =>

DATA_L

DATA_H

STATE:=2;

WHEN “01111011” =>

DATA_L

DATA_H

STATE:=2;

WHEN “01111101” =>

DATA_L

DATA_H

STATE:=2;

WHEN “01111110” =>

DATA_L

DATA_H

STATE:=2;

WHEN “10110111” =>

DATA_L

DATA_H

STATE:=2;

WHEN “10111011” =>

DATA_L

DATA_H

STATE:=2;

WHEN “10111101” =>

DATA_L

DATA_H

STATE:=2;

WHEN “10111110” =>

DATA_L

DATA_H

STATE:=2;

WHEN “11010111” =>

DATA_L

DATA_H

STATE:=2;

WHEN “11011011” =>

DATA_L

DATA_H

STATE:=2;

WHEN “11011101” =>

IF DATA_H =“1001” THEN

IF DATA_L=“1001” THEN

DATA_H

DATA_L

ELSE DATA_L

END IF;

ELSIF DATA_L=“1001” THEN

DATA_L

DATA_H

ELSE

DATA_L

DATA_H

END IF;

STATE:=2;

WHEN “11011110” =>

IF DATA_H=“1001” THEN

DATA_H

DATA_L

DATA_H

STATE:=2;

WHEN “11100111” =>

IF DATA_L=“0000” AND DATA_H=“0000” THEN

DATA_L

DATA_H

DATA_L

DATA_H

DATA_L

DATA_H

STATE:=2;

WHEN “11101011”=>

IF DATA_H=“0000” THEN

DATA_H

DATA_L

DATA_

STATE:2;

WHEN “11101110” =>

DATA_L

DATA_H

DATA_P_REG

START_REG

STATE:=2;

WHEN“11101101” =>

DATA_L

DATA_H

STATE:=2;

WHEN OTHERS =>

STATE:=2;

END CASE;

WHEN 2 =>

IF COUNTER=31 THEN

COUNTER:=0;

STATE:=3;ELSE

COUNTER:=COUNTER+1;

STSTE:=2;END IF;

WHEN 3 =>

START_REG

STATE:=3;END CASE;END IF;END PROCESS;

PROCESS(CLK_1K,DATA_L,DATA_H)VARIABLE STATE: INTEGER RANGE 0 TO 1;BEGIN

IF RISING_EDGE(CLK_1K)THEN

CASE STATE IS

WHEN 0 =>

DISP_SEL_REG

DISP_DATA_REG

STATE:=1;

WHEN 1 =>

DISP_SEL_REG

DISP_DATA_REG

STATA:=0;END CASE;END IF;END PROCESS;

PROCESS(CLK_1K,DISP_DATA_REG)BEGIN IF RISING_EDGE(CLK_1K)THEN

CASE DISP_DATA_REG IS

WHEN “0000”=>

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

DISP_DATA

eda课程设计

数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。2、具有清零、校时、校分功能。3、具有整点蜂鸣器报时以及LED花样显示功能......

EDA 课程设计

《电子系统设计自动化》课程设计报告学 院: 机电工程学院 题 目: 数字时钟电路设计 课 程: 《电子系统设计自动化》课程设计 专业班级: 电信10级2 班 学生姓名: 刘星 秦玉杰 王艳......

《EDA课程设计》

《EDA课程设计》课程设计题目:基于单片机的温湿度采集系统姓名:xxx学班时地 号:xxxx级:xxxx间:2014.4.21~ 2013.5.5 点:xxxxx指 导老师:xxxxx目录一、电路原理图 .......................

EDA课程设计

考试序号:28自动打铃系统设计说明书 学 生 姓 名:周文江学号:14112502521专 业 班 级:1102报告提交日期:2013.11.26湖 南 理 工 学 院 物 电 学 院目录一、题目及要求简介………......

《EDA课程设计》教学大纲

设计四 拔河游戏机1、设计一个能进行拔河游戏的电路。2、电路使用15个(或9个)发光二极管,开机后只有中间一个发亮,此即拔河的中心点。3、游戏双方各持一个按钮,迅速地、不断地......

《EDA课程设计键盘扫描及显示完整程序.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
EDA课程设计键盘扫描及显示完整程序
点击下载文档
相关专题 键盘扫描课程设计 课程设计 键盘 完整 键盘扫描课程设计 课程设计 键盘 完整
[其他范文]相关推荐
[其他范文]热门文章
下载全文