第一篇:数字时钟课程设计指导书(全)(写写帮整理)
数字电路课程设计
课程设计的目的是通过特定系统的设计、安装、测试和整理资料等环节,初步掌握工程设计方法,提高科学实验能力。
课程设计要求:
1、初步掌握一般数字电路分析和设计的基本方法。包括:根据设计任务和指标,初选电路;通过调查研究、设计计算、确定电路方案;画出逻辑工程图,选测元件、安装电路、独立安排实验,调试改进;分析实验结果,写出设计总结报告。
2、培养一定的自学能力和独立分析问题、解决问题的能力。包括:学会自己分析解决问题的方法,对设计中遇到的问题,能通过独立思考、查阅工具书、参考文献,寻找答案;掌握一些电路调试的一般规律,实验中出现的一般故障,能通过观察、判断、试验、再判断的基本方法解决;能对实验结果独立的进行分析,评价。
3、掌握电路安装、布线、焊接等基本技能。
4、巩固常用电子仪器的正确使用方法。
5、通过严格的科学训练和工程设计实践,逐步树立严肃认真、一丝不苟、事实求是的科学态度;并培养学生在实际工作中具有一定的生产观点、经济观点和全局观点。
课题 数字时钟
钟表的自动化给人们带来了极大的方便,而且大大的扩展了钟表原先的报时功能。诸如定时自动报警,按时自动打铃,时间程序自动控制,定时广播,定时起动路灯,定时开关烘箱,通断动力设备,甚至各种家用电器的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
一、技术指标与要求
1、时钟计时周期为1h。
2、有分、秒二级校时功能。
3、级内计数同步、级间计数异步。
4、加电 启动后,时钟处于计时状态。
二、原理框图
数字时钟原理框图如图所示。(注:本次课程设计只作分秒的显示和校正)
14时译码8时计数器CK14分译码8分计数器CK门控Ⅱ14秒译码8秒计数器CK门控Ⅲ门控I工作/校时控制秒信号发生器数字时钟原理图
三、设计方法提示
1、时、分、秒分别由2个BCD计数器(LS160)组成。学习掌握LS160计数器的功能及使用条件。
2、为兼顾计时、级间进位和校时,可选用与非门LS00形成级间门控Ⅰ、Ⅱ、Ⅲ。
3、为控制计时和分秒对时(校对),可由三位循环移位计数器来完成。加电时即置寄存器的初值为“Q3Q2Q1”=“001”,此时Q1=1,Q2=0,Q3=0,由Q1=1打开计数门,Q2=0封闭校分门,Q3=0封闭校秒门,时钟处于计时状态;当需对时是,在移位脉冲作用下,使寄存器状态为Q3Q2Q1=“010”或“001”,从而实现封闭计时门,打开“校秒”或“校分”门。
4、秒信号产生器,产生周期为1秒信号,可由压控振荡器555定时器产生1Hz方波信号。
四、设计任务要求
1、按照技术指标与要求,设计工程化逻辑电路图。
2、在布线实验板上进行电路连接安装。
3、在实验室进行实验调试,其结果请指导教师教员验收。
五、实验仪器与器材
+5V电压源
1路 万用表
1个 工具
1套 布线板
1块 555时基
555
1个 单稳态触发器
74LS124(或74LS123)1个 BCD计数器
LS160
4个 双D触发器
LS74
2个 四与非门
LS00
3个 段译码/驱动器
LS47
4个 共阳极7段LED 共阳
4个 按扭
微型
2个 电阻 470(28),10K(3),51K(2),56K(2),100K(3)
电容
104(4),1u(钽)(2),4.7u(1),10u(1)集成电路插座
8P(1)14P(5)16P(9)40P(1)
六、写出课程设计报告
主要内容有:技术指标、设计原理、设计方法、调试步骤、故障分析,讨论实验结果、心得体会,以及逻辑工程图。
七、说明:
1、已制的线路板部分线已布好;
2、板上用白色线条及两端有焊盘的地方表示需要连线,应在放集成电路插座之前连好;
3、要求所有的集成电路使用插座;
4、U5(74LS00)的连线空出,需要同学们在读懂原理图后添加连线。
5、5V电源的正负极,板上用‘+’和‘—’表示,不要接反。
6、元器件和线路板每两人一套,由同学们自己管理;工具用完后不得带走。丢失工具/元器件/线路板的将酌情降低成绩。附录一:器件资料
74LS123 可重触发双单稳态触发器
74LS47 七段译码/驱动器
共阳极七段LED显示器
74LS47真值表
74LS160 同步十进制计数器(异步清零)时序图
74LS74 双D触发器
四二输入与非门
555时基
同步十进制计数器
4-7译码器
双D触发器
VCC83833833382121mfammammmmmogboofgboofaoobocccccgbfaccgcedcDISPLAYdp7SEGedcdpedcdpedcpppdppabcdefgdabcdefgdabcdefgdabcdefgd************ X7470 X7470 X*********11111911abcdefgU1abcdefgU2abcdefgU3abcdefgU4S4774LS4774LS47O74LS4774LOOOBBBBRIRIRIRI/BT/BT/BT/IIIIBTBRLABCDBRLABCDBRLABCDBRLABCD***5371264537126VCC*********112119O***4QQQQOQQQQOQQQQOCCCCQQQQU8U9U5BU11U5DKR74LS160AU5AKR74LS160AU5CU10KR74LS160A74LS00KR74LS160A74LS00DLLEE123474LS00DLLEE123474LS00DLLEE1234DLLEE1234LCCPTPPPPLCCPTPPPPLCCPTPPPPLCCPTPPPP6192***703456892***0345611111VCCVCC4810129R3C8U6C11U6D6U7C851KR3174LS00TC10474LS0091310R2974LS00EC256KSVE3TRB15U7BRDISCHG710KCLRRC COM+C1431u(TAN)OUTU15R3U6B74LS001455551K1TRACTC574LS006122U7D11543U7A5D6S12A1374LS0074LS001CVOLNTTHOLD2+C5R37U174LS123GTRIG1C6SW-PB13VCCQQ4VCCC3104100K10410144VCCR32R301056k9210K11TRBQPRE125D25QPREDCLRRC COM7+C2U13BDQPREU13AU14AR33C4R34874LS7411674LS74QCLK3674LS74QCLK3100K+10K9CLKTRACTC61u(TAN)QCLRCLRCLR4.7uU12BC7R38S274LS123311SW-PB121104100KQQ5
560uVCC83833833382121mfammammmmmogboofgboofaoobocccccgbfaccgcedcDISPLAY7SEGeececdpdcpdpdpdpdpdppabcdefgdabcdefgdabcdefgdabcdefgd************ X7470 X7470 X7470 X*********11111911abcdefgU1abcdefgU2abcdefgU3abcdefgU474LS4774LS4774LS47O74LS47OOOBBBBRIRIRIRI/BT/IIBT/BT/IIBTBRLABCDBRLABCDBRLABCDBRLABCD***5371264537126VCC*********2119O1234O1234O123454O1234CQQQQCQQQQCQQQQCQQQQU5DU5AU5C74LS00KRU874LS160A74LS00KRU974LS160A74LS00KRU1074LS160AU5B74LS00KRU1174LS160ADLLEE1234DLLEE1234DLLEE1234DLLEE1234LCCPTPPPPLCCPTPPPPLCCPTPPPPLCCPTPPPP192***703456892***703456VCC11111R351KVCC4810129U15C8U6C11U6DU7C8TC104U12A74LS12374LS00974LS00131074LS00ECR292R31SVE3TRB56KR76DISCHGR310KCLR4122351KRC COM15C1U6B6U7D113U7BU7AOUT+574LS001374LS0074LS0074LS001511u(TAN)CVOLDTTHOLD6R37S1TRACTC14NTRIG2+C5C6SW-PBQ13G545551104100KVCCQ4C310410144VCCU12B74LS123R3010R329125210K11TRBQPRED25QPREDCLR56KQPREU13BDC2U13AU14A74LS74R33C4R347+874LS74100KRC COMQCLK11674LS74QCLK36QCLK3+10K1u(TAN)CLRCLRCLR4.7u9C7R38S2TRACTC6100KSW-PBQ53111104Q126
560u
第二篇:数字时钟课程设计
数字电子技术课程设计报告
一、设计目的
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.二、设计要求
(1)设计指标
① 时间以12小时为一个周期; ② 显示时、分、秒;
③ 具有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; ④ 计时过程具有报时功能,当时间到达整点前10秒进行蜂鸣报时; ⑤ 为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。(2)设计要求
① 画出电路原理图(或仿真电路图); ② 元器件及参数选择; ③ 电路仿真与调试;
④ PCB文件生成与打印输出。
(3)制作要求
自行装配和调试,并能发现问题和解决问题。
(4)编写设计报告
写出设计与制作的全过程,附上有关资料和图纸,有心得体会。
三、原理框图
1.数字钟的构成
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。
0 / 12
(a)数字钟组成框图
2.晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用TTL门电路构成;另一类是通过CMOS非门构成的电路,本次设计采用了后一种。如图(b)所示,由CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
(b)CMOS 晶体振荡器(仿真电路)/ 12 3.时间记数电路
一般采用10进制计数器如74HC290、74HC390等来实现时间计数单元的计数功能。本次设计中选择74HC390。由其内部逻辑框图可知,其为双2-5-10异步计数器,并每一计数器均有一个异步清零端(高电平有效)。
秒个位计数单元为10进制计数器,无需进制转换,只需将QA与CPB(下降沿有效)相连即可。CPA(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CPA相连。
秒十位计数单元为6进制计数器,需要进制转换。将10进制计数器转换为6进制计数器的电路连接方法如图 2.4所示,其中Q2可作为向上的进位信号与分个位的计数单元的CPA相连。
十进制-六进制转换电路
分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,只不过分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CPA相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CPA相连。
时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为12进制计数器,不是10的整数倍,因此需将个位和十位计数单元合并为一个整体才能进行12进制转换。利用1片74HC390实现12进制计数功能的电路如图(d)所示。
(d)十二进制电路
另外,图(d)所示电路中,尚余-2进制计数单元,正好可作为分频器2HZ输出信号转化为1HZ信号之用。
4.译码驱动及显示单元电路
选择CD4511作为显示译码电路;选择LED数码管作为显示单元电路。由CD4511把输进来的二进制信号翻译成十进制数字,再由数码管显示出来。这里的LED数码管是采用共阴的方法连接的。
计数器实现了对时间的累计并以8421BCD码的形式输送到CD4511芯片,再由451/ 12 芯片把BCD码转变为十进制数码送到数码管中显示出来。
5.校时电路
数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。即为用COMS与或非门实现的时或分校时电路,In1端与低位的进位信号相连;In2端与校正信号相连,校正信号可直接取自分频器产生的1HZ或2HZ(不可太高或太低)信号;输出端则与分或时个位计时输入端相连。当开关打向下时,因为校正信号和0相与的输出为0,而开关的另一端接高电平,正常输入信号可以顺利通过与或门,故校时电路处于正常计时状态;当开关打向上时,情况正好与上述相反,这时校时电路处于校时状态。
实际使用时,因为电路开关存在抖动问题,所以一般会接一个RS触发器构成开关消抖动电路,所以整个较时电路就如图(f)。
(f)带有消抖电路的校正电路
6.整点报时电路
电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。
当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的QC和QA、个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。
报时电路可选74HC30来构成。74HC30为8输入与非门。/ 12 说明:当时间在59分50秒到59分59秒期间时 分十位、分个 位和秒十位均保持不变,分别为5,9和5;因此,可以将分计数器十位的Qc和QA,个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。IO1分计数器十位的Qc和QAIO2U11VCCIO35VVCCX182345V分计数器个位的QD和QAIO456114V_0.5WIO512秒计数器十位的QC和QAIO674HC30D数字钟设计-整点报时电路部分
四、元器件
1.四连面包板1块(编号A45)2.镊子1把 3.剪刀1把
4.共阴八段数码管6个 5.网络线2米/人 6.CD4511集成块6块 7.CD4060集成块1块 8.74HC390集成块3块 9.74HC51集成块1块 10.74HC00集成块4块 11.74HC30集成块1块 12.10MΩ电阻5个 13.500Ω电阻14个 14.30p电容2个
15.32.768k时钟晶体1个 16.蜂鸣器10个(每班)1)芯片连接图
1)74HC00D
2)CD4511 / 12
3)74HC390D
4)74HC51D
2.面包板的介绍
面包板一块总共由五部分组成,一竖四横,面包板本身就是一种免焊电板。面包板的样式是:
/ 12 面包板的注意事项:
1. 面包板旁一般附有香蕉插座,用来输入电压、信号及接地。2. 上图中连着的黑线表示插孔是相通的。
3. 拉线时,尽量将线紧贴面包板,把线成直角,避免交叉,也不要跨越元件。4. 面包板使用久后,有时插孔间连接铜线会发生脱落现象,此时要将此排插孔做记号。并不再使用。
五、各功能块电路图
数字钟从原理上讲是一种典型的数字电路,可以由许多中小规模集成电路组成,所以可以分成许多独立的电路。
(一)六进制电路
由74HC390、7400、数码管与4511组成,电路如图一。
U1A3123U2A12Com74HC00D74HC00DU5SEVEN_SEG_COM_KABCDEFGU3AV1 32Hz 5V141INA1INB21CLR31QA1QB1QC1QD5677126U413DADBDCDD5OAOBOCODOE1211109151474HC390D43~ELOF~BI~LTOGVCC5V4511BD将十进制计数器转换为六进制的连接方法
(二)十进制电路
由74HC390、7400、数码管与4511组成,电路如图二。/ 12 U4A3126U4B4574HC00D74HC00DComU3SEVEN_SEG_COM_KU1AV1 60Hz 5V141INA1INB21CLR31QA1QB1QC1QD5677126U213DADBDCDD5OAOBOCODOE12111091514ABCDEFGVCC5V74HC390D43~ELOF~BIOG~LT4511BD十进制接法测试仿真电路
(三)六十进制电路
由两个数码管、两4511、一个74HC390与一个7400芯片组成,电路如图三。
(四)双六十进制电路
由2个六十进制连接而成,把分个位的输入信号与秒十位的Qc相连,使其产生进位,电路图如图四。/ 12
ComComSEVEN_SEG_COM_KU1B6453U1A12U4SEVEN_SEG_COM_KU7U11BABCDEFG64513DADBDCDD5OAOBOCODOE~ELOF~BI~LTOG1211109151421CLR141INA1INB3U10A12ABCDEFG74HC00D74HC00DU3B15122INA2INB142CLR132QA2QB2QC2QD11109U2712674HC00D74HC00DU8A31QA1QB1QC1QD5677126U913DADBDCDD5OAOBOCODOE12111091514VCC5V74HC390D43U1C891011U1D12134511BD74HC390DComVCCU643~ELOF~BI~LTOG5VSEVEN_SEG_COM_K74HC00D74HC00DABCDEFG84511BDComU15C91011U16DSEVEN_SEG_COM_K1213U14U3A131INA1INB21CLR1QA1QB1QC1QD5677126U513DADBDCDD5OAOBOCODOE1211109151474HC00D74HC00DU12B15122INA2INB142CLR132QA2QB2QC2QD111097126U13DADBDCDD5OAOBOCODOEABCDEFG***14V1 100kHz 5V474HC390D43~ELOF~BI~LTOGVCC74HC390D5V43~ELOF~BI~LTOG4511BD4511BD
(五)时间计数电路
由1个十二进制电路、2个六十进制电路组成,因上面已有一个双六十电路,只要把它与十二进制电路相连即可,详细电路见图五。
ComComComComComComU1SEVEN_SEG_COM_KU2SEVEN_SEG_COM_KU4SEVEN_SEG_COM_KU3SEVEN_SEG_COM_KU5SEVEN_SEG_COM_KU6SEVEN_SEG_COM_KABCDEFGABCDEFGABCDEFGVCCVCCABCDEFGABCDEFGABCDEFG5V***45VVCCVCC***49***45V***3121110***01514145V9VCCOG995V99OAOBODOAOBODOAOBODOEOEOCOCOCOFOFOEOGOAOBODOAOBODOAOBODOEOEOCOCOCOFOFOEOGOG~LT~LT~EL~EL~BI~BI~ELDADCDDDADCDDDADC~LT~LT~LTDBDB~EL~EL~EL~BI~BIDADCDDDADCDDDADCDBDB3DBDD~BI5V73DBDD4511BD54511BD******12643U23CU25A74HC00D***8U21A74HC00D13111038U20C74HC00D3U19A74HC00D131110974HC00D9356356772QB1QD2QD2QD1QB1QC2QB2QC2QB2QC1QB1QA2QA2QA1QA1QC1QD2QA2QC2QD61QB2INA1CLR2CLR2CLR1INA1INB2INA2INB2INA2INB1INA1INA1INB74HC00D161CLR74HC390D6151INB74HC00D111CLRU26B74HC390D74HC390N1174HC390N74HC390DU20B1574HC00D1262INB74HC00D74HC00D***242V1 1000Hz 5V时,分,秒计时电路图
(六)校正电路
由74CH51D、74HC00D与电阻组成,校正电路有分校正和时校正两部分,电路如图六。/ 12
142CLRU13AU16B1QA1QC1QDU24DU22BU14AU17BU20DU15AU18B74HC390N43~BI~LT4511BDOGU7U8OFU10VCC4511BDOGU9U114511BDOFU124511BD1010921921254***254IO1VCC正常输入信号5V校正信号IO2R1U2C9108小时校正电路J110Mohm74HC00D注意:分校时时,不会进位到小时。U11111213910U2DKey = A12R210MohmIO313U2A8123时计数器IO574HC00D1123674HC00D正常输入信号校正信号IO4R3U3A10Mohm12U2B456分计数器IO64574HC00D74HC51D3J274HC00DKey = B分钟校正电路分校正时锁定小时信号输入R410MohmU3B456图中采用基本RS触发器构成开关消抖动电路,其中与非门选用74HC00;对J1和J2,因为校正信号与0相与为0,而开关的另一端接高电平,正常输入信号可以顺利通过与或门,故校时电路处于正常计时状态,当开关打向上时,情况正好与上述相反,这时电路处于校时状态。74HC00D数字钟设计-校时电路部分
(七)晶体振荡电路
由晶体与2个30pF电容、1个4060、一个10兆的电阻组成,芯片3脚输出2Hz的方波信号,电路如图七。
(八)整点报时电路
由74HC30D和蜂鸣器组成,当时间在59:50到59:59时,蜂鸣报时,电路如图八。/ 12 说明:当时间在59分50秒到59分59秒期间时 分十位、分个 位和秒十位均保持不变,分别为5,9和5;因此,可以将分计数器十位的Qc和QA,个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。IO1分计数器十位的Qc和QAIO2U11VCCIO35VVCCX182345V分计数器个位的QD和QAIO456114V_0.5WIO512秒计数器十位的QC和QAIO674HC30D数字钟设计-整点报时电路部分
六、总接线元件布局简图
整个数字钟由时间计数电路、晶体振荡电路、校正电路、整点报时电路组成。
其中以校正电路代替时间计数电路中的时、分、秒之间的进位,当校时电路处于正常输入信号时,时间计数电路正常计时,但当分校正时,其不会产生向时进位,而分与时的校位是分开的,而校正电路也是一个独立的电路。
电路的信号输入由晶振电路产生,并输入各电路。简图如图九。
七、芯片连接总图
因仿真与实际元件上的差异,所以在原有的简图的基础上,又按实际布局画了这张按实际芯片布局的接线图,如图十。
八、总结
1. 实验过程中遇到的问题及解决方法
① 面包板测试
测试面包板各触点是否接通。
② 七段显示器与七段译码器的测量 / 12 把显示器与CD4511相连,第一次接时,数码管完全没有显示数字,检查后发现是数码管未接地而造成的,接地后发现还是无法正确显示数字,用万用表检测后,发现是因芯片引脚有些接触不良而造成的,所以确认芯片是否接触良好是非常重要的一件事。
③ 时间计数电路的连接与测试
六进制、十进制都没有什么大的问题,只是芯片引脚的老问题,只要重新插过芯片就可以解决了。但在六十进制时,按图接线后发现,显示器上的数字总是100进制的,而不是六十进制,检测后发现无论是线路的连通还是芯片的接触都没有问题。最后,在重对连线时发现是线路接错引脚造成的,改过之后,显示就正常了。
④ 校正电路
因上面程因引脚接错而造成错误,所以校正电路是完全按照仿真图所连的,在测试时,开始进行时校时时,没有出现问题,但当进行到分校时时,发现计数电路的秒电路开始乱跳出错。因此,电路一定是有地方出错了,在反复对照后,发现是因为在接入校正电路时忘了把秒十位和分个位之间的连线拿掉而造成的,因此,在接线时一定要注意把不要的多余的线拿掉。
2. 设计体会
通过这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。
3. 对设计的建议
我希望老师在我们动手制作之前应先告诉我们一些关于所做电路的资料、原理,以及如何检测电路的方法,还有关于检测芯片的方法。这样会有助于我们进一步的进入状况,完成设计 / 12
第三篇:数字时钟课程设计论文
目录
1.序论„„„„„„„„„„„„„„„„„„„„„„„„„3 2.本论„„„„„„„„„„„„„„„„„„„„„„„„„4 ——设计说明„„„„„„„„„„„„„„„„„„„„4 ——电路图„„„„„„„„„„„„„„„„„„„„„5 ——原理图„„„„„„„„„„„„„„„„„„„„„5 ——振荡器„„„„„„„„„„„„„„„„„„„„„6 ——分频器„„„„„„„„„„„„„„„„„„„„„6 ——计数器„„„„„„„„„„„„„„„„„„„„„7 ——译码器„„„„„„„„„„„„„„„„„„„„„10 ——校时„„„„„„„„„„„„„„„„„„„„„„11 ——闹钟„„„„„„„„„„„„„„„„„„„„„„12 ——心得„„„„„„„„„„„„„„„„„„„„„„12 3.特别感谢„„„„„„„„„„„„„„„„„„„„„„„14 序论
一、本课程设计的地位和作用
数字电子技术课程设计是电子技术基础教学中的一个实践环节,它使学生自己通过设计和搭建一个实用电子产品雏形,巩固和加深在数字电子技术课程中的理论基础和实验中的基本技能,训练电子产品制作时的动手能力。通过该课程设计,设计出符合任务要求的电路,掌握通用电子电路的一般设计方法和步骤,训练并提高学生在文献检索、资料利用、方案比较和元器件选择等方面的综合能力,同时为毕业设计和毕业以后从事电子技术方面的科研和开发打下一定的基础。
二、课程设计的目的和要求
1.能够较全面地巩固和应用“数字电子技术”课程中所学的基本理论和基本方法,并初步掌握小型数字系统设计的基本方法。
2.能合理、灵活地应用各种标准集成电路(SSI、MSI、LSI等)器件实现规定的数字系统。
3.培养独立思考、独立准备资料、独立设计规定功能的数字系统的能力。4.培养独立进行实验,包括电路布局、安装、调试和排除故障的能力。5.培养书写综合设计实验报告的能力。
三、课程设计的基本要求
根据设计任务,从选择设计方案开始,进行电路设计;选择合适的器件,画出设计电路图;通过安装、调试,直至实现任务要求的全部功能。对电路要求布局合理,走线清晰,工作可靠,经验收合格后,写出完整的课程设计报告
本论
数字钟电路是一块独立构成的时钟集成电路专用芯片。它集成了计数器,比较器,振荡器,译码器和驱动等电路,能直接驱动显示时,分,秒,具有定时,报警等多种功能,被广泛应用于自动化控制,智能化仪表等领域。
一.设计说明
该系统工作原理:
振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准。再经过分频器输出标准秒脉冲。秒计数器计满60后向分计数器进位。分计数计满60后向时计数器进位。小时计数器按照“24翻1”规律计数。计数器的输出经译码器送给显示器。计时器出现误差时可以用校正时电路进行“时校正”,“分校正”,“秒校正”。该系统还有定时闹钟功能,该扩展电路必须在主体电路运行正常的情况下才能进行扩展。
总体设计如图所示:
总体原理图如下
1.石英晶体振荡器
晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。石英晶体振荡器的特点是频率准确 , 电路结构简单 , 频率易调整。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。
2.分频器
由于产生的脉冲信号并不是我们所需要的1hz信号,所以需要经过分频电路将脉冲信号分成1HZ的信号。所以我设计了如下的分频电路:
如图,因为实验室的信号为8Mh,所以我用一个七个90的设计图设计了这样的分频电路,分别是一个八分频器和六个十分频器,这样,就能实现输出一个1HZ的信号了。3.计数器
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器.因为电子钟由秒、分、时组成。分别为 60 进制和24 进制。采用一片90接成 60 进制 ,74LS90的第一组 4位二进制接成秒的个位 , 另一组接成秒的十位 ,“分”也为60 进制 ,“时”为 24 进制。这两种进制的次序和二进制完全相同 , 只是模数不是 2 的整幂。当秒脉冲输入时,电路状态按二进制自然序列依次递增1,QA、QB、QC、QD输出为0000、0001、0010、0011、0100、0101、0110、0111、1000、1001,当输出为1010也就是10采用反馈置零法清零 , 先按二进制计数器串联起来构成计数器 , 当计数状态达到所需的脉冲模值后 , 经过电路译码、反馈、产生复位脉冲将计数器清零 , 然后重新开始进行下一个循环。
秒位设计图如下
分位同秒
分位的设计基本同秒位相同,最关键的是星期的设计,如下如
而在星期的设计上则不能再使用90的集成块,我选择了161的集成块,使用了集成块的置数功能,这样集成块在显示完“7”之后就会直接被置数为“1”,就能实现星期的显示功能了,设计如图:
这样就能实现从秒到星期的全部计数功能了。4.译码和显示
译码是把给定的代码进行翻译 , 将时、分、秒数器输出的四位二进制代码翻译为相应的十进制 , 并通过LED 显示器显示 , 通常LED 显示器与译码器是配套使用的。我们选用的七段译码驱动器74LS47或者是CD4511)和数码管(LED)是共阳接法。LED显示的3、8 管脚接一起 , 限流电阻为 200Ω和 + 5V接。实际使用时 a、b、c、d、e、f、g 各段都应接一个限流电阻 , 在图中略画出来。译码显示电如下图所示
5.校时电路
前面的电路设计的很传统很简单,现在我具体说一下我们设计的校时电路,首先电路图如下;
校时功能说明,正常情况,01控制器打到1,则,高位进位正常按照低位的进位信号进位不受印象。
校时,01控制器打到0,则,高位进位只按照校时脉冲变化,不受低位进位信号限制,这样就能使高位变化到我们想要校对的时间的,这是再将01控制器打到1,恢复正常。
6.闹钟电路
闹钟电路主要就是讲所要报时的时间的信号输入到大与非门中,再统一输入到蜂鸣器上,所要注意的是,小时的十位,因为十位在显示“1”和“2”时都会输出“1”信号,所以这里要格外注意。二.心得体会
本次课程设计好似我目前收获最大的一次课程设计。我是工科专业的学生,设计是我们将来必需的技能,这次课程设计恰恰给我们提供了一个应用自己所学知识的机会,通过这次对数字电子钟的设计作,让我了解了电路设计的基本步骤,也让我了解了关于数字钟的原理与设计理念。可以说,本次课程设计有苦也有甜。设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半。因此我们应该在设计前做好充分你的准备,像查找详细的资料,为我们设计的成功打下坚实的基础。制作过程是一个考验人耐心的过程,不能有丝毫的急躁,马虎,对电路的调试要一步一步来,又要求我们有一个比较正确的调试方法,这要求我们灵活处理,要熟练地掌握课本上的知识,这样才能对试验中出现的问题进行分析解决。整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路细节上的设计,如CP脉冲的供给通断等。在多种方案的选择中,我们仔细比较分析其原理以及可行的原因,最后还是在老师的耐心指导下,是整个电路设计完成。在设计过程中,我深刻的体会到要反复实践,其过程相当麻烦,有时花很长时间设计出来的电路还需要重做,那时心中未免有些灰心,有时还特别想放弃,此时更加需要静下心来,查找原因。总体说来,这次课程设计我受益匪浅,在摸索该如何设计电路使之实现所需要的功能。课设培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦。
第四篇:EDA课程设计——数字时钟
Hefei University
EDA课程综述
论文题目: EDA课程综述
专 业: 09通信(2)班
姓 名: 唐吉祥
学 号: 0905072035 指导老师: 查长军
前
言
随着基于PLD的EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益提高。
作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。使自己熟练使用QuartusII环境来进行设计,掌握VHDL语言的设计方法。要注重理论与实践之间的不同,培养自己的实践能力!
目录
一、课程设计任务及要求............................................................................................3
1.1实验目的..........................................................................................................3 1.2功能设计..........................................................................................................3
二、整体设计思想........................................................................................................3
2.1性能指标及功能设计......................................................................................3 2.2总体方框图......................................................................................................4
三、详细设计................................................................................................................4
3.1数字钟的基本工作原理:..............................................................................4
3.1.1时基T 产生电路..................................................................................4 3.1.2调时、调分信号的产生......................................................................4 3.1.3计数显示电路.......................................................................................5 3.2设计思路..........................................................................................................5 3.3设计步骤..........................................................................................................6
3.3.1工程建立及存盘...................................................................................6 3.3.2工程项目的编译...................................................................................7 3.3.3目标芯片的选择...................................................................................7 3.3.4时序仿真...............................................................................................8 3.3.5引脚锁定.............................................................................................10 3.3.6硬件测试.............................................................................................11 3.3.7实验结果.............................................................................................11
四、设计总结..............................................................................................................12
五、附录......................................................................................................................12
5.1 VHDL源程序..................................................................................................12 5.2配置符号图....................................................................................................17
一、课程设计任务及要求
1.1实验目的
1)掌握VHDL语言的基本运用
2)掌握QuartusII的简单操作并会使用EDA实验箱 3)掌握一个基本EDA课程设计的操作
1.2功能设计
1)有时、分、秒计数显示功能,小时为24进制,分钟和秒为60进制以24小时循环计时
2)设置复位、清零等功能
3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间 4)时钟计数显示时有LED灯显示
二、整体设计思想
2.1性能指标及功能设计
1)时、分、秒计时器
时计时器为一个24进制计数器,分、秒计时器均为60进制计数器。当秒计时器接受到一个秒脉冲时,秒计数器开始从1计数到60,此时秒显示器将显示00、01、02、...、59、00;每当秒计数器数到00时,就会产生一个脉冲输出送至分计时器,此时分计数器数值在原有基础上加1,其显示器将显示00、01、02、...、59、00;每当分计数器数到00时,就会产生一个脉冲输出送至时计时器,此时时计数器数值在原有基础上加1,其显示器将显示00、01、02、...、23、00。即当数字钟运行到23点59分59秒时,当秒计时器在接受一个秒脉冲,数字钟将自动显示00点00分00秒。2)校时电路
当开关拨至校时档时,电子钟秒计时工作,通过时、分校时开关分别对时、分进行校对,开关每按1次,与开关对应的时或分计数器加1,当调至需要的时与分时,拨动reset开关,电子钟从设置的时间开始往后计时。2.2总体方框图
三、详细设计
3.1数字钟的基本工作原理:
3.1.1时基T 产生电路
数字钟以其显示时间的直观性、走时准确性作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。
由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz的、非常稳定的计数时钟脉冲。
3.1.2调时、调分信号的产生
由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数 器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。调节小时的时间也一样的实现。
3.1.3计数显示电路
由计数部分、数据选择器、译码器组成,是时钟的关键部分。
1、计数部分:由两个60进制计数器和一个24 进制计数器组成,其中60 进制计数器可用6 进制计数器和10 进制计数器构成;24 进制的小时计数同样可用6 进制计数器和10 进制计数器得到:当计数器计数到24 时,“2”和“4”同时进行清零,则可实现24 进制计数。
2、数据选择器:84 输入14 输出的多路数据选择器,因为本实验用到了8个数码管(有两个用来产生隔离符号‘—’)。
3、译码器:七段译码器。译码器必须能译出‘—’,由实验二中译码器真值表可得:字母F 的8421BCD 码为“1111”,译码后为“1000111”,现在如果只译出‘—’,即字母F的中间一横,则译码后应为“0000001”,这样,在数码管上显示的就为‘—’。
3.2设计思路
根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。
1)时钟计数:
首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。sethour可以调整时钟的小时部分, setmin可以调整分钟,步进为1。
由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。
用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT(6 DOWNTO 0)上的信号来点亮指定的LED七段显示数码管。
2)时间设置:
手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。3)清零功能: reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。
3.3设计步骤
3.3.1工程建立及存盘
1.打开 QuartusⅡ,单击“File”菜单,选择 File→New Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。
2.单击“File”菜单,选择New,弹出小对话框,双击“VHDL File“,即选中了文本编辑方式。在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择File→Save As,即出现“Save As”对话框。选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。
3.建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定。即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“Finish”按钮。3.3.2工程项目的编译
单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译完成后的屏幕如图所示:
3.3.3目标芯片的选择
选择菜单 Assignments 选项的下拉菜单中选择器件 Device „,如图所示: 在弹出的对话框中的 Family(器件序列栏)对应的序列名,EP1C3 对应的是 Cyclone 系列。在 Available Devices里选择 EP1C3T144-C8(有时需要把 Show advanced devices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致。
在图中,单击“Device and Pin Options„”,在弹出的“Device and Pin Options„”窗口中,单击“Unused Pins”标签。选择“As output driving an unspecified signal ”(由于学习机的“FPGA”具有很多功能,为了避免使用引脚对其它器件造成影响,保证本系统可靠工作,将未使用引脚设定为输出不定状态)后,单击确定后,无误后单击“OK”。
3.3.4时序仿真
建立波形文件:选择 File→New,在New窗中选中“Other File”标签。在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕。在出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder„„”。在屏幕中的 Filter 中选择 Pins,单击“List”。而后,单击“>>”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。然后单击屏幕右上脚的 “OK”。在出现的小屏幕上单击“OK”。
设定仿真时间宽度。选择 Edit → End time„选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。
波形文件存盘。选择File→Save as 选项,直接存盘即可。运行仿真器。在菜单中选择项,直到出现,仿真结束。
未曾编辑的仿真波形
仿真波形 3.3.5引脚锁定
将设计编程下载进选定的目标器件中,如EPF10K10,作进一步的硬件测试,将设计的所有输入输出引脚分别与目标器件的EPF10K10的部分引脚相接,操作如下:
1.选择 Assignments → Assignments Editor ,即进入 Assignments Editor编辑器。在Category 栏选择 Pin,或直接单击右上侧的 Pin 按钮。
2.双击 TO 栏的《new》,在出现的的下拉栏中选择对应的端口信号名(如 D[0]);然后双击对应的栏的《new》,在出现的下拉栏中选择对应的端口信号名的期间引脚号。
3.最后存储这些引脚锁定信息后,必须再编译(启动)一次,才能将引脚锁定信息编译进编程下载文件中。此后就可以准备将编译好的 SOF 文件下载到试验系统的FPGA中去了。
引脚锁定 3.3.6硬件测试
1.首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源,选择模式7。
2.打开编辑窗和配置文件。选择,弹出一个编辑窗。在Mode栏中选择JTAG,并在选项下的小方框打勾。注意核对下载文件路径与文件名。如果文件没有出现或者出错,单击左Add file侧按钮,手动选择配置文件 clock.sof。
3.最后单击下载标符Start,即进入对目标器件 FPGA 的配置下载操作。当 Progress 显示100%,以及在底部的处理栏中出现 Configuration Succeeded 时,表示编程成功,如图所示。注意,如果必要时,可再次单击 Start,直至编程成功。
4.下载完成后,通过硬件测试进一步确定设计是否达到所有的技术指标,如未达到,可逐步检查,哪部分出现问题。如果是代码出现问题,须修改代码;若是时序波形图有问题,须重新设置。
3.3.7实验结果
实验箱使用模式7,键8为复位按键,键8为1时正常工作。键4设置小时,键7设置分钟。
下载成功后,按下键8,及使六个LED复位清零,显示数秒的自动计时,可以通过4键设置小时数,7键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后从新计时。
四、设计总结
通过这次课程设计,我进一步加深了对电子设计自动化的了解。并进一步熟练了对QuartusII软件的操作。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。通过与同学探讨和请教老师,终于把问题都解决了,并加深了对数字时钟原理和设计思路的了解。
同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
在此,也感谢康老师的悉心指导,使自己学到了很多东西!
五、附录
5.1 VHDL源程序
Alert模块
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert IS
PORT(clk:IN STD_LOGIC;
dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
speak:OUT STD_LOGIC;
lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END alert;ARCHITECTURE fun OF alert IS
SIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN speaker:PROCESS(clk)
BEGIN
--speak<=count1(1);
IF(clk'event and clk='1')THEN
IF(dain=”0000000“)THEN
speak<=count1(1);
IF(count1>=”10“)THEN
count1<=”00“;--count1为三进制加法计数器
ELSE
count1<=count1+1;--speak<=count1(0);
END IF;
END IF;
END IF;
END PROCESS speaker;lamper:PROCESS(clk)
BEGIN
IF(rising_edge(clk))THEN
IF(count<=”10“)THEN
IF(count=”00“)THEN
lamp<=”001“;--循环点亮三只灯
ELSIF(count=”01“)THEN
lamp<=”010“;
ELSIF(count=”10“)THEN
lamp<=”100“;
END IF;
count<=count+1;
ELSE
count<=”00“;
END IF;
END IF;
END PROCESS lamper;END fun;Hour模块
LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour IS
PORT(clk,reset:IN STD_LOGIC;
daout:out STD_LOGIC_VECTOR(5 DOWNTO 0));END ENTITY hour;ARCHITECTURE fun OF hour IS SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
daout<=count;
PROCESS(clk,reset)
BEGIN
IF(reset='0')THEN count<=”000000“;--若reset=0,则异步清零
ELSIF(clk'event and clk='1')THEN
--否则,若clk上升沿到
IF(count(3 DOWNTO 0)=”1001“)THEN--若个位计时恰好到”1001“即9
IF(count<16#23#)THEN
--23进制
count<=count+7;
--若到23D则
else
count<=”000000“;
--复0
END IF;
ELSIF(count<16#23#)THEN
--若未到23D,则count进1
count<=count+1;
ELSE
--否则清零
count<=”000000“;
END IF;
--END IF(count(3 DOWNTO 0)=”1001“)
END IF;
--END IF(reset='0')
END PROCESS;END fun;Minute模块
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS
PORT(clk,clk1,reset,sethour:IN STD_LOGIC;
enhour:OUT STD_LOGIC;
daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY minute;ARCHITECTURE fun OF minute IS SIGNAL count :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC;--enmin_1为59分时的进位信号 BEGIN
--enmin_2由clk调制后的手动调时脉冲信号串
daout<=count;
enhour_2<=(sethour and clk1);--sethour为手动调时控制信号,高电平有效
enhour<=(enhour_1 or enhour_2);PROCESS(clk,reset,sethour)
BEGIN
IF(reset='0')THEN--若reset为0,则异步清零
count<=”0000000“;
ELSIF(clk'event and clk='1')THEN--否则,若clk上升沿到
IF(count(3 DOWNTO 0)=”1001“)THEN--若个位计时恰好到”1001“即9
IF(count <16#60#)THEN--又若count小于16#60#,即60
IF(count=”1011001“)THEN--又若已到59D
enhour_1<='1';--则置进位为1
count<=”0000000“;--count复0
ELSE
count<=count+7;--若count未到59D,则加7,即作”加6校正“
END IF;--使前面的16#60#的个位转变为8421BCD的容量
ELSE
count<=”0000000“;--count复0(有此句,则对无效状态电路可自启动)
END IF;
--END IF(count<16#60#)
ELSIF(count <16#60#)THEN
count<=count+1;--若count<16#60#则count加1
enhour_1<='0' after 100 ns;--没有发生进位
ELSE
count<=”0000000“;--否则,若count不小于16#60# count复0
END IF;--END IF(count(3 DOWNTO 0)=”1001“)
END IF;--END IF(reset='0')
END process;END fun;Second模块
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second IS PORT(clk,reset,setmin:STD_LOGIC;
enmin:OUT STD_LOGIC;
daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY second;ARCHITECTURE fun OF second IS SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC;
--enmin_1为59秒时的进位信号
BEGIN
--enmin_2由clk调制后的手动调分脉冲信号串
daout<=count;
enmin_2<=(setmin and clk);--setmin为手动调分控制信号,高电平有效
enmin<=(enmin_1 or enmin_2);--enmin为向分进位信号
PROCESS(clk,reset,setmin)
BEGIN
IF(reset='0')THEN count<=”0000000“;--若reset为0,则异步清零
ELSIF(clk 'event and clk='1')then--否则,若clk上升沿到
IF(count(3 downto 0)=”1001“)then
--若个位计时恰好到”1001“即9
IF(count<16#60#)then--又若count小于16#60#,即60H IF(count=”1011001“)then
--又若已到59D
enmin_1<='1';count<=”0000000“;--则置进位为1及count复0
ELSE
--未到59D
count<=count+7;--则加7,而+7=+1+6,即作”加6校正“
END IF;
ELSE
--若count不小于16#60#(即count等于或大于16#60#)
count<=”0000000“;
--count复0
END IF;
--END IF(count<16#60#)
ELSIF(count<16#60#)then--若个位计数未到”1001“则转此句再判
count<=count+1;
--若count<16#60#则count加1
enmin_1<='0'after 100 ns;--没有发生进位
ELSE
--否则,若count不小于16#60#
count<=”0000000“;
--则count复0
END IF;
--END IF(count(3 DOWNTO 0)=”1001")
END IF;
--END IF(reset='0')END PROCESS;END fun;5.2配置符号图
第五篇:EDA课程设计 数字时钟
EDA
课程设计报告
一·设计任务
使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。
二·设计要求
除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。
a)具有时,分,秒,计数显示功能,以24小时循环计时; b)具有时间清零功能;
c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。
d)具有闹钟功能,能预设闹钟时间,精确到秒。
整个数字钟只设一个时钟输入端口,所需不同频率信
号在内部分频实现。(LED扫描频率设为50Hz以上)。
三·设计方案
设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。计时模块:秒模块,分模块,时模块。闹钟模块,显示模块,控制模块。
四·模块端口设置
1.分频模块
输入:clkin :
本实验输入为50MHz晶振
输出:clk : 为显示模块及始终调节提供1KHz脉冲
clkt: 为计数器模块提供1Hz脉冲
2.计时模块
m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提
供。counta,count1 是手动调节时间。Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。sec1,min1,hour1 输出的是计时的秒,分,时。
3.闹钟模块
原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的
频率由clk 提供。countb,count2 是手动调节闹钟时间。amin,ahour 是输出的闹钟的分钟和 小时 4.控制模块
m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是
闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的
暂停与开始。change 接按键,手动调整时,每按一次,计数器加1;如果长按,则连续快
速加1,用于快速调时和定时;turn 接按键,在手动校时功能时,选择是调整小时,还是分
钟;若长时间按住该键,还可使秒信号清零,用于精确调时。count1,count2,counta,countb 分
别是用来调节计时时间和闹钟时间。LD_min,LD_hour,指示当前调节的是分钟还是小时。5 显示模块
输入:clk--1kHz时钟,提供高频扫描
in0、in1…in5--分别为时、分、秒的个位与十位信号
输出:a、b…g--数码管输入
d0、d1…d5--数码管选通
五.程序。
分频模块
module fenpin(clk,clkt,clkin);input clkin;output clk,clkt;reg clk,clkt;reg [31:0]out,t1;
initial t1<=0;initial out<=0;initial clk<=0;initial clkt<=0;
always@(posedge clkin)begin
out<=out+1;
if(out==20000)
begin
out<=0;
clk<=!clk;
end end
always@(posedge clk)
begin
t1<=t1+1;
if(t1==1000)
begin
clkt<=1;
t1<=0;
end
else
clkt<=0;end endmodule
计时模块 module jishi(clk,clk_1Hz, turn,mode,count1,counta,sec1,min1,hour1,num3,num4);input clk,clkt,turn,num3,num4;input mode;input count1,counta;output [7:0] sec1,min1;output [7:0] hour1;wire clkt,ct1,cta,turn,num3,num4;reg [7:0] sec1=0,min1=0;reg [7:0] hour1=0;reg [1:0] m;wire count1,counta;reg minclk,hclk;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m<=0;else m<=m+1;end /////秒钟计时模块////// always @(posedge clkt)
if((sec1==8'h59)|turn&(!m))///////若长时间按住该键,还可使秒信号清零,用于精确调时。begin sec1<=0;//按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时
if(!(turn&(!m)))minclk<=1;///产生进位 end else begin if(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000;sec1[7:4]<=sec1[7:4]+1;end else sec1[3:0]<=sec1[3:0]+1;minclk<=0;end ////////分钟计时模?/// assign m_clk=minclk||count1;/////m_clk 产生进位或校正改变 assign ct1=(num3&clk)|(!num3&m_clk);//ct1 用于计时、校时中的分钟计数
always @(posedge ct1)begin if(min1==8'h59)begin min1<=0;hclk<=1;end else begin if(min1[3:0]==9)
begin min1[3:0]<=0;min1[7:4]<=min1[7:4]+1;end else min1[3:0]<=min1[3:0]+1;hclk<=0;end end ////////小时计时模块/// assign h_clk=hclk||counta;//////h_clk 产生进位或校正改变 assign cta=(num4&clk)|(!num4&h_clk);//cta 用于计时、校时中的小时计数
always @(posedge cta)if(hour1==8'h23)hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1;hour1[3:0]<=0;end else hour1[3:0]<=hour1[3:0]+1;Endmodule
闹钟模块
module alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert);input clk,num1,num2,count2,countb;output [7:0] amin;
output [7:0] ahour;output LD_alert;wire LD_alert;reg [7:0] amin=0;reg [7:0] ahour=0;assign ct2=(num1&clk)|(!num1&count2);//ct2 用于定时状态下调整分钟信号
assign LD_alert=(ahour|amin)?1:0;//指示是否进行了闹铃定时 always @(posedge ct2)if(amin==8'h59)amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0;amin[7:4]<=amin[7:4]+1;end else amin[3:0]<=amin[3:0]+1;assign ctb=(num2&clk)|(!num2&countb);////ctb 用于定时状态调节小时信号 always @(posedge ctb)if(ahour==8'h23)ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0;ahour[7:4]<=ahour[7:4]+1;end else ahour[3:0]<=ahour[3:0]+1;Endmodule 控制模块
module ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode);input change,mode,turn;output count1,count2,counta,countb,pause,LD_min,LD_hour;reg [1:0] m;reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0;wire mode,turn,change;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m<=0;else m<=m+1;end always @(posedge turn)//////////接按键,在手动校时功能时,选择是调整小时,还是分钟; begin fm<=~fm;end
always @(m or fm or change)begin case(m)2: begin ////////2:调节时间功能; if(fm)begin count1<=change;{LD_min,LD_hour}<=2;end//////指示当前调整的是分钟
Else
begin counta<=change;{LD_min,LD_hour}<=1;end/////指示当前调整的是小时 {count2,countb}<=0;end 1: begin //////1:调节闹钟功能 if(fm)begin count2<=change;{LD_min,LD_hour}<=2;end/////指示当前调整的是分 else begin countb<=change;{LD_min,LD_hour}<=1;end/////指示当前调整的是小时 {count1,counta}<=0;end
0: begin {count1,count2,counta,countb,LD_min,LD_hour}<=0;end ////0:计时功能 endcase end endmodule 显示模块
module show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode);input [7:0] min1,sec1,amin;input [7:0] hour1,ahour;input[3:0] MSH,MSL,SH,SL,MH,ML;input mode;output [7:0] min,sec;output [7:0] hour;reg [7:0] min,sec;reg [7:0] hour;reg [1:0] m;always @(posedge mode)//mode 信号控制系统在三种功能间转换
begin if(m==4)m<=0;else m<=m+1;end always @(min1 or sec1 or amin or hour1 or ahour or m)begin case(m)0: begin hour<=hour1;min<=min1;sec<=sec1;end 1: begin hour<=ahour;min<=amin;sec<=8'hzz;end 2: begin hour<=hour1;min<=min1;sec<=8'hzz;end 3: begin
hour<={SH,SL};
min<={MSH,MSL};sec<={MH,ML};end endcase end Endmodule
六
实验分析 七
实验总结
八、参考资料
1、《EDA技术实用教程》
2、实验箱使用说明;