EDA实训指导书(3)

1970-01-01 08:00

电子设计自动化技术实训 CSH

End if; Cp<=cnt2+1; End if; Cp<=cnt2(5); End process; Process(cp) Begin

If(cp’event and cp=’1’)then

Case count2(2downto0) is——根据count2输出行控制信号。 When”000”=>h<=”10000000”; When”001”=>h<=”01000000”; When”010”=>h<=”00100000”; When”011”=>h<=”00010000”; When”100”=>h<=”00001000”; When”101”=>h<=”00000100”; When”110”=>h<=”00000010”; When”111”=>h<=”00000001”; When others =>h<=”00000000”; End case;

If count2<=”0111”then ——如果扫描的是前8行,则逐行扫描。 Count1<=count1+1;——扫描下一点。

Case count1(2downto0)is ——根据count2输出列控制信号。 When “000”=>v<=”01111111”; When ”001”=>v<=”10111111”; When “010”=>v<=”11011111”; When “011”=>v<=”11101111”; When “100”=>v<=”11110111”; When “101”=>v<=”11111011”; When “110”=>v<=”11111101”; When “111”=>v<=”11111110”; When “others =>v<=”11111111”; End case;

If count2=”111”then count2<=count2+1;end if;——扫描完一行行计数器加1。 Else ——若扫描的是后8行,则2点到扫描。 If count1=”010”then count1<=”111”;else count1<=count1+1;end if; ——使count1清零,准备下次循环。

Case count1(1downto0)is——根据count1输出列控制信号。

When”00”=>v<=”00111111”; When”01”=>v<=”11001111”; When”10”=>v<=”11110011”;

11

电子设计自动化技术实训 CSH

When”11”=>v<=”11111100”; When others =>v<=”11111111”; End case;

If count1(1downto0)=”11”then count2<=count2+1;end if; ——扫描完一行,行计数器加1。 End if; End if; Ho<=h; Vo<=v; End process; End scanpixel;

12

五、 程序说明

此程序主要由分频电路,行,列控制电路组成。

电子设计自动化技术实训 CSH 13

课题4 抢答器

一、 设计任务及要求

设计2人抢答器。要求如下:

1. 两人抢答,先抢为有效,用发光二极管显示是否抢到优先答题权。 2. 每人2为计分显示,答错了不加分,答对了可加10、20、30分。 3. 每题结束后,裁判按复位,可重新抢答下一题。 4. 累计加分可由裁判随时清零。

二、 可选器件

EPM130208-2、共阴极七段数码管,按键开关、电阻、电容。

三、 设计总体框图

抢答器总体框图如图4所示。 重新抢答 抢答者1输入

抢答者2输入

裁判

加 分

裁判

清 零

裁判复位 抢 答 判 断 显示抢答 指示灯 加分电路 显示加分 结 果 图4 抢答器总体框

四、 源程序

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity qb is

port(i1,i2:in bit;——抢答器两输入端。 Reset: in bit;——抢答器复位端。

G10,g10,g30:in bit;——加分输入端10分、20分、30分。

电子设计自动化技术实训 CSH

Light1,light2:out bit:=’0’;——抢答标志灯。

Tll:out std_logic_vector(6downto0):=”0111111”;——“tl1、tl2”,显示第一个人得分。 Tl2:out std_logic_vector(6downto0):=”0111111”;

T21:out std_logic_vector(6downto0):=”0111111”;——“t21t22”显示第二个人得分。 Clk:in bit;——时钟输入端。 Cong:in bit ——清零控制端。 ); end qb;

architecture stru of qb is signal cs1:integer range0to9; sitgnal cs2:integer range 0to9: signal a,b:bit:=’0’; signall1,l2:bit:=’0’; begin process(clk) begin

if clk’event and clk =’1’ then if(cong=’1’)then if(reset=’1’)then

if(i1=’0’and a=’0’)then l1<=’1’;a<=’1’;——抢答。 Elsif (i2=”’0’and a=’0’) then l2<=’1’; a<=’1’; End if;

If(g10=’0’and l1=’1’and b=’0’)then cs1<=cs1+1;b<=’1’; Elsif(g20=’0’and l1=’1’and b=’0’)then cs1<=cs1+2;b<=’1’; Elsif(g30=’0’and l1=’1’and b=’0’)then cs1<=cs1+2;b<=’1’; End if ——完成第一人的加分。

If(cs1=0)then tl1<=”0111111”;——显示。 Elsif (cs1=1)then t11<=”0000110”; Elsif (cs1=2)then t11<=”1011011”; Elsif (cs1=3)then t11<=”100111”; Elsif (cs1=4)then t11<=”1100110”; Elsif (cs1=5)then t11<=”1101101”; Elsif(cs1=6)then t11<=”1111101”; Elsif (cs1=7)then t11<=”0000111”; Elsif (cs1=8)then t11<=”1111111”; Elsif (cs1=9)then t11<=”1101111”; End if;

If (cs20)then t21<=”0111111”; Elsif (cs2=1)then t21<=”0000110”; Elsif(cs2=2)then t21<=”1011011”;

14

电子设计自动化技术实训 CSH

Elsif(cs2=3)then t21<=”1001111”; Elsif(cs2=4)then t21<=”1100110”; Elsif(cs2=5)then t21<=”1101101”; Elsif(cs2=6)then t21<=”1111101”; Elsif(cs2=7)then t21<=”0000111”; Elsif(cs2=8)then t21<=”1111111”; Elsif(cs2=9)then t21<=”1101111”; end if;

Else l1<=’0’;l2<=’0’;a<=’0’;b<=’0’; End if;

Elde cs1<=0;cs2<=0; l1<=’0’;l2<=’0’; end if; end process; end stru;

15

五、 程序说明

1. 此程序由3部分组成,即抢答、加分、显示。

2. 当一人抢到优先答题权,发光二极管亮,另一人再按按键无效。答题结束后,

裁判按复位键,可再次抢答。

3. 每人有两个数码管显示累加计分情况,分数分为3档,用按键来区别。


EDA实训指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新人教版小学四年级上册《梯形的认识》教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: