北邮数字电路综合实验报告

合集下载

北邮数电实验报告_双色点阵

北邮数电实验报告_双色点阵

北京邮电大学数电综合实验报告实验名称:双色点阵显示控制器学院:姓名:班级:学号:班内序号:一.设计课题的任务要求用8×8点阵设计双色点阵显示控制器 基本要求: 1、固定红色显示一个汉字或图形,显示亮度4级可调,用一个btn 按钮实现亮度调节,亮度变化视觉效果要尽量明显。

2、用从红到绿8级渐变色显示一个固定汉字或图形。

3、分别用单字循环显示、左右滚动显示、上下滚动显示三种显示方式单色显示四个汉字或图形,显示过程中,显示方式用一个btn 按键进行切换。

4、显示的图形或汉字要尽量饱满美观。

提高要求:滚动显示过程中实现四种显示颜色的自动变换,颜色变化视觉效果要尽量明显。

自拟其它功能。

二.系统设计1. 设计思路考虑本程序设计要求模块明确单一但需要变化多种状态,因此采用单模块多状态多进程方式实现。

其中防抖进程用于检测输入,本程序使用BTN 按键进行输入控制,而按键的键入可能由于抖动产生多个上升沿,对程序的控制产生影响。

防抖动采用了延时原理来对冒险或长时间按键电平进行处理。

分频使用了多个进程产生程序所需要的多个时钟频率。

包括:clk1(扫描时钟 大于480Hz 但不过高)clk2(占空比调节1 clk1周期的整数倍,但不过高) clk3(占空比调节2 同clk2,但占空比不同) clk4(占空比调节3 同clk2,但占空比不同) clk5(按键时钟 约100Hz) clk6(滚动变化计时 约1Hz)状态机变化进程用于管理状态变化,当遇到按键电平信号时根据规则改变对应状态。

显示进程包括主要显示进程和一些辅助进程,辅助进程完成了时钟对应计数器计数,主进程则根据状态变化显示不同显示模式下不同的图案。

2. 总体框图(1) 总体结构框图:(2) 逻辑划分框图Mode(3)MDS图3.各进程介绍⑴分频进程们分频进程含一个从50M(也可能是25M)分出的扫描频率clk1,这个频率要大于60*8=480Hz(因为人眼分辨频率为60Hz左右,要保证每排扫描时达到60Hz 则需480Hz)。

北邮数字电路与逻辑设计实验-实验报告(上)

北邮数字电路与逻辑设计实验-实验报告(上)

北京邮电大学电路实验中心<数字电路与逻辑设计实验(上)>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx)学号: 2xxx实验时间: xxxx评定成绩:目录实验1 Quartus II 原理图输入法设计与实现 (3)一、实验目的 (3)二、实验所用器材 (3)三、实验任务要求 (3)四、实验原理图 (3)五、实验仿真波形图及分析 (4)实验2 用VHDL 设计与实现组合逻辑电路 (5)一、实验目的 (5)二、实验所用器材 (5)三、实验任务要求 (5)四、VHDL代码 (5)五、实验仿真波形图及分析 (7)实验3 用VHDL 设计与实现时序逻辑电路 (8)一、实验目的 (8)二、实验所用器材 (8)三、实验任务要求 (8)四、模块端口说明及连接图 (8)五、VHDL代码 (9)六、实验仿真波形图及分析 (10)实验4 用VHDL 设计与实现数码管动态扫描控制器 (10)一、实验目的 (10)二、实验所用器材 (11)三、实验任务要求 (11)四、模块端口说明及连接图 (11)五、VHDL代码 (11)六、实验仿真波形图及分析 (15)故障及问题分析 (16)总结和结论 (17)实验1 Quartus II 原理图输入法设计与实现一、实验目的(1)熟悉用Quartus II原理图输入法进行电路设计和仿真;(2)掌握Quartus II 图形模块单元的生成与调用;(3)熟悉实验板的使用。

二、实验所用器材(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数+CBA,仿真验证其功能,并下载到实验板测试。

北邮数字电路与逻辑设计实验-实验报告(下)

北邮数字电路与逻辑设计实验-实验报告(下)

北京邮电大学电路实验中心<数字电路与逻辑设计实验(下)>实验报告班级: xxx 学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx实验时间: xxx评定成绩:目录一、任务要求 (2)1.基本要求 (2)2.提高要求 (2)二、系统设计 (2)1.设计思路 (2)2.总体框图 (4)3.分块设计 (5)(1)分频器模块 (5)(2)4×4键盘输入模块 (5)(3)数码管显示模块 (6)(4)8×8 LED点阵显示模块 (6)(5)LCD液晶屏显示模块 (6)(6)中心模块 (6)三、仿真波形及波形分析 (6)1.分频器模块 (6)2.4×4键盘输入模块 (7)3.数码管显示模块 (7)4.8×8 LED点阵显示模块 (8)5.LCD液晶屏显示模块 (8)6.中心模块 (8)四、源程序 (9)1.分频器模块 (9)2.4×4键盘输入模块 (9)3.数码管显示模块 (11)4.8×8 LED点阵显示模块 (12)5.LCD液晶屏显示模块 (19)6.中心模块 (23)五、功能说明及资源利用情况 (26)六、故障及问题分析 (27)七、总结和结论 (27)一、任务要求本电路可供甲乙二人进行猜拳游戏。

通过不同的按键控制,选择多种出拳方式,显示猜拳的结果,实现猜拳游戏,防止了作弊的可能。

1.基本要求1、甲乙双方各用4×4 键盘中的三个按键模拟“石头”、“剪刀”、“布”,一个按键为“确认”。

4×4 键盘第一行为甲,第二行为乙;2、裁判用4×4 键盘第三行的一个按键模拟“开”,一个按键为“准备”,一个按键为“复位”;3、裁判宣布“准备”后,甲乙双方分别选择出拳方式并确认;4、裁判“开”以后,用点阵的左右三列同时显示甲乙双方的猜拳选择(如下图所示),并用两个数码管显示甲乙的猜拳比分;图1甲“布”,乙“剪刀”;甲“剪刀”,乙“石头”5、猜拳游戏为五局三胜制。

北邮电路综合实验报告——串行口数据传输的仿真及硬件实现

北邮电路综合实验报告——串行口数据传输的仿真及硬件实现

北京邮电大学信息与通信工程学院电路综合实验报告串行口数据传输的仿真及硬件实现姓名:学号:班内序号:班级:指导老师:日期:2014年10月10日摘要:本实验模拟了现代数字逻辑电路中的数据传输过程。

使用连续的代表0、1的高低电平作为数字信号,将该数字信号从输出端发送到接收端,并分别用串行、并行两种方式进行锁存,检测。

本实验模拟了序列信号的发生装置、串并转换装置、串行并行两种方式的检测装置、锁存输出和控制电路,实现了一个简单的串行口数据传输模型。

在此试验中,通过对常见芯片的组合实现功能,将一串由0、1组成的数字信号进行传输、转换、检测,使之显示在数码管上成为可读信息。

并且,还实现了对此电路显示的控制,使数码管在满足条件的情况下才点亮。

在实验中,还使用了Qua rtusⅡ对设计的电路进行了仿真模拟。

关键字:数据传输、串并转换、数据检测、QuartusIIAbstract:This experiment simulated data transfer in modern digital logic circuit. Digital signal was transferred from the output terminal to the receiving end, which was consisted ofcontinuous high or low level represent 0 and 1 as digital signal, and latch, test it through serial or parallel mode.Our experiment simulated the producing equipment of sequence signal, the signal conversion module, testing module of serial and parallel mode, latch output and control circuit. It implements a simple serial port data communication model. In the experiment, we use the combination of simple chips to realize the function that transport, transfer and test a sequence of the digital signal consisting of 0 and 1, and display it on LED Segment Displays. In addition, we realize the control of display. The LED Segment Displays works only in specific conditions. We also conduct simulations on QuartusⅡ.Keywords:Data transmission, String conversion, Data detection, Quartus II目录一、实验目的 (4)二、实验仪器 (4)三、实验内容及设计任务 (4)四、实验设计 (6)1.分频电路 (6)2.序列信号发生器 (6)3.串、并转换模块 (8)4.串行检测模块 (9)5.并行检测模块·························· (11)6.控制电路 (11)7.锁存显示模块 (12)8.总体电路图和仿真结果 (12)五、实验的硬件实现及结果分析 (14)六、遇到的问题及解决办法 (15)七、心得体会 (16)八、参考文献 (17)•实验目的串行口数据传输是数字系统中常用的一种数据传输方式。

北京邮电大学数电实验报告

北京邮电大学数电实验报告

北京邮电大学数字电路与逻辑设计实验发光二极管走马灯的电路设计与实现实验报告学院:信息与通信工程学院班级:27姓名:付莹学号:班内序号:23【实验目的】(1)进一步了解时序电路描述方法;(2)熟悉状态机的设计方法。

【实验所用仪器及元器件】(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

【实验任务要求】设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功能,并下载到实验板测试。

(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复。

【实验设计思路及过程】(1)设计思路实验要求有两个,一个是单点移动模式,一个是幕布式。

通过CASE-WHEN 语句实现走马灯的变化。

分别定义一个8个变量的数据类型和一个13变量的数据类型,表示一个周期内的灯的变化,并设计一个变量在两种状态间进行切换。

此时,需要把所有状态罗列到case-when中去。

(2)VHDL代码LIBRARY IEEE;USE ABC ISPORT(A,CLK,RESET:IN STD_LOGIC;DENG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ABC;ARCHITECTURE A OF ABC ISTYPE STATE_TEMP is(s0,s1,s2,s3,s4,s5,s6,s7);TYPE STATE_TEMP1 is(s0,s1,s2,s3,s4,s5,s6,s7,s00,s01,s02,s03,s04,s05);signal STATE:STATE_TEMP;signal STATE1:STATE_TEMP1;BEGINPROCESS(CLK,RESET)BEGINIF RESET='1' THENDENG<="00000000";ELSIF(CLK'EVENT AND CLK='0')THENIF A='0'THEN --KAIMUSHICASE STATE1 ISWHEN s0 => STATE1<=s1;DENG<="";WHEN s1 => STATE1<=s2;DENG<="01000000";WHEN s2 => STATE1<=s3;DENG<="00100000";WHEN s3 => STATE1<=s4;DENG<="00010000";WHEN s4 => STATE1<=s5;DENG<="00001000";WHEN s5 => STATE1<=s6;DENG<="00000100";WHEN s6 => STATE1<=s7;DENG<="00000010";WHEN s7 =>STATE1<=s00;DENG<="00000001";WHEN s00=>STATE1<=s01;DENG<="00000010";WHEN s01=>STATE1<=s02;DENG<="00000100";WHEN s02=>STATE1<=s03;DENG<="00001000";WHEN s03=>STATE1<=s04;DENG<="00010000";WHEN s04=>STATE1<=s05;DENG<="00100000";WHEN s05=>STATE1<=s0;DENG <="01000000";END CASE;ELSECASE STATE ISWHEN s0 => STATE<=s1;DENG<="00011000";WHEN s1 => STATE<=s2;DENG<="00111100";WHEN s2 => STATE<=s3;DENG<="01111110";WHEN s3 => STATE<=s4;DENG<="";WHEN s4 => STATE<=s5;DENG<="01111110";WHEN s5 => STATE<=s6;DENG<="00111100";WHEN s6 => STATE<=s7;DENG<="00011000";WHEN s7 => STATE<=s0;DENG<="00000000";END CASE;END IF;END IF;END PROCESS;END A;【仿真波形及分析】1.仿真波形(1)单点移动式(2)幕布式(3)复位信号2.波形分析(1)单点移动式由图可以看出,当A为0时程序实现单点移动功能,如图所示DENG[7]开始亮,之后依次为DENG[6], DENG[5], DENG[4], DENG[3], DENG[2],DENG[1], DENG[0],然后DENG[1]也开始亮,依此类推,实现了功能要求(2)幕布式由图可以看出,当A为1时,如图所示,先是中间的两个灯DENG[4], DENG[5]亮,然后扩展到四个灯亮DENG[3]至DENG[6]亮,接下来是DENG[2]~DENG[7]亮,最后全亮,接着DENG[2]~DENG[7]亮,继而循环下去。

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一:QuartusII 原理图输入法设计1. 实验名称和实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=A B C +A B C +AB C +A B C 。

2.实验原理图及波形图(1)半加器(2)全加器(3)74LS383.仿真波形图分析(1)半加器:输入为a,b,输出S,CO(进位)。

当ab都为0时,半加和s=0,进位端co=0。

当ab都为1时,半加和s=0,进位端co=1。

当a=1,b=0或a=0,b=1时,半加和s=1,进位端co=0。

(2)全加器:输入a,b,输出S,CO(进位),ci(低进位)。

当a=0,b=0,ci=0,输出s=0,co=0。

当a=0,b=1或a=1,b=0又ci=0,输出s=1,co=0。

当a=0,b=0,ci=1,输出s=1,co=0。

(3)74LS138输入A,B,C,输出为3。

四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。

二.实验二:用VHDL设计与实现组合逻辑电路1.实验名称和实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。

北邮数电实验报告 上

北邮数电实验报告 上

三.VHDL语言设计思路及实现1.VHDL语言实现分频器(十分频)使用两个进程:p1用来控制在时钟上升沿触发,p2用中间变量temp来控制占空比为10%LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin ISPORT(clk,clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END fenpin;ARCHITECTURE struc OF fenpin ISSIGNAL temp:INTEGER RANGE 0 TO 11;BEGINp1:PROCESS(clear,clk)BEGINIF clear='0' THENtemp<=0;ELSIF clk'EVENT AND clk='1' THENIF temp=9 THENtemp<=0;ELSEtemp<=temp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(temp)BEGINIF temp<9 THENclk_out<='0';ELSEclk_out<='1';END IF;END PROCESS p2;END struc;2.VHDL语言实现模10计数器异步复位十进制计数器,计数状态为0000~1001,状态的改变通过q_temp实现,最后将其赋值给q,进行输出。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bcd24 ISPORT(clk,clr:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END bcd24;ARCHITECTURE struc OF bcd24 ISSIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENIF clr='0'THENq_temp<="0000";ELSIF q_temp="1001"THENq_temp<="0000";ELSEq_temp<=q_temp+1;END IF;END IF;END PROCESS;q<=q_temp;END struc;3. VHDL语言实现数码显示译码器通过不同的字段编码使LED数码管显示不同数字,用a表示计数状态,b表示字段a~g,下载时将b的7个值对应相应的a~g,以正确显示数字。

北邮数电综合实验电子沙漏的设计与实现

北邮数电综合实验电子沙漏的设计与实现
SIGNAL CNT9 : INTEGER RANGE 0 TO 9;
SIGNAL A : INTEGER RANGE 0 TO 9;
SIGNAL S : INTEGER RANGE 0 TO 7;--控制点阵显示
SIGNAL S1 : INTEGER RANGE 0 TO 16;--沙漏状态
SIGNAL S2 : INTEGER RANGE 0 TO 100;--开机画面
end if;
if CNT6 = 5 and CNT9 = 9 then
CNT6 <= 0; CNT9 <= 0;
end if;
IF SW_1 = '0' and FLAG = '1' THEN
S1<=S1+1;
if S1=16 then
S1<=16;
end if;
END IF;
IF FLAG = '0' THEN
2、用拨码开关 SW1 模拟重力感应器。当 SW1 为低电平时,沙粒从 VD0~VD15 向 VD0'~VD15'移动;当 SW1 为高电平时,沙粒从 VD0'~VD15'向 VD0~VD15 移动。
3、 按键 BTN0 作为计时启动停止按键,启动后沙粒即可按照 SW1 设定的方向移动, 以 SW1 为低电平时为例,LED 移动的顺序与对应关系如图 3 的1~16所示(若 SW1 为高电平,则点阵显示移动顺序为16~1)。每颗沙粒的移动时间为 1 秒,当移动 到图 3 的16时,若 SW1 仍为低电平,则保持沙粒不动,但计时继续,直到 SW1 的 电平发生变化或者 BTN0 计时停止。
对于led灯来说要让它按照设计好的图案显示需要一行行对点阵进行扫描在列中来控制哪一行来显示经过一定时间后到下一行显示而控制红灯亮还是绿灯则通过不同的接口控制在扫描频率够快的时候由于人眼暂留效应会误以为是一直在显示以此达到所需要的效果
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字电路综合实验报告 简易智能密码锁

一、实验课题及任务要求 设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正 确,密码锁打开,密码输入错误进行警示。 基本要求: 1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。 通过密码设置确定键(BTN 键)进行锁定。 2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。 3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。闭锁状态下不能清除密码。 4、用点阵显示开锁和闭锁状态。 提高要求: 1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时 将先前输入的所有数字向左移动一位。 2、密码锁的密码位数(4~6 位)可调。 3、自拟其它功能。

二、系统设计 2.1系统总体框图

2.2逻辑流程图 2.3MDS图

2.4分块说明 程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。以下进行详细介绍。 1. 键盘模块 本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。 键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。由此可确定按键位置。

(X为无效按键) 2.数码管模块 本实验采用六位七段共阴极数码管,通过选通6个位选管脚,向相应的IO口送低电平来点亮其中任何一位数码管,因为现在采用四位密码锁,所以只是用了其中四个,最高位两位数码管位选全部置1. 如下附上7段共阴极数码管真值表

3.点阵模块 点阵模块,共由8*8*2个发光二极管组成,行低电平有效,列高电平有效。要求在开锁模式和闭锁模式显示不同的图案,则先将要显示的每幅图像画8*8个小方格的矩形框中,再在有图案下落处的小方格里填上“1”,无图案处填上“0”,这样就形成了与图案所对应的二

X 7 8 9 X 4 5 6 X 1 2 3 X X 0 x

消抖 键盘译码 按键储存

键盘扫描 进制数据在该矩形框上的分布。当闭锁时以红色点阵显示,此时绿色点阵全部置0,反之亦然。 4.报警模块 当报警程序被调用,蜂鸣器输出高电平进行报警,表示输入密码错误 5.防抖 按键输入只有为15ms以上的高电平时才会读出按键值从而消除电路中的抖动。 6.控制中心 lockmode='1表示关锁,此时点阵显示落锁,按任何键都不会显示密码,清零或者开锁,在此时输入密码kwei从0开始不断加1,输入的密码位数在数码管上依次左移,当输入密码m与寄存器中预设密码mm相同时,按下确认键btn2切换为开锁状态,lockmode=0,此时按下btn1表示清零,恢复为初始密码0000,按set键寄存器内密码,按下btnloc切换为关锁状态。

三、仿真波形分析 在QUARTUS2中应用系统自带的功能进行波形仿真,这里采用了分模块仿真。 主程序仿真 在主要功能程序方面波形如下,在初始化模式按下set键系统进入修改密码状态,setmode波形显示高电平。为仿真方便,仅使kbin(即行输入信号)在1011和1111两个状态下相互转换,在不同的kbout(即列扫描输出信号)下分别对应4、5、6、7四个数字,故密码寄存器m[x]为输入的修改后的密码。 按下btn2(确认键)确认密码后,setmode变为低电平,即修改密码状态结束。 按下btn1时清零,密码寄存器取值还原为0000,至此均为开锁状态下的操作,lockmode一直为低电平。 按下闭锁键btnloc后,lockmode从0跳变到1,由此进入闭锁模式。

按键消抖模块仿真 当按下键时得到的高电平为输入x,持续一定时间后方可输出一个高电平,而无论按下的时间多长,都只输出一个高电平y,从而实现消除按键电路中的抖动。 分频模块仿真 为仿真方便,改变分频比。原程序在50Mhz时钟输入下,输出分别为1Mhz、 200hz、1000hz、500hz,分别用于键盘扫描、消抖模块输入、点阵扫描以及数码管扫描。

数码管模块仿真 由smgcatout输出可以看出低四位数码管依次选通。第i位选通时,smgzf为m[i]的七段数码管的译码值。 点阵模块仿真 当lockmode=1时dzcolr全部为0仅dzcolg显示图案; 当lockmode=0时dzcolg全部为0由dzcolr显示图案;而dzrow一直在进行行扫描,形成了两种不同颜色点阵。 报警模块仿真 当bj=0时,fmq为0;bj=1时,fmq将clk分频后输出,即蜂鸣器发出声响。 四、源程序 -----------------------顶层文件------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity lock is port (clk : in std_logic; setmode:out std_logic; lockmode:out std_logic; set:in std_logic; btn1,btn2,btnloc:in std_logic; smgzf: out std_logic_vector(6 downto 0); smgcatout:out std_logic_vector(5 downto 0); kbin: in std_logic_vector(3 downto 0); kbout: buffer std_logic_vector(3 downto 0); dzrow,dzcolr,dzcolg: out std_logic_vector(7 downto 0); fmq: out std_logic ); end lock;

architecture behave of lock is signal setm: std_logic; signal lockm: std_logic; signal lbj: std_logic; signal lkwei: integer range 0 to 4; signal lm1,lm2,lm3,lm4:integer range 0 to 9; signal clk_1: std_logic; --1MHz signal clk_2: std_logic; --200Hz signal clk_3: std_logic; --1000Hz signal clk_4: std_logic; --500Hz component kb is -----------键盘模块 port (clk : in std_logic; set:in std_logic; btn1,btn2,btnloc:in std_logic; kbin: in std_logic_vector(3 downto 0); kbout: buffer std_logic_vector(3 downto 0); bj:out std_logic; setmod:out std_logic; lockmod:out std_logic; kbwei:out integer range 0 to 4; m1x,m2x,m3x,m4x:out integer range 0 to 9 ); end component;

component smg is -------------数码管显示模块 port (clk : in std_logic; setmode:in std_logic; lockmode:in std_logic; kwei:in integer range 0 to 4; m1,m2,m3,m4:in integer range 0 to 9; smgzf: out std_logic_vector(6 downto 0); smgcatout:out std_logic_vector(5 downto 0)

); end component;

component dz is -----点阵模块 port (clk : in std_logic; --set:in std_logic; lockmode:in std_logic; dzrow,dzcolr,dzcolg: out std_logic_vector(7 downto 0) ); end component;

component alarm is ------报警模块 port (clk : in std_logic; bj:in std_logic; fmq: out std_logic ); end component;

component fenpin is -------分频模块 port(clk: in std_logic; clk_out1: out std_logic; clk_out2: out std_logic; clk_out3: out std_logic; clk_out4: out std_logic); end component;

begin a1: fenpin port map(clk=>clk,clk_out1=>clk_1,clk_out2=>clk_2, clk_out3=>clk_3,clk_out4=>clk_4); u1: kb

相关文档
最新文档