·定时器0和定时器1

·定时器0和定时器1
·定时器0和定时器1

当DCEN=1时,允许定时器2向上或向下计数,如图6所示。这种方式下,T2EX引脚控制计器方向。T2EX引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH向上溢出时,置位TF2,同时把16位计数寄存器RCAP2H和RCAP2L载到TH2和TL2中。T2EX引脚为逻辑“0”时,定时器2向计数,当TH2和TL2中的数值等于RCAP2H和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFF 数值重新装入定时寄存器中。

当定时/计数器2向上溢出或向下溢出时,置位EXF2位。

·波特率发生器:

当T2CON(表3)中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。如果定时计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,如图7所示。若RCLK和TCLK置位,则定时器2工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2翻转使定时器2的寄存器用RCAP2H和RCAP2L中的16位数值重新装载,该数值由软件设置。

在方式1和方式3中,波特率由定时器2的溢出速率根据下式确定:方式1和3的波特率=定时器的溢出率/16

定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/=0)。定时器2作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每机器周期(1/12振荡频率)寄存的值加1,而作为波特率发生器使用时,在每个状态时间(1/2振荡频率)寄存器的值加1。波特率的计算公式如下:

方式1和3的波特率=振荡频率/{32×[65536-(RCAP2H,RCAP2L)]}

式中(RCAP2H,RCAP2L)是RCAP2H和RCAP2L中的16位无符号数。

定时器2作为波特率发生器使用的电路如图7所示。T2CON中的RCLK或TCLK=1时,波特率作方式才有效。在波特率发生器工作方式中,TH2翻转不能使TF2置位,故而不产生中断。但若EXE 置位,且T2EX端产生由1至0的负跳变,则会使EXF2置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2和TL2中。所以,当定时器2作为波特率发生器使用时,T2EX可作为附加的外中断源来使用。需要注意的是,当定时器2工作于波特率器时,作为定时器运行(TR2=1)时,并不能访问TH2和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值然而,对RCAP2则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装出错。在访问定时器2或RCAP2寄存器之前,应将定时器关闭(清除TR2)。

·可编程时钟输出:

定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号,如图8所示。P1.0引脚除了是一个标准的I/O口外,还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50的时钟脉冲。当时钟振荡频率为16MHz时,输出时钟频率范围为61Hz-4MHz。

当设置定时/计数器2为时钟发生器时,C/T2(T2CON.1)=0,T2OE(T2MOD.1)=1,必须由TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器2捕获寄存器(RCAP2 RCAP2L)的重新装载值,公式如下:

输出时钟频率=振荡器频率/{4×[65536-(RCAP2H,RCAP2L)]}

在时钟输出方式下,定时器2的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿定时器2作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2H和RCAP2L。

·UART:

AT89C52的UART工作方式与AT89C51工作方式相同。

·中断:

AT89C52共有6个中断向量:两个外中断(INT0和INT1),3个定时器中断(定时器0、1、和串行口中断。所有这些中断源如图9所示。

这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。

注意表5中的IE.6为保留位,在AT89C51中的IE.5也是保留位。程序员不应将“1”写入这位,它们是将来AT89系列产品作为扩展用的。

定时器2的中断是由T2CON中的TF2和EXF2逻辑或产生的,当转向中断服务程序时,这些标位不能被硬件清除,事实上,服务程序需确定是TF2或EXF2产生中断,而由软件清除中断标志位定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会下一个机器周期才查询该中断标志。然而,定时器2的标志位TF2在定时器溢出的那个机器周期S2状态置位,并在同一个机器周期内查询到该标志。

·时钟振荡器:

AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图10。

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10p 而如使用陶瓷谐振器建议选择40pF±10pF。

用户也可以采用外部时钟。采用外部时钟的电路如图右图所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的要求。

定时器、计数器操作与应用实验报告

实验三 定时器、计数器操作与应用实验报告 、实验目的 1、 了解和熟悉FX 系列可编程序控制器的结构和外 部接线方法; 2、 了解 和熟 悉 GX Developer Version 7.0 软件的 使用 方法 ; 3、 掌握 可编 程序 控制器 梯形 图程 序的 编制 与调 试。 二、实验要求 仔 细阅 读实 验指 导书 中关 于编 程软 件的 说明 ,复习 教材 中有 关内 容 , 分 析程 序运 行结 果。 三、实验设备 2 、 开关 量输 入 / 输出 实验 箱 3、 计算 机 4、 编程 电缆 注 意: 1) 开关量输入/输出实验 箱内的钮子开关用来产生模拟的 开关量输入 信 号; 2) 开关量输入/输出实验箱内的LED 用来指示开关 量输出信号; 3) 编程电缆在连接PLC 与计算机时请注意方向。 四、实验内容 1 、梯形图 1 、 FX 系列可 编程 序控 制器 一只 一套 5、 GX Developer Version 7.0 软件 一套

2、梯形图程序 0LD xooo 1OUT YOOO X001 2LD 3OR¥001 4AN I X002 5OUT Y001 6OUT TO K50 9MPS 10AHI TO 11OUT Y002 12MPP 13ASD TO 14OUT¥003 15LD X003 16RST CO 18LD X004 19OUT CO K5 22LD CO 23OUT Y004 24END 3、时序图

r 时序10 □ ?Si 正在进荷囲1SL 金冃勖厂手祜r XI广X3厂X5厂K1Q拧应C 40 J2fl MIB -380 .360 '340 -33 MW 脚 M 创Q,220,200,13Q -1?-14D ,1如■!? 如也 40 如厂「 五、实验步骤 1、程序的编辑、检查和修改; 2、程序的变换; 3、程序的离线虚拟设备仿真测试; 4、程序写入PLC; 5、用PLC运行程序; 6、比较程序的分析结果与实际运行结果。 六、实验报告 1、实验梯形图程序的编写; 2、梯形图程序的理论分析与结果; 3、梯形图程序的实际运行结果; 4、结论。 七、实验心得 通过这样一次实验,我对GX Developer Version 7.0 软件的使用方 法更加的熟悉了,也了解到在实验中需要我们集中精力,仔细认真地完成■XDU "Tlr-.Ll-t-1!- D LJ D-IT--1 z?E I4J 一 — Ti ll IL — 」 ill-t-ll-r — 1

音乐提示定时器(1)

目录 第1章课程设计的要求、目的 (1) 1.1课程设计的要求 (1) 1.2课程设计的目的 (1) 第2章总体设计方案 (3) 2.1 总体方案的选择 (3) 2.2总体方案的说明 (3) 第3章系统方框图与工作原理 (5) 3.1系统设计框图 (5) 3.2 基本工作原理 (5) 第4章各单元硬件设计及说明 (7) 4.1单片机的选择 (7) 4.2复位电路的设计 (7) 4.3晶振电路的设计 (8) 4.4动态显示电路 (9) 4.5音乐播放电路 (9) 第5章器件说明 (10) 5.1 单片机 (10) 5.2 LED显示器 (11) 第6章软件设计与说明 (12) 6.1 定时显示子程序 (12) 6.2 系统软件设计方案的确定 (13) 6.3 音乐定时常数的确定 (13) 第7章调试步骤、结果、使用说明 (15) 第8章设计总结 (16) 附录A:程序清单 (20)

第1章课程设计的要求、目的 1.1 课程设计的要求 (1)设计要符合项目的工作原理,连线要正确,端了要不得有标号。选择合理的元件,电阻,电容等器件的参数要正确标明。原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。 (2)音乐提示定时器要求通过设计4个按键设置现在想要倒数的时间:K1--可调整倒数时间为1-60分钟,能够实现时间可调;K2—设置倒数计时时间为5分钟,显示为“0500”;K3—设置倒数计时时间为10分钟,显示为“1000”;K4—设置倒数计时时间为20分钟,显示为“2000”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐,而且可循环播放,可随时人为停止;内定倒数计时时间为5分钟,显示为0500。 (3)设计合理的晶振电路,要求系统晶振频率为11.0592MHz,时间设计要求准确、可靠,要求时间随时可调,计时随时可中断。复位电路可靠、合理,可以实现对音乐播放、时间设定、调整时间的控制,满足方便、简捷的要求。要求系统能够发出准确的音乐,流畅、无杂音,可循环播放。数码显示要稳定,无闪烁,准确,与现实时间同步。 (4)写说明书。包括原理图设计说明,程序设计说明并画出工作原理图,程序流程图并给出程序清单。 1.2 课程设计的目的 课程设计的目的有: (1)加深对基础知识的理解,进一步熟悉和掌握单片机的结构及工作原理。 (2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。明确原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。

定时计数器的四种工作方式

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,T MOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。 从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF 1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。 https://www.360docs.net/doc/699374801.html, 希望大家常来本站学习单片机相关知识 计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。

<单片机定时器/计数器结构> 定时/计数器的四种工作方式 工作方式0 定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位组成13位的计数器,此时TL(1/0)的高3位未用。 我们用这个图来讨论几个问题: M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。 C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们��编程者。如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这是个极普通的常识,几乎没有教材会提这一点,但很多开始学习者却会有此困惑。 GATE:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况 GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端I NT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。

用定时器T0的模式1实现长时间定时

定时器T0的模式1实现长时间定时 使用定时器T0的中断来控制引脚LED的闪烁,要求闪烁周期2s,即亮1s,灭1s。本例采用的电路原理图如图6-2所示。 1.实现方法 定时器T0工作于方式1时,其最大可计脉冲数次数为65536,对于12MHz的时钟频率,一个脉冲的宽度为μs,则最大计时长度只有×65536=65536μs,即大约65ms。所以要计时1s或更长的时间,还需采用一种被称作“软件计数”的方法:设置一个变量Countor来储存定时器T0的中断次数,即每产生1次中断,使变量Countor自加1,如果T0每50ms中断1次,那么当Countor自加20次时,所计时间就是1s。 2.程序设计 先建立文件夹“CHANG”,然后建立“CHANG”工程项目,最后建立源程序文件“”。输入以下源程序: //实例46:用定时器T0模式1的实现长时间定时 #include<> // 包含51单片机寄存器定义的头文件 sbit D1=P2^0; //将D1位定义为引脚 unsigned char Countor ; //设置全局变量,储存定时器T0中断次数 /************************************************************** 函数功能:主函数 **************************************************************/ void main(void) { EA=1; //开总中断 ET0=1; //定时器T0中断允许

TMOD=0x01; //使用定时器T0的模式1 TH0=(65536-50000)/256; //定时器T0的高8位赋初值 TL0=(65536-50000)%256; //定时器T0的低8位赋初值 TR0=1; //启动定时器T0 Countor=0; //从0开始累计中断次数 while(1) //无限循环,等待中断 ; } /************************************************************** 函数功能:定时器T0的中断服务程序 **************************************************************/ void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数 { Countor++; //中断次数自加1 if(Countor= =20) //若累计满20次,即计时满1s { D1=~D1; //按位取反操作,将引脚输出电平取反 Countor=0; //将Countor清0,重新从0开始计数 } TH0=(65536-50000)/256; //定时器T0的低8位重新赋初值 TL0=(65536-50000)%256; //定时器T0的低8位重新赋初值 } 3.用Proteus软件仿真 经Keil软件编译通过后,可利用Proteus软件进行仿真。在Proteus ISIS 编辑环境中绘制好图6-2所示仿真电路图后,或打开配套光盘中的“仿真实例\第六章\ CHANG”文件夹内

单片机实验之定时器计数器应用实验二

一、实验目的 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满200个脉冲,则取反P1.0口线状态,在P 1.0口线上接示波器观察波形。 三、电路原理图 六、实验总结 通过本实验弄清楚了定时/计数器计数功能的初始化设定(TMOD,初值的计算,被计数信号的输入点等等),掌握了查询和中断工作方式的应用。 七、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续方波,利用定时器1,对 P1.0口线上波形进行计数,满50个,则取反P1.1口线状态,在P 1.1口线上接示波器观察波形。 答:程序见程序清单。

四、实验程序流程框图和程序清单。 1、定时器/计数器以查询方式工作,对外部连续周期性脉冲信号进行计数, 每计满100个脉冲,则取反P1.0口线状态。 汇编程序: START: LJMP MAIN ORG 0100H MAIN: MOV IE, #00H MOV TMOD, #60H MOV TH1, #9CH MOV TL1, #9CH SETB TR1 LOOP: JNB TF1, LOOP CLR TF1 CPL P1.0 AJMP LOOP END C语言程序: #include sbit Y=P1^0; void main() { EA=0; ET1=0; TMOD=0x60; TH1=0x9C; TL1=0x9C; while(1) { TR1=1; while(!TF1); TF1=0; Y=!Y; } }

CPLD单片机定时器音乐播放器

基于CPLD与51单片机的定时器与音乐播放器 马大康 06007122 万树 06007113 覃朋 06007110 2009.12

一、系统简介 本系统利用CPLD 和51单片机联合实现了倒计时器和音乐播放器的功能。作 为《电子系统设计》的课程设计,本系统充分利用了两块开发板上的资源,并实 现了可编程器件与单片机之间的串口异步通信,器件连接方便,并有良好的人机 交互界面。 二、系统结构框图与思路 图2 CPLD 内部功能模块划分及连接 经过对两块开发板板上资源的对比,我们发现,CPLD 板上的资源较为丰富, 尤其是其8个独立按键和1602液晶屏,十分适合人机交互,因此我们选择用CPLD 开发板作为主控板。单片机板上拥有4个七段数码管,显示变化的数字十分方便, 可以构成1?60分钟可变初值的倒计时器。 由于之前的实验中已经实现了在CPLD 中嵌入简易的UART,因此可以利用 CPLD 上的8个拨码开关设定倒计时器的初值,并通过异步串行通信传输给单片 机。单片机上的拨码可以实现对倒计时器进行暂停、清零。 图1 系统结构框图

除此之外,由于CPLD板上已有蜂鸣器,可以播放预先存入的歌曲,并通过板上的其他按键控制音斥的暂停与继续播放。介于上述分析,设计的系统结构框图如图1所示,CPLD中功能模块的划分如图2所示。 操作流程: CPLD板上: Keyl->进入倒计时器模式,设定倒计时器初值(通过8个拨码),液晶屏上显示u D-counter Set time needed M。 Key2-〉发送倒计时器初值到单片机,单片机开始倒计时,液晶屏上显示“ D-counter D-countering n Key3->进入音乐盒模式,播放音乐《喀秋莎》。 Key4->暂停音圧播放 单片机板上: 在倒讣时过程中,将拨码开关1向上拨,倒计时暂停,向下拨后继续倒计时。 在倒计时过程中,按下CPLD板上的Keyl后(此时为设定初值模式),将拨码开关2向上拨,倒计时器清零,此时可对其重新置初值。 三、功能模块的实现 1、异步串行发送模块 想要在CPLD中嵌入异步吊行通信模块,就必须对异步吊行通信协议有深入的理解,由于系统中只用到了发送模块,这里仅对发送模块的设计做介绍。 在空闲时,发送1。当发送使能WR为高电平且发送缓冲寄存器为高电平时, 向发送缓冲寄存器中写入待发送的数据。当发送移位寄存器为空时,将发送缓冲寄存器中的值置入发送移位寄存器,并将TxDone变为低电平,表示发送一个字节的周期开始,此时不能向发送寄存器中置数。发送周期开始首先发送一个低电平作为起始位,接着从数据的低位开始发送数据,发送结束后发送高电平作为结束位,并将TxDone变为高电平,表示发送一个字节结束。 整个模块的状态图如图3所示。 图3

实验三定时器计数器应用实验一

定时器/计数器应用实验一 设计性试验 2012年11月14日星期三第三四节课 一、实验目的 1、掌握定时器/计数器定时功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P 1.0口线上接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P 1.1口线上接示波器观察波形。 三、电路原理图

四、实验程序流程框图和程序清单及实验结果 /********* 设计要求:(a)单片机的定时器/计数器以查询方式工作, 在P1.0口线上产生周期为200us的连续方波 编写:吕小洋 说明:用定时器1的方式1以查询方式工作 时间:2012年11月10日 ***************/ ORG 0000H 开始 系统初始化

START: LJMP MAIN ORG 0100H MAIN: MOV SP, #2FH CLR EA ;关总中断 CLR ET1 ;禁止定时器1中断 MOV TMOD, #00010000B ;设置定时器1为工作方式1 MOV TH1, #0FFH ;设置计数初值 MOV TL1, #9CH SETB TR1 ;启动定时器 LOOP: JNB TF1, LOOP ;查询计数是否溢出 MOV TH1, #0FFH ;重置计数初值 MOV TL1, #9CH CLR TF1 ;清除计数溢出标志 CPL P1.0 ;输出取反 LJMP LOOP ;重复取反 END

课程设计(论文)_基于单片机音乐倒数定时器的设计

目录 一、设计要求 (1) 二、设计目的 (1) 三、设计的具体实现 (2) 1系统概述 (2) 2单元电路设计 (3) 3软件程设计和调试 (7) 四、结论和展望 (24) 五、心得体会及建议 (25) 六、附录 (26) 七、参考文献 (27)

基于单片机音乐倒数定时器的设计 报告 一、设计要求 利用单片机结合LCD显示器设计一个倒数计时器,可以放在家中使用,例如煮方便面、煮开水或小睡片刻等,做一小段时间计时。当倒数计时为0时,则发出一段音乐,通知倒数终了,该做重要的事情了。 具体要求: ①文字型LCD(16*2)显示目前倒数的时间;显示格式为“TIME 分分:秒秒”;具有4个按键操作来设置现在想要倒数的时间;一旦按键后则开始倒数计时,当计时为零则发出一阵音乐声响,②程序执行后工作指示灯LED闪动,表示程序开始执行,七段显示器显示“0500”,按下操作键K1~K4动作如下:操作键K1,可调整倒数时间1min~60min;操作键K2,设置倒数计时时间为5min,显示“0500”;操作键K3,设置倒数计时时间为10min,显示“1000”;操作键K4,设置倒数计时时间为20min,显示“2000”,③RESET 后按下K1显示如下: UP DOWN OK TIME 04:59 倒数时间 操作键K2:增加倒数计时1min;操作键K3,减少倒数计时1min,操作键K4:设置完成。④一旦按键后则开始倒数计时,当计时为 0时则发出一段音乐,同时继电器启动 二、设计目的 1、通过该设计能提高学生分析解决问题的能力。 2、了解模拟电路及数字电路的相关知识。 3、学习单片机定时器时间计时处理、按键扫描、LCD显示及音乐旋律演奏的设计方法。

《单片机原理及应用》课程设计 音乐 定时器

《单片机原理及应用》课程设计 音乐定时器 姓名 院系信息学院 班级电气1082 学号2008116312 指导教师张瑛 时间2011年 5 月 30日

摘要 目录 摘要 I 1设计要求 (1) 2设计思路 (1) 3简易流程图 (1) 4源程序 (2) 4.1定时器部分 (2) 4.2音乐输出部分 (4) 5电路图 (7) 摘要 本设计为基于at89c51芯片设计的音乐定时器,定时器通过键盘输入定时时间,开始计时后等待到达预订时间,即输出两分钟的音乐。设计采用了4位数码管显示时间定时,扫描键盘负责输入、控制,两片89c51同时工作,一个负责定时、输入、显示、控制,另一个专门负责输出音乐。 关键词:定时器;音乐;51单片机

广东海洋大学《电子线路CAD》课程设计 音乐定时器 电气1082,200811631214,黄磊 指导教师:张瑛 1设计要求 设计要求:定时时间可任意设置(小于60分钟),设定值通过键盘输入,定时时间到发出音乐.音乐响2分钟,自动结束,中间也可以手动控制. 2设计思路 通过数码管的动态显示,显示定时器的定时。定时的时间由扫描键盘输入,并启动以及暂停定时,音乐通过另一片89C51实现音乐发声器。设计通过掌握汇编语言的编程方法. 运用89C51单片机定时器产生固定频率的方波信号,推动喇叭发出旋律。 实现功能: 定时启动音乐演奏。 定时时间由用户通过键盘输入。 可以中途停止音乐演奏。 3简易流程图

鸣谢4源程序 4.1定时器部分 ORG 0000H LJMP MAIN ORG 0003H LJMP BREAK0 MAIN: SETB IT0 ;设置中断 SETB EX0 MOV TMOD,#01H;设置定时器0方式1 MOV TH0,#0D8H ;初D8F0定时10ms MOV TL0,#0F0H CLR A MOV R0,#0H MOV R1,#0H MOV R4,#0H MOV R5,#0H CALL KEY MOV R0,A MOV A,#0E0H ;输出显示十位 MOV P2,A MOV A,R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A CALL KEY MOV R1,A ;输入个位 SETB EA ;设置中断允许 WAIT: CALL SHOW ;等待开始 JMP W AIT BEGIN: SETB EA ;设置中断允许JP0: CALL SHOW DEC R5 CJNE R5,#0FFH,JP0 DEC R4 MOV R5,#9H CJNE R4,#0FFH,JP0 DEC R1 MOV R4,#5H CJNE R1,#0FFH,JP0 DEC R0 MOV R1,#9H CJNE R0,#0FFH,JP0 JMP BEEP SHOW: MOV R3,#25H LOOP: MOV R2,#0D0H ;设置分输出个位 MOV P2,R2 MOV A,R1 ;取分个位数值 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A ;输出 CALL DY12 MOV R2,#0E0H ;设置输出分十位 MOV P2,R2 MOV A,R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A CALL DY12 MOV R2,#70H ;设置输出秒个位 MOV P2,R2 MOV A,R5 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A CALL DY12 MOV R2,#0B0H ;设置输出秒十位 MOV P2,R2 MOV A,R4 MOV DPTR,#TAB

单片机课程设计音乐闹钟定时器

目录: 0、任务书 (2) 1、系统总体设计方案规划与选定 (2) 2、硬件设计 (5) 3、软件设计 (6) 4、调试 (8) 5、新增功能及实现方法 (8) 6、小结与体会 (9) 7、参考文献 (9) 8、附录 (10)

0.任务书 基于51单片机设计一个电子数字钟,显示时、分、秒,且具有闹钟功能。用8255接口实现4*8键盘及8位LED显示。 32个键:0~9共10个键,调时(设置当前时间)键;设定闹钟(定时)键;走时键;光标左右移动各一个键。 要求键复位后,应该最后面的LED上显示H(待命状态)。 1. 系统总体设计方案规划与选定 1.1主控制芯片选择 方案一:采用ARM微处理,做主控芯片,计算速度快,缺点;成本高,控制较复杂,不容易焊接。 方案二:采用80C51单片机做主控制器,由单片机来完成采集和信号处理等底层的核心计算,做主控芯片,成本低,易控制,易实现。 经过以上两个方案比较,在此题方案二明显优于方案一,故采用80C51单片机做主控制器。 1.2定时模块选择 方案一:采用时钟芯片DS1302。 DS1302 可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录,且较单片机计时简单节约硬件资源,但存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。 方案二:采用单片机内部的定时系统,外接晶振进行分频脉冲计数。

此系统采用12MHz晶振。 由于方案二使用简单,比方案一更适用该系统设计,所以选择方案二。 1.3 LED显示及计时模块选择 方案一:74LS192计数器——74LS47七点显示译码器 74LS192芯片是一块可预置数可逆计数芯片,功能强大。将74LS192芯片CPU引脚接高电平可实现减法计数,以倒计时显示。可通过74LS47与LED共阳极数字显示器配合使用。 方案二:使用移位寄存器74HC595与译码器相连 74HC595具有8位移位寄存器和一个存储器,使用时可直接与数字显示器相连。 方案三:使用8255扩展LED显示计时模块 8255是一个可编程并行接口芯片,有一个控制口和三个8位数据口,外设通过数据口与单片机进行数据通信,各数据口的工作方式和数据传送方向是通过用户对控制口写控制字控制的。我们用到了A与B口分别进行对数码显示管的片选和段选,且B口同时作为键盘扫描模块的输入口,与数码显示模块分时复用。故采用方案三 1.4蜂鸣器的选择 方案一:电磁式蜂鸣器 电磁式蜂鸣器主要是利用通电导体会产生磁场的特性,用一个固定的永久磁铁与通电导体产生磁力推动固定在线圈上的鼓膜。电磁式由于音色好,所以多用于语音、音乐等设备。对于不同提示音且考虑实际,此种较好。 方案二: 压电式蜂鸣器

单片机音乐倒数定时器的设计

1.基于单片机音乐倒数定时器的设计报告 2.【摘要】计时器在单片机模块中是比较常见的模块,计时器是一种用数字电路技术实现的计时装置, 与机械师中相比具有更高的准确性与直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。本设计采用AT89C51单片机对定时器的设计来实现一个简单的多功能的音乐倒计时报警器,通过三个按键可设定任意时间的倒计时报警器来满足用户的简单要求,如烧开水,煮面等简单问题。 3.【关键词】定时计数器;音乐代码;1602液晶显示

4............................................................ 目 录 5.引言 (1) 6.一、设计要求 (2) 7.二、设计目的 (2) 8.三、设计的具体实现 (2) 8.1.1.系统概述 (2) 8.1.1....................................................................................... 1.1 总体方案论证 (2) 8.1.2....................................................................................... 1.2 单片机选择方案 (3) 8.2.2.单元电路设计 (4) 8.2.1....................................................................................... 2.1 控制电路 (5) 8.2.2....................................................................................... 2.2 控制程序 (8) 8.3.3.软件程设计和调试 (7) 8.3.1....................................................................................... 3.1 延时时间的计算 (7) 8.3.2....................................................................................... 3.2 工作方式设计 (8)

单片机实验-定时器计数器应用实验二

定时器/计数器应用实验二 一、实验目的和要求 1、掌握定时器/计数器计数功能的使用方法。 2、掌握定时器/计数器的中断、查询使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、实验内容或原理 1、利用单片机的定时器/计数器以查询方式计数外 部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波。 2、利用单片机的定时器/计数器以中断方式计数外 部连续周期性矩形波并在单片机口线上产生某一 频率的连续周期性矩形波。 三、设计要求 1、用Proteus软件画出电路原理图,单片机的定时 器/计数器以查询方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满100 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 2、用Proteus软件画出电路原理图,单片机的定时 器/计数器以中断方式工作,设定计数功能,对 外部连续周期性脉冲信号进行计数,每计满200 个脉冲,则取反P1.0口线状态,在P 1.0口线上 接示波器观察波形。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、电路原理图。 4、实验程序流程框图和程序清单。 5、实验结果(波形图)。 6、实验总结。 7、思考题。 五、思考题 1、利用定时器0,在P1.0口线上产生周期为200微秒的连续 方波,利用定时器1,对P1.0口线上波形进行计数,满 50个,则取反P1.1口线状态,在P 1.1口线上接示波器 观察波形。 原理图:

程序清单: /*功能:用计数器1以工作方式2实现计数(查询方式)每计满100个脉冲,则取反P1.0口线状态*/ ORG 0000H START:MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH MOV IE,#00H SETB TR1 LOOP:JBC TF1,LOOP1 AJMP LOOP LOOP1:CPL P1.0

51单片机定时器模式1使用

51单片机定时器模式1使用特殊功能寄存器如下 使用TCON和TMOD TF:溢出标志为1时表示溢出需要手工置0 TR:开始计时为1开始为0停止 M1,M0 :工作模式 01为模式1 //16位 65536 GATE门暂不使用置0 C/T:定时/计数 TH0,TL0:定时器0初始值 方法: 1、设定TMOD 2、设定初始值TH TL 3、设定TCON 开始计时

实例:共阳七段数码管0-F循环显示延时1s 七段共阳数码管真值表 const uint8 ledcode[]={ 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x90, // 9 0x88, // A 0x83, // B 0xC6, // C 0xA1, // D 0x86, // E 0x8E // F }; 延时1s计算 溢出20次每次50ms

TH0 TL0计算: 65536-((0.05x11059200)/12)=0x4c00 TH0=0x4c TL0=0x00 #include; typedef unsigned char uint8; typedef unsigned int uint16; sbit en=P1^7; const uint8 ledcode[]={ 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x90, // 9 0x88, // A 0x83, // B 0xC6, // C 0xA1, // D

定时器的使用

一、PLC定时器的使用 实际上有多种多样的定时器, 这也是它们有趣的地方. 通常, 不同生产商都提供不同类型的定时器. 下面是最常用的一些定时器: ·延时ON定时器(On-Delay Timer) --这种类型的定时器为"延时后变为ON". 换句话说, 当我们的传感器(输入)变为ON以后, 等待x秒后, 才激励一个电磁阀(输出). 这是最常见的定时器. 它通常叫做TON(timer on-delay, 延时ON定时器), TIM(timer, 定时器)或TMR(timer). ·延时OFF定时器(Off-Delay Timer) --这种定时器与上面提到的延时ON定时器刚好相反. 这种定时器仅仅"延时OFF". 我们的传感器(输入)检测到目标后, 激励电磁线圈(输出). 当传感器检测不到目标时, 电磁线圈将保持被激励的状态x秒后才变为OFF. 这种定时器叫做TOF(延时OFF定时器), 它较上面提到的延时ON定时器少见.(例如, 很少生产商在其PLC中装入这种定时器). ·保持或累积定时器--这种定时器需要两个输入端. 一个输入端启动定时器(即时钟开始计时), 另一个输入端将定时器复位.如果输入传感器在整个定时时间内没有ON/OFF, 则上面提到的延时ON或OFF传感器将被复位.而当传感器中途断开时, 这种定时器将保持当前状态, 直到将其复位为止. 例如, 我们想知道在1个小时内传感器为ON的时间有多长. 如果我们用上面提到的那些定时器, 当传感器变为OFF或ON时, 它们将保持复位. 而保持或累积定时器, 将给我们一个总的或累积的时间. 我们通常把它叫做RTO(Retentive Timer, 保持定时器)或TMRA(Accumulating Timer, 累积定时器). 下面我们来看一下怎样使用它们. 典型地, 我们需要知道两件事情: 1. 用什么启动定时器. 典型情况下为一输入. (例如连接到输入0000的一个传感器) 2. 在做出反应前, 我们要延时多长时间. 例如, 我们在使一个电磁阀打开前要等待5秒钟. 当定时器符号前面的指令为真(True)时, 定时器开始计数. 当定时时间到达时, 定时器将自动关闭它的触点. 当程序在PLC上运行时, 将显示逝去的或"累积的"时间, 便于我们观察当前值. 典型定时器的定时范围为0到9999或0到65535次. 为什么是这么怪异的数字呢? 这是因为大多数的PLC使用的是16位定时器. 我们将在以后学习这是什么意思, 现在我们只要知道0-9999是16位BCD(Binary Coded Decimal, 二进制编码的十进制数), 0到65535是16位二进制数就行. 时钟每计一次为X秒. 典型地, 每个生产商提供几种不同的计数单位. 大多数厂家提供10和100ms的增量. 一"ms"是一毫秒或1/1000秒. 一些生产商也提供1ms或1秒的增量. 这些不同增量的计数器工作起来和上面讲的一样, 只是有时为了表明它们的时基不同,它们的名称不一样. 有的叫做TMH(High speed Timer, 高速定时器), TMS(Super high speed Timer, 超高速定时器), 或TMRAF(Accumulating Fast Timer, 累积式快速定时器). 下面是一个典型的定时器指令符号, 我们该怎样使用它呢? 记住一点, 当它们外表看起来不同时, 它们的基本用法都是相同的. 如果我们会设置一个, 我们就会设置所有的定时器.

音乐定时器

湖南工程学院 课程设计 课程名称单片机原理与应用 课题名称音乐提示定时器 专业测控技术仪器 班级1101 学号201101200128 姓名黄瑞峰 指导教师周向红、肖峰、李晓秀、汪超 2014年3 月7 日

湖南工程学院 课程设计任务书 课程名称单片机原理与应用 课题音乐提示定时器 专业班级测控1101 学生姓名黄瑞峰 学号201101200128 指导老师周向红、肖峰、李晓秀、汪超 审批 任务书下达日期2014 年2月24 日任务完成日期2014 年3 月7 日

设计内容与设计要求 设计内容: 本课题要求以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。设计任务包括控制系统硬件设计和应用程序设计。 设计要求: 1)确定系统设计方案; 2)进行系统的硬件设计; 3)完成必要元器件选择; 4)开发板焊接及测试 5)系统软件设计及调试; 6)系统联调及操作说明 7)写说明书

主要设? 条件 音乐提示定时器设计4个按键设置现在想要倒数的时间:K1--可调整倒数时间为1-60分钟;K2—设置倒数计时时间为5分钟,显笺为“05”;K3—设置倒数计时时间为20分钟,显示为“20”;K4—设置倒数计时时间为60分钟,显示为“60”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为05。 说明书格式 封面 课程设计任务书 目录 第1章、概述 第2章、系统总体方案设计 第3章硬件设计 第4章开发板焊接及其测试 第5章软件设计与说明(包括流程图) 第6章调试步骤、结果、使用说明 第7章设计总结 第8章参考文献 附录:系统电路原理图(用PROTEL99制作)、系统程序清单。 电气与信息工程系课程设计评分表

MSP430 定时器A和B 中断定时 1秒操作

MSP430 定时器A 和B 中断定时1 秒操作 /********************TimerA0 1 秒定时TIMER B 1 秒定时溢出中断: MCLK = 2MHz DCOCLKLFXT1 = 32768Hz ACLK***********************/ #include unsigned int i;unsigned int times,times_b;unsigned int sec; /***** 定时器A 初使化*******/void TimerA_Init(void){TACTL = TASSEL_1 + ID0 + TACLR ; //ACLK=32768Hz ,清除tar ,2 分频CCTL0 = CCIE; //CCR0 = 819; // (1/32768)*819 =20 ms ??TACTL |= MC0; //增计数}/**** 定时器 B 初使化*****/void TimerB_Init (void){TBCTL = TBSSEL_1 + ID0 + TBCLR ; //ID_2 + ID1 +TBCCTL0 = CCIE; // INTERRUPT ENABLETBCCR0 = 819; //TBCTL |= MC0;}/***** 秒测试 1 秒响一下********/void Sec_Beep(void) //beep every second{ if(sec==1){ sec = 0; P5OUT – 0x10;}}void main( void ){times = 20;times_b = 20;WDTCTL = WDTPW + WDTHOLD;// SYstem clockDCOCTL = 0x60;BCSCTL1 = 0x86;//XT20FF ,XTS=0 LOW FREQ , RESEL=6 DCOCLK=2MHz// XT2on, XTS DIVA.1 DIVA.0 XT5V RSEL.2 RSEL.1 RSEL.0// 1 0 0 0 0 1 1 0BCSCTL2 = 0x00; //MCLK = DCOCLK, DIVM=0, SMCLK=CCOCLK ,DIVS =0P1DIR |= 0x02; //p1.2 OUTP5DIR |= 0x10; //P5.4 OUTTimerA_Init(); //定时器初使化TimerB_Init();_EINT(); // interrupt enablefor(;;) { _BIS_SR(LPM3_bits); _NOP();}} /****** 定时器 A 中断处理***********/#pragma vector = TIMERA0_VECTOR__interrupt void Timer_A (void){ times--;if(times == 0){ times = 20; sec=1; Sec_Beep();}}/****** 定时器B 中断 处理***********/#pragma vector = TIMERB0_VECTOR__interrupt void Timer_B0 (void){ times_b--; if(times_b == 0) { times_b = 20; P1OUT – 0x02; }}

定时器工作原理

定时器工作原理 通电延时型。只要在定时的时间段内(即1分钟)定时器一直得电,则常开触电就会闭合,只要定时器不断电常开触电就会一直闭合。定时器断电则常开触电断开 1,定时器/计数器的结构与功能 主要介绍定时器0(T0)和定时器1(T1)的结构与功能。图6.1是定时器/计数器的结构框图。由图可知,定时器/计数器由定时器0、定时器1、定时器方式寄存器TMOD 和定时器控制寄存器TCON组成。 定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成:定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。 图6.1 定时器/计数器结构框图 TL0、TL1、TH0、TH1的访问地址依次为8AH~8DH,每个寄存器均可单独访问。定时器0或定时器1用作计数器时,对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数,每输入一个脉冲,加法计数器加1;其用作定时器时,对内部机器周期脉冲计数,由于机器周期是定值,故计数值确定时,时间也随之确定。 TMOD、TCON与定时器0、定时器1间通过内部总线及逻辑电路连接,TMOD用于设置定时器的工作方式,TCON用于控制定时器的启动与停止。 6.1.1 计数功能 计数方式时,T的功能是计来自T0(P3.4)T1(P3.5)的外部脉冲信号的个数。 输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。外部输入信号的下降沿将触发计数,识别一个从“1”到“0”的跳变需2个机器周期,所以,对外部输入信号最高的计数速率是晶振频率的1/24。若晶振频率为6MHz,则计数脉冲频率应低于1/4MHz。当计数器满后,再来一个计数脉冲,计数器全部回0,这就是溢出。 脉冲的计数长度与计数器预先装入的初值有关。初值越大,计数长度越小;初值越小,计数长度越大。最大计数长度为65536(216)个脉冲(初值为0)。 6.1.2 定时方式 定时方式时,T记录单片机内部振荡器输出的脉冲(机器周期信号)个数。 每一个机器周期使T0或T1的计数器增加1,直至计满回零自动产生溢出中断请求。 定时器的定时时间不仅与定时器的初值有关,而且还与系统的时钟频率有关。在机器周期一定的情况下,初值越大,定时时间越短;初值越小,定时时间越长。最长的定时时间为65536(216)个机器周期(初值为0)。 6.2 定时器/计数器控制寄存器 与对定时器/计数器有关的控制寄存器共有4个:TMOD、TCON、IE、IP。IE、IP已在中断一节中介绍,这里不再赘述。

相关文档
最新文档