- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电路课程设计电子钟
设计目的:
让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;
进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;
初步掌握使用EDA(电子设计自动化)工具设计数字逻辑电路的方法,包括设计输入、编译、软件仿真、下载和硬件仿真等全过程;
经过查资料、选方案、设计电路、撰写设计报告、使学生得到一次较全面的工程实践训练,通过理论联系实际,提高和培养创新能力,为后续课程的学习,毕业设计,毕业后的工作打下基础。
二、设计要求要求和及采用的器件和软件
1、电子钟具有下述功能:
⑴、实验台上的六个数码管显示时、分、秒;
⑵、能使电子钟复位(清零);
⑶、能启动和停止电子钟运行;
⑷、在电子钟停止运行状态下,能够修改时、分、秒的值;
⑸、具有报时功能,整点时喇叭鸣叫。
2、所用实验箱及芯片:ispLSI1016E-80LJ44芯片,TDS系列数字电路实验系统
3、设计所用软件:ispEXPERT编程软件
三、设计思想及说明
根据实验要求,设计出两个模60计数器和一个模24计数器分别接用来显示分、秒、时的阴极数码管,秒的模60计数器的进位信号作为分的计数器的时钟信号,分的进位信号作为小时计数器的时钟信号,同时将其作为喇叭的控制信号。另外,由于TDS实验系统可以提供脉冲的最小频率是100KHZ,因此为了为电子钟提供1HZ的脉冲,必须对实验箱提供的脉冲进行分频。
四、源程序
MODULE ss
TITLE ss
inputs
clk,aclr,stop,aset1,aset2,aset3 pin;
outputs
s7..s0 pin istype REG;
m7..m0 pin istype REG;
h7..h0 pin istype REG;
alarm pin;
sets
HF=[h3..h0];HS=[h7..h4];MF=[m3..m0];MS=[m7..m4];SF=[s3..s0];SS=[s7..s4];
Temporary Variables
Q3..Q0,P3..P0,W3..W0,U3..U0,O3..O0,cl0 node istype REG;
V,bcounter node istype REG;
clk1,clk2,malarm,salarm node;
Q=[Q3..Q0];
P=[P3..P0];
O=[O3..O0];
W=[W3..W0];
U=[U3..U0];
EQUATIONS
Q.clk=clk;
Q:=(Q+1)!(Q==9); //100KHZ
P.clk=(Q==9);
P:=(P+1)!(P==9);
cl0.clk=(P==9);
cl0=!cl0;
O.clk=(P==9);
O:=(O+1)!(O==9);
W.clk=(O==9);
W:=(W+1)!(W==9);
U.clk=(W==9);
U:=(U+1)!(U==4);
V.clk=(U==4);
V:=!V;
bcounter.clk=(U==4);
bcounter:=stop;
SF.clk=(!V!bcounter)#(!aset1bcounter)#(!V!aset1);
SF:=(SF+1)!(SF==9);
SS.clk=!(SF==9);
SS:=(SS+1)!(SS==5);
clk1=(SS==5)(SF==9);
MF.clk=(!clk1!bcounter)#(!aset2bcounter)#(!clk1!aset2);
MF:=(MF+1)!(MF==9);
MS.clk=!(MF==9);
MS:=(MS+1)!(MS==5);
clk2=(MS==5)(MF==9);
HF.clk=(!clk2!bcounter)#(!aset3bcounter)#(!clk2!aset3);
HF:=(HF+1)!(HF==9);
HS.clk=!(HF==9);
HS:=(HS+1)!(HS==2);
HF.aclr=aclr#(HS==2)(HF==4); //24进制
HS.aclr=aclr#(HS==2)(HF==4);
SF.aclr=aclr; //复位
SS.aclr=aclr;
MF.aclr=aclr;
MS.aclr=aclr;
salarm=(SS==0)(SF==0); //报时
malarm=(MF==0)(MS==0)
文档评论(0)