




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.2系统的输入、输出端口以及寄存器清单及说明: CLK 输入时钟方波信号端口 KIN 键盘按键输入端口 KOUT 键盘完整编码码值输出端口(七位二进制数) KOUT1 扫描信号输出端口(三位二进制数) SIN 键盘消抖输入端口(七位二进制数) SOUT 键盘消抖输出端口(七位二进制数) LIN 键盘按键编码模块输入端口(七位二进制数) DF 数字按键标志寄存器 FF 功能按键标志寄存器 ND 数字按键识别编码寄存器 NF 功能按键识别编码寄存器 LOCK 电子密码锁上锁状态标志寄存器 LOCK1 电子密码锁报警状态标志寄存器 UNLOCK 电子密码锁开锁状态标志寄存器 NULL1 电子密码锁无密码状态标志寄存器 DATA 电子密码锁数码显示数据寄存器 CAT 电子密码锁数码显示位选寄存器 DISPLAY 电子密码锁数码显示段选寄存器(十七位二进制数) NUM0、NUM1、NUM2、NUM3数码显示中分位显示数据寄存器 DISNUM 数码显示段选数据寄存器 I1 数码显示计数器 SCANS 键盘扫描中按键完整编码寄存器 SCAN 键盘扫描寄存器 CNT 键盘消抖计数器 SIN1 键盘按键键值寄存器 I 键盘扫描计数器 DF1 数字按键状态标志寄存器 ACC 键盘数字输入暂存器 T 报警计数器 REG 电子密码锁密码存储器 NC 计数器1键盘输入扫描部分源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_1164.ALL;ENTITY kbscan1 is PORT(clk:in STD_LOGIC; kin:in STD_LOGIC_VECTOR(3 DOWNTO 0);-PC7-PC4 kout:out STD_LOGIC_VECTOR(7 downto 0);-PC3-PC kout1: out STD_LOGIC_VECTOR(3 downto 0); end kbscan1; architecture a of kbscan1 is signal scans: std_logic_vector(7 downto 0);-PC7-PC0 signal scan : std_logic_vector(3 downto 0);-PC3-PC0 signal cnt :integer range 0 to 140; signal sin1:std_logic_vector(3 downto 0); signal i:integer range 0 to 3; begin scans=scan& kin; kout=scans; kout1=scan; process(clk) begin if(falling_edge(clk)then if(i=3)then i=0; else iscanscanscanscan=1000; end case; end if; end process; End a;2键盘输入消抖部分源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xiaodou is Port(clk :in STD_LOGIC; sin:in std_logic_vector(7 downto 0); sout:out std_logic_vector(7 downto 0); end xiaodou; architecture behavioral of xiaodou is signal cnt :integer range 0 to 120; signal sin1:std_logic_vector(7 downto 0); begin process(clk) begin sin1=sin; if (rising_edge(clk)then if(sin1=sin)then cnt=cnt+1; else sin1=sin; cnt=0; end if; if(cnt=120)then sout=sin; cntNDNDNDNDNDNDNDNDNDNDNDNFNFNFNFNFNFNF=1000; END CASE; END IF; END PROCESS; DF=NOT(ND(3) AND ND(2) AND ND(1) AND ND(0); FF=NF(2) OR NF(1) OR NF(0); end b;4 电子密码锁的控制部分程序DF 数字按键标志寄存器 FF 功能按键标志寄存器 ND 数字按键识别编码寄存器 NF 功能按键识别编码寄存器 LOCK 电子密码锁上锁状态标志寄存器 LOCK1 电子密码锁报警状态标志寄存器 UNLOCK 电子密码锁开锁状态标志寄存器 NULL1 电子密码锁无密码状态标志寄存器 DATA 电子密码锁数码显示数据寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY kongzhi IS PORT(CLK: IN STD_LOGIC; DF,FF: in STD_LOGIC; ND,NF:in STD_LOGIC_VECTOR(3 downTO 0); LOCK,LOCK1,UNLOCK:buffer STD_LOGIC; NULL1: buffer STD_LOGIC; DATA: out STD_LOGIC_VECTOR(15 downTO 0) ); END kongzhi; ARCHITECTURE V1 OF kongzhi IS signal i1:integer range 0 to 3; signal df1:std_logic; signal ACC: STD_LOGIC_VECTOR(15 DOWNTO 0); signal t: INTEGER RANGE 0 TO 2; signal REG:STD_LOGIC_VECTOR(15 downTO 0); signal NC,A:INTEGER RANGE 0 TO 3; begin PROCESS(FF,DF)IS BEGIN if rising_edge(clk) then IF FF=1THEN IF NF=0001THEN ACC=0000000000000000; NC=0; END IF; ELSE df1=df; IF df1=0and DF=1 THEN IF NC4 THEN ACC=ACC(11 DOWNTO 0)&ND; NC=NC+1; END IF; END IF; END IF; IF FF=1 THEN IF NF=0011 THEN REG=ACC; LOCK=0; UNLOCK=1; LOCK1=1; NULL1=1; else IF NF=0100 THEN IF REG=ACC THEN LOCK=1; UNLOCK=0; LOCK1=1; NULL1=1; ELSE LOCK=0; UNLOCK=1; IF t=2 THEN REG=1000100010001000; LOCK1=0; lock=1; unlock=1; null1=1; t=0; ELSE t=t+1; END IF; END IF; else IF NF=0101 THEN REG=1000100010001000; LOCK=0; UNLOCK=1; LOCK1=1; NULL1=1; else IF NF=0111 THEN IF UNLOCK=1 THEN IF REG=ACC THEN REG=0000000000000000; NULL1=0; LOCK=1; LOCK1=1; UNLOCK=1; END IF; END IF; else IF NF=0010 THEN REG=ACC; NULL1=1; LOCK=0; LOCK1=1; UNLOCK=1; END IF; end if; end if; end if; end if; end if; end if; END PROCESS; DATA=ACC; END ARCHITECTURE V1; CAT 电子密码锁数码显示位选寄存器 DISPLAY 电子密码锁数码显示段选寄存器(十七位二进制数) DISPLAY 电子密码锁数码显示段选寄存器(十七位二进制数) NUM0、NUM1、NUM2、NUM3数码显示中分位显示数据寄存器 DISNUM 数码显示段选数据寄存器 I1 数码显示计数器 5电子密码锁的数码显示模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LEDXIANSHI IS PORT(CLK :IN STD_LOGIC; DATA: in STD_LOGIC_VECTOR (15 DOWNTO 0); CAT:OUT STD_LOGIC_VECTOR(0 TO 3); DISPLAY:OUT STD_LOGIC_VECTOR(16 DOWNTO 0); END LEDXIANSHI; ARCHITECTURE BEHAVIORAL OF LEDXIANSHI IS Signal NUM0,NUM1,NUM2,NUM3: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DISNUM:STD_LOGIC_VECTOR(16 DOWNTO 0); SIGNAL I1:INTEGER RANGE 0 TO 3; BEGIN NUM0=DATA(3 DOWNTO 0);NUM1=DATA(7 DOWNTO 4);NUM2=DATA(11 DOWNTO 8);NUM3=DATA(15 DOWNTO 12); DISPLAY=DISNUM; PROCESS(CLK) BEGIN IF(RISING_EDGE(CLK)THEN IF(I1=3)THEN I1=0; ELSE I1CATDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUM CATDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUM CATDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUM CATDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUMDISNUM=NULL; END CASE; END CASE; END PROCESS; END BEHAVIORAL;6电子密码锁的数码显示部分(附加)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LEDXIANSHI IS PORT(CLK :IN STD_LOGIC; DATA: in STD_LOGIC_VECTOR (15 DOWNTO 0); CAT:OUT STD_LOGIC_VECTOR(0 TO 3); DISPLAY:OUT STD_LOGIC_VECTOR(16 DOWNTO 0); END LEDXIANSHI; ARCHITECTURE BEHAVIORAL OF LEDXIANSHI IS signal NUM0,NUM1,NUM2,NUM3: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DISNUM:STD_LOGIC_VECTOR(16 DOWNTO 0); SIGNAL I1:INTEGER RANGE 0 TO 3; BEGIN NUM0=DATA(3 DOWNTO 0);NUM1=DATA(7 DOWNTO 4);NUM2=DATA(11 DOWNTO 8);NUM3=DATA(15 DOWNTO 12); DISPLAY=DISNUM; PROCESS(CLK) BEGIN IF(RISING_EDGE(CLK)THEN IF(I1=3)THEN I1=0; ELSE I1CATDISNUMDISNUM CATDISNUMDISNUM CATDISNUMDISNUM CATDISNUMDISNUM=01111111100000000; END CASE; END CASE; END PROCESS; END BEHAVIORAL;数码管显示library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity KeyScan isport(RESET:in std_logic;CLK:in std_logic; -基本时钟源6MHzKeyIn:in std_logic_vector(3 downto 0);-column列KeyOut:out std_logic_vector(3 downto 0); -row行LED_A: out std_logic; -4位数码管引脚LED_B: out std_logic;LED_C: out std_logic;LED_D: out std_logic;LED_E: out std_logic;LED_F: out std_logic;LED_G: out std_logic;LED_VCC1: out std_logic; -时十位LED_VCC2: out std_logic; -时个位LED_VCC3: out std_logic; -分十位LED_VCC4: out std_logic; -分个位LED_TimePoint:out std_logic; -冒号LED_Point:out std_logic; -小数点 LED_EN1:out std_logic -小数点 );end KeyScan;architecture Behavioral of KeyScan issignal timecnt:integer range 0 to 100000; -分频计数器,用来得到10ms时钟signal time10ms:std_logic;-10ms时钟signal scanvalue : std_logic_vector(3 downto 0);-记录扫描数据signal combvalue : std_logic_vector(7 downto 0);-KeyIn、KeyOut组合值signal cpy_scanvalue : std_logic_vector(3 downto 0);-备份扫描数据signal count:integer range 0 to 60000;-分频器,产生毫秒时钟基准signal scancnt:integer range 0 to 3;-LED扫描轮转signal Data0:integer range 0 to 9; beginLED_EN1=0;-进程1:产生20ms时钟process( CLK,RESET)beginif RESET=0 then time10ms=0;-初始化elsif CLKevent and CLK=1 thentimecnt=timecnt+1;if timecnt=100000 then time10ms=not time10ms; timecnt=0;end if;end if;end process;-进程2:键盘扫描输出process( time10ms,RESET)beginif RESET=0 then scanvalue=0001;combvalue=00000000;Data0=0;-初始化elsif time10msevent and time10ms=1 then-每10ms进行一次键盘扫描KeyOut=scanvalue; -输出扫描值 cpy_scanvalue scanvalue scanvalue scanvalue scanvalue scanvalue=0001; end case;combvalue Data0 Data0 Data0 Data0 Data0 Data0 Data0 Data0 Data0 Data0 null; -无键盘按下 end case;end if;end process;-数码管扫描 process(CLK,RESET)-时钟进程,产生各种时钟信号beginif RESET=0 then NULL;elsif CLKevent and CLK=1 then count=count+1;if count=60000 then count3 then scancnt=0; else scancnt=scancnt+1;end if;end if; end if;end process;-数码管扫描 process(CLK, RESET)be
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江哈尔滨铁道职业技术学院招聘4人考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年鹤壁市面向社会招聘看护队员30名考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025黑龙江黑河市爱辉区中心敬老院招聘护理员、夜巡安保员及消防设施操作员13人模拟试卷及答案详解(易错题)
- 2025年中国化妆品级甲基椰油酰基牛磺酸钠行业市场分析及投资价值评估前景预测报告
- 2025年中国滑冰设备及配件行业市场分析及投资价值评估前景预测报告
- 2025年福建省福清市中医院招聘18人模拟试卷及参考答案详解1套
- 2025广东惠州市博罗县东部自来水有限公司招聘及考前自测高频考点模拟试题参考答案详解
- 2025杭州路通环境科技有限公司招聘1人模拟试卷及一套参考答案详解
- 2025内蒙古新正产业发展有限公司高校毕业生招聘41人(第三期)模拟试卷及完整答案详解1套
- 2025年丽水市龙泉市医疗卫生事业单位公开招聘工作人员28人模拟试卷参考答案详解
- 山西中考语文5年(21-25)真题分类汇编-文学类文本阅读
- 2025云南红河红家众服经营管理有限公司社会招聘工作人员8人笔试模拟试题及答案解析
- 蒋诗萌小品《谁杀死了周日》台词完整版
- JJG 707-2014扭矩扳子行业标准
- 超短波在植物病害防治中的应用
- 新媒体运营课件
- 《热敏电阻传感器》课件
- 志愿服务证明(多模板)
- 深圳市养老保险延趸缴申请告知承诺书
- D-阿洛酮糖团体标准
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
评论
0/150
提交评论