1、 数电课程设计汇报 第一章 设计背景和要求 设计要求 第二章 系统概述 2.1设计思想和方案选择 2.2各功效块组成 2.3工作原理 第三章 单元电路设计和分析 3.1各单元电路选择 3.2设计及工作原理分析 第四章 电路组构和调试 4.1碰到关键问题 4.2现象统计及原因分析 4.3处理方法及效果 4.4功效测试方法,步骤,统计数据 第五章 结束语 5.1对设计题目标结论性意见及深入改善意向说明 5.2总结设计收获和体会 附图(电路总图及各个模块详图) 参考文件 第一章 设计背景和要求
2、 一.设计背景和要求 在公共场所,比如车站、码头,正确时间显得尤其关键,不然很有可能给外出办事即旅行袋来麻烦。数字钟是一个用数字电路技术实现时、分、秒计时装置,和机械式时钟相比含有更高正确度和直观性,且无机械装置,含有更长使用寿命,所以得到了广泛使用。数字钟是一个经典数字电路,包含了组合逻辑电路和时序电路。 设计一个简易数字钟,含有整点报时和校时功效。 (1)以四位LED数码管显示时、分,时为二十四进制。 (2)时、分显示数字之间以小数点间隔,小数点以1Hz频率、50%占空比亮、灭规律表示秒计时。 (3)整点报时采取蜂鸣器实现。每当整点前控制蜂鸣器以低频鸣响4次,响1s、停1s,直到
3、整点前一秒以高频响1s,整点时结束。 (4)才用两个按键分别控制“校时”或“校分”。按下校时键时,是显示值以0~23循环改变;按下“校分”键时,分显示值以0~59循环改变,但时显示值不能改变。 二.设计要求 电子技术是一门实践性很强课程,加强工程训练,尤其是技能培养,对于培养学生素质和能力含有十分关键作用。在电子信息类本科教学中,课程设计是一个关键实践步骤,它包含选择课题、电子电路设计、组装、调试和编写总结汇报等实践内容。经过此次简易数字钟设计,初步掌握电子线路设计、组装及调试方法。即依据设计要求,查阅文件资料,搜集、分析类似电路性能,并经过组装调试等实践活动,使电路达成性能要求。
4、 第二章 系统概述 2.1设计思想和方案选择 方案一 ,利用数字电路中学习六十进制和二十四进制计数器和三八译码器来实现数字中时间显示。 方案二,利用AT89S51单片机和74HC573八位锁存器和利用C语言对AT89S51进行编程来实现数字钟时间显示。 因为方案一经过数电学习我们全部比较熟悉,而方案二比较复杂,包含到比较多我们没学过内容,所以选择方案一来实施。 简易数字钟电路主体部分是三个计数器,秒、分计数器采取六十进制计数器,而时计数器采取二十四进制计数器,其中分、时计数器计数脉冲由 校正按键控制选择秒、分计数器溢出信号或校正10
5、Hz计数信号。计数器输出经过七段译码后显示,同时经过数值判定电路控制蜂鸣器报时。 2.2各功效块组成 分频模块,60进制计数器模块,24进制计数器模块,4位显示译码模块,正点报时电路模块,脉冲按键消抖动处理模块 2.3工作原理 一.简易数字钟基础工作原理是对1Hz标准频率(秒脉冲)进行计数。当秒脉冲个数累计满60后产生一个分计数脉冲,而分计数脉冲累计满60后产生一个时计数脉冲,电路关键由3个计数器组成,秒计数和分计数为六十进制,时计数为二十四进制。将FPGA开发装置上基按时钟OSC作为输入信号经过设计好分频器分成1Hz~10MHz8个10倍频脉冲信号。1Hz脉冲作为秒计数器输
6、入,这么实现了一个基础计时装置。经过4位显示译码模块,能够显示出时间。时间显示范围为00时00分~23时59分。 二.当需要调整时间时,可使用数字钟时校正和分校正进行调整,数字钟中时、分计数器全部有两个计数脉冲信号源,正常工作状态时分别为时脉冲和分脉冲;校正状态时全部为5~10Hz校正脉冲。这两种状态切换由脉冲按键控制选择器S端来实现。为了更正确设定时间,需要对脉冲按键进消抖动处理。 三.电路在整点前10 秒钟内开始控制蜂鸣器报时,可采取数字比较器或逻辑门判定分、秒计数器状态码值,以不一样频率脉冲控制蜂鸣器鸣响。 第三章 单元电路设计和分析 3.1各单元电路选择 (1)分频模块
7、设计一个8级倍率为10 分频电路,输出频率分别为1Hz 、10Hz、100 Hz、1k Hz、10k Hz、100k Hz、1 MHz、10MHz8组占空比为50%脉冲信号。 (2)60进制计数器模块,采取两片74161级联。 (3)24进制计数器模块,采取两片74161级联。 (4)4位显示译码模块,由分频器,计数器,数据选择器,七段显示译码,3-8线译码器组成一个4位LED数码显示动态扫描控制电路。其中4位计数器用74161,数据选择器用74153,七段显示译码器部分采取AHDL硬件描述语言设 计。 (5)正点报时电路模块,该模块采取和门和数据选择器74153组成 (6)脉冲按
8、键消抖动处理模块,采取D触发器实现消抖动,从而能够比较正确地设定时间。 3.2设计及工作原理分析 (1)分频模块 要输出8级频率差为10倍分频电路,可采取十进制计数器级联实现。集成十进制计数器类型很多,比较常见有74160、74162、74190、74192和7490等。这里采取7490来实现分频,7490是二-五-十进制加计数器,片上有一个二进制计数器和一个异步五进制计数器。 QA是二进制加计数器输出,QB、QC、QD是五进制加计数器输出,位序从告到低依次为D,C,B。该分频器一共用到7片7490,初始信号输入到第一片7490CLKB端口,QD输出端连接到CLKA端,作为输入,从QA
9、引出1MHzoutput端口,并引线到第二片7490CLKB端口,依这类推,直到第七片7490连接完成(如附图所表示)。每片7490相当于一个五进制计数器和一个二进制计数器级联实现了十进制加计数,从而实现分频。 分频模块图图所表示 分频模块内部结构图以下图所表示 (2)60进制计数器模块 采取两片74161级联,图,下面一片74161做成十进制,初始脉冲从CLK输入,ENT和ENP全部接高电平,而QD和QA用作为和非门两个输入,和非门输出分别连接到本身LDN端和上面一片74161CLK端;上面一片74161QC和QA端作为和非门两个输入经过输出连接到本身LDN,ENT 和ENP
10、接高电平。下面一片实现从0000到1001即0~9十个状态码计数,当下面一片为1001状态时,本身LDN为低电平,此时QD,QC,QB,QA状态恢复到0000,即从0开始从新计数,而上面一片74161CLK电平改变,上面一片74161开始计数为0001,实现从0000~到0101即0到5六个状态码计数,当上面一片状态为0101时,LDN为低电平,此时计数器为0000。这么子经过两片74161就实现了一个六十进制计数器。 下图为六十进制计数器模块示意图 由六十进制计数模块组成秒分计数以下图,下面那块六十进制技术模块表示为妙,上面那块六十进制计数模块表示为分。当妙计数模块状态为0101
11、1001时,向分计数模块进位, 即经过74153M输入C1,此时74153M输出接到分计数模块输入端 ,经过74153M作为选择器,实现进位控制。 (3)24进制计数器模块 采取两片74161级联,图,下面一片74161做成十进制,初始脉冲从CLK输入,ENT和ENP全部接高电平,而QD和QA用作为和非门两个输入分别连接到本身LDN端和上面一片74161CLK端;上面一片74161QB非门一个输入经过输出连接到本身LDN,ENT 和ENP接高电平,而且上面74161QB端和下面一块74161QC端经过和非门输出接到两片74161清零端CLRN。下面一片实现从0000到1001即0~9十
12、个状态码计数,当下面一片为1001状态时,本身LDN为低电平,此时QD,QC,QB,QA状态恢复到0000,即从0开始从新计数,而上面一片74161CLK电平改变,上面一片74161开始计数为0001,实现从0000~到0010即0到2三个状态码计数,当上面一片状态为0010即2时,下面一片状态为0100即4时,两块74161CLRN为低电平,此时两块74161状态全部为0000,即实现了23时过后显示00时。这么子经过两片74161就实现了一个24进制计数器。 下图为24进制计数器模块示意图 由二十四进制计数模块组成时计数模块图,下面那块六十进制技术模块表示为分,上面那块
13、24进制计数模块表示为时。当分计数模块状态为0101 1001时,向时计数模块进位, 即经过74153M输入C1,此时74153M输出接到时计数模块输入端 ,经过74153M作为选择器,实现进位控制。 二十四进制计数模块组成时计数模块 (4)4位显示译码模块 由分频器,计数器,数据选择器,七段显示译码,3-8线译码器组成一个4位LED数码显示动态扫描控制电路。 4位计数器由74161组成。以下图所表示 (74161组成4位计数器) 数据选择器采取两片74153 和一片74153M 两片74153实现连在一起实现对四个数字选
14、择,而一片74153M实现对小数点选择。 以下图所表示 (74153M组成数据选择器) (两片74153组成数据选择器) 七段显示译码器部分采取AHDL硬件描述语言设计,语句以下: subdesign ymq ( data_in[3..0] :input; a,b,c,d,e,f,g :output; ) begin table data_in[3..0] =>a,b,c,d,e,f,g; b"0000" =>1,1,1,1,1,1,0; b"0001" =>0,1,1,0,0,0,0;
15、 b"0010" =>1,1,0,1,1,0,1; b"0011" =>1,1,1,1,0,0,1; b"0100" =>0,1,1,0,0,1,1; b"0101" =>1,0,1,1,0,1,1; b"0110" =>0,0,1,1,1,1,1; b"0111" =>1,1,1,0,0,0,0; b"1000" =>1,1,1,1,1,1,1; b"1001" =>1,1,1,0,0,1,1; b"1010" =>1,1,1,0,1
16、1,1; b"1011" =>0,0,1,1,1,1,1; b"1100" =>1,0,0,0,1,1,0; b"1101" =>0,1,1,1,1,0,1; b"1110" =>1,0,0,1,1,1,1; b"1111" =>1,0,0,0,1,1,1; end table; end; 整个四位显示译码模块图所表示 (5)正点报时电路模块 该模块采取和门和数据选择器74153组成,以下图所表示。 7个输入端口和门控制A,当初间在59分51s,53s,55s,57s,59s
17、时候,A为高电平1,当秒个位数为9时,B为高电平1,A为1,B为0时,输出C1低频率信号,A为1,B为1时输出C3高频率信号,实现整点不一样频率报时电路。 (整点报时电路模块) (6)脉冲按键消抖动处理模块 采取D触发器实现消抖动,从而能够正确地设定时间。校正状态为5HZ校正脉冲,分频器输出10HZ经过T触发器得到5HZ校正脉冲。 图 (脉冲按键消抖动处理模块) (经过T触发器得到5HZ校正脉冲) 第四章 电路组构和调试 4.1碰到关键问题 (1)在用74161做二十四进制计
18、数器时,没有深入考虑,计划采取第一片六进制,第二片四进制级联而成,结果出现问题。 (2)时、分调整按键没有安装消抖动装置。 (3)在设置简易数字钟分时,时计数器也会进。 4.2现象统计及原因分析 (1)即使也能够计数实现二十四进制,不过不能和七段显示译码器配合使用,不能显示直观数值,这么给用户带来不便。 (2)在下载调试时候,我要进行时分调整,不过有时按一下子脉冲键会进两个数值,这么子给时分设置带来了麻烦,原因是按键没有采取消抖动装置。 (3)在调试时候,计划经过按键调整分,不过发觉时计数器也会进位,这就不符合要求了,原因是调整分时,各计数器全部按正常情况在计数,所以会按正常情况产
19、生进位。 4.3处理方法及效果 (1)仍然采取两片74161,第一片能够从0~9,第二片只能从0~2,而且当第二片为2时候,第一片到4话就全部清零复位,这么不仅实现了二十四进制计数器,而且能和七段显示译码器配合使用,直观显示数字。 (2)在脉冲控制按键上加上了D触发器,这么子能够达成消抖动效果。 (3)加上选择器,把两路信号分开,当调整分时候,不对时计数器产生进位,这么子就不会产生十进位了,处理了这个问题。 4.4功效测试方法、步骤,统计数据 (1)简易数字钟测试,将电路图连好后,分析和综合,仿真,编译,下载到仪器上,表示秒小数点按1Hz,占空比50%跳动,分从0~59计数,分过了
20、59后,向时计数器进1。 (2)整点点报时功效测试,到了整点,即59分51s,53s,55s,57s时蜂鸣器低频率间断性鸣响,59分59秒时,蜂鸣器高频率鸣响一次。 (3)时、分调整功效测试,按分调整键,分按一定频率逐次加一,不过时显示不变;按时调整键,时按一定频率逐次加一,不过分显示不变。 第五章 结束语 5.1对设计题目标结论性意见及深入改善意向说明 简易数字钟设计中,关键利用了分频器,六十进制计数器,二十四进制计数器,动态扫描显示电路,选择器,按键消抖和门电路等数字电路方面知识。能够在简易数字钟基础上加上二十四小时和12小时转换功效,秒表功效,闹钟功效,这么更能满足大家使
21、用需求。 5.2总结设计收获和体会 简易数字钟设计及试验当中,我坚持了下来,上学期数电我学并不好,而且对软件应用接收能力不强,刚开始时候做很慢,看到她人全部做好了,心里比较着急,于是,我找出了数电书本,复习所包含知识点,并练习所学软件,最终有了进步,能够更上同学们进度,但数字钟设计一直困扰我,看到她人拓展功效全部做好了,自己基础全部还没做好,心里很急。在设计过程中,碰到了很多困难,碰到了很多问题,不停地思索和尝试,和向同学和老师请教,但还是没能完全设计好,以后有时间还得多去试验室尝试,争取做好部分拓展功效。经过这次设计,对上学期学习数字电路相关知识得到了复习和巩固,也查阅了部分相关资料,也
22、加深了我对数字电路应用了解,总而言之这次电子技术课程设计受益匪浅。 参考文件: 《基于FPGA数字电路系统设计》 西安电子科技大学出版社 《数字电子技术基础》 电子工业出版社 《数字电路和逻辑设计试验及应用》人民邮电出版社 附图 1. 分频模块 (分频器仿真波形) 下图为分频器线路图 2. 60进制计数器模块 (60进制计数器仿真波形) 3. 24进制计数器模块 (24进制计数器仿真波形) 4. 4位显示译码模块 七段显示译码器
23、模块 七段显示译码器部分采取AHDL硬件描述语言设计,语句以下: subdesign ymq ( data_in[3..0] :input; a,b,c,d,e,f,g :output; ) begin table data_in[3..0] =>a,b,c,d,e,f,g; b"0000" =>1,1,1,1,1,1,0; b"0001" =>0,1,1,0,0,0,0; b"0010" =>1,1,0,1,1,0,1; b"0011" =>1,1,1,1,0,0,
24、1; b"0100" =>0,1,1,0,0,1,1; b"0101" =>1,0,1,1,0,1,1; b"0110" =>0,0,1,1,1,1,1; b"0111" =>1,1,1,0,0,0,0; b"1000" =>1,1,1,1,1,1,1; b"1001" =>1,1,1,0,0,1,1; b"1010" =>1,1,1,0,1,1,1; b"1011" =>0,0,1,1,1,1,1; b"1100" =>1,0,0,0,1,1,0; b"1101" =>0,1,1,1,1,0,1; b"1110" =>1,0,0,1,1,1,1; b"1111" =>1,0,0,0,1,1,1; end table; end; 整个4位显示译码模块 (四位显示译码模块)






