




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电流线圈电压AC/DC选型AC24VAC36VAC110VAC220VAC380V9ALC1D09B7CLC1D09CC7CLC1D09F7CLC1D09M7CLC1D09Q7C12ALC1D12B7CLC1D12CC7CLC1D12F7CLC1D12M7CLC1D12Q7C18ALC1D18B7CLC1D18CC7CLC1D18F7CLC1D18M7CLC1D18Q7C25ALC1D25B7CLC1D25CC7CLC1D25F7CLC1D25M7CLC1D25Q7C32ALC1D32B7CLC1D32CC7CLC1D32F7CLC1D32M7CLC1D32Q7C38ALC1D38B7CLC1
2、D38CC7CLC1D38F7CLC1D38M7CLC1D38Q7C40ALC1D40B7CLC1D40CC7CLC1D40F7CLC1D40M7CLC1D40Q7C50ALC1D50B7CLC1D50CC7CLC1D50F7CLC1D50M7CLC1D50Q7C65ALC1D65B7CLC1D65CC7CLC1D65F7CLC1D65M7CLC1D65Q7C80ALC1D80B7CLC1D80CC7CLC1D80F7CLC1D80M7CLC1D80Q7C95ALC1D95B7CLC1D75CC7CLC1D95F7CLC1D95M7CLC1D95Q7C115ALC1D11500B7CLC1D1
3、1500F7CLC1D11500M7CLC1D11500Q7C150ALC1D15000B7CLC1D15000F7CLC1D15000M7CLC1D15000Q7C170ALC1D17000F7CLC1D17000M7CLC1D17000Q7C205ALC1D205F7CLC1D205M7CLC1D205Q7C245ALC1D245F7CLC1D245M7CLC1D245Q7C300ALC1D300F7CLC1D300M7CLC1D300Q7C410ALC1D410M7C475ALC1D475M7C620ALC1D620F7CLC1D620M7CLC1D620Q7C电流AC48VDC24VD
4、C48VDC110VDC220V9ALC1D09E7CLC1D09BDCLC1D09EDCLC1D09FDCLC1D09MDC12ALC1D12E7CLC1D12BDCLC1D12EDCLC1D12FDCLC1D12MDC18ALC1D18E7CLC1D18BDCLC1D18EDCLC1D18FDCLC1D18MDC25ALC1D25E7CLC1D25BDCLC1D25EDCLC1D25FDCLC1D25MDC32ALC1D32E7CLC1D32BDCLC1D32EDCLC1D32FDCLC1D32MDC40ALC1D40E7CLC1D40BDC线圈电压标准符号代码B:24VE:48VF:11
5、0VG:120V/127VFE:115VM:220VP:230VU:240VW:277VQ:380VV:400VN:415VR:440VS:480V/500VX:600V/660VB5:50HZB6:60HZB7:50HZ/60HZ50ALC1D50E7CLC1D50BDC65ALC1D65E7CLC1D65BDC80ALC1D80E7CLC1D80BDC95ALC1D95E7CLC1D95BDCLC1D机械连锁选型表LC1Dffi助触头选型表型号LAD9R1V功能可逆装置适用接触器LC1D09-38型号LADN11C参数1常开1常闭适用接触器LC1D09-170LA9D0902可逆装置LC1
6、D09-38LADN20C2常开LC1D09-170LAD4CM可逆装置LC1D40-65ALADN02C2常闭LC1D09-170LA9D4002可逆装置LC1D40-90LADN22C2常开2常闭LC1D09-170LA9D11502可逆装置LC1D115-170LADN40C4常开LC1D09-170LC1D机械连锁选型表LADN04C4常闭LC1D09-170LADN31C3常开1常闭LC1D09-170型号功能适用接触器LADN13C1常开3常闭LC1D09-170LADTO0.1-3S通电延迟LAD8N111常开1常闭LC1D09-170LADT20.1-30S通电延迟LAD8N2
7、02常开LC1D09-170LADS21-30S通电延迟LADT410-180S通电延迟LADR00.1-3S断电延迟LADR20.1-30S断电延迟LADR410-180S断电延迟数字电路与逻辑设计实验报告学院:电子工程学院班级:2014211212姓名:学号:班内序号:、设计课题的任务要求简易秒表的设计与实现设计制作一个计时精度为百分之一秒的计时秒表根本要求:1 .用 LCD1602 液晶屏显示计时;2 .秒表计时长度为 23 小时 59 分59.99 秒;3 .用 BTN0 作为启动/停止开关;4 .用BTN1作为复位开关,在任何情况下,只要按下复位开关,秒表都要无条件执行清零操作.提升
8、要求:1o增加定时器功能,可根据用户设定的时间进行倒计时,时间到0后蜂鸣器报警提示;2.自拟其他功能.系统设计设计思路、总体框图、分块设计1.设计思路:分别设计 6 进制计数器、10进制计数器和24进制计数器用于秒表计时局部.具体来说:将两个10进制计数器级联分别作为秒表的十分秒位最小单位为 0.1 秒和百分秒位最小单位为 0.01 秒;将一个10进制计数器和 6 进制计数器级联,分别作为秒表秒钟局部的个位最小单位为 1秒和十位最小单位为 10 秒;再将一个 10 进制计数器和 6 进制计数器级联,分别作为秒表分钟局部的个位最小单位为 1 分钟和十位最小单位为 10 分钟;将 24 进制计数器
9、作为秒表小时局部,其中低位输出作为秒表小时局部的个位最小单位为 1 小时,高位输出作为秒表小时局部的十位最小单位为 10 小时.最后把秒表百分秒、十分秒局部、秒钟局部、分钟局部、小时局部这四局部级联起来便构成了简易数字秒表的计时局部.将各个计数器局部的输出信号通过译码模块,变成 LCD1602 液晶屏能够读取并从而显示相关字符的8位二进制数据.再定义一个存储器ram,存储各个计数器局部的输出信号经过译码局部之后得到的数据,然后将这个存储器ram 代表的数据在LCD1602 夜晶屏上显示.考虑到秒表的最小计时长度为 0.01 秒频率为 100HZ,如果系统时钟设置为 50MH 乙那么需要 500
10、000 分频;实验时发现LCD1602 液晶屏的时钟在 1KHZ 时,显示效果较好,故需要在系统时钟为50MHZ 的基础上进行50000 分频.考虑到根本要求中需要用BTN0 作为启动/停止开关,用BTN1 作为复位开关,所以需要设计相应白按键防抖电路,这里我采用的是计数型防抖.2.总体框图:图 1 系统结构框图3 .分块设计:系统共通过 9 个模块实现,分别是:500000分频模块fpq50000分频模块 fpq16 进制计数器模块 cnt610 进制计数器模块 cnt1024 进制计数器模块 cnt24译码模块 yimaLCD162 显示模块 LCD1602BTN0 启动/停止开关消抖模块
11、xiaodouBTN1 复位开关消抖模块 fuweixiaodou具体设计如下:500000 分频模块 fpq输入端口:clk:instd_logic;输出端口:clkout:outstd_logic;生成符号:一设计思路:利用计数法实现分频主要代码:完整代码请见源程序signalclktmp:std_logic;设计思路:利用计数法实现分频主要代码:(完整代码请见源程序)signa1clktmp:std_logic;signa1tmp:integerrange0to249999;beginprocess(clk)begin/clkeventandc1k=/1then?ftmp=249999t
12、hen-500000 分频tmp=0;clktmp=notc1ktmp;else?tmp=mp+1;endif;endif;endprocess;clkout=clktmp;50000 分频模块 fpq1:输入端口:c1k:instd_logic;输出端口:clkout:outstd_logic;生成符号:一-jf-jf-jrjr- -signaltmp:integerrange0to24999;beginprocess(c1k)begin/clk/eventandc1k=1theniftmp=24999then-50000 分频2mp=0;clktmp=notclktmp;Qlse?tmp=
13、tmp+1;endif;?endif;endprocess;cIkout=clktmp;6 进制计数器模块 cnt6:set,en,c1k:INSTD_LOGIC;:OUTSTDJJXIC;q:OUTSTD_LOOC_VECTOR3DOVNTO0;生成符号F(reset=V)TH 田 qs1-2-3-450当计数到5时,进位信号变为1;否那么状态自增,进位信号保持在0主要代码:完整代码请见源程序SIGNALSIGNqs:STD_LOGIC_ECTOR(3DOWNO0);ALca:BEGINSTD_LOGIC;PROCEbeginS(clk)IkEVENTANDclk=71)THENELSIF(
14、cIF(en=0)THENIF(qs=0101)THEN-计数到 5qs=0000;ca=1;ELSEqs=qs+1;ca=/0;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESSca,en)BEGNq=qs;carry23-456-789-01当计数到 9 时,进位信号变为1;否那么状态自增,进位信号保持在0主要代码:完整代码请见源程序SIGNALqs:STD_LOGIC_VECTOR3DOWNTO0;SIGNALca:STD_LOGIC;BEGNPROCESS(clk)beginIF(reset=/1)THENqs=o000;ELSIF(clkEVENTANDclk=
15、V)THENIF(en=/0)THENIF(qs=1001)THEN一计数到 9qs=0000;ca=1/;ELSEqs=qs+1;ca=0/;ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(ca)BEGNq=qs;carry123-4-567-8-90-1高位 qb 状态变化:01-201当低位 qa 计数到 9 时,qb 自增,进位信号保持在0当低位 qa 为 3 且高位 qb 为 2 时,进位信号变为1,同时 qa 变为 0、qb 变为 0主要代码:(完整代码请见源程序)SIGNALca:STD_LOGIC;BEGINprocess(clk,Reset,en)v
16、ariabletma:STD_LOGIC_VECTCR(3DOWNTC0);variabletmb:STD_LCGIC_VECTCR(3DCWNTC0);beginIfReset=Vthentma:=0000;tmb:=0000;elseifelk/eventandclk=1thenIF(en=0/)THEN-当BTN0键没有第一次按下时,正常计数iftma=1001thentma=0000;tmb=tmb+1;elsiftmb=0010andtma=0011then-计数到23tma:=0000;tmb:=0000;elsetma:=tma+1;ca=1;endif;endif;endif;
17、endif;qa=tmaqb=tmb;carry=ca;endprocess;译码模块 yima:输入端口:carry:inSTD_LOGIC;data:instd_1ogic_vector3downto0;输出端口:dataout:outstd_logic_vector7downto0;生成符号:4 方泊小#心:,L力孑iyihmaW!,席一carrydatKUtfT.0carrydatKUtfT.00 0回3 3“叫,i一,i:彳i i由x x:设计思路:根据输入信号的不同,使用 case 语句进行不同的译码操作即可.具体来说:0四位二进制译为“30八位二进制1/四位二进制译为“31八位二
18、进制/2四位二进制译为“32八位二进制3四位二进制译为“33八位二进制4/四位二进制译为“34八位二进制5四位二进制译为“35八位二进制6四位二进制译为36八位二进制7四位二进制译为“37八位二进制8四位二进制译为“38“八位二进制9/四位二进制译为39八位二进制其他译为“20八位二进制主要代码:完整代码请见源程序signa1dis:std_logic_vector7downto0;beginprocessdatabeginifcarry=/1thendisdis二00110000;0/译为30when0001H=dis=00110001;1/译为31whcn0010=disdisdis=00
19、110100;4译为34when0101H=dis=00110101;一-5译为35when0110=disdis二00110111when1000=dis二00111000;8/译为38H-6译为36一-7译为 u37when1001=disdis=00100000;其他译为20endcase;endif;endprocess;dataoutATWp.3JAATWp.3JLCD_R5LCD_RWLCD_RWLCD_ENLCD_ENLCD_DatT0LCD_DatT0beginraml(0)=YIMA_DATAB;译码数据信号 8,秒表小时局部十位rami(1)=YIMA_DATA7;译码数据
20、信号 7,秒表小时局部个位 rami(2)=x3a;显示冒号:ram1(3)=YIMA_DATA6;译码数据信号 6,秒表分钟局部十位rami(4)=YIMA_DATA5-译码数据信号5,秒表分钟局部个位rami(5)=x3a;一一显示冒号:ram1(6)=YIMA_DATA4译码数据信号4,秒表秒钟局部十位rami(7)=YIMA_D.TA3;译码数据信号 3,秒表秒钟局部个位rami(8)=x2c;-显示小数点.rami(9)=YIMA_DATA2;-译码数据信号 2,秒表十分秒位rami(i0)=YIMA_DAAi;-译码数据信号 i,秒表百分秒位process(LCD_CIk)vari
21、ableent:integerrange0to37;beginifLCD_ClkeventandLCD_Clk=ithenifcnt=37thencnt:=0;e1secnt:=cnt+l;endif;endif;LCD_EE;LCD_RS=O;1cd_data=00111000;一-0 x38when1=LCD_RS=(T;lcd_data=0000110.;0 x0Cwhen2=LCD_FS0,;lcd_dataLCD_RS=0;led_dataLCD_S=1lcd_data=10100000;-空格when6=LCD_RS=1;lcd_data=10100000H;一空格when7=LC
22、D_RS=1;1cd_dataLCD_RS二/1;lcd_data=ram1(0);秒表小时局部十位whcn9=LCD_RS=1;lcd_data=ram1(1);-秒表小时局部个位when10=LCD_RS=1;lcd_data=ram1(2);冒号:when11=LCD_RS=1;1cd_dataLCD_RS-1;lcd_data=ram1(4);-秒表分钟局部个位when13=LCD_RS1;lcd_dataLCD_RSLCD_RS=1;lcd_dataLCD_RB=/1;lcd_dataLCD_RS=1;lcd_dataLCD_RS=1;1cd_data=ram1(10);一秒表百分秒
23、位when19=LCD_RS=1;lcd_data=10100000;-空格when20=LCD_RS=1;lcd_dataLCD_RS二/0;lcd_data=11000000;设定显示的位置在 40H+8cH,when22=LCD_RS二/1;lcd_dataLCD_RSLCD_RSLCD_FS=1,;lcd_dataLCD_RS=V;1cd_dataLCD_RSe;lcd_dataLCD_RS=1;lcd_data=10100000;-空格when29=LCD_RS=1;lcd_data=10100000;-空格when30=LCD_FSLCD_RS二/1;lcd_data二101000
24、00;空格when32=LCD_RS=1;1cd_dataLCD_RS=1;lcd_dataLCD_RS=/;1cd_data=10100000;空格when35=LCD_RS=1;lcd_data=10100000;一空格when36=LCD_RSLCD_RS=1;1cd_data=10100000;一一空格endcase;endprocess;BTN0 启动/停止开关消抖模块 xiaodou:输入端口:clk?:instd_logic;keyen:instd_1ogic;输出端口:en_out:outstd_logic;生成符号:一设计思路:采用计数型防抖当 key_en 第一次为/1时,
25、en_out 延迟一段时间后变为1,并且 en_out就此保持在高电平1;直到 key_en 第二次为1时,en_out 延迟一段时间后变为/0.?)0:process(c1k)?beginifclk/eventandclk=/1then?ifkey_en=1then?ifcnt=3thenen=/1;?e1secnt=cnt+1;en=0/;?endif;e1secnt=0;en=0;0ndif;endif;endprocessp0;?)1:process(en)begin?feneventanden=1thenen_tmp=noten_tmp;?endif;0n_out=en_tmp;en
26、dprocessp1;BTN1 复位开关消抖模块 fuweixiaodou:输入端口:clk:instd_1ogic;fuwei:instd_logic;输出端口:fuweiout:outstd_logic;主要代码:(完整代码请见源程序Signalcnt:integerr?signalen,entmp:sbegin)ange0to3;-采用计数型防抖td_logic;采用计数型防抖当 fuwei 为/1时,fuwei_out为1,然后 fuwei_out 又重新回到低电平0.主要代码:(完整代码请见源程序)signalcnt:integerrange0t型防抖signalen:std_log
27、ic;beginprocess(c1k)beginifclkeventandcIk=Vtheniffuwei=1/thenifcnt=3thenen=17;elsecnt二cnt+1;en=0;endif;elsecnt=0;en=O;endif;endif;endprocess;fuwei_out=en;三、仿真波形及波形分析500000 分频模块 fpq输入端口:clkinstd_logic;生成符号:设计思路:延迟一段时间后变o3;-采用计数输出端口:clkout:outstd_1ogic;仿真波形:217m21-23-450 一1当 reset 信号为/1/时此时按下了复位开关 BTN
28、1,执行清零操作,状态变为 0;当 en 信号为1时此时第一次按下了启动/停止开关 BTN0,状态保持不变,停止计数;当 en 信号为0时此时第二次按下了启动/停止开关 BTN0,又继续计数10 进制计数器模块 cnt10:输入端口:reset,en,clk:INSTD_LOGIC;输出端口:carry:OUTSTD_LOGIC;q:OUTSTD_LOGIC_VECTQ(3DOWNTO0);波形分析:MatarMatarTimtTimtH HATATVSSnsVSSnsjj jPeiriierjPeiriierSBliiHSSBliiHS明SuitSuitrivi|rivi|IfIf而u u小
29、p p1 1J J户5.125.12ULULIQ.IQ. 4 4UAUAi i员舅 3 里l l优如2626.鼻口E E. .工口.厘 g 访.E4E4一LL血 3|tf-0tf-0dl,i.TTJUUUUVUnr二TJLTLUJ匚FJUUtr廿IrJULIITUUUULTJJV.i.ini-i::_i_1:-上_i_“rtsfttrtsfttiL;Ji-rUJ;上上国 q.q.运电:必与_EE:xryxryjr|i|rn波形分析:正常计数状态变化16 进制表示是:01234-5-6-7-89-0当 reset 信号为1/时此时按下了复位开关 BTN1,执行清零操作,状态变为 0;当 en 信
30、号为/1时此时第一次按下了启动/停止开关 BTN0,状态保持不变,停止计数;当 en 信号为0时此时第二次按下了启动/停止开关 BTN0,又继续计数.24进制计数器模块 cnt24:输入端口611,Reset,clk:inSTD_LOGIC;输出端口 carry:outSTD_LOGIC;qa:outSTD_LOGIC_VECTOl(3DOWNTQ0;qb:outSTD_LOGIC_VECTOR(3DOWNO0);波形分析:qa 状态变化16 进制表示是:0-123-45678-9-0qb 状态变化16 进制表示是:0-1201,当 reset 信号为/1时此时按下了复位开关BTN1,且当 q
31、a 为 916 进制表示时,qb 的状态发生改变.执行清零操作,状态变为 0;当 en 信号为/1时此时第一次按下了启动/停止开关BTN.,状态保持不变,停止计数;当en信号为0时此时第二次按下了启动/停止开关 BTN0,又继续计数.译码模块 yima:输入端口:carry:inSTD_LOGIC;data:instd_1ogic_vector3downto0;输出端口:dataout:outstd_1ogic_vector7downto0;仿真波形:波形分析:当 carry 信号为/1/时,dataout 输出为 FF二进制表示为11111111;当 carry 信号为/0时,正常译码:da
32、ta 为0二进制表示为“0000时,data.ut输出为30二进制表示为“00110000;data 为1二进制表示为0001时,dataout 输出为“31二进制表小为“00110001;data 为2二进制表示为0010时,dataout输出为32二进制表示为“00110010;data 为3二进制表示为0011时,dataout 输出为33二进制表小为“00110011;data 为4二进制表示为0100时,dataout输出为34二进制表示为“00110100;data 为5二进制表示为0101时,dataout 输出为35二进制表示为00110101;data 为6二进制表示为011
33、0时,dataout 输出为36二进制表小为“00110110;data 为7二进制表示为0111时,dataout 输出为37二进制表小为“00110111;data 为/8二进制表示为“1000H时,dataout 输出为38二进制表示为“00111000;data为9二进制表示为1001时,dataout 输出为39data 为其他数据时,dataout输出为20二进制表示为“00100000;LCD1602 显示模块LCD1602:输入端口:二进制表示为“0011100LCD_Clk:instd_logic;一一一状态比时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间c
34、arry:inSTD_LGGIC;-前级计数局部输出的进位信号YIMA_DATA:instd_logic_vector(7downto0);-译码数据信号1YIMA_DATA2:instd_logic_vector(7downto0);译码数据信号 2YIMA_DATA3:instd_logic_vector(7downto0);一译码数据信号 3YIMA_DATA4:instd_logic_vector(7downto0);译码数据信号 4YIMA_DAT5:instd_1ogic_vector(7downto0);译码数据信号 5YIMA_DATA6:instd_logic_vector(
35、7downto0);-译码数据信号 6YIMA_DATA7instd_logic_vector(7downto0);-译码数据信号7YIMA_DATA8:instd_logic_vector(7downto0);译码数据信号 8输出端口:LCD_RS:outstd_logic;-存放器选择信号LCD.RWoutstd_1ogic;-液晶读写信号LCD_EN:outstd_logic;-液晶时钟信号LCD_Data:outstd_logic_vector(7downto0);-液晶数据信号仿真波形:接下列图接下列图波形分析:仿真时假设YIMA_DATAh00110001;代表数字 1YIMA_D
36、ATA2=00110001;代表数字1YIMA_DATA3=00110001;代表数字 1YIMA_DATA4=00110001;代表数字 1YIMA_DATk5=00110001;代表数字1YIMA_MTA6=00110001;代表数字 1YIMA_DATA=00110001;-代表数字 1YIMA_DATA8=00110001;代表数字 1那么对于输出信号 LCD_Data:在初始化局部(LCD_RS=0)依次为380C、01、u06“、“80;在开始显示时(LCD_RSA.、A0显小空格BTN0 启动/停止开关消抖模块 x1aodou:小|flnrteiflnrtei4 4. .J JE
37、EInsInsIhlrtvatIhlrtvat4 4兆tmShafi.tmShafi.ellell44It44It输入端口:clk:instd_logic;仁IkL?L?三*A A梅鼠MwtcrTrnrB.nr-MwtcrTrnrB.nr-K K| |FdrierFdrierfifi5454 1 1CIMCIMT TSt-srSt-sr0 0psEnd|100.0rrpsEnd|100.0rr修口TT田P PM M P PQ Q4141不;SOSO9j9jE E1111必,C.4141m m.副函V9EV9E制m mT3T3日才喀才设昌I IJ JdidiH Ht tBCBC1|_|_LJ_L
38、_l_U_L_l_-电补UM:,|,|, ,1|1|:|L,J,J,31 12 2力._口.1 1e eln波形分析:当 fuwei 为1时,fuwei_out 延迟一段时间后变为1,然后 fuwei_out又重新回到低电平0o四、源程序完整代码、含注释顶层文件LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGND.ALL;ENTITYclockISPORTreset1:INSTD_LOGICBTN1start:INSTD_LOGIC;-BTN0clk1:INSTD_LOGIC;系统时钟50MHzLCDRS1:outst
39、d_logic;存放器选择信号LCDRW1:outstd_1ogic;-液晶读写信号LCD_EN1:outstd_logic;液晶时钟信号LCD_Data1:outstdlogic_vector7downto0;-液晶数据信号endclock;ARCHITECTSREstrucOFclockISCCMPONENTfpq-分频器模块fpq500000分频平ortc1k:instd1ogic;clkout:outstd_1ogic?;endCOMPONENT;COMPONENTfq1一分频器模块fpq150000分频port7c1k:instd_logic;c1kout:outstd_logic;
40、endCOMPONENTCOMP)NENTxiaodou-BTN0启动/停止开关消抖模块xiaodouport(c1k:instd_1ogic;keyen:instd_1ogic;更n_out:outstdlogic2;endCOMPONENT;COMPOENTfuweixiaodouBTN1复位开关消抖模块fuweixiaodouport(更lk:instd_logic;fuwei:instd1ogic;fuwei_out:outstd_logic);endCOMPONENTCOMPOENTcnt10-10进制计数器模块cnt10PORT(reset,en,clk:INSTD)LOGIC;c
41、arry:OUTSTDLOGIC;q:OUTSTD_LOGICVECT)R(3DOWNTO0);ENDCOMPSENTCOMPKENTcnt66进制计数器模块cnt6PORT(reset,en,clk:INSTLOGIC;carry:OUTSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(3DOWNTQ);ENDCOMPDNENT;COMP)NENTcnt24PORT(-24进制计数器模块cnt24inSTD_LOGC;outSTD_LOGIC;outSTD_LOGIC_VECTOR(3DOWNTO0);en,Reset,cIk:carrya:qb:outSTD_LOGIC_VE
42、CTOR(3DOWNTO0);ENDCOMP3ENT;CCMPONENTyima-译码模块yimaPort(carry:inSTD_LOGC;data:instdlogicvector(3downto0);dataout:outstd_logic_vector(7downto0);endCOMPONENTCOMPONENTCD1602LCD1602显示模块LCD1602Port(LCD_Clk:instd_logic;-状态机时钟信号-同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间carry:inSTDLOGIC;-前级计数局部输出的进位信号LCD_RS:outstd_logic;-存
43、放器选择信号LCD_RV:outstd_logic;-液晶读写信号LCD_EN:outstd_logic;-液晶时钟信号LCD_Data:outstd_logicvector(7downto0);-液晶数据信号std_logicvector(7downto0);-译码数据信号1,秒表百分秒位YIMA_DATA2:instd_1ogicvector(7downto0);-译码数据信号2,秒表十分秒位YIMA_DATA3:instd_logicvector(7downto0);-译码数据信号3,秒表秒钟局部个位instd_logicvector(7downto0);YIMA_DATAI:inYIM
44、ADATA4:-一译码数据信号4,秒表秒钟局部十位YIMA.DATA5:instd_logicvector(7downto0);-译码数据信号5,秒表分钟局部个位丫IMADATA6:instd_1ogic_vector(7downto0);- 一译码数据信号6,秒表分钟局部十位-IMA_DATA7:instd_logic_vector(7downto0);-译码数据信号7,秒表小时局部个位-IMA_DTA8:instd_logic_vector(7downto0);- -译码数据信号8,秒表小时局部十位endCOMPONENT;SIGNALclk2:STD_LOGIC;-系统时钟(50MHZ)
45、经过500000分频后得到的时钟(100HZ)SIGNALc1k3:STDLOGIC;系统时钟(50MHZ)经过50000分频后得到的时钟(1KHZ)SIGNALcarry1:STD_LOGIC;-秒表百分秒局部10进制计数器的输出进位信号SIGNALcarry2:STD_LOGIC;-秒表十分秒局部10进制计数器的输出进位信号SIGNALcarry3:STD_LOGIC;-秒表秒钟局部个位10进制计数器的输出进位信号SIGNALcarry4:STD_LOGC;-秒表秒钟局部十位6进制计数器的输出进位信号SIGNALcarry5:STD_LOGIC;-秒表分钟局部个位10进制计数器的输出进位信
46、号-一秒表分钟局部十位6进制计数器的输出进位信号-秒表小时局部24进制计数器的输出进位信号-启动/停止开关消抖后信号STD_LOGIC_VECT6(3DOWNTO0);-秒表小时局部24进制计数器的低位输出信号SIGNALcarry6:STD_LOGIC;SIGNALcarry7:STDLOGIC;SIGNALen1:STDLOGIC;SIGNALen2:STDLOGIC;-复位开关消抖后信号SIGNALq1:STD_LOGICVECTOR(3DOANTOO);-秒表百分秒局部10进制计数器的输出信号SIGNALq2:STD_LOGICVECTOR(3DOWND0);秒表十分秒局部10进制计数
47、器的输出信号SIGNALq3:STD_LOGICVECTOR(3DOWNTO0)-秒表秒钟局部个位10进制计数器的输出信号SIGNALq4:STD_LOGICVECTOR(3DOWNO0);一-秒表秒钟局部十位6进制计数器的输出信号SIGNALq5:STD_LOGIC_VECTOR3DOWNTO0);-秒表分钟局部个位10进制计数器的输出信号SIGNALq6:STD_LOGIC_VECTOR(3DOW!TO0);秒表分钟局部十位6进制计数器的输出信号SIGNALqa1:ST、LOGICVECTOR(3DOWN?O0);-秒表小时局部24进制计数器的高位输出信号SIGNAL丫IMDATA_1:s
48、td_logicvector(7downto0);-译码数据信号1,秒表百分秒位SIGNALYIMA_DATA_2:stdlogic_vector(7downto0);译码数据信号2,秒表十分秒位SIGNALYIMA_DATA_3:std_logic_vector(7downto0);-译码数据信号3,秒表秒钟局部个位SIGNALYIMA_ATL4:std_1ogicvector(7downto0);译码数据信号4,秒表秒钟局部十位SIGNALYIMA_DATL5:std1ogicvector(7downto0);-译码数据信号5,秒表分钟局部个位SIGNALYIMA_DATA6:stdlog
49、ic_vector(7downto0);-译码数据信号6,秒表分钟局部十位SIGNALYIMADATA_7:std_1ogic_vector(7downto0);译码数据信号7,秒表小时局部个位SIGNALYIMLDATA_8:stdlogic_vector(7downto0);-译码数据信号8,秒表小时局部十位BEGINu1:fpqPORTMAP(clk=clk1,clkout=clk2);u2:cnt10PORTMAP(reset=en_2,clk=clk2,en=en1,carry=carry1,q=q1);u3:cnt10PORTMAP(reset=en_2,clk=carry1,en
50、=en_1,carry=carry2,q=q2);u4:ent10PoRTMAP(reset=en_2,clk=carry2,en=en_1,carry=carry3,q=q3);SIGNALqb1:u5:cnt6PORTMAP(reset=en_2,clk=carry3,en=en_1,carry=carry4,q=q4);u6:cnt10PORTMAP(reset=en_2,clk=carry4,en=en1,carry=carry5,q=q5);u7:ent6PORTMAP(reset=en_2,clk=carry5,en=en1,carry=carry6,q=q6);u8:cnt24P
51、ORTMAPReset=en2,c1k=carry6,en=en1,qa=qa1,qb=qb1,carry=carry7);u9:yimaPORTMAP(data=q1,dataout=YIMA_DATA_1,carry=(carry7andcarry6);u10:yimaPORTMAP(data=q2,dataout=YIMA_DATA_2,carry=(carry7andcarry6);u11:yimaPORTMAP(data=q3,dataout=YIMA_DATA_3,carry=(carry7andcarry6);u12:yimaPORTMAP(data=q4,dataout=YIM
52、A_DATA_4,carry=(carry7andcarry6);u13:yimaPORTMAP(data=q5,dataout=YIMA_DATL5,carry=(carry7andcarry6);u14:yimaPORTMAP(data=q6,dataout=YIMA_DATA_6,carry=(carry7andcarry6);u15:yimaPORTMAP(data=qa1,dataout=YIMA_DTA_7,carry=(carry7andcarry6);u16:yimaPORTMAP(data=qb1,dataout=YIMA_DATA8,carry=(carry7andcarr
53、y6);u17:LCD1602PORTMAP(YIMA_DATA1=YIMADATA_1,YIMADATA2=YIMADATA2,YIMA_DATA3=YIMA_DATA_3,YIMA_DATA4=YIMA_DATA_4,YIMA_DATA5=YIMA_DATA_5,YIMA_DATA6=YIMA_DATA_6,YIMA_DATA7=YIMDATA_7,YIMA_DATA8=YIMA_DATA_8,LCDClk=clk3,一注意LCD显示的时钟频率和计数模块的频率不一样,LCD显示的频率需要快一些LCD_Data=LCDDatal,carry=(carry7andcarry6),LCDRS=L
54、CDRS1,LCD_RW/=LCD_RW1,LCD_EN=LCD_EN1);ul8:fpqlPORTMAP(clk=clk1,clkout=clk3);u19:xiaodouPORTMAP(clk=clk2,keyen=start,en_out=en_1);u20:fuweixiaodouPORTMAP(c1k=c1k2,fuwei=reset1,fuwei_out=en_2);ENDstruc;500000 分频模块 fpqlibraryieee;useieee.std_logic_1164.a1l;useieee.std1ogicunsigned.all;entityfpqisport(e
55、lk:instd_logic;-系统时钟clkout:outstd_1ogic系统时钟500000分频后的时钟?;endfpq;architecturestrucoffpqissigna1clktmpstd_logic;signaltmp:integerrange0to249999;begin?process(c1k)?begin?fclkeventandclk=z1then?iftmp=249999then2mp=0;clktmp=notclktmp;?elsetmp=tmp+1;23ndif;23ndif;endprocess;clkout=clktmp;endstruc;50000 分频
56、模块fpq1libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfpq1isport(elk:instd_logic;系统时钟clkout:outstdlogic一系统时钟-500000分频50000分频后的时钟endfpql;signalc1ktmp:std_logicbeginprocess(c1k)beginifc1keventandc1k=z1then?iftmp=24999then2mp=0;clktmp=notclktmp;else?tmp=tmp+1;?jndif;endif;en
57、dprocess;c1kout=c1ktmp;endstruc;10 进制计数器模块 cnt10LIBRARYIEEE;USEIEEEoSTD_LOGC_1164.ALL;USEIEEE.STD_LOGICUNSIGNERALL;ENTITYcnt10ISPORT(reset,en,clk:INSTD_LOGIC;复位、使能、时钟信号carry:OUTSTD_LOGIC;-进位信号signa1tmp:integerrange0to24999;-50000分频architecturestrucoffpq1isq:OUTSTDLOGICVECTOR3DOWNTO0);-输出信号ENDCNT10;A
58、RCHITECTURErtlOFcnt10ISSIGNALqs:STD_LOGICVECTOR(3DOWNTO0);SIGNALca:STD_LOGIC;BEGINPROCESS(clk,reset,en)BEGINIF(reset=,V)THEN-采用异步复位qs=0000;ELSIF(clk/EVENTANDclk=V)THENIF(en=0/)THEN?F(qs=1001)THEN计数到9qs=0000;-qs下一状态为0ca=1;-进位信号变为1ELSEqs=qs+1;qs自增ca=O;-进位信号保持在0ENDIF;ENDIF;ENDPROCESS;PROCES(ca)BEGINq=q
59、s;carry=ca;ENDPROCESS;ENDrtl;6 进制计数器模块 cnt6IIBRARYIEEE;USEIEEEoST、LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNEdALL;ENTITYcnt6ISPORT(reset,en,clk:INSTD_LOGIC;-复位、使能、时钟信号carry:OUTSTD_LOGIC;进位信号q:OUTSTD_LO(3C_VECTOR(3DOWND0);输出信号ENDCNT6;ARCHITECTURErtlOFcnt6ISSIGNALqs:STD_LOGIJVECTOR(3DOVNTO0);SIGNALca:STD
60、_LOGIC;BEGINPROCESS(clk)beginIF(reset=/1)THENqs=0000;采用异步复位ELSIF(clkEVENTANDc1k=z1)THENIF(en=0)THENIF(qs=0101)THEN计数到5qs=0000;-qs下一状态为0ca=1;-一进位信号变为 TELSEqs=qs+1;qs自增ca=o;-进位信号保持在0ENDIF;ENDIF;ENDIF;ENDPROCES;PROCES(ca,en)BEGINq=qs;carry=ca;ENDPROCESS;ENDrtl;24 进制计数器模块 cnt24II BRARYieee;USEieee.std_l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程劳务大清包合同
- 户外广告牌施工合同
- 影视制作公司与演员拍摄合同
- 乳胶漆工程施工合同
- 武汉纺织大学外经贸学院《西方舞蹈史与名作赏析》2023-2024学年第二学期期末试卷
- 西安科技大学高新学院《Vue应用开发》2023-2024学年第二学期期末试卷
- 烟台黄金职业学院《交通运输安全》2023-2024学年第二学期期末试卷
- 浙大宁波理工学院《汇编语言A》2023-2024学年第二学期期末试卷
- 鄂州职业大学《计算机辅助设计二维》2023-2024学年第二学期期末试卷
- 沪科版 信息技术 必修 3.2.2 信息作品的制作 教学设计
- 2025年02月黄石市残联专门协会公开招聘工作人员5人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2024-2025学年第二学期开学典礼-开学典礼校长致辞
- GB/T 15561-2024数字指示轨道衡
- 网络保险风险评估-洞察分析
- 呼吸机湿化的护理
- 2025-2030年中国旅居康养行业全国市场开拓战略制定与实施研究报告
- 2024“五史”全文课件
- 《汽车专业英语》2024年课程标准(含课程思政设计)
- 部编四年级道德与法治下册全册教案(含反思)
- 中国传统二十四节气立春节气介绍PPT模板课件
- 最新AS9120B质量手册
评论
0/150
提交评论