99分钟倒计时器

99分钟倒计时器
99分钟倒计时器

目录

摘要及关键词 (2)

1 设计总体思想 (2)

1.1 设计要求及目的 (2)

1.2 设计方案分析 (2)

1.3 设计方案比较 (4)

2 局部硬件电路设计 (5)

3 原理图及流程图 (7)

3.1 系统原理框图 (7)

3.2 总体硬件连线图 (8)

3.3 主程序流程图 (9)

3.4 调时子程序流程图 (10)

3.5 中断子程序流程图 (11)

4 Proteus调试 (12)

4.1 Proteus调试过程及现象 (12)

4.2调试问题及解决方法 (13)

5 设计优缺点 (13)

6 心得体会 (13)

7 参考文献 (14)

附:实验源程序 (15)

摘要

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本设计针对倒计时系统的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。倒计时系统需要用到锁存器、独立式按键键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision2软件程序进行译码。

本次设计采用汇编语言编程,通过倒计时子程序模块、独立式键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的99分钟倒计时系统。

【关键词】倒计时器单片机独立式键盘proteus LED数码显示器

1.设计总体思想

1.1、设计要求及作用目的:

要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为99分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。倒计时到,由蜂鸣器发出报警。绘制系统硬件接线图,并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。

目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。

1.2、设计方案分析:

在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。单片机又称单片微型计算机,也称为微控制器,是微

型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计算机系统两个分支。目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机已在广阔的计算机应用领域中表现得淋漓尽致电器因此,单片机已成为电子类工作者必须掌握的专业技术之一。单片机就是一个微型中央处理器,通过编程即能完成很多智能化的工作,因此它的出现给电子技术智能化和微型化起到了很大的推动作用。

本设计将采用89C51单片机,89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机自带5个中断,两个16位定时器32个I/O口,可擦除只读存储器可以反复擦除多次,功能相当强大。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

面对如此功能强大的单片机,结合本次设计要求,应该要用到单片机的内部时钟电路以及外围的显示接口电路和报警电路。

对与时钟,它有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。

在显示方面,有着多种选择,但是8段LED数码管足以满足此次设计的要求了。LED数码显示器是一种有LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,一个用于显示小数点,故通常称之为8段发光二极管数码器。

其内部结构如下图(a)所示:

其数字、字符和对应的段码关系表如下表1所示:

表 1

字符DP g f e d c b a 段码(H)

0 0 0 1 1 1 1 1 1 3F

1 0 0 0 0 0 1 1 0 06

2 0 1 0 1 1 0 1 1 5B

3 0 1 0 0 1 1 1 1 4F

4 0 1 1 0 0 1 1 0 66

5 0 1 1 0 1 1 0 1 6D

6 0 1 1 1 1 1 0 1 7D

7 0 0 0 0 0 1 1 1 07

8 0 1 1 1 1 1 1 1 7F

9 0 1 1 0 1 1 1 1 6F

. 1 0 0 0 0 0 0 0 80

LED数码显示器有如下两种连接方法:

共阳极接法:把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口无法直接驱动,所以要利用放大电路来驱动,一般使用三极管来放大电流。本设计采用p3.0口和三极管组成的电路来驱动蜂鸣器。

1.3、设计方案比较:

本设计是基于AT89C51单片机的键盘控制及显示电路设计,从系统的设计功能上看,系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计方案,起初我对键盘和显示每个都拟订了下面两种方案:

键盘部分:

第一种方案:采用扫描键盘,可以用普通按键构成4×4矩阵键盘,直接接到AT89C51单片机的P1口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。这种方式相对下面的独立式键盘节省了很多的I/O口。

第二种方案:键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。

显示部分:

第一种方案:显示部分采用静态显示方法,所谓静态显示,就是每一个显示器都要占用一个独立的具有锁存功能的接口用于存储字形码。这样单片机只要把要显示的字形代码发送到接口电路,从而输送至各数码管显示。被显示的数据只要输出一次,直到要显示新的数据时,再发送新的字形码。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

第二种方案:显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM

端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。本设计可采用P0口直接驱动七段数码管显示。此方案成本低,而且单片机的I/O口占用较少,可以节约单片机接口资源,而且功耗更低。

由于本设计要求按键较少,且本次设计只是对所学知识的一次实践,设计要求简单,容易实现,成本低廉。比较以上各种设计方案,采用独立式键盘和动态显示两种方案配合,成本低,占用单片机资源少,且容易实现,这样的设计比较适合本次设计,故最终决定选用这样的一种搭配设计方案。对于蜂鸣器,将采用p3.0口和三极管组成的外围电路驱动,根据定时时间报警。

2.局部硬件电路设计

根据设计任务与要求,可初步将系统分为五大功能模块:主电路、按键电路、显示电路、报警电路。进一步细说,主电路选用AT89C51作为中央处理器,系统采用12MHZ的晶振;按键停控制电路由四个按键(复位键、启动/暂停键、设置键、+1调时键)组成,键盘采用软件扫描的方式设计,低电平有效;显示电路由六位七段共阴极数码管和一个9位200欧姆上拉电阻组成,显示内容有倒计时器的0.1秒位以及分秒的个、十位,数码管通过P0口直接输出数据;报警电路主要由蜂鸣器组成,通过电路与P3.0口相连。当P3.0口输出高电平时,蜂鸣器响。

对于本次单片机课程设计,根据设计要求可以将功能分成如下4部分:

(1)由于单片机内部振荡方式电路简单,时钟信号比较稳定,是独立的单片机应用系统的首选,故本设计采用内部振荡方式,采用12MHZ的晶振。

图(1)晶振电路图

(2)本设计电路采用定时器T0产生定时中断,由于本设计需要0.1s的基本时间,故选择其工作在定时方式1下。这时定时器T0是一个16位的计时器,由它产生50ms的基本定时中断,两次中断后将得到0.1s的时间。

(3)键盘电路有独立式键盘和矩阵式两种。独立式键盘占用I/O口线较多,适用于按键较少的情况。

矩阵式键盘占用的I/O口相对较少,适用于按键很多的情况。

图(2)键盘电路图

(4)报警电路将采用p3.0口驱动,当数码管显示00.00.0时p3.0口输出高电平,驱动蜂鸣器达到报警的目的,只有当复位键按下后,蜂鸣器才会停止报警。

图(3)蜂鸣器报警电路图

(5)对于显示电路,本设计采用6位8段共阴极LED数码管显示。上电显示最大倒计时时间

60.00.00-。其中“-”位为系统状态标志位,当显示“-”时,表示系统处于等待状态,按下开

始键后将开始计数,开始计数后此数码管将关闭显示,以达到省电的目的,当显示“E”时,表示系统正处于调时状态,此时只用两个调时键有用,按下开始键或复位键将没有用。

图(4)显示电路图

3. 原理图及流程图

3.1 、系统原理框图

系统的原理框图如下图:

图(5)系统原理框图

单片机 控制器

晶振电路

键盘电路

显示电路

报警电路

3.1、总体硬件连线图

图(6)硬件连线图

硬件连接说明:本系统以AT89C51单片机为核心。单片机采用内部振荡的方式。通过200欧姆电阻与一个6位8段LED数码显示管相连。从P0口输出LED数码管的字形码,从P2口输出LED数码管的位选码,高电平有效。4个功能按键和P1口相连,中间通过10K的电阻与+5V电源相连,按键另一端接地,P1口低电平时表示按键被按下。报警电路则与P3.0口相连,当P3.0口输出高电平时,蜂鸣器响。

在程序设计方面:将键盘扫描程序置于主程序中,采用扫描方式检测键盘的按键情况,主程序流程图见图(7)。显示部分做成一个子程序,方便调用。各个调时子程序由设置键引倒进入,调时子程序流程图见图(8)。计时方面,利用定时器T0产生的0.5ms基准时间形成0.1s的最小倒计时时间单位并产生“-1”动作,T0中断子程序流程图见图(9)。

石河子大学 电气工程及其自动化2007级 自动化综合课程设计

2011

主程序流程图

Y

N

Y

N N

Y

N

Y

N

N

N

Y

Y

Y

Y

开始

关闭定时器、蜂鸣器

复位键按下?

标志位、显示管查表码初始化

定时器设置初始化

开中断

调用显示子程序

调时设置键按下?

调用消抖延时子程序

开始/暂停键按下?

开始/暂停键按下?

调用消抖延时子程序

开始/暂停标志位取反

等待按键释放

等待按键释放

调用调时子程序

等待按键释放

20H.0=1?

置位状态显示管标志位

P3.0=0?

置位P2.5

复位键按下?

调用消抖延时子程序

调时设置键按下?

启动定时器T0

N

N

图(7)

调时子程序流程图

子程序返回

Y

N

R0为#39H?

Y

Y

Y

N

N

N

N

N

N

N

N

N

Y

Y

Y

Y

Y

Y

Y

Y

Y

Y

调用显示子程序

P1.3=0?

开始

调用消抖延时子程序

P1.3=0?

等待按键释放

R0=#44H?

@R0为#06H?

MOV @R0,#00H

R0=#43H?

3

@R0为#05H?

@R0为#09H?

MOV @R0,#00H

MOV @R0,#00H INC @R0

INC @R0 INC @R0

P1.2=0?

P1.2=0?

调用消抖延时子程序

等待按键释放 DEC R0

44H=#06H?

R0=#42H?

3

图(8)

N

将40H 、41H 置9,42H 置

5

T0中断子程序流程图

N

N

Y Y Y Y N N

开始

40H=0?

41H=0?

42H=0?

43H=0?

44H=0?

DEC 40H

SETB P3.0

DEC 40H

启动T0

中断返回

N

N

N

N

N

Y Y Y Y

将40H 置

9

40H=0?

41H=0? 42H=0? 43H=0?

44H=0?

DEC 42H

DEC 40H

DEC 40H

DEC 41H

将40H 置

9 将41H 置

将40H 、41H 、43H 置9,42H 置5

图(9)

4. proteus 调试

4.1 、Proteus调试过程及现象:

上电后LED数码管显示最大倒计时值60.00.0-,程序处于等待状态。

图(10)上电或者复位键被按下时

此时,主程序不断调用显示子程序以及扫描键盘按键情况,当检测到有键按下后,转到相应的程序执行。

1.开始/暂停键按下后程序开始减1计数直到0,同时状态显示管熄灭,计数值到0后报警器响。若中

途遇到开始/暂停键按下则,暂停倒计时。若中途遇到复位键按下则将倒计时器的倒计时值设置为最大值,并处于等待状态。

图(11)计数值到0时

图(12)开始/暂停键按下后

1.复位键按下后,程序复位,系统处于等待状态,状态显示管显示“-”。

2.当设置键被按下后,程序进入调时设置状态,同时状态显示管显示“E”。设置状态的初始值位

00.00.0E,按下+1调整键,可以将当前的计数单位值加1,再次按下设置键后,即进入了下个计数

单位的调时状态,当按下5次设置键后将退出调时状态,若分钟十位被设置为6并再次按下设置键后程序直接退出调时状态。设置状态时开始/暂停键和复位键无效,等退出调时状态后,设置状态时开始/暂停键和复位键恢复功能。

图(13)调时状态时

4.2、调试问题及解决方法:

开始在主程序的循环中没有添加调用显示子程序的语句,导致在没有按键按下的情况下LED数码管没有显示。当在主程序循环检测按键的过程中添加了调用显示子程序的语句后就解决了这一问题。由于键盘需要消抖延时和等待按键释放,所以相似的情况又出现了——按下按键后有一段时间LED数码管断续显示或者按下按键后不释放按键时LED数码管没有显示。仔细分析后发现,问题出现的原因还是一样的,由于本设计的LED数码管采用了动态显示,故需要不断调用显示子程序,否则会导致LED数码管没有显示。所以最终做了以下改进:1.按键的消抖延时选择调用两次显示子程序(每次显示子程序大约用时5ms,两次即为10ms左右)来取代原来的10ms软件延时。2.在等待按键释放时,使用循环调用显示子程序来替代原来的循环等待。经过上述两点的改进后,LED数码管无显示或者断续显示的问题就得到了彻底的解决。

5 . 设计的优缺点分析:

本设计是一个采用了由内部振荡的时钟方式、程控扫描方式的独立式键盘、动态显示LED数码管和蜂鸣器式报警器组成的系统。因此该系统使用的电子器件少、外围电路简单,定时精准,使用的I/O 少,系统消耗的功耗小,剩余的I/O口多便于扩展其他功能。但是另一方面,本系统由于使用了程控式的键盘和动态显示的LED数码管,所以对CPU的使用率相对较高。

6. 心得体会:

初次看到本次的课程设计的题目时,感觉设计的难度不大,但是由于是第一次运用单片机设计,在设计过程中又遇到了种种困难,又感觉到要完成此次设计还需要花费很大的时间和精力。但是经过本组同学的共同努力,运用科学的分析方法,最终顺利完成了本次自动化课程设计。

经过两个星期的设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

生活也是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过设计,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈设计员为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今物欲很流的世界,很少有机会能与大自然亲密接触,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里三年的相处还赶不上这十来天的设计,我感觉我和同学们之间的距离更加近了;我想说,设计确实很累,但当我们的设计出现成果时,心中也不免产生兴奋,正所谓“三百六十行,

行行出状元”我认为无论干什么,只要人生活的有意义就可以。

同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次设计也正好锻炼我们这一点,这也是非常宝贵的。

另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的第二大收获。整个设计我基本上还满意,由于水平有限,难免会有错误,还望老师批评指正。

7 . 参考文献:

[1] 胡启斌.单片微型计算机原理与应用(第二版).武汉:华中科技大学出版社,2006

[2] 丁元杰.单片微机原理及应用.3版.北京:机械工业出版社,2006

[3] 严天峰.单片机应用系统设计与仿真调试.北京:北京航空航天大学出版社,2005

[4] 杨振江.流行单片实用子程序及应用实例.西安:电子科技大学出版社,2002

附:实验源程序

;倒计时器设计源程序

ORG 0000H

AJMP MAIN

ORG 000BH ;T0中断程序入口地址

AJMP T0ZD

ORG 00100H

MAIN:CLR TR0 ;主程序开始

CLR P3.0 ;关闭蜂鸣器

SETB 20H.1 ;使显示管状态标志位有效

CLR 20H.0 ;开始/暂停标志位,使程序处于等待开始|暂停键按下 MOV 40H,#00H ;0.1S位查表码

MOV 41H,#00H ;秒钟个位位查表码

MOV 42H,#00H ;秒钟十位位查表码

MOV 43H,#09H ;分钟个位位查表码

MOV 44H,#09H ;分钟十位位查表码

MOV 45H,#00H ;状态显示管查表码

MOV 46H,#02H ;定时器定时次数

SETB EA ;开总中断

SETB ET0 ;开定时器T0中断

MOV TMOD,#01H ;定时器工作方式0

MOV TL0,#0B0H ;定时初值,采用50MS定时

MOV TH0,#3CH

JPJC:LCALL XSCX ;显示倒计时初值60.00.0(XSCX),进入键盘检测程序 MOV P1,#0FFH ;判断复位键是否按下

JB P1.0,JC12

LCALL XDYS ;调用消抖延时程序(XDYS)

JB P1.0,JC12

PP10:JNB P1.0,DP10 ;等待按键按下

AJMP MAIN ;复位键按下后转到主程序(MAIN)重新开始

JC12:MOV P1,#0FFH ;判断设置键是否按下

JB P1.2,JC11

LCALL XDYS

JB P1.2,JC11

PP12:JNB P1.2,DP12 ;调整设置键按下后转到调时子程序(TSCX)

ACALL TSCX

JC11:MOV P1,#0FFH ;判断开始/暂停键是否按下

JB P1.1,JPJC

LCALL XDYS

JB P1.1,JPJC

PP11:JNB P1.1,DP11

CPL 20H.0 ;将标志位取反

JB 20H.0,KSJS ;开始/暂停标志为1则开始计数(KSJS)

CLR TR0

SETB 20H.1

AJMP JPJC ;继续检测键盘按键情况(JPJC)

DP10:LCALL XSCX ;等待按键按下时,调用显示程序,防止显示管没显示 AJMP PP10

DP11:LCALL XSCX

AJMP PP11

DP12:LCALL XSCX

AJMP PP12

KSJS:CLR 20H.1 ;清除状态显示管

SETB P2.5

JB P3.0,JPJC ;若蜂鸣器响,则不启动计时器

SETB TR0 ;启动计时器TO (KSJS)

AJMP JPJC

; 显示子程序

XSCX:MOV DPTR,#TAB ;显示子程序(XSCX)

MOV A,40H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出0.1S位的显示段码.

CLR P2.0 ;P2.0=0

ACALL XSYS

MOV DPTR,#TAB1 ;

MOV A,41H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出秒钟个位的显示码.

CLR P2.1 ;P2.1=0

ACALL XSYS

MOV DPTR,#TAB

MOV A,42H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出秒钟十位位的显示段码.

CLR P2.2 ;P2.2=0

ACALL XSYS

MOV DPTR,#TAB1

MOV A,43H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出分钟个位的显示段码.

CLR P2.3 ;P2.3=0

ACALL XSYS

MOV DPTR,#TAB

MOV A,44H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出分钟十位的显示段码.

CLR P2.4 ;P2.4=0

ACALL XSYS

JNB 20H.1,ZBTC ;20H.1为1则显示计时器状态

MOV DPTR,#TAB2

MOV A,45H

MOVC A,@A+DPTR

MOV P2, #0FFH ;关闭显示.

MOV P0, A ;输出段码.

CLR P2.5 ;P2.5=0

ACALL XSYS

ZBTC:RET

; 调时子程序

TSCX:CLR TR0 ;调时子程序(TSCX)

CLR 20H.0 ;使时间调整时处于暂停状态

MOV 40H,#00H

MOV 41H,#00H

MOV 42H,#00H

MOV 43H,#00H

MOV 44H,#00H

SETB 20H.1 ;使状态显示管的位选码有效

MOV 45H,#01H ;将状态显示码更改为E(调时状态)

MOV R0,#44H

JCTZ:ACALL XSCX ;先调用显示程序,扫描时间调整键

MOV P1,#0FFH

JB P1.3,NEXT ;+1键盘没有按下

ACALL XDYS ;键盘按下,消抖延时

JB P1.3,NEXT

DEN0:JNB P1.3,DEN1 ;等待按键释放

AJMP JYCX ;+1键按下后,跳转到+1程序

NEXT:MOV P1,#0FFH

JB P1.2,JCTZ

ACALL XDYS ;键盘按下,消抖延时

JB P1.2,JCTZ

DEN2:JNB P1.2,DEN3 ;等待按键释放

MOV A,44H

CJNE A,#09H,DEC4 ;设置键再次按下,将调整指针指向下一位

AJMP TCTS

DEC4:DEC R0

CJNE R0,#3FH,JCTZ ;若R0为3FH则退出调时程序

AJMP TCTS ;若@R0不为#06H,但R0为#3FH,则跳出调时程序

JYCX:CJNE R0,#44H,XIA1 ;加1调时部分

CJNE @R0,#09H,INCR ;调整分钟十位

AJMP SET0

XIA1:CJNE R0,#43H,XIA2

AJMP TZ09 ;调整分钟个位

XIA2:CJNE R0,#42H,XIA3

CJNE @R0,#05H,INCR ;调整秒钟十位

AJMP SET0

XIA3:CJNE R0,#41H,XIA4

AJMP TZ09 ;调整秒钟个位

XIA4:CJNE R0,#40H,TCTS

TZ09:CJNE @R0,#09H,INCR ;调整0.1秒位

SET0:MOV @R0,#00H

AJMP JCTZ

INCR:INC @R0

AJMP JCTZ

DEN1:ACALL XSCX

AJMP DEN0

DEN3:ACALL XSCX

AJMP DEN2

TCTS:MOV TH0,#3CH ;退出调时程序

MOV TL0,#0B0H

MOV 45H,#00H ;将状态显示码更改为D(等待状态) RET

; T0中断子程序

T0ZD:CLR EA ;T0中断子程序,关中断(T0ZD)

CLR ET0

CLR TR0

DJNZ 46H,TCZD

MOV 46H,#02H ;当定时两次后重新给计时次数赋值为2

MOV R0,#40H ;减1计数,R0为40H

CJNE @R0,#01H,R040

INC R0 ;R0为41H

CJNE @R0,#00H,DEC1

INC R0 ;R0为42H

CJNE @R0,#00H,DEC1

INC R0 ;R0为43H

CJNE @R0,#00H,DEC1

INC R0 ;R0为44H

CJNE @R0,#00H,DEC1

AJMP JYFH

R040:CJNE @R0,#00H,DEC1 ;R0为40H

INC R0 ;R0为41H

CJNE @R0,#00H,R041

INC R0 ;R0为42H

CJNE @R0,#00H,R042

INC R0 ;R0为43H

CJNE @R0,#00H,R043

INC R0 ;R0为44H

CJNE @R0,#00H,R044

AJMP ZJFH

R041:MOV 40H,#09H

DEC 41H

AJMP TCZD

R042:MOV 40H,#09H

MOV 41H,#09H

DEC 42H

AJMP TCZD

R043:MOV 40H,#09H

MOV 41H,#09H

MOV 42H,#05H

DEC 43H

AJMP TCZD

R044:MOV 40H,#09H

MOV 41H,#09H

MOV 42H,#05H

MOV 43H,#09H

DEC 44H

AJMP TCZD

DEC1:DEC 40H

TCZD:MOV TH0,#3CH ;退出中断子程序

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

AJMP ZZFH

JYFH:DEC 40H

ZJFH:SETB P3.0 ;启动蜂鸣器

ZZFH:RETI

XDYS:ACALL XSCX ;消抖延时程序,延时10ms(2*5ms)

ACALL XSCX ;采用调用显示子程序延时以改善LED显示效果 RET

XSYS:MOV 55H,#20 ;显示延时程序,延时1ms

DEL2:MOV 56H,#25

DEL1:DJNZ 56H,DEL1

DJNZ 55H,DEL2

RET

TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

TAB1:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH TAB2:DB 040H,79H ;D等待状态,E调时状态

END

99秒倒计时汇编程序

;利用中断的99秒计时器,动态扫描两位数码管;P0口接J3,数据端口 ;P2.2接J2 B端子,表示段码锁存 ;P2.3接J2 A端子,标志位码锁存 LATCH1 BIT P2.2 LATCH2 BIT P2.3 ORG 00H JMP START ORG 0BH JMP TIM0 START:MOV R3,#00 ;中断循环次数 MOV R4,#0 ;时间初值 MOV DPTR,#TABLE MOV SP,#40H MOV TMOD,#01H ;定时器工作方式 MOV TH0,#HIGH(65536-3800) MOV TL0,#LOW(65536-3800) ;初值4MS SETB TR0 MOV IE,#82H ;开中断 TIM0: MOV TH0,#HIGH(65536-3800) MOV TL0,#LOW(65536-3800) INC R3 CJNE R3,#250,X1 ;1S MOV R3,#0 MOV A,R4 ;十进制转换 MOV B,#10 DIV AB MOV 20H,B ; 个位 MOV 21H,A ; 十位 INC R4 CJNE R4,#100,LEDSCAN ;到100则清零 MOV R4,#0 LEDSCAN: CALL SCAN ;调用数码管扫描 X1: PUSH ACC PUSH PSW CALL SCAN POP PSW POP ACC RETI SCAN:

MOV A,21H MOVC A,@A+DPTR MOV P0,A SETB LATCH1 CLR LATCH1 MOV P0,#11111110B ;扫描子程序 SETB LATCH2 CLR LATCH2 CALL DELAY1 MOV A,20H MOVC A,@A+DPTR MOV P0,A SETB LATCH1 CLR LATCH1 MOV P0,#11111101B ;0代表选通该位数码管 SETB LATCH2 CLR LATCH2 CALL DELAY1 RET DELAY:MOV R5,#50 ;典型延时程序 D1: MOV R6,#40 D2: MOV R7,#248 CALL SCAN DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET DELAY1:MOV R6,#4 ;扫描延时 D3: MOV R7,#248 DJNZ R7,$ DJNZ R6,D3 RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴字码表END

三分钟倒计时电路

第一章系统概述 1.1 系统研究内容和要求 1.1.1 项目研究的内容 本项目的名称为打电话通话三分钟倒计时电路,所要设计项目的内容如下: (1)60秒倒计时数码显示器 (2)三个倒计时指示灯 从而满足三分钟倒计时电路,同时提醒剩余的时间。 1.1.2 项目研究的要求 (1)数码管显示的是两位60进制数。 (2)从计数时开始三个倒计时指示灯按60秒后依次熄灭。 1.2 系统的实用价值以及意义 本系统可作为电话(特别是座机)的一个附属产品,通过本系统用户可以清楚的观察到用户所拨打电话的时间;另外,由于电话是按整分钟来收取花费的,所以通过此系统用户可以尽可能的节约自己的花费,尤其是在拨打长途的时候,可见,此系统还是有一定的应用范围与价值的。 1.3 系统的理论依据和实验设备条件 本系统研究的理论依据是通过一学期《数字逻辑与数字系统》的学习,利用学到的组合逻辑电路与时序逻辑电路的基本知识来实现。实验所用到的设备是EWB仿真软件,其中用到的芯片主要是74LS192以及74138。 1.4 系统所要解决的主要问题 在本系统设计的过程中所要解决的主要问题是两片74LS192的级联,从而实现数码管显示两位六十进制;以及怎样通过74138的设计来实现三个倒计时指示灯按60秒后依次熄灭的问题。

第二章系统详细设计 2.1 系统框图 此系统的基本实现框图如下所示: 图2.1 2.2 系统的单元电路以及说明 2.2.1 信号源 信号源由EWB仿真软件来提供,具体产生的脉冲信号为1HZ的矩形方波,其中脉冲的占空比为50%。 2.2.2 计数器以及数码管显示 所用到的电路如图2.2所示,图中所示的为两片74LS192级联实现60进制的数倒数,两个七段码数码管用来实时显示输出的数,所实现的数的范围是0~59。 图2.2中靠上的一个74LS192芯片实现的是60进制的数的低位数,其范围为0~9,实现的方法以及原理是:74LS192芯片为十进制可逆计数器,即通过控制脉冲输入端DOWN、UP可以分别实现计数器的减计数和加计数,而在本系统中所用到的是减计数,故将UP置为高电平1,而将DOWN端接输入的脉冲。因此,在起始状态时将该芯片的输入端置为1001(与芯片对应为输入端的D、C、B、A),由于其计数顺序为9-8-7-6-5-4-3-2-1-0-9,而在本系统中所用到的计数正好与其功能一致,所以在此芯

plc 99秒 倒计时

《可编程序控制器原理及应用》“倒计时软件设计”说明书 一、设计目的: (1)使学生运用《可编程序控制器原理及应用》课程中的基本理论,正确设计一个典型案例的控制系统;针对控制目标,编写下位机PLC程序, 设计上位机触摸屏控制界面,解决好通信问题,实现上下位机联合控 制。 (2)培养学生自学软件的能力,逻辑思维的能力。 (3)综合训练学生应用多款软件设计用户程序,仿真验证案例准确性的能力。 二、设计要求: (1)按任务时序设计下位机PLC程序 (2)设计上位机触摸屏控制界面 (3)上下位机联合仿真 三、梯形图: 下面是已经编好的经过转换梯形图

四、触摸屏软件GT-designer2的使用: 利用此软件制作触摸屏,如下图

五、利用GTsimulator2进行仿真: 先在GX-developer中启动梯形图逻辑测试,然后用GTsimulator打开用GTdesigner制作的触摸屏,保证三个软件前后设置一致。如下图:

六、总结 通过这次的设计使我认识到本人对PLC方面的知识知道的还是很浅薄的,对于书本上的很多知识还不能灵活运用。通过本次的课题设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。同时也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的PLC数字时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。 在这次设计过程中,我也对word、画图等软件有了更进一步的了解,这使我 在以后的工作中更加得心应手。

99分钟倒计时器

目录 摘要及关键词 (2) 1 设计总体思想 (2) 1.1 设计要求及目的 (2) 1.2 设计方案分析 (2) 1.3 设计方案比较 (4) 2 局部硬件电路设计 (5) 3 原理图及流程图 (7) 3.1 系统原理框图 (7) 3.2 总体硬件连线图 (8) 3.3 主程序流程图 (9) 3.4 调时子程序流程图 (10) 3.5 中断子程序流程图 (11) 4 Proteus调试 (12) 4.1 Proteus调试过程及现象 (12) 4.2调试问题及解决方法 (13) 5 设计优缺点 (13) 6 心得体会 (13) 7 参考文献 (14) 附:实验源程序 (15)

摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本设计针对倒计时系统的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。倒计时系统需要用到锁存器、独立式按键键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision2软件程序进行译码。 本次设计采用汇编语言编程,通过倒计时子程序模块、独立式键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的99分钟倒计时系统。 【关键词】倒计时器单片机独立式键盘proteus LED数码显示器 1.设计总体思想 1.1、设计要求及作用目的: 要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为99分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。倒计时到,由蜂鸣器发出报警。绘制系统硬件接线图,并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。 目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。 1.2、设计方案分析: 在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。单片机又称单片微型计算机,也称为微控制器,是微

倒计时计时器

一.设计任务和要求 倒计时计时器的用途很广泛。它可以用做定时,控制被定时的电器的工作状态,实现定时开或者定时关,最长定时时间 为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时停止计时并且蜂鸣器响。 系统设计框图如图1 2

例题:一分钟倒计时器

上传者:jdchen 例题:一分钟倒计时器 电路原理图: 5V 蜂鸣器 BELL 9012 PNP R 1KΩ R 200Ω VCC P3.7 蜂鸣器电路 (晶振电路、电源电路省略) 1 2 3 4 5 6 7 8 1 234 56781 2 3 4 5 6 7 8 9 9 排阻 102 P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCC 12345678 161514131211109 1KΩ 8×1KΩ 9015PNP 9015 PNP 9015PNP 9015PNP 1KΩR 1KΩR 1KΩR 1KΩR P2.7 P2.6 P2.5 P2.4 VCC 四合一七段数码管 12 34 中断按键BUTTEN 1KΩ R P3.3INT1 104 瓷片电容按下按钮1-3、2-4接通 中断按键 E D DP C G S4 S1A F S2S3B 5461BH 123456789101112131415161718192021 2223 24 2526272829 3031 32333435 36 37383940 P 1.0P 1.1P 1.2P 1.3P 1.4 P 1.5P 1.6P 1.7RST P 3.0P 3.1P 3.2P 3.3P 3.4P 3.5P 3.6P 3.7X TA L 2X TA L 1 G N D (T 2) (T 2EX )(MO SI)(MO SO)(SCK)(RX D ) (T X D )(I N T0) (I N T1)(T 0) (T 1) (W R) (RD ) V CC P 0.0P 0.1P 0.2P 0.3P 0.4P 0.5P 0.6P 0.7E A/VP P A LE /P ROG P SE N P 2.0P 2.1P 2.2P 2.3P 2.4P 2.5P 2.6P 2.7(A D 0)(A D 1)(A D 2)(A D 3)(A D 4)(A D 5)(A D 6)(A D 7)(A 8)(A 9)(A 10)(A 11)(A 12)(A 13)(A 14)(A 15)U? AT89S52 倒计时器电路 参考程序:程序由初始化主程序、外部中断服务程序和定时器中断服务程序组成。 ;*************************************************************************** ; INT1第一次中断启动倒计时,从60秒开始自动计数减1,在右边两个数码管上显示, ; 当计数到零停止,并发出提示音; ; ITN1第二次中断停止倒计时,显示当前值,ITN1第三次中断开始新的一轮倒计时。 ;*************************************************************************** ;主程序 ORG 0000H AJMP MAIN ORG 000BH AJMP TIM1 ORG 0013H AJMP INT1S ORG 0030H MAIN: MOV SP,#0a0H MOV 7aH,#06H;置显示缓冲区初值 MOV 7bH,#00H MOV 7cH,#10H MOV 7dH,#00H

99秒倒计时器设计 - 副本

物理与电气工程学院 单片机课程设计 题目:基于单片机99秒倒计时器的设计 学院:物理与电气工程学院 专业:自动化专业 班级:四 组员: 学号: 指导老师: 摘要:随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统

中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 【关键词】AT89s52;共阴数码管;keil;晶体振荡器 一、要求:单片机控制的99s倒计时器,用单片机AT89s52的定时器实现99s 倒计时器。用两位数码管静态显示倒计时秒值。 二、总体设计:要求的硬件电路都主要由AT89s52芯片、两位数码管、晶振产生电路、复位电路,电源,asp下载电路组成。 1.1、AT89s52的芯片概述 At89s52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时

99分钟倒计时器

摘要及关键词 (2) 1 设计总体思想 (2) 1.1 设计要求及目的 (2) 1.2 设计方案分析 (2) 1.3 设计方案比较 (4) 2 局部硬件电路设计 (5) 3 原理图及流程图 (7) 3.1 系统原理框图 (7) 3.2 总体硬件连线图 (8) 3.3 主程序流程图 (9) 3.4 调时子程序流程图 (10) 3.5 中断子程序流程图 (11) 4 Proteus调试 (12) 4.1 Proteus调试过程及现象 (12) 4.2调试问题及解决方法 (13) 5 设计优缺点 (13) 6 心得体会 (13) 7 参考文献 (14) 附:实验源程序 (15)

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本设计针对倒计时系统的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。倒计时系统需要用到锁存器、独立式按键键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision2软件程序进行译码。 本次设计采用汇编语言编程,通过倒计时子程序模块、独立式键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的99分钟倒计时系统。 【关键词】倒计时器单片机独立式键盘proteus LED数码显示器 1.设计总体思想 1.1、设计要求及作用目的: 要求:由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为99分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍。倒计时到,由蜂鸣器发出报警。绘制系统硬件接线图,并进行系统仿真和实验。画出程序流程图并编写程序实现系统功能。 目的:此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习和工作打好基础,为自己的专业技能打好基础。通过解决实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。本次设计注重对单片机工作原理以及键盘控制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。本次设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。 1.2、设计方案分析: 在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景仍然不可估量。如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性化和智能化的,如何能做到智能化呢?单片机的引入就是一个很好的例子。单片机又称单片微型计算机,也称为微控制器,是微

99分钟定时器的VHDL设计

课程设计报告 设计名称EDA(VHDL)课程设计 专业班级电子0942 姓名任泓铭 学号0904451219 成绩评定 电气与信息工程学院 二0一二年一月

课程设计要求和成绩考核办法 1.不允许在教室或实验室内吸烟、吃零食,不准带无关人员到教室或实验室活动,否则扣平时表现分。 2.凡病事假超过3天(每天7小时),或迟到早退三次以上,或旷课两次(1天)以上,不得参加本次考核,按不及格处理,本次课程设计不能通过。 3.病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。 4.课程设计的考核由指导教师根据设计表现(出勤、遵守纪律情况等)、设计报告、设计成果、答辩等几个方面,给出各项成绩或权重,综合后给出课程设计总成绩。该设计考核须经教研室主任审核,主管院长审批备案。 5.成绩评定采用五级分制,即优、良、中、及格和不及格。 6.课程设计结束一周内,指导教师提交成绩和设计总结。 7.设计过程考核和成绩在教师手册中要有记载。 实习报告要求 实习报告内容、格式各专业根据实习(设计)类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。 注意: 1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。 2.为了节省纸张,保护环境,便于保管设计报告,统一采用A4纸,课程设计报告建议双面打印(正文采用宋体五号字)或手写,左侧装订,订两个钉。

基于FPGA的半整数分频器设计 一.系统设计任务及功能概述 1.系统设计任务基于FPGA的半整数分频器设计 任务要求:设有一个5MHz(或7、9、11、13、15、17、19、21、23 、25MHz)的时钟源,但电路中需要产生一个2MHz的时钟信号,由于分频比为2.5(或3.5、4.5、5.5、6.5、7.5、8.5、9.5、10.5、11.5、12.5),因此采用小数分频。 2.小数分频的基本原理 小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。如设计一个分频系数为10.1的分频器时,可以将分频器设计成9次10分频,1次11分频,这样总的分频值为: F=(9×10+1×11)/(9+1)=10.1 3.系统功能概述 本系统是一个基于FPGA的半整数分频器,具有以下功能:有一个5MHz的时钟源,通过半整数分频器后电路中可以产生的是一个2MHz的时钟信号 二.系统设计方案和程序设计 1.系统设计方案 entity counter7 is port(clk,rst,en: in std_logic; qa,qb,qc:out std_logic); end counter7; architecture behavioral of counter7 is signal count:std_logic_vector(2 downto 0); begin process (clk,rst) begin if (rst='1') then

00-99秒倒计时器程序及仿真

题目一:秒计时器 功能要求: 1.系统上电,数码管显示“99”. 2.每隔1秒,数码管显示减1,减小到“00”后,数码管显示“00”,同时继电器开启。 3.按键的定义如下: “暂停/开始”按键S13:当S13按下时,秒表计时停止,数码管显示当前数值,再次按下时恢复计时。 “设置”按键S14:当停止计时时,按下S14键,可以设置秒数。按键S1-S10分别对应数字0-9,先输入数字为十位数,后输入数字为个位数,若输入数字大于99,数码管显示“99”。设置结束后,按下S13键启动计时。 “重新开始”按键S15:当S15按下时,数码管显示为“99”,秒表从新开始计时。 #include #include unsigned char code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char code jp[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; unsigned char a[2]={0,0}; unsigned char int_time; unsigned char second=99; unsigned char c; bit zt; bit sz; unsigned char count; unsigned char y; unsigned char x; unsigned char count2; //函数功能:数码管动态扫描延时 void delay(unsigned char s) { unsigned char i,j; for(i=0;i

相关文档
最新文档