clockLCD1602.docx

上传人:b****5 文档编号:7333409 上传时间:2023-01-23 格式:DOCX 页数:121 大小:51.74KB
下载 相关 举报
clockLCD1602.docx_第1页
第1页 / 共121页
clockLCD1602.docx_第2页
第2页 / 共121页
clockLCD1602.docx_第3页
第3页 / 共121页
clockLCD1602.docx_第4页
第4页 / 共121页
clockLCD1602.docx_第5页
第5页 / 共121页
点击查看更多>>
下载资源
资源描述

clockLCD1602.docx

《clockLCD1602.docx》由会员分享,可在线阅读,更多相关《clockLCD1602.docx(121页珍藏版)》请在冰豆网上搜索。

clockLCD1602.docx

clockLCD1602

------------------------------------------------------

--设计者:

bluemanzyp(巨蟹座风云)--

--硬件载体:

EP2C8Q208Amy电子FPGA学习板--

--设计时间:

2009年4月1日,V1.0版--

--最后修改时间:

2009年8月23日,V3.0版--

------------------------------------------------------

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_Arith.ALL;

USEIEEE.STD_LOGIC_Unsigned.ALL;

ENTITYalarm_radioIS

PORT

clk:

INstd_logic;

en_5ms:

INstd_logic;

is_need_alarm:

INSTD_LOGIC;--是否需要整点闹铃

alarmin:

INSTD_LOGIC;

cnt_alarmin:

INSTD_LOGIC;

timein:

INSTD_LOGIC_VECTOR(15DOWNTO0);

reset:

INSTD_LOGIC;

--经过实验得知,对10kHz进行22分频和40分频蜂鸣器声音最大,故采用这两种声音

tone_H:

INSTD_LOGIC;--4545Hz(22)or4762Hz(21)

tone_L:

INSTD_LOGIC;--2500Hz(40)or2778Hz(36)

clk_1Hz:

INSTD_LOGIC;

alarm_out:

outSTD_LOGIC

);

ENDalarm_radio;

ARCHITECTUREoneOFalarm_radioIS

SIGNALfreq:

STD_LOGIC;

SIGNALbeep5:

STD_LOGIC;

SIGNALcnt_beep4:

integerrange0to4;

SIGNALbeep4,beep2:

STD_LOGIC;

SIGNALcnt10Hz:

integerrange0to19;

SIGNALclk_10Hz:

STD_LOGIC;

SIGNALclk_5Hz:

STD_LOGIC;

SIGNALreset_delay:

STD_LOGIC;

SIGNALreset_cnt:

integerrange0to5;

begin

process(clk,reset)

begin

if(clk'eventandclk='1')then

if(en_5ms='1')then

if(cnt10Hz<19)then

cnt10Hz<=cnt10Hz+1;

else

cnt10Hz<=0;

clk_5Hz<=notclk_5Hz;

endif;

if(cnt10Hz<10)then

clk_10Hz<='1';

else

clk_10Hz<='0';

endif;

endif;

endif;

endprocess;

process(clk_10Hz,reset)

begin

if(reset='0')then

reset_cnt<=0;

reset_delay<='0';

elsif(clk_10Hz'eventandclk_10Hz='1')then

if(reset_cnt<5)then

reset_cnt<=reset_cnt+1;

reset_delay<='0';

else

reset_cnt<=reset_cnt;

reset_delay<='1';

endif;

endif;

endprocess;

process(clk_5Hz,reset,cnt_alarmin,alarmin,cnt_beep4)

begin

if(reset='0'or(cnt_alarmin='0'andalarmin='0'))then

cnt_beep4<=0;

beep4<='0';

elsif(clk_5Hz'eventandclk_5Hz='1')then

if(cnt_beep4<4)then

cnt_beep4<=cnt_beep4+1;

else

cnt_beep4<=0;

endif;

endif;

casecnt_beep4is

when1=>beep4<='1';beep2<='1';

when2=>beep4<='1';beep2<='0';

when3=>beep4<='1';beep2<='1';

when4=>beep4<='1';beep2<='0';

whenothers=>beep4<='0';beep2<='0';

endcase;

endprocess;

process(timein)

begin

casetimeinis

whenX"59_59"|X"59_56"|X"59_57"|X"59_58"=>freq<='0';beep5<='1';--500Hz

whenX"00_00"=>freq<='1';beep5<='1';--1kHz

whenothers=>freq<='0';beep5<='0';--不响

endcase;

endprocess;

--计数器闹铃优先级最高,时间闹铃优先级次之,整点报时闹铃优先级最低。

--当计数器时间到闹铃时,时间闹铃和整点报时闹铃被屏蔽,

--当时间闹铃正在进行时,整点报时闹铃被屏蔽。

alarm_out<=(

(notreset)andtone_H--全局清零的时候响

or

reset_delay

and

((notcnt_alarmin)and(notalarmin)andis_need_alarmandbeep5and(clk_1Hz)and(((notfreq)andtone_L)or(freqandtone_H)))--整点报时

or

((notcnt_alarmin)andalarminandtone_Landclk_10Hzandbeep4)--普通闹铃

or

(cnt_alarminandtone_Landbeep2)--计数器闹铃

);

endARCHITECTURE;

------------------------------------------------------

--设计者:

bluemanzyp(巨蟹座风云)--

--硬件载体:

EP2C8Q208Amy电子FPGA学习板--

--设计时间:

2009年4月1日,V1.0版--

--最后修改时间:

2009年8月23日,V3.0版--

------------------------------------------------------

libraryIEEE;

useIEEE.STD_LOGIC_1164.all;

packageascii_tableis

constantsp:

std_logic_vector(7downto0):

=x"20";--空格

constantgantanhao:

std_logic_vector(7downto0):

=x"21";--感叹号!

constantshuangyinhao:

std_logic_vector(7downto0):

=x"22";--双引号"

constantjinghao:

std_logic_vector(7downto0):

=x"23";--井号#

constantdollar:

std_logic_vector(7downto0):

=x"24";--美元符号$

constantbaifenhao:

std_logic_vector(7downto0):

=x"25";--百分号%

constantdizhi:

std_logic_vector(7downto0):

=x"26";--地址符号&

constantyoudanyinhao:

std_logic_vector(7downto0):

=x"27";--右单引号‘

constantzuokuohao:

std_logic_vector(7downto0):

=x"28";--左括号(

constantyoukuohao:

std_logic_vector(7downto0):

=x"29";--右括号)

constantchenghao:

std_logic_vector(7downto0):

=x"2a";--乘号*

constantjiahao:

std_logic_vector(7downto0):

=x"2b";--加号+

constantdouhao:

std_logic_vector(7downto0):

=x"2c";--逗号,

constantjianhao:

std_logic_vector(7downto0):

=x"2d";--减号-

constantxiaoshudian:

std_logic_vector(7downto0):

=x"2e";--小数点.

constantfanxiegang:

std_logic_vector(7downto0):

=x"2f";--反斜杠/

constantn0:

std_logic_vector(7downto0):

=x"30";--数字0

constantn1:

std_logic_vector(7downto0):

=x"31";--数字1

constantn2:

std_logic_vector(7downto0):

=x"32";--数字2

constantn3:

std_logic_vector(7downto0):

=x"33";--数字3

constantn4:

std_logic_vector(7downto0):

=x"34";--数字4

constantn5:

std_logic_vector(7downto0):

=x"35";--数字5

constantn6:

std_logic_vector(7downto0):

=x"36";--数字6

constantn7:

std_logic_vector(7downto0):

=x"37";--数字7

constantn8:

std_logic_vector(7downto0):

=x"38";--数字8

constantn9:

std_logic_vector(7downto0):

=x"39";--数字9

constantmaohao:

std_logic_vector(7downto0):

=x"3a";--冒号:

constantfenhao:

std_logic_vector(7downto0):

=x"3b";--分号;

constantxiaoyuhao:

std_logic_vector(7downto0):

=x"3c";--小于号<

constantdenghao:

std_logic_vector(7downto0):

=x"3d";--等号=

constantdayuhao:

std_logic_vector(7downto0):

=x"3e";--大于号>

constantwenhao:

std_logic_vector(7downto0):

=x"3f";--问号?

constanthuaa:

std_logic_vector(7downto0):

=x"40";--花a@

constantuA:

std_logic_vector(7downto0):

=x"41";--大写A

constantuB:

std_logic_vector(7downto0):

=x"42";--大写B

constantuC:

std_logic_vector(7downto0):

=x"43";--大写C

constantuD:

std_logic_vector(7downto0):

=x"44";--大写D

constantuE:

std_logic_vector(7downto0):

=x"45";--大写E

constantuF:

std_logic_vector(7downto0):

=x"46";--大写F

constantuG:

std_logic_vector(7downto0):

=x"47";--大写G

constantuH:

std_logic_vector(7downto0):

=x"48";--大写H

constantuI:

std_logic_vector(7downto0):

=x"49";--大写I

constantuJ:

std_logic_vector(7downto0):

=x"4a";--大写J

constantuK:

std_logic_vector(7downto0):

=x"4b";--大写K

constantuL:

std_logic_vector(7downto0):

=x"4c";--大写L

constantuM:

std_logic_vector(7downto0):

=x"4d";--大写M

constantuN:

std_logic_vector(7downto0):

=x"4e";--大写N

constantuO:

std_logic_vector(7downto0):

=x"4f";--大写O

constantuP:

std_logic_vector(7downto0):

=x"50";--大写P

constantuQ:

std_logic_vector(7downto0):

=x"51";--大写Q

constantuR:

std_logic_vector(7downto0):

=x"52";--大写R

constantuSS:

std_logic_vector(7downto0):

=x"53";--大写S

constantuT:

std_logic_vector(7downto0):

=x"54";--大写T

constantuU:

std_logic_vector(7downto0):

=x"55";--大写U

constantuV:

std_logic_vector(7downto0):

=x"56";--大写V

constantuW:

std_logic_vector(7downto0):

=x"57";--大写W

constantuX:

std_logic_vector(7downto0):

=x"58";--大写X

constantuY:

std_logic_vector(7downto0):

=x"59";--大写Y

constantuZ:

std_logic_vector(7downto0):

=x"5a";--大写Z

constantzuozhongkuohao:

std_logic_vector(7downto0):

=x"5b";--左中括号[

constantrenminbi:

std_logic_vector(7downto0):

=x"5c";--人民币¥

constantyouzhongkuohao:

std_logic_vector(7downto0):

=x"5d";--右中括号]

constantshangjianhao:

std_logic_vector(7downto0):

=x"5e";--上尖号^

constantxiahuaxian:

std_logic_vector(7downto0):

=x"5f";--下划线_

constantzuodanyinhao:

std_logic_vector(7downto0):

=x"60";--左单引号’

constantaa:

std_logic_vector(7downto0):

=x"61";--小写a

constantb:

std_logic_vector(7downto0):

=x"62";--小写b

constantc:

std_logic_vector(7downto0):

=x"63";--小写c

constantd:

std_logic_vector(7downto0):

=x"64";--小写d

constante:

std_logic_vector(7downto0):

=x"65";--小写e

constantf:

std_logic_vector(7downto0):

=x"66";--小写f

constantg:

std_logic_vector(7downto0):

=x"67";--小写g

constanth:

std_logic_vector(7downto0):

=x"68";--小写h

constanti:

std_logic_vector(7downto0):

=x"69";--小写i

constantj:

std_logic_vector(7downto0):

=x"6a";--小写j

constantk:

std_logic_vector(7downto0):

=x"6b";--小写k

constantl:

std_logic_vector(7downto0):

=x"6c";--小写l

constantm:

std_logic_vector(7downto0):

=x"6d";--小写m

constantn:

std_logic_vector(7downto0):

=x"6e";--小写n

constanto:

std_logic_vector(7downto0):

=x"6f";--小写o

constantp:

std_logic_vector(7downto0):

=x"70";--小写p

constantq:

std_logic_vector(7downto0):

=x"71";--小写q

constantr:

std_logic_vector(7downto0):

=x"72";--小写r

constants:

std_logic_vector(7downto0):

=x"73";--小写s

constantt:

std_logic_vector(7downto0):

=x"74";--小写t

constantu:

std_logic_vector(7downto0):

=x"75";--小写u

constantv:

std_logic_vector(7downto0):

=x"76";--小写v

constantw:

std_logic_vector(7downto0):

=x"77";--小写w

constantx:

std_logic_vector(7downto0):

=x"78";--小写x

constanty:

std_logic_vector(7downto0):

=x"79";--小写y

constantz:

std_logic_vector(7downto0):

=x"7a";--小写z

constantzuodakuo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1