数字定时器资料

数字定时器资料
数字定时器资料

北京理工大学2012级电子技术课程设计

数字定时器

第1章概述

1.1设计目的

1、学习掌握电子技术基础知识和具体电路设计能力;

2、熟练掌握EDA仿真的使用方法;

3、增强学生的实践能力和遇到各种问题后寻找问题原因、解决问题的能力。

1.2设计要求

1、计时显示范围要求自00时00分00秒到23时59分59秒;

2、具有校时功能,可对小时、分、秒分别进行校准;

3、要求预选时刻到达时被控对象连续响10秒,蜂鸣器在10秒内断续鸣叫5次,即响1秒停1秒。

第2章设计与仿真

2.1工作原理

数字定时器由振荡电路、分频电路、计时电路、数码管显示电路、校时电路和闹钟电路组成。

由振荡电路产生2Hz的方波信号,经分频器产生1Hz和0.5Hz的信号,其中计时电路用1Hz信号,闹钟电路用0.5Hz信号,校时电路用2Hz与1Hz信号。计时电路使用的是6片CD4518和5片CD4028,分秒计数器为60进制,时计数器为24进制,CD4028输出进位脉冲给下一位的CP端。当计数器满24小时时,输出清零信号给各计数器完成清零,重新计数。校时电路由CD4015与一些门电路组成,闹钟电路由门电路和蜂鸣器组成。

2.2分部设计与仿真

2.2.1振荡电路

振荡电路可用555定时器与RC组成的电路实现,如图2-1所示。

图2-1 555定时器RC振荡电路

OUT管脚输出的即为2Hz的方波信号。

2.2.2分频电路

因为需要用到1Hz与0.5Hz的方波信号,所以把74LS160设计成分频器,把振荡电路2Hz的信号接到CLK管脚,则其QA端输出的为1Hz方波信号,QB 端输出的为0.5Hz方波信号,电路如图2-2所示。

图2-2 分频电路

2.2.3计时电路

计时电路由6片CD4518和5片CD4028组成。其中CD4518负责计数,CD4028负责进位。秒的个位的输出作为第一片CD4028的输入,因为秒的个位是10进制,所以第一片CD4028的00端接秒的十位所对应CD4518的CP端,其输出作为第二片CD4028的输入,因为秒的十位是6进制,所以第二片CD4028的06端接分的个位所对应CD4518的CP端,以此类推。最后秒的个位所对应CD4518的CP接1Hz方波信号。

分、秒的个位对应的计数器清零端接低电平,十位对应的计数器清零端接由低电平和前一位进位信号的或门,时的清零端接十位B端口和个位C端口的与门,从而完成分、秒的60进位后清零以及时的24清零。电路如图2-3所示。

图2-3 计时电路

2.2.4数码管显示电路

将CD4518的输出接译码器74LS48的输入,数码管使用的是共阴极7段数码管,将74LS48的输出与数码管一一对应连接即可。如图2-4所示。

图2-4 数码管显示电路

2.2.5校时电路

校时电路主要使用的芯片为移位寄存器CD4015,以达到“计时——校时——校分——校秒——计时”的循环。通过门电路使CD4015的输出Q0Q1Q2Q3在“0000——1000——0100——0010——0001——0000”间循环,其中,0000代表暂停,1000代表计时,0100代表校时,0010代表校分,0001代表校秒。如图2-5所示。

图2-5 状态循环电路

校秒部分,将Q3和2Hz信号与,Q0和1Hz信号与,两者或,接秒个位对应CD4518的CP端即可完成秒的校时功能,如图2-6所示。

校分部分,将Q2和2Hz信号与,Q0和秒的十位进位信号与,两者或,接分个位对应CD4518的CP端即可完成分的校时功能,如图2-7所示。

校分部分,将Q1和2Hz信号与,Q0和分的十位进位信号与,两者或,接时个位对应CD4518的CP端即可完成时的校时功能,如图2-8所示。

图2-6 秒校时电路

图2-7 分校时电路

图2-8 时校时电路

2.2.6闹钟电路

预定时间假设为7点05分,到达此时间后,蜂鸣器在10秒内响停5次,因此需要一个0.5Hz的方波信号和译码信号与后给蜂鸣器。将时的个位的ABC 端口接与门,即0111=7点时输出高电平,将分的个位的AC端口接与门,其输出和B的非再接与门,即0101=5分时输出高电平,将秒的十位的AB端口或门,

其输出和C端口接或非门,即0X秒时输出高电平而10秒后输出低电平,最后将之前所有的输出接与门,并和0.5Hz信号与门后接蜂鸣器,这样就实现了7点05分时蜂鸣器响10秒,并且是响1秒停1秒。闹钟电路如图2-9所示。

图2-9 闹钟电路

2.3总体电路图

图2-10 总体电路

由右上角的555定时器RC振荡电路给出2Hz方波信号,经分频器产生1Hz

和0.5Hz信号。

右下角为CD4015搭建的状态循环电路,即按动开关可以使数字定时器在“计时——校时——校分——校秒——暂停——计时”这几个状态中循环,并且因为有与门锁存进位部分,校时时不会产生进位,只有计时时才有进位。

左上6片CD4518、5片CD4028和6片数码管构成计时电路和显示电路,时、分、秒的个位CP端由校时部分提供,十位CP端由个位进位信号提供,从而构成满足要求的计时电路。

计时电路右侧的逻辑门电路部分为闹钟电路,通过对时的个位、分的个位、秒的十位各个输出端口进行逻辑门控制,完成7点05分蜂鸣器响停5次共10秒的要求。

第3章硬件调试

3.1遇到的问题

在仿真阶段,我们组用的都是74LS160为主体搭建的电路,而进行硬件实验的第一天,实验室没有足够的74LS160芯片,所以我们组的仿真方案无法实现,于是我们临时改用了CD4518和CD4028,一边设计一边连线,有不明白的地方请教了其他组的同学,最终完成了这部分电路的改动。

硬件实验过程中,老师说555定时器提供的信号不稳定,要求用晶振产生方波信号,于是在查阅资料后,我们完成了对振荡电路部分的改动,使用32768Hz晶振来产生实验所需信号。

另外在仿真时,我们用了6个开关来对时、分、秒的十位和个位分别进行校时控制,但是硬件实验时被老师否决了,因为开关过多不切实际。之后我们组在请教其他组同学后用了CD4015来达到校时目的。

最后我们组有一个问题一直没有解决,就是校时的时候时部分的24清零,我们组出现了23后直接跳到10的现象。我们检查了连线,发现没有连接错误,更换了芯片,发现问题依然存在,更换了芯片在面包板的位置也没有解决问题。在请教郝老师后,确认我们的原理是对的,经过1天多对这个小问题的检查,我们也没有找到问题的原因,是此次课程设计的一个遗憾。

3.2实验结果

根据仿真电路和之后硬件实验过程中遇到的问题,我们分块搭建了电路,最后将计时、校时、晶振、闹钟电路连成整体,除了上面提到的那个未解决的小问题,其他功能都能很好的实现。实际连线如图3-1所示。

图3-1 硬件实验连线图

3.3实验器材使用情况

第4章总结体会

这次电子技术课程设计主要运用的都是数电、模电的知识,我们组选的题是关于数电的,因此,我们在设计之前,对数电的知识进行了一定的复习,如各个芯片的管脚功能,进位、清零方法等等。

数字定时器的电路设计比较复杂,和之前的数电实验相比难度大了很多,在设计仿真的时候,要考虑的东西多了,导线也很密,需要我十分细心并且有耐心。仿真很成功,但是硬件实验的时候却出现了实验器材不同、实际情况不同需要修改电路等情况,这考察了我们的临时应变能力,同时也让我们认识到,设计一个产品不仅仅要达到要求,更要切合实际,做到精益求精。

我们组在课程设计过程中也遇到了不少的问题,面对问题,我们没有放弃,而是从各个方面仔细寻找,解决了绝大多数问题。然而,到最后验收,我们仍有一个小问题没有解决,就是校时时的24清零,我们的电路在校时时,到了23后不是清零,而是跳到了10,为了解决这个问题,我们两个人差不多检查了1天多的电路。先是从原理方面,经过多次确认逻辑门等线路是没有问题的,再从导线连接方面,我们俩轮流排查了几次,发现没有接错、接触不良的问题,然后换了芯片和芯片在面包板的位置,依旧不能解决。经老师提示,我们用表笔进行了测量,发现芯片清零端会强制产生低电平,而那个端口之前是不接导线的。这个问题困扰了我们很久最后也没解决,是这次课程设计的一大遗憾,但是我觉得我们俩一起努力排查原因一天多这个过程是有收获的,我们对芯片、电路更加了解,而且考虑问题更加全面,虽然有时会比较烦躁没耐心,但我认为这也是可以理解的,毕竟硬件实验了几天,被这个小问题困扰好久好久,总会产生烦躁情绪。

总的来说,这次课设还是比较成功的,我们完成了九成以上的设计任务,虽然有瑕疵,但是这个经历很宝贵,既巩固了理论知识,又增强了实践能力,还提高了合作能力。

定时器中断程序设计实验

实验一定时器/中断程序设计实验 一、实验目的 1、掌握定时器/中断的工作原理。 2、学习单片机定时器/中断的应用设计和调试 二、实验仪器和设备 1、普中科技单片机开发板; 2、Keil uVision4 程序开发平台; 3、PZ-ISP 普中自动下载软件。 三、实验原理 805l 单片机内部有两个 16 位可编程定时/计数器,记为 T0 和 Tl。8052 单片机内除了 T0 和 T1 之外,还有第三个 16 位的定时器/计数器,记为 T2。它们的工作方式可以由指令编程来设定,或作定时器用,或作外部脉冲计数器用。定时器 T0 由特殊功能寄存器 TL0 和 TH0 组成,定时器 Tl 由特殊功能寄存器 TLl 和 TH1 组成。定时器的工作方式由特殊功能寄存器 TMOD 编程决定,定时器的运行控制由特殊功能寄存器 TCON 编程控制。T0、T1 在作为定时器时,规定的定时时间到达,即产生一个定时器中断,CPU 转向中断处理程序,从而完成某种定时控制功能。T0、T1 用作计数器使用时也可以申请中断。作定时器使用时,时钟由单片机内部系统时钟提供;作计数器使用时,外部计数脉冲由 P3 口的 P3.4(或 P3.5)即 T0(或 T1)引脚输入。 方式控制寄存器 TMOD 的控制字格式如下: 低 4 位为 T0 的控制字,高 4 位为 T1 的控制字。GATE 为门控位,对定时器/计数器的启动起辅助控制作用。GATE=l 时,定时器/计数器的计数受外部引脚输入电平的控制。由由运行控制位 TRX (X=0,1)=1 和外中断引脚(0INT 或 1INT)上的高电平共同来启动定时器/计数器运行;GATE=0时。定时器/计数器的运行不受外部输入引脚的控制,仅由 TRX(X=0,1)=1 来启动定时器/计数器运行。 C/-T 为方式选择位。C/-T=0 为定时器方式,采用单片机内部振荡脉冲的 12 分频信号作为时钟计时脉冲,若采用 12MHz 的振荡器,则定时器的计数频率为 1MHZ,从定时器的计数值便可求得定时的时间。 C/-T=1 为计数器方式。采用外部引脚(T0 为 P3.4,Tl 为 P3.5)的输入脉冲作为计数脉冲,当 T0(或 T1)输入信号发生从高到低的负跳变时,计数器加 1。最高计数频率为单片机时钟频率的 1/24。 M1、M0 二位的状态确定了定时器的工作方式,详见表。

数字定时器资料

电子系统设计 数字定时器 实验报告 学校:苏州大学 学院:城市轨道交通学院 班级:通信工程 组员:张强强朱宇翔肖伟健吴易洲

前言 在电子技术飞速发展的今天,电子产品逐渐趋向人性化和智能化。人们人们为了实现这一目的而引入了单片机。单片机又称单片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是20世纪70年代中期发展起来的一种大规模集成电路芯片,是集CPU,RAM,ROM,I/O接口和中断系统于同一硅片上的器件。单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计算机系统两个分支。目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。单片机已在广阔的计算机应用领域中表现得淋漓尽致电器因此,单片机已成为电子类工作者必须掌握的专业技术之一。 这次实验,我们组是以单片机为核心设计一个数字定时器。在实验过程中,我们开始了解电系统设计的和基本理念,基本规则和基本流程;在不断完善设计的过程中,我们逐步丰富和巩固自己的理论知识,培养积极思考解决问题的习惯并充分地发挥自己动手实验操作的能力。 可以说这次实验将我们所学的《单片机原理与应用》以及《电子系统设计》两门课程进行了有机的结合。通过解决实际问题,我们对原理有了更深刻的理解,对于应用有了更广泛的接触。另外实验中我们学会使用Proteus和Keil两款软件进行单片机电路的仿真以及程序的编写及联调。这些都为我们以后的课程设计乃至工作研究奠定了厚实的基础。 这次的实验中,我们以单片机实现计时和倒计时功能,由LED 显示剩余时间,显示格式为 XX(分),精确到1分的整数倍。虽然接触到的功能模块较多,包括接口模块、中断模块、存储模块、控制模块和显示模块等,但仍然只是单片机这门学问的皮毛,在以后的学习中我们还需要不断汲取知识,不断地将理论与实践结合。 本次实验有本小组4位组员共同完成,张强强负责,朱宇翔负责,吴易洲负责,肖伟健负责。 编者注

定时器计数器

定时器/计数器 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0(由TH0和TL0组成)和定时器T1(由TH1和TL1组成),它们既可用作定时器定时,又可用作计数器记录外部脉冲个数,其工作方式、定时时间、启动、停止等均用指令设定。 定时器/计数器的结构 1.定时器/计数器的工作原理 定时器/计数器T0和T1的工作方式通过八位寄存器TMOD设定,T0和T1 的启动、停止由八位寄存器TCON控制。工作前需先装入初值,利用传送指令将初值装入加1计数器TH0和TL0或TH1和TL1,高位数装入TH0或TH1,低位数装入TL0或TL1。当发出启动命令后,加1计数器开始加1计数,加到满值(各位全1)后,再加1就会产生溢出,系统将初值寄存器清0。如果需要继续计数或定时,则需要重新赋计数初值。 2.定时器的方式寄存器TMOD 特殊功能寄存器TMOD为定时器的方式控制寄存器。TMOD是用来设定定时器的工作方式,其格式如下: 各位功能如下: (1)GATE控制定时器的两种启动方式 当GATE=0时,只要TR0或TR1置1,定时器启动。 当GATE=1时,除TR0或TR1置1外,还必须等待外部脉冲输入端(P3.3)或(P3.2)高电平到,定时器才能启动。若外部输入低电平则定时器关闭,这样可实现由外部控制定时器的启动、停止,故该位被称为门控位。定时器1类同。 (2)定时/计数方式选择位 当该位为0时,T0或T1为定时方式;当该位为1时,T0或T1为计数方式。(3)方式选择位M1、M0 M1、M0两位可组合成4种状态,控制4种工作方式。每种方式的功能如表5-1。 表5-1 M1、M0控制的工作方式 M1 M0 工作方式说明 0 0 0 1 1 0 1 1 0 1 2 3 13位计数器 16位计数器 可再装入8位计数器

单片机定时器实验程序

ORG 0000H LJMP START ORG 001BH ;定时器/计数器1中断程序入口地址 LJMP INT ORG 0100H START: MOV TMOD,#10H ;计数器置为方式1 MOV TL1,#0B0H ;装入时间常数 MOV TH1,#03CH SETB ET1 ;允许定时器T1中断 SETB EA ;允许总中断 SETB TR1 ;开始计数 MOV R0,#05H ;05是进入中断的次数LOOP: MOV R1,#00H MOV R2,#26H ;灯的状态循环次数LOOP1: MOV A,R1 ACALL TABLE MOV P1,A INC R1 LOOP2: CJNE R0,#00H,LOOP2 MOV R0,#05H DJNZ R2,LOOP1 LJMP LOOP TABLE: INC A ;从表中取显示码入累加器 MOVC A,@A+PC RET DB 0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,0H DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,00H,0FFH,0FEH DB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH DB 0EFH,0F7H,0FBH,0FDH,0FEH,0FFH,00H,0FFH,00H INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#0B0H ;重置时间常数初值 MOV TH1,#03CH SETB TR1 ;开始计数 RETI ;中断返回 END

将T1改为T0,并且溢出间隔为0.05s ORG 0000H LJMP START ORG 001BH ;定时器/计数器1中断程序入口地址 LJMP INT ORG 0100H START: MOV TMOD,#01H ;计数器置为方式1 MOV TL1,#78H ;装入时间常数 MOV TH1,#0CH SETB ET0 ;允许定时器T1中断 SETB EA ;允许总中断 SETB TR0 ;开始计数 MOV R0,#05H ;05是进入中断的次数 LOOP: MOV R1,#00H MOV R2,#25H ;灯的状态循环次数 LOOP1: MOV A,R1 ACALL TABLE MOV P1,A INC R1 LOOP2: CJNE R0,#00H,LOOP2 MOV R0,#05H DJNZ R2,LOOP1 LJMP LOOP TABLE: INC A ;从表中取显示码入累加器 MOVC A,@A+PC RET DB 0FFH,07FH,3FH,1FH,0FH,07H,03H,01H,00H DB 80H,81H,0C1H,0C3H,0E3H,0E7H,0F7H,0FFH DB 00H,0FFH,00H,0FFH,0EFH,0E7H,0C7H,0C3H,83H,81H,01H,00H DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一 MOV TL1,#78H ;重置时间常数初值 MOV TH1,#0CH SETB TR1 ;开始计数 RETI ;中断返回 END

AVR定时器中断初值计算方法

AVR定时器中断初值计算方法 使用芯片ATMega16外部晶振 定时器1(16位定时器)寄存器TCCR1B=0x04设定256预分频要利用定时器定时1秒 1,4000000/256=15625说明定时器每当1/15625秒就会触发一次中断 2,65535-15625=49910计算出要累加多少次才能在1秒后出发定时器1的溢出中断 3,49910<==>C2F6将计算后的值换算成16进制 4,TCNT1H=0xC2;对寄存器赋值 TCNT1L=0xF6; ================================================= 例如用16位定时器TIMER1,4MHZ晶振,256分频,100ms定时,如何求得初值赋给TCNT1 65536-(4M/256)*= 其中,4M是晶体频率,是定时时长单位秒。 对于8位的定时器 T=(2^8-计数初值)*晶振周期*分频数=(2^8-计数初值)/晶振频率*分频数计数初值=2^8-T/晶振周期/分频数=2^8-T*晶振频率/分频数

因为AVR一指令一周期 IARForAVR精确延时 C语言中,想使用精确的延时程序并不容易。IAR中有这样的一个函数__delay_cycles(),该函数在头文件中定义,函数的作用就是延时N个指令周期。根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。 实现的方法: 建立一个的头文件: #ifndef__IAR_DELAY_H #define__IAR_DELAY_H #include<> #defineXTAL8//可定义为你所用的晶振频率(单位Mhz) #definedelay_us(x)__delay_cycles((unsignedlong)(x*XTAL)) #definedelay_ms(x)__delay_cycles((unsignedlong)(x*XTAL*1000)) #definedelay_s(x)__delay_cycles((unsignedlong)(x*XTAL*1000000 )) #endif

定时器计数器(TC)简介以及例子说明

定时器/计数器(T/C)简介 一、定时器/计数器有关的特殊功能寄存器 1. 计数数寄存器TH和TL 计数器寄存器是16位的,计数寄存器由TH高8位和TL低8 位构成。在特殊功能寄存器(SFR)中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TH0和TL1/TL0设置。 2. 定时器/计数器控制寄存器TCON TR0,TR1:T/C0,1启动控制位。 1——启动计数0——停止计数 TCON复位后清“0”,T/C需受到软件控制才能启动计数,当计数寄存器计满时,产生向高位的进位TF,即溢出中断请求标志。 3. T/C的方式控制寄存器TMOD T/C1 T/C0 C/T :计数器或定时器选择位。 1——为计数器0——为定时器 GATE:门控信号 1——T/C的启动受到双重控制,即要求TR0/TR1和INT0/INT1

同时为高。 M1和M0:工作方式选择位。(四种工作方式) 4.定时器/计数器2(T/C2)控制寄存器 TF2:T/C2益出标志——必须由软件清除 EXF2:T/C2外部标志。当EXEN2=1,且T2EX引脚上出现负跳变而引起捕获或重装载时置位,EXF2要靠软件来清除。 RCLK:接收时钟标志1——用定时器2 溢出脉冲作为串行口的接收时钟0——用定时器1的溢出脉冲做接收时钟。 TCLK:发送时钟标志。 1——用定时器2 溢出脉冲作为串行口的发送时钟 0——用定时器1的溢出脉冲作发送时钟 EXEN2:T/C2外部允许标志。1——若定时器2未用作串行口

的波特率发生器,T2EX端的负跳变引起T/C2的捕获或重装载。 0——T2EX端的外部信号不起作用。 TR2:T/C2运行控制位 1——T/C2启动0——T/C2停止 C/T2:计数器或定时器选择位 1——计数器0——定时器 CP/RL:捕获/重载标志。 1——若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作。 0——若定时器2溢出,或在EXEN2=1条件下T2EX端信号负跳变,都会造成自动重装载操作。 二、定时器/计数器的工作方式 1.方式0 当TMOD中M1M0=00,T/C工作在方式0。 方式0为13位的T/C,由TH提供高8位,TL提供低5位的计数值,满计数值213,但启动前可以预置计数初值。 当C/T=0时,T/C为定时器,振荡源12分频的信号作为计数脉冲;当C/T=1时,T/C为计数器,对外部脉冲输入端T0或T1输入的脉冲计数。计数脉冲能否加到计数器上,受到启动信号控制。当GATE=0时,只要TR=1,则T/C启动。当GATE=1时,启动信号 =TR×INT,此时T/C启动受到双重控制。 T/C启动后立即加1计数,当13位计数满时,TH向高位进位,此进位将中断溢出标志TF置1,产生中断请求,表示定时时间到或

WinCC 中定时器使用方法介绍

1、定时器功能介绍 2、脚本中定时器介绍 3、使用脚本实现更多定时器功能 3.1 整点归档 3.2 WinCC 项目激活时避免脚本初次执行及延迟执行脚本1 定时器功能介绍 WinCC 中定时器的使用可以使 WinCC按照指定的周期或者时间点去执行任务,比如周期执行变量归档、在指定的时间点执行全局脚本或条件满足时打印报表。WinCC 已经提供了一些简单的定时器,可以满足大部分定时功能。但是在有些情况下,WinCC 提供的定时器不能满足我们需求,这时我们就可以通过 WinCC 提供的脚本接口通过编程的方式实现定时的功能,因为脚本本身既可以直接调用 WinCC其他功能,比如报表打印,也可以通过中间变量来控制其他功能的执行,比如通过置位/复位归档控制变量来触发变量记录的执行。WinCC 提供了 C 脚本和 VBS 脚本,本文主要以全局 C 脚本编程为例介绍定时功能的实现。 2 脚本中定时器介绍既然在全局脚本中可以编程控制其他功能的执行,那么首先看看全局脚本的触发: 图1 脚本触发器分类如图1所示:脚本触发器分为使用定

时器和使用变量,定时器又分为周期执行和非周期执行一次,比如每分钟执行一次脚本属于周期执行,指定2012年10月1日执行一次属于非周期执行。使用变量触发脚本,即在变量发生变化时,脚本就执行一次,而变量的采集可以根据指定周期循环采集,或者根据变化采集,根据变化实际是1秒钟采集变量一次。 3使用脚本实现更多定时器功能 利用脚本自身的定时器,可以通过在脚本中编程的方式实现更多其它定时功能。 3.1整点归档 WinCC提供了变量归档,变量归档分为周期归档和非周期归档,不管是周期归档或非周期的归档,都又可以通过一些变量或脚本返回值来控制归档,比如:整点归档。下面的设置结合WinCC脚本,实现了在整点开始归档,归档五分种后停止归档,即每个小时仅归档前五分钟的数据。 软件环境:Windows 7 Professional Service Pack1 , WinCC V7.0 SP3 归档名称:ProcessValueArchive 归档变量:NewTag 归档周期:1 分钟 归档控制变量 startarchive C脚本触发周期:10秒 脚本代码: #include"apdefap.h" int gscAction( void ) { #pragma option(mbcs) #pragma code ("kernel32.dll");

数字定时器资料

北京理工大学2012级电子技术课程设计 数字定时器

第1章概述 1.1设计目的 1、学习掌握电子技术基础知识和具体电路设计能力; 2、熟练掌握EDA仿真的使用方法; 3、增强学生的实践能力和遇到各种问题后寻找问题原因、解决问题的能力。 1.2设计要求 1、计时显示范围要求自00时00分00秒到23时59分59秒; 2、具有校时功能,可对小时、分、秒分别进行校准; 3、要求预选时刻到达时被控对象连续响10秒,蜂鸣器在10秒内断续鸣叫5次,即响1秒停1秒。 第2章设计与仿真 2.1工作原理 数字定时器由振荡电路、分频电路、计时电路、数码管显示电路、校时电路和闹钟电路组成。 由振荡电路产生2Hz的方波信号,经分频器产生1Hz和0.5Hz的信号,其中计时电路用1Hz信号,闹钟电路用0.5Hz信号,校时电路用2Hz与1Hz信号。计时电路使用的是6片CD4518和5片CD4028,分秒计数器为60进制,时计数器为24进制,CD4028输出进位脉冲给下一位的CP端。当计数器满24小时时,输出清零信号给各计数器完成清零,重新计数。校时电路由CD4015与一些门电路组成,闹钟电路由门电路和蜂鸣器组成。 2.2分部设计与仿真 2.2.1振荡电路 振荡电路可用555定时器与RC组成的电路实现,如图2-1所示。

图2-1 555定时器RC振荡电路 OUT管脚输出的即为2Hz的方波信号。 2.2.2分频电路 因为需要用到1Hz与0.5Hz的方波信号,所以把74LS160设计成分频器,把振荡电路2Hz的信号接到CLK管脚,则其QA端输出的为1Hz方波信号,QB 端输出的为0.5Hz方波信号,电路如图2-2所示。 图2-2 分频电路

定时器计数器答案

定时器/计数器 6·1 80C51单片机内部有几个定时器/计数器?它们就是由哪些专用寄存器组成? 答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)与定时器l(Tl)。在定时器/计数器中的两个16位的计数器就是由两个8位专用寄存器TH0、TL0, THl、TLl组成。 6·2 80C51单片机的定时器/计数器有哪几种工作方式?各有什么特点? 答:80C51单片机的定时器/计数器有4种工作方式。下面介绍4种工作方式的特点。 方式0就是一个13位的定时器/计数器。当TL0的低5位溢出时向TH0进位,而TH0溢 出时向中断标志TF0进位(称硬件置位TF0),并申请中断。定时器0计数溢出与否,可通过查询TF0就是否置位或产生定时器0中断。 在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别就是:定时器就是以全16位二进制数参与操作。 方式2就是能重置初值的8位定时器/计数器。其具有自动恢复初值(初值自动再装人)功; 能,非常适合用做较精确的定时脉冲信号发生器。 方式3 只适用于定时器T0。定时器T0在方式3T被拆成两个独立的8位计数器TL0: 与TH0。其中TL0用原T0的控制位、引脚与中断源,即:C/T、GATE、TR0、TF0与T0 (P3、4)引脚、INTO(P3、2)引脚。除了仅用8位寄存器TL0外,其功能与操作与方式0、方式1 完全相同,可定时亦可计数。此时TH0只可用做简单的内部定时功能。它占用原定时器Tl 的控制位TRl与TFl,同时占用Tl的中断源,其启动与关闭仅受TRl置1与清0控制。

6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制? 答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。 6·4 当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启与关闭? 答:定时器T0用做方式3时,由于TRl位己被T0占用,此时通过控制位C/T切换其定时器 或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送入一个设置定时器1为方式3的方式字。 6.5 己知80C51单片机系统时钟频率为6 MHz,请利用定时器T0与Pl。2输出矩形脉冲, 其波形如下: 答:设置T0为方式2定时,定时50us,初值X 为: X=28-(6×106×50×10-8 )÷12= 231D= E7H TH0= TL0=E7H ,TMOD= 2H 源程序如下: MOV TMOD,#02H ;设置T0为方式2定时 MOV TH0,#E7H ;赋初值 MOV TL0,#E7H

51单片机定时器初值的计算

51单片机定时器初值的计算 一。10MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次机器周期。65536-10000=55536(d8f0) TH0=0xd8,TL0=0xf0 2.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。 65536-9216=56320(dc00) TH0=0xdc,TL0=0x00 二。50MS定时器初值的计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次机器周期。65536-50000=15536(3cb0) TH0=0x3c,TL0=0xb0 2.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。 65536-46080=19456(4c00) TH0=0x4c,TL0=0x00 三。使用说明 以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T 每次溢出 最多65536 个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串

口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。 51单片机12M和11.0592M晶振定时器初值计算 2011-01-04 22:25 at89s52,晶振频率12m 其程序如下: 引用代码:#include #include void timer0_init() { TMOD=0x01;//方式1 TL0=0xb0; TH0=0x3c; TR0=1; ET0=1; } void timer0_ISR(void) interrupt 1 { TL0=0xb0; TH0=0x3c;//50ms中断一次 single++; if(single==20) { kk++; single=0; } } void main() { int kk=0;//计数器 int single=0; timer0_init(); } TL0=0xb0; TH0=0x3c; 这两个是怎么算出来得

定时器与计数器

四川工程职业技术学院 单片机应用技术课程电子教案 Copyright ? https://www.360docs.net/doc/1a13113711.html, 第 讲 15 定时器/计数器基础

本讲主要内容: 15-1.实现定时的方法 15-2.定时器/计数器的结构和工作原理15-3.定时器/计数器的控制 15-4.定时器/计数器的工作方式 15-5.定时器/计数器应用

15-1.实现定时的方法 软件定时 ? 软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用 率。例如延时程序。 采用时基电路定时 ?例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬 件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件 进行控制和修改,即不可编程,且定时时间容易漂移。 可编程定时器定时 ?最方便的办法是利用单片机内部的定时器/计数器。结合了软件定时 精确和硬件定时电路独立的特点。 定时器/计数器 如何使用呢?

定时器/计数器的结构 定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD 是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 G A T E C /T M 1 M 0 G A T E C /T M 1 M 0 TH1TL1TH0TL0 T1方式T0方式 T1引脚 T0引脚 机器周期脉冲 内部总线 TMOD TCON 外部中断相关位 T F 1 T R 1 T F 0 T R 0 T1计数器 T0计数器 控制单元

定时器/计数器的工作原理 ?计数器输入的计数脉冲源 系统的时钟振荡器输出脉冲经12分频后产生; T0或T1引脚输入的外部脉冲源。 ?计数过程 每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断 请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表 示定时时间已到;如果工作于计数模式,则表示计数值已满。

定时器计数器

图1-2 将T1计数的结果送P0口显示 (3)控制LED 灯左循环亮 用A T89C51单片机控制一组LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,晶振采用12MHZ 。要求如下: ①用发光二极管灯左循环亮为输出值; ②利用单片机的定时器完成此项目; ③每1S 左循环一次。 图1-3 控制LED 灯左循环亮 三、实验程序 1. 用定时器T0查询方式控制P3口8位LED 闪烁 (1)分析: 用定时器0、方式1, 则TMOD =××××0001B 由于T 机器=12T 时钟=12 1/fosc=1us ,而方式1的最大定时时间为65.536ms ,所以可选择:50ms 。定时器初始值为: TH0=(65536-50000)/256;//定时器T0的高8位赋初值 TL0=(65536-50000)%256;//定时器T0的低8位赋初值 (2)程序设计 先建立文件夹“SY 1-1”,然后建立“SY2-1”工程项目,最后建立源程序文件“SY 1-1.c”,输入如下源程序: #include // 包含51单片机寄存器定义的头文件 void main(void) { TMOD=0x01; //使用定时器T0的方式1 TH0=(65536-50000)/256; /*定时器T0的高8位赋初值*/ TL0= (65536-50000)%256; /*定时器T0的低8位赋初值*/ TR0=1; //启动定时器T0 组长 学号 专业 班级 实验项目 实验1 定时器/计数器 课程名称 单片机原理 课程代码 试验时间 实验地点 成绩 教师签字: 一、实验目的 (1)了解80C51定时器/计数器的结构; (2)掌握定时器/计数器方式寄存器TMOD 设置; (3)掌握定时器/计数器控制寄存器TCON 设置; (4)掌握定时器/计数器的初始化步骤; (5)掌握定时或计数初值的计算; (6)掌握80C51定时器/计数器编程方法。 二、实验内容 (1)用定时器T0查询方式控制P3口8位LED 闪烁 使用T0工作于方式1,采用查询方式控制P3口8位LED 的闪烁周期为100ms ,即亮50ms ,熄灭50ms ,电路图如图1-1所示,设单片机晶振频率为12MHz 。 图1-1 用定时器T0查询方式控制P3口8位LED 闪烁 (2)将T1计数的结果送P0口显示 用AT89C51单片机控制LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,设单片机晶振频率为12MHz 。

定时器产品使用说明书

定时器产品使用说明书 定时设置: 1、先检查时钟是否与当前时间一致,如需重新校准,在按住“时钟”键的同时,分别按住“星期”、“小时”、“分钟”键,将时钟调到当前准确时间。 2、按一下“设定”键,显示屏左下方出现“1开”字样(表示第一次开启的时间)。然后按“星期”调整本次设定的星期组合模式,再按“小时”、“分钟”键,输入所需开启的时间。 3、再按一下“设定”键,显示屏左下方出现“1关”字样(表示第一次关闭时间),再按“星期”、“小时”、“分钟”键,输入所需关闭的日期和时间。 4、继续按动“设定”键,显示屏左下方将依次显示“2开、2关、3开、3关……16开、16关”,参考步骤2、3设置以后各次开关时间。设置完成后,按一下“时钟”键返回。 5、如果每天不需设置16组开关,则必须按“清除”键,将多余各组消除,使其显示屏上显示“—:—”图样(不是00:00)。 6、按“模式”键,可以变换工作模式。总共有四种工作模式:A、液晶显示开(代表进入常开模式);B、液晶显示关(代表进入常关模式);C、由开进入自动(表示目前状态为开,等到下一组时间到后开始自动运行);D、由关进入自动(表示目前状态为关,等到下一组定时时间到后开始自动运行)。 当出现以下情况时: 1、定时器没有根据设定的程序开启或关闭,请检查设置程序是否正确或重新调整。 2、定时器长时间不用,显示模糊时,请将定时器接通电源充足,10分钟后无显示,按“复位”键,2-3秒。 3、如以上步骤均不能排除问题,请与公司或经销商联系维修。 注意事项: 1、对于那些因定时开关出错而可能发生的生命相关事故或者对社会产生重大影响的设备(如医疗设备等),请不要使用定时开关。 2、对于那些因定时开关出错而发生重大财产损失的设备(大型加热器或冷库),在使用本定时开关时,请务必是特性和性能的数值有足够的余量,并采取二重电路等安全对策。 3、请勿自行修理、分解或改造。 4、接通电源后请勿接触端子部分。本开关工作在无潮湿、腐蚀及高金属含量气体环境中。请勿沾染油或水。

数字定时器设计

设计任务 设计一个数字定时器 设计要求 1,定时1-99分钟,开机上电并且默认10分钟。 2,显示时间自选,不一定使用数码管。 3,定时时间可调,调试方式为两种,一是步进,二是直接输入。 4,有负载,220V/A,要求开机上电的时候,负载关闭。 5,有相关的提示信息,一旦时间设定之后,会给出时间设定的提示信息。 6,定时时间到,关闭电晕啊,切断负载电源,关闭电源。 7,系统工作电源V in=+12V 设计基本理论 本设计将采用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单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主体模块设计 数字定时器系统的基本组成如下图所示

数字定时系统电路的原理框图根据设计任务与要求,可初步将系统分为五大功能模块:主电路、按键电路、显示电路、继电器电路。进一步细说,主电路选用AT89C51作为中央处理器,系统采用12MHZ的晶振;按键控制电路由两个个按键(启动键(start)、时间设定键(set))组成,采用三个独立开关,按键按下产生一个脉冲信号;显示电路由二位8段共阴极数码管和一个9位100欧姆上拉排阻组成,位选,个位和十位由P0输出,段选由P1输出;继电器电路由一个继电器和一个用电器(灯泡)组成,通过电路与P3.0相连。当P3.0输出高电平时,继电器不吸合,灯亮。 各部件具体设计 1单片机最小系统的设计模块 硬件连接说明:本系统以AT89C51单片机为核心。单片机采用内部振荡的方式。通过200欧姆电阻与一个6位8段LED数码显示管相连。从P0口输出LED数码管的字形码,从P2口输出LED数码管的位选码,高电平有效。4个功能按键和P1口相连,中间通过10K的电阻与+5V电源相连,按键另一端接地,P1口低电平时表示按键被按下。报警电路则与P3.0口相连,当P3.0口输出高电平时,蜂鸣器响。 2晶振电路设计 由于单片机内部振荡方式电路简单,时钟信号比较稳定,是独立的单片机应用系统的首选,故本设计采用内部振荡方式,采用12MHZ的晶振。数字定时系统电路的晶振电路图如下图所示。

ATMEGA16定时器的使用

ATMEGA16定时器的使用 [日期:2012-01-07 ] [来源:本站编辑作者:佚名] [字体:大中小] (投递新闻) /* 本程序简单的示范了如何使用ATMEGA16的定时器 AVR定时器的要点介绍 T0工作于CTC模式,输出1KHz/2KHz 50%占空比的方波 T1工作于快速PWM模式兼输入捕捉 T2工作于相位修正PWM模式,输出490Hz的8bit PWM波 出于简化程序考虑,各种数据没有对外输出,学习时建议使用JTAG ICE硬件仿真器对于定时器,AVRstudio的软件仿真是不准确的。 */ #include #include #include //时钟定为8MHz,F_CPU=8000000 //管脚定义 #define ICPKEY 6 //ICP1 PD6 按键模拟ICP输入 #define PWM0 3 //OC0 PB3 #define PWM1A 5 //OC1A PD5 #define PWM1B 4 //OC1B PD4 #define PWM2 7 //OC2 PD7 //宏定义 #define PWM1A_ON() PORTD|= (1<

定时器程序

#include #define uchar unsigned char #define uint unsigned int sbit LED=P0^0; uchar T_Count=0; void main() { TMOD=0x00; //定时器0 工作方式0 TH0=(8192-5000)/32; //5ms 定时 TL0=(8192-5000)%32; IE=0x82; //允许T0 中断 TR0=1; while(1); } //T0 中断函数 void LED_Flash() interrupt 1 { TH0=(8192-5000)/32; //恢复初值 TL0=(8192-5000)%32; if(++T_Count==100) //0.5s 开关一次LED { LED=~LED; T_Count=0; } } 28 TIMER0 控制流水灯 #include #include

#define uchar unsigned char #define uint unsigned int void main() { uchar T_Count=0; P0=0xfe; P2=0xfe; TMOD=0x01; //定时器0 工作方式1 TH0=(65536-40000)/256; //40ms 定时TL0=(65536-40000)%256; TR0=1; //启动定时器 while(1) { if(TF0==1) { TF0=0; TH0=(65536-40000)/256; //恢复初值TL0=(65536-40000)%256; if(++T_Count==5) { P0=_crol_(P0,1); P2=_crol_(P2,1); T_Count=0; } } } }

课程设计报告:数字式计时器电路555定时器

目录 目录 (1) 1.系统设计思路与总体方案 (2) 1.1 设计思路与流程图 (2) 2.Multisim软件的简介 (3) 2.1Multisim概貌及特点 (3) 3.555定时器,CD4518和CD4011介绍 (7) 3.1 555定时器 (7) 3.2 CD4518引脚功能 (11) 3.3 CD4011引脚图 (12) 4. 数字逻辑,振荡器,计数器和显示电路图 (14) 4.1数字逻辑模块 (14) 4.2振荡器模块 (14) 4.3 计数器模块 (19) 4.4 显示器模块 (20) 5. 电路的总体设计与调试 (20) 5.1 总体电路原理图 (20) 5.2总体电路工作原理 (21) 6.课程设计感受 (22) 6.1 课程设计中的收获和体会 (22) 7.附录与文献 (24)

7.1附录 (24) 7.2参考文献 (25) 1.系统设计思路与总体方案 1.1 设计思路与流程图 根据任务书可以知道本课题是一个2位数字显示计数器,是一个十进制计数器组合,本质上就是一计时器。通过一个时基电路产生一定频率脉冲,将脉冲信号输入低位的计数器输入端,通过一级级的进位,从而达到计数。从而完成此课题,我们可以将这整个计数系统,分为几个模块进行分析。 (1).数字逻辑控制模块。通过使用门电路来控制计时器进位及清零。 (2).脉冲信号产生模块。由一个振荡电路来产生一个固定频率的脉冲信号,作为计时器的时基信号。 (3).计时数计数模块。接收计时及中断信号脉冲,从而控制计数器计数,且有清零功能,该模块选用十进制计数器。 (2).译码显示模块。该模块要显示00到99的数字,选用十进制计数器的基础上,通过它们之间的级联,最终显示相应数字。 该数字式定时器,需要用到555定时器,由此产生振荡信号,在数字逻辑电路的控制下,由计数器计数,最后在数码管上显示出来,画为流程图如下:

单片机定时器程序

实验十一定时器实验三 一、实验要求 1.将P2口和四个数码管的数据口相连,P1口和位选线相连接,电路用共阳极; 2.数码管显示4位从前两位分钟、后两位为秒;分钟和秒的值从00到59增加; 3.实现定时器1S的定时,每1S时间到时,使秒钟加一,当秒钟为60时,显示为00 秒,分钟加一;当分钟为60时,显示为00分,从新开始一个小时的计时。 #include //定义8051寄存器头文件 #define SEG7P P2 //定义数码管就接口在P2口 #define SCANP P1 //定义P3口为数码管位选口unsigned char TAB[]={ 0xc0,0xf9,0xa4,0xb0,0x99, //数字0~4的码值 0x92,0x83,0xf8,0x80,0x98 }; //数字5~9的码值unsigned int show_s,show_m; //定义变量show_s,show_m void Get_disp(char show_s1,char show_m1); //声明赋值函数 void Display(); //声明显示函数 void delay_ms(int x); //声明延时函数 char disp[4]; //定义显示数字数组 char scan[4]={0xfe,0xfd,0xfb,0xf7}; //定义位选扫描数组 main() //主程序的开始 { SEG7P=0xff; //赋初值关闭数码管 IE=0x82; //开启中断总开关和定时器0开关 TMOD=0x01; //设置模式为1 TR0=1; //开启定时器0 TH0=(65535-50000)/256; //设置定时器初值,计数高八位 TL0=(65535-50000)%256; //计数低八位 while(1) //无穷循环 { Get_disp(show_s,show_m); //调用赋值函数 Display(); //调用显示函数} } /*****定时器0中断子函数*****/ void TF_0(void) interrupt 1 { int T; TH0=(65535-50000)/256; //重新转载定时器的初值 TL0=(65535-50000)%256; T++; //计数自增 if(T==20) //判断T { T=0; //T回到初值 show_s++; //秒自增

定时器-计数器

定时器 / 计数器 一、实验目的 ⒈学会8253芯片和微机接口的原理和方法。 ⒉. 掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 利用8253进行二次分频,控制LED灯亮10秒,灭10秒。 三、实验程序清单(在H8253.ASM的基础上修改) CODE SEGMENT ;H8253.ASM ASSUME CS: CODE ORG 1290H START: JMP TCONT TCONTRO EQU 0043H TCON0 EQU 0040H TCON1 EQU 0041H TCONT: MOV DX,TCONTRO MOV AL,36H ;0号通道控制字需要修改 OUT DX,AL MOV DX,TCON0 ;计数初值要按计算出的值来写 MOV AL,00H OUT DX,AL MOV AL,04H OUT DX,AL MOV DX,TCONTRO MOV AL,36H ;1号通道控制字需要修改 OUT DX,AL MOV DX,TCON1 MOV AL,00H ;计数初值要按计算出的值来写 OUT DX,AL MOV AL,02H OUT DX,AL JMP $ CODE ENDS END START

四、实验步骤 ⒈8253的GATE0、GATE1接+5V,OUT0接CLK1,CLK1接LED灯(L1)。 8253的CLK0插孔接分频器74LS393(左下方)的T2插孔,分频器的频 率源为8.0MHZ,T→8.0MHZ。 ⒉运行实验程序 在系统提示符“P.”状态下,联机运行程序 3. 观察实验现象,修改程序中的计数初始值,观察结果。

相关文档
最新文档