三位数字显示计时定时器设计

合集下载

数字电子技术课程设计-数字秒表

数字电子技术课程设计-数字秒表

数字电子技术课程设计报告课程设计(大作业)报告课程名称:数字电子技术设计题目:数字秒表院系:信息技术学院班级:设计者:学号:指导教师:**设计时间:2015.12.14--2015.12. 18 信息技术学院昆明学院课程设计(大作业)任务书目录一、设计目的 (1)二、设计要求和设计指标 (1)三、设计内容 (1)3.1电子秒表工作原理 (1)3.1.1总体设计 (2)3.1.2 脉冲电路设计 (2)3.1.3总清零控制电路 (6)3.1.4时间计数单元 (6)3.1.5分频电路 (8)3.1.6码驱动及显示单元 (9)3.1.7多功能数字秒表电路的组合 (10)3.2仿真结果与分析 (12)3.2.1 时钟发生器的测试 (12)3.2.2 计数、译码、显示单元的测试 (13)3.2.3 整体测试 (13)3.2.4 电子秒表准确度的测试 (14)四、本设计改进建议 (14)五、总结 (15)六、主要参考文献 (16)一、设计目的1、学习数字电路中基本RS触发器、单稳态触发器、时钟发生器及计数、译码显示器等单元电路的综合应用。

2、学习电子秒表的调试方法。

3、秒表由五位七段LED显示器显示,其中一位显示“min”,四位显示“s”,其中显示分辨率为0.01s,计时范围为0~9分59秒99毫秒;具有清零、启动计时、暂停计时及继续计时等功能;控制开关为两个;启动(继续)/暂停计时开关和复位开关。

二、设计要求和设计指标制作一个数字秒表,将单个数字秒表组合设计成可以同时对多人进行计时的多人数字秒表。

电子秒表的工作原理就是不断输出连续脉冲给加法计数器,而加法计数器通过译码器来显示它所记忆的脉冲周期个数。

1.时钟发生器:利用石英震荡555定时器构成的多谐振荡器做时钟源,产生脉冲。

2.记数器:对时钟信号进行记数并进位,百分之一秒和十分之一秒以及个位秒之间10进制,十位秒为六进制; 本设计采用可预置的十进制同步加法计数器74LS90构成电子秒表的计数单元。

数字显示定时器

数字显示定时器

数字电子技术课程设计设计题目:数字显示定时器学院:专业:姓名:班级:学号:指导老师:目录一、设计目的………………………………………2二、设计内容 (2)三、数字显示定时器的组成和基本工作原理……2四、设计步骤与方法………………………………5五、调试方法………………………………………9六、问题分析………………………………………9七、选用元器件 (10)八、参考文献 (10)九、心得体会 (10)数字显示定时器一、设计目的1设计题目:数字显示定时器2设计要求:①分析数字显示定时器的工作原理,明确其中每个组件及元件的作用。

②通过查阅有关资料,了解组件的逻辑功能、使用条件及引脚图,并将图中74LS90组件的连接图标注引脚号,将各与非门编号并标注引脚号以便连线和排除故障。

3 目的要求①结合运用所学知识,进一步提高逻辑电路的识图能力。

②通过实验进一步了解并掌握完成数字电路系统实验的方法,培养调试技能和解决实际问题的能力。

③进一步了解中规模集成组件的性能与应用。

二、设计内容①搭接秒信号发生器,用示波器B点波形的幅度及周期。

②搭接并调试计数译码显示单元。

③搭接控制单元,启动脉冲形成单元,由实验台的单脉冲代替。

思考应该用正脉冲还是负脉冲?④搭接蜂鸣器及发光管报警电路,并调试其功能。

⑤搭接完整电路(连A,B,C,D,E各点)测试系统功能(注意:先测试组件功能,再连接单元电路;先调试好单元电路功能,再连接整体电路)。

三、数字显示定时器的组成和基本工作原理数字显示定时器是一个在能实现定好的时间时发出信号的同时,显示出计时的具体情况的一种计时器。

计时器在平时的应用是很广泛的。

我现在设计的就是数现定时器的一种,其基本组成的整体框图如图所示。

它的工作原理是:按微动开关,计时开始,两位十进制显示所计时间,到达给定时间(60s)时计时停止,蜂鸣器及发光二极管发出报警信号。

1.秒信号发生器在精度要求不高的情况下,可由555定时器组成的多谐震荡器提供频率为1Hz的矩形脉冲作为时钟脉冲。

数字式秒表资料

数字式秒表资料

数字式秒表资料电⼦技术综合课程设计课程:电⼦技术综合课程设计题⽬:数字式秒表所属院(系) 物电学院专业班级电⼦101姓名XXX 学号:XXXXX指导⽼师XXXXX完成地点5XXX2012年 09 ⽉ 26⽇任务书数字式秒表⼀任务和要求:设计并制作⼀个数字式秒表,要求如下:1、⽤三位数码管及⼀个LED发光⼆极管显⽰秒表计时,格式如下:开机时数码管显⽰000,LED灯灭;当计时超过59秒时,LED灯亮;计到1分59秒时,过⼀秒,LED灯灭,同时数码管重新计时显⽰。

计时最⼩单位为0.1秒。

2、具有如下功能键:开始/清零键:按第⼀下时计时开始,同时显⽰;按第⼆下,停⽌计时,恢复到初始状态;固定显⽰键:按第⼀下时,显⽰固定,但计时仍继续;再按下时,显⽰从新时间开始。

3、要求⾃制0.1秒信号源。

4、设计并制作本电路所⽤直流电源。

⼀、提⽰和参考⽂献直流稳压电源见参考资料P23《数字电⼦技术实验任务书》实验六陕西理⼯学院⽬录前⾔ (1)⼀.⽅案论证 (2)1.1⽅案1 (2)1.2⽅案2 (2)⽅案1、2的⽐较: (3)⼆、单元电路设计原理 (4)2.1 五伏电压源设计 (4)2.2 0.1s信号源设计: (5)2.3 显⽰电路: (6)2.4 计数电路 (8)2.5控制电路 (9)三、仿真调试及问题分析 (10)3.1仿真软件简介 (10)3.3信号发⽣器的仿真与问题分析 (12)3.4 计数显⽰部分的仿真与问题分析 (12)3.5 控制电路、译码、显⽰全图的仿真与问题分析 (13)四装调步骤和故障问题与调试改进 (14)五.⼩结 (14)六.参考⽂献 (15)附录1.元器件功能与管脚 (16)附录2.元器件清单 (20)附录3.总体电路图 (21)前⾔电⼦技术综合课程设计是针对模拟电⼦技术、数字逻辑电路及电路分析课程的要求,对学⽣进⾏综合性实践训练的实践学习环节,它包括选择课程、电⼦电路设计、制作、调试和编写总结报告等实践内容。

3位数字显示计时定时器

3位数字显示计时定时器

3位数字显示计时定时器1 3位数字显示计时定时器概述3位数字显示计时定时器是一个典型的利用数字系统的例子。

所谓数字系统,是指由若干数字电路及逻辑部件组成并且能够进行采集、加工、处理及传送数字信号的设备。

一个完整的数字系统通常由输入电路、输出电路、控制电路、若干个子系统和时基电路等部分组成。

而本课题中设计的3位数字显示计时定时器则分别有4个子系统组成:秒脉冲时间标准产生电路、计数器、译码器和显示器、开机自动清零电路、计时启停控制电路。

该数字系统具有计时功能。

能随时控制计时器的启动和停止,保持计时显示结果。

还具备开机自动复零功能。

它的最大显示时间为9分59秒,计时和定时时间都是精确到秒。

2 3位数字显示计时定时器系统设计2.1系统框图由技术指标要求可知,该数字系统的功能主要是实现可控计时和定时报警。

为此,可将系统分解为下列几个部分组成:(1)秒脉冲时间标准产生电路。

由振荡器产生固定频率的矩形脉冲经分频器获得秒脉冲,提供计时和定时的时间标准(时标信号)。

(2)计数器、译码器和显示器。

由于最大计时器容量为9分59秒,因此,需要3位计数器。

最低位为秒个位,次低位为秒十位,最高位为分位。

秒个位对输入的秒脉冲进行计数,其进位信号送至秒十位计数,最后送给分位计数,并通过译码器和显示器显示出所计的时间。

(3)开机自动清零电路。

提供开机清零信号,使电路的初态为0态。

(4)计时启停控制电路。

提供控制振荡信号能否进入分频器的控制信号。

图一计时定时器总体方框图2.2单元电路原理分析2.2.1 秒脉冲时标信号产生电路选用由CMOS集成门组成的RC振荡电路,以产生固定频率的矩形脉冲信号,经分频器分频后输出为1Hz的秒脉冲时标信号。

电路如图二所示。

振荡电路生成的脉冲对动态扫描显示电路影响不大,这里选用门电路构成的多谐振荡器输出的脉冲作用为节拍发生器的时钟。

如图三所示是由4096构成的方波自激振荡器电路。

R t是振荡电阻,C t是振荡电容,R s是补充电阻。

倒计时计时器设计

倒计时计时器设计

一.设计任务和要求倒计时计时器的用途很广泛。

它可以用做定时,控制被定时的电器的工作状态,实现定时开或者定时关,最长定时时间为999分钟。

它还可以用做倒计时记数,最长记时时间为999秒,有三位数码管显示记数状态。

用三个可预置数的减计数器组成三个二-十进制减计数器。

用三个译码器和三个LED数码显示器,COMSS电路组成秒/分选择器。

另外有控制电路,控制器随着计数器计数的状态发生改变,计时期间,用电气开关断开。

当计时完毕时,用电气开关闭合。

(1)用三个可预置数的减计数器组成三个二-十进制减计数器。

(2)用三个译码器和三个LED数码显示器,COMSS电路组成秒/分选择器。

二.设计的作用与目的(1) 实现定时开或者定时关,最长定时时间为999分钟。

(2)用做倒计时记数,最长记时时间为999秒。

1三.倒计时计时器的设计1.倒计时计时器系统概述用时钟脉冲发生器来产生频率为1Hz的脉冲,即输出周期为1秒的方波脉冲,将该方波脉冲信号送到计数器74LS192的CP减计数脉冲端,再通过译码器74LS48把输入的8421BCD码经过内部作和电路“翻译”成七段(a,b,c,d,e,f,g)输出,显示十进制数,或者将该方波脉冲信号送到减法计数器CD40110的CP减计数脉冲端,通过计数器把8421BCD码经过内部作和电路“翻译”成七段(a,b,c,d,e,f,g)输出,显示十进制数,然后在适当的位置设置开关或控制电路即可实现计数器的直接清零,启动和暂停/连续、译码显示电路的显示。

在74LS192输入端设置4个开关,通过开关的高低电平状态从而实现999秒内任意时间的倒计时。

在电路中加入停止器使其倒计时到000时停止计时并且蜂鸣器响。

系统设计框图如图12图1系统设计框图2. 555定时器制成多谐振荡器多谐振荡器是一种自激振荡器,接通电源后不需外加触发便能产生矩形脉冲。

我们用555定时器构成多谐振荡器的原理很简单,只要将施密特触发器的反相输出端经RC积分电路接回输入端即可。

PIC单片机课程设计 - 三位倒计时器(含全部汇编程序清单)

PIC单片机课程设计 - 三位倒计时器(含全部汇编程序清单)

课程设计报告课程名称:单片机原理与接口技术课程设计设计题目:三位倒计时器院系:机电工程学院班级:2012级电气工程及其自动化专业姓名:XXX学号:2012XXXX指导教师:XXXX设计时间:2014年X月X日出勤实物报告总分目录前言 (1)第一章设计方案 (1)1.1 设计内容及要求 (1)1.1.1 设计内容 (1)1.1.2设计要求 (1)1.1.3功能设计 (2)1.2硬件设计 (2)1.2.1 矩阵键盘电路设计 (2)1.2.2数码管电路设计 (3)1.2.3 LED及蜂鸣器电路设计 (4)1.2.4单片机主电路设计 (4)1.2.5上电电路的设计 (5)1.2.6总电路图 (5)1.3总体方案 (6)第二章软件设计 (7)2.1 倒计时部分 (7)2.1.1 键盘扫描子程序 (8)2.1.2 0到9按键功能子程序和键盘显示子程序 (9)2.1.3 一位转多位十进制子程序 (12)2.1.4 TMR0中断服务子程序 (13)2.1.5 倒计时显示子程序 (15)2.2 附加功能部分 (15)2.2.1 暂停和继续 (16)2.2.2 计数功能 (17)2.2.3 复位和归零 (17)2.3 结束提示部分 (18)2.4 程序部分总结 (18)第三章实物照片 (19)3.1 实验板照片 (19)3.2 脱机运行照片 (19)第四章问题与体会 (21)结论 (22)参考文献 (23)附录:程序清单 (24)前言此次课程设计的内容为三位数的倒计时器的设计。

目前倒计时器的发展已经相当先进,我做这次设计的主要目的是想更进一步了解基本电路的设计流程,以提高自己的设计理念,使自己的动手动脑能力有更进一步提高。

通过解决现实生活中的问题,巩固和加深单片机课程中所学的理论知识和实验能力,加深对单片机软硬件知识的理解,以获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,能够提高自己的动手能力和设计能力,以培养自己的创新能力,做到理论和实践相结合。

三位数字显示计时定时器设计

三位数字显示计时定时器设计

课程设计报告课程设计名称:三位数字显示计时定时器设计专业班级: 0212112****:**学号: ********* 同组人员:****:***课程设计时间: 2周目录1 设计任务、要求以及文献综述 (1)2 原理叙述和设计方案 (1)2.1 设计方案选择和论证 (1)2.2 电路的功能框图及其说明 (1)2.3 功能块及单元电路的设计、计算与说明 (2)2.4 总体电路原理图 (4)3 电路的仿真与调试 (4)3.1 电路仿真 (4)3.2 调试中出现的问题及解决方法 (5)4 制作与调试 (6)4.1元件清单、实物照片 (6)4.2制作与调试过程中遇到的问题及解决办法 (7)5心得体会 (8)6 参考文献 (8)附录 (8)三位数字显示计时定时器设计1 设计任务、要求以及文献综述3位数字显示计时定时器是一个典型的利用数字系统的例子。

所谓数字系统,是指由若干数字电路及逻辑部件组成并且能够进行采集、加工、处理及传送数字信号的设备。

一个完整的数字系统通常由输入电路、输出电路、控制电路、若干个子系统和时基电路等部分组成。

设计要求如下:1、计时功能。

能任意启停,保持计时结果;2、开机自动复位;3、最大计时显示为9分59秒;4、定时报警。

2 原理叙述和设计方案2.1 设计方案选择和论证方案一:设计的3位数字显示计时定时器则分别有4个子系统组成:秒脉冲时间标准产生电路、计数器、译码器和显示器、开机自动清零电路、计时启停控制电路方案二:实现一个三位数字显示的秒表系统,单片机,lcd1602显示屏,矩阵键盘等组成部分。

秒计数电路满60向分计数电路进位(显示00~59s),分计数电路满足10(显示0~9)后停止并且灯亮,等待重新复位计时。

论证:方案二比方案一好。

理由一:方案二显示的最终结果比较直观。

理由二:方案二可更改性好,方便日后的改进。

2.2 电路的功能框图及其说明根据原理正确、易于实现、且实验室有条件实现的原则确定设计方案,画出总体设计功能框图,如图2.1所示。

电子技术课程设计

电子技术课程设计

电子技术课程设计一、课程设计目的:1.电子技术课程设计是电气工程专业学生一个重要实践环节,主要让学生通过自己设计并制作一个实用电子产品,巩固加深并运用在《模拟电子技术》和《数字电子技术》课程中所学的理论知识;2.经过查资料、选方案、设计电路、撰写设计报告、制作电子产品等,加强在电子技术方面解决实际问题的能力,基本掌握常用电子线路的一般设计方法、设计步骤和设计工具,提高电子线路的设计、制作、调试和测试能力;3.课程设计是为理论联系实际,培养学生动手能力,提高和培养创新能力,通过熟悉并学会选用电子元器件,为后续课程的学习、毕业设计、毕业后从事生产和科研工作打下基础。

二、课程设计收获:1.学习电路的基本设计方法;加深对课堂知识的理解和应用。

2.完成指定的设计任务,理论联系实际,实现书本知识到工程实践的过渡;3.学会设计报告的撰写方法。

三、课程设计教学方式:以学生独立设计为主,教师指导为辅。

四、课程设计一般方法1. 淡化分立电路设计,强调集成电路的应用一个实用的电子系统通常是由多个单元电路组成的,在进行电子系统设计时,既要考虑总体电路的设计,同时还要考虑各个单元电路的选择、设计以及它们之间的相互连接。

由于各种通用、专用的模拟、数字集成电路的出现,所以实现一个电子系统时,根据电子系统框图,多数情况下只有少量的电子电路的参数计算,更多的是系统框图中各部分电子电路要正确采用集成电路芯片来实现。

2. 电子系统内容步骤:总体方案框图---单元电路设计与参数计算---电子元件选择---单元电路之间连接---电路搭接调试---电路修改---绘制总体电路---撰写设计报告(课程设计说明书)(1)总体方案框图:反映设计电路要求,按一定信息流向,由单元电路组成的合理框图。

比如一个函数发生器电路的框图:(2)单元电路设计与参数计算---电子元件选择:●基本模拟单元电路有:稳压电源电路,信号放大电路,信号产生电路,信号处理电路(电压比较器,积分电路,微分电路,滤波电路等),集成功放电路等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程设计名称:三位数字显示计时定时器设计专业班级:学生姓名:学号:同组人员:指导教师:课程设计时间: 2周目录1 设计任务、要求以及文献综述 (1)2 原理叙述和设计方案 (1)2.1 设计方案选择和论证 (1)2.2 电路的功能框图及其说明 (1)2.3 功能块及单元电路的设计、计算与说明 (2)2.4 总体电路原理图 (4)3 电路的仿真与调试 (4)3.1 电路仿真 (4)3.2 调试中出现的问题及解决方法 (5)4 制作与调试 (6)4.1元件清单、实物照片 (6)4.2制作与调试过程中遇到的问题及解决办法 (7)5心得体会 (7)6 参考文献 (8)附录 (9)三位数字显示计时定时器设计1 设计任务、要求以及文献综述3位数字显示计时定时器是一个典型的利用数字系统的例子。

所谓数字系统,是指由若干数字电路及逻辑部件组成并且能够进行采集、加工、处理及传送数字信号的设备。

一个完整的数字系统通常由输入电路、输出电路、控制电路、若干个子系统和时基电路等部分组成。

设计要求如下:1、计时功能。

能任意启停,保持计时结果;2、开机自动复位;3、最大计时显示为9分59秒;4、定时报警。

2 原理叙述和设计方案2.1 设计方案选择和论证方案一:设计的3位数字显示计时定时器则分别有4个子系统组成:秒脉冲时间标准产生电路、计数器、译码器和显示器、开机自动清零电路、计时启停控制电路方案二:实现一个三位数字显示的秒表系统,单片机,lcd1602显示屏,矩阵键盘等组成部分。

秒计数电路满60向分计数电路进位(显示00~59s),分计数电路满足10(显示0~9)后停止并且灯亮,等待重新复位计时。

论证:方案二比方案一好。

理由一:方案二显示的最终结果比较直观。

理由二:方案二可更改性好,方便日后的改进。

2.2 电路的功能框图及其说明根据原理正确、易于实现、且实验室有条件实现的原则确定设计方案,画出总体设计功能框图,如图1所示。

图1 三位数字显示计时定时器功能框图单片机:对LCD1602的显示控制,还能实现计时启停的控制。

LCD1602:将结果以直观的形式表现出来。

2.3 功能块及单元电路的设计、计算与说明4×4矩阵键盘当键盘中按键数量较多时,为了减少对I/O口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。

矩阵式键盘接口见图13所示,它由行线和列线组成,按键位于行、列的交叉点上。

当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU通过检测行或列线上的电平变化可以确定哪个按键被按下。

如图2所示。

图2 4×4矩阵键盘显示程序本系统使用LCD1602实现显示,只要参照LCD1602的使用手册进行初始化和程序编写就可以显示,即在程序编写中添加LCD1602的驱动程序。

这里的驱动程序主要包括:初始化函数、设置显示坐标、写字符函数及写字符串函数。

用LCD1602实现对时间的显示。

LCD1602的部分读写控制时序程序如图3所示:图3 LCD1602显示屏2.4 总体电路原理图图4三位数字显示计时定时器电路原理图如图4所示,通过对单片机编程,对LCD1602显示屏先初始化,然后开始进行走数。

矩阵键盘就用右边的三个按键,分别实现启停,对数字加,对数字减的功能。

当时间到达9分59时,灯亮并且计时停止。

3 电路的仿真与调试3.1 电路仿真利用电子线路仿真软件Protues,将所设计的电路原理图在Protues 界面下创建并用其仪器库中的模拟仪表进行仿真测试。

若发现问题,立即修改参数,重新调试直至得到满意的设计。

如图5图5三位数字显示计时定时器仿真结果3.2 调试中出现的问题及解决方法说明调试方法与所用的仪器;调试中出现的问题或故障分析及解决措施;将编好的程序导入到单片机,调试时有时候发现,显示的时间走的太快,这个时候对程序进行修改便可。

有时候会发现找不到我需要的元器件,这个时候就要上网查找相似的元器件进行代替。

4 制作与调试4.1元件清单、实物照片元件清单:图6三位数字显示计时定时器元件清单实物:图7三位数字显示计时定时器实物4.2制作与调试过程中遇到的问题及解决办法焊接元件时期:一:焊接是没有严格按照仿真图焊接,导致运行结果出不来,后来去实验室把实物板的焊接改回来。

二:焊接单片机时候,因为管脚难插进板子,用力太猛,导致某些管脚不能用。

解决方法是换其他好的管脚继续焊接。

三:焊接震荡电路时候,忘记接地了,后来修改回来了。

编程时期:一:思路卡住时候,多想想,慢慢就有思路了。

二:编程时候要注意逻辑思路和代码安放位置,我之前思路搞错了,导致遇到瓶颈,画了很多时间和请教别人,最终才得到要的结果。

5心得体会经过一段时间的努力,终于完成了该项设计,顿时感觉到一种莫名的轻松。

看到自己的作品感到很欣慰,原来我也不赖啊。

起初刚拿到设计课题,一脸茫然,束手无措。

经过多方面的资料查找,自己心中多了个底,终于有点头绪了。

选电路、做电路仿真,事情似乎有条不紊地进行着。

但当我听说芯片很难买到时,很是担心。

担心芯片网购还没有回来,老师就要验收。

幸好老师通情达理,给了我们充裕的时间去设计、调试。

在设计实物时,不但要你有紧密的逻辑思维能力,还要细心、有耐心。

元件多,布线多,钻的孔自然也多。

一不留神把焊盘打没了,就会给焊接带来很大的难度。

而且孔很多,一定要慢慢焊接,工程量确实很大。

在调试过程中,一定要细心、耐心,一点小小的断线都会导致整个电路无法工作。

可以说,调试时本次设计的难点。

经常跑实验室,向同学和学长们取经。

本次课程设计,不仅培养了我们综合应用所学知识解决实际问题的能力,也提高了我的动手能力,让我学会了独立思考问题,并通过各种途径来解决问题。

此次课程设计不单是一个实验设计,也是善于思考的最佳机会。

在这个过程中,我懂得了很多专业知识,也学到了很多运用技巧。

更大的一点是:激起了我对实验设计这方面的兴趣。

虽然在此过程中遇到很多挫折及困难,也很有多情绪问题。

比如说,气馁,灰心等情绪。

但是看到自己亲自弄的作品,感到万分欣慰,特别有成就感。

之前的不安情绪也就烟消云散了!但是由于水平有限,我的课程设计肯定不尽完善,难免存在一些错误和误差,我还想在后期改进该设计功能,让其实现原有功能基础之上,还要实现动态显示数码管。

还望老师指出并加以指导,不胜感激!6 参考文献[1] 陈晰.数字电路试验技术基础.北京:电子工业出版社,1999[2] 李元.数字电路与逻辑设计.南京:南京大学出版社,1997[3] 郝波.数字电子技术,西安:西安电子科技大学出版社,2004[4] 郭斌.数字逻辑电路.北京:电子科技大学出版社,1995[5] 程震先.数字电路实验与应用.北京:北京理工大学出版社,1999[6]曹琳琳.单片机原理及接口技术.国防科技大学出版社,200附录三位数字显示计时定时器设计源程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P0^5;sbit rw=P0^6;sbit e=P0^7;sbit led=P0^1;sbit keyg=P2^0;sbit key1=P2^7;sbit key2=P2^6;sbit key3=P2^5;uint num,count,ge,shi,a,flag,flag1; int fen,miao;uchar code table[]="ding shi qi"; uchar code table1[]=" 00:00";/***延时函数***/void delay(uchar z){uchar x,y;for(x=110;x>0;x--)for(y=z;y>0;y--);}/***写指令***/void write_zl(uchar zl){rw=0;rs=0;e=0;P1=zl;delay(5);e=1;delay(5);e=0;}/***写数据***/void write_sj(uchar sj){rs=1;e=0;P1=sj;delay(5);e=1;delay(5);e=0;}/***分秒动态显示***/void write_sm(uchar add,uchar date) {shi=date/10;ge=date%10;write_zl(0x80+0x40+add);write_sj(0x30+shi);write_sj(0x30+ge);}/***初始化***/void init(){led=0;write_zl(0x38);write_zl(0x0c);write_zl(0x06);write_zl(0x01);write_zl(0x80);for(num=0;num<11;num++){write_sj(table[num]);delay(2);}write_zl(0x80+0x40);for(num=0;num<9;num++){write_sj(table1[num]);delay(2);}TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;TR0=1;}/***键盘扫描***/void keyscan(){keyg=0;/****************第一按键**************************/if(key1==0){delay(5);if(key1==0) /**消抖**/{a++; /**a表示按第一个键盘的次数**/while(!key1);delay(2);while(!key1); /**判断是否松手**/if(a==1) /**秒处暂停,光标在秒处闪烁**/{TR0=0; /**定时器关**/write_zl(0x0f);write_zl(0x80+0x40+8);}if(a==2) /**秒处暂停,光标在分处闪烁**/{write_zl(0x80+0x40+5);}if(a==3) /**秒处走动,光标隐藏**/{a=0;TR0=1;write_zl(0x0c);}}}/****************第二按键**************************/if(a!=0){if(key2==0){delay(5);if(key2==0){while(!key2);delay(2);while(!key2);if(a==1) /***按一下,秒处数字加1***/{miao++;if(miao==60){miao=0;}write_sm(7,miao);write_zl(0x80+0x40+8);}if(a==2) /***按一下,分处数字加1***/{fen++;if(fen==10){fen=0;}write_sm(4,fen);write_zl(0x80+0x40+5);}}}}/****************第三按键**************************/if(a!=0){if(key3==0){delay(5);if(key3==0){while(!key3);delay(2);while(!key3);if(a==1) /***按一下,秒处数字减1***/{miao--;if(miao==-1){miao=59;}write_sm(7,miao);write_zl(0x80+0x40+8);}if(a==2) /***按一下,分处数字减1***/{fen--;if(fen==-1){fen=9;}write_sm(4,fen);write_zl(0x80+0x40+5);}}}}}/***主函数***/void main(){init();while(1){if(count==20){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==10){fen=0;}write_sm(4,fen);}write_sm(7,miao);}if(fen==9&&miao==59){TR0=0;led=1;}keyscan();}}/***定时器***/void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;}。

相关文档
最新文档