




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5 5章章 80C5180C51的中断系统及定时的中断系统及定时/ /计数器计数器2022-5-3180C51单片机的单片机的中断系统中断系统5.180C5180C51单片机的单片机的中断处理过程中断处理过程5.280C5180C51单片机的单片机的定时定时/ /计数器计数器5.380C5280C52的定时的定时/ /计数器计数器2(2(不讲不讲) )5.4提出要求:提出要求:1、有参与计数的实体(计数长度可变)、有参与计数的实体(计数长度可变)2、 有计数脉冲的引入,有溢出位有计数脉冲的引入,有溢出位3、可以置入初值、可以置入初值溢出溢出计数脉冲计数脉冲置入初值置入初值计数长度为计数长度
2、为n的计数器的计数器溢出溢出计数脉冲计数脉冲CP置入初值置入初值长度为长度为n的计数器的计数器长度为长度为n的计数器的计数器定时器定时器/计数器可计数器可由触发器构成由触发器构成计数状态满足计数状态满足一定条件时有一定条件时有输出输出有置入初值有置入初值的途径的途径最大计数长度:最大计数长度:CPn个2最大定时时间:最大定时时间:CPTn2对于加对于加1计数器,若初值为计数器,若初值为x,则记录,则记录m个脉冲后溢出。个脉冲后溢出。xmn2结论:为实现结论:为实现m个脉冲的计数,则需置入初值个脉冲的计数,则需置入初值x,mxn22 2、定时(延时)、定时(延时)t t1 1、计数、计数m m个
3、脉冲个脉冲任务的类型:任务的类型:计算:计算: 置入初值。置入初值。mxn2计算:计算: 置入初值。置入初值。mxTtmCPn25.3 80C51单片机的定时单片机的定时/计数器计数器2022-5-355.3.1 5.3.1 定时定时/ /计数器的结构和工作原理计数器的结构和工作原理 2种工作模式种工作模式:(1)计数器工作模式)计数器工作模式(2)定时器工作模式)定时器工作模式4种工作方式种工作方式(方式方式0-方式方式3)。由图看到:由图看到:1、两个可编程的定时器、两个可编程的定时器/计数器计数器T1、T0。2、出现的、出现的SFR有:有: TH0、TL0、TH1、TL1 TMOD、TC
4、ON借助于借助于SFR,实现:,实现:两种不同的计数脉冲的引两种不同的计数脉冲的引入,并借助于入,并借助于TMOD用于用于区分模式。区分模式。用用TMOD来安排来安排工作方式。工作方式。2022-5-37v定时定时/ /计数器的工作原理计数器的工作原理实质是实质是1616位加位加1 1计数器计数器v 定时器模式时,是对内部定时器模式时,是对内部机器周期机器周期计数。计数值乘以机计数。计数值乘以机器周期就是定时时间器周期就是定时时间 v 计数器模式时,是对计数器模式时,是对外部事件外部事件计数。脉冲由计数。脉冲由T0T0(P3.4P3.4)或或T1T1( (P3.5P3.5) )引脚输入。引脚输
5、入。 注意注意:(:(若若计数值计数值为为m m, ,计数初值计数初值为为X X) )溢出信号使溢出信号使TF0TF0或或TF1TF1置置1 1,并,并发出中断请求发出中断请求,1616位时有:位时有: m=65536-Xm=65536-X,或,或X=65536-mX=65536-m12MHz12MHz晶振时,计数频率低于晶振时,计数频率低于0.5MHz 0.5MHz GATE C/ T M1 M0 GATEM1C/ TM0定时器定时器T1定时器定时器T0TMOD(89H) D7 D6 D5 D4 D3 D2 D1 D02022-5-39M1M0工作方式说 明00方式013位定时/计数器01方
6、式116位定时/计数器10方式28位自动重装定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 2022-5-310v控制寄存器控制寄存器TCONTCON 76543210TCONTF1TR1TF0TR0字节地址:88H2022-5-3115.3.3 5.3.3 定时定时/ /计数器的工作方式计数器的工作方式T0T0有方式有方式0 0、1 1、2 2、3 3;T1T1有方式有方式0 0、1 1、2 2。以。以T0T0为例说明。为例说明。v方式方式0 0:1313位方式位方式 2022-5-312 C/T=1 C/
7、T=1时,则为计数模式,有:时,则为计数模式,有: X= 2X= 21313-m= 8192-m-m= 8192-m C/T=0 C/T=0时,则为定时模式,有:时,则为定时模式,有: X= 2X= 21313-m = 8192-m-m = 8192-m,m=m=t t/Tcy/Tcy【例例5-35-3】若计数个数若计数个数m m 为为2 2,求计数初值。,求计数初值。 X= 8192 X= 81922=8190=1FFEH2=8190=1FFEH= 1 1111 1111 1110B= 1 1111 1111 1110B 初值计算:初值计算:上述初值如何分配给上述初值如何分配给TH0、TL0
8、注意注意:方式:方式0的计数初值高的计数初值高8位和低位和低5位确定麻烦位确定麻烦 ,实际,实际应用中常由应用中常由16位的方式位的方式1取代。取代。2022-5-313v方式方式1 1:1616位方式位方式 v X=2X=21616-m =65536-m -m =65536-m 计数范围:计数范围:1 16553665536v 计数初值要计数初值要分成分成2 2个字节个字节分别送入分别送入TH0TH0、TL0TL02022-5-314【例例5-45-4】若要求定时器若要求定时器T0T0工作于方式工作于方式1 1,定时时间为,定时时间为1ms1ms,当晶振为当晶振为6 MHz6 MHz时,求送
9、入时,求送入TH0TH0和和TL0TL0的计数初值各为多少?的计数初值各为多少?应怎样送入应怎样送入TH0TH0和和TL0TL0?由于晶振为由于晶振为6 MHz6 MHz,所以机器周期,所以机器周期TcyTcy为为2 2S S,因此:,因此:m =t/Tcym =t/Tcy=1=11010-3-3/2/21010-6-6500500X X2 21616-m -m 65536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2条指令完成:条指令完成:v MOV TL0,#(65536-500) MOV TL0,#(65536-500)MODMO
10、D 256 ; 256 ;余数余数为计数初值的为计数初值的低字节低字节v MOV TH0,#(65536-500) MOV TH0,#(65536-500)/ /256 ; 256 ; 商商为计数初值的为计数初值的高字节高字节用传送指令分别将用传送指令分别将FEHFEH送入送入TH0TH0中,中,0CH0CH送入送入TL0TL0中即可。中即可。举例举例2022-5-315v方式方式2 2:8 8位自动重装方式位自动重装方式 v X=2X=28 8-m =256-m -m =256-m 计数范围:计数范围:1 1256256v 特别适合与脉冲信号发生器特别适合与脉冲信号发生器2022-5-316
11、v方式方式3 3:(仅(仅T0T0有此方式,有此方式,T1T1的方式的方式3 3将停止计数)将停止计数) v TL0 TL0进行进行8 8位定时位定时/ /计数计数v TH0 TH0进行进行8 8位定时(位定时(T1T1方式方式2 2时,可出借时,可出借TR1TR1、TF1TF1)2022-5-3175.3.4 5.3.4 定时定时/ /计数器用于外部中断扩展计数器用于外部中断扩展例:用例:用T0T0扩展一个外部中断源。将扩展一个外部中断源。将T0T0设置为计数器方式,设置为计数器方式,按方式按方式2 2工作,工作,TH0TH0、TL0TL0的初值均为的初值均为0FFH0FFH,T0T0允许中
12、断,允许中断,CPUCPU开放中断。其初始化程序如下:开放中断。其初始化程序如下: MOV TMOD,#06H ;MOV TMOD,#06H ;置置T0T0为计数器方式为计数器方式2 2 MOV TL0,#0FFH ; MOV TL0,#0FFH ;置计数初值置计数初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0 ; SETB TR0 ;启动启动T0T0工作工作 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB ET0 ;SETB ET0 ;允许允许T0T0中断中断 T0T0外部引脚上出现一个下降沿信号时,外部引脚上出现一个下降沿信号时,TL0
13、TL0计数加计数加1 1,产生,产生溢出,将溢出,将TF0TF0置置1 1,向,向CPUCPU发出中断请求发出中断请求 2022-5-3185.3.5 5.3.5 定时定时/ /计数器应用举例计数器应用举例初始化程序应完成:初始化程序应完成:v对对TMODTMOD赋值,以确定赋值,以确定T0T0和和T1T1的工作方式;的工作方式;v求初值求初值, ,并写入并写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1;v使使TR0TR0或或TR1TR1置位,启动定时置位,启动定时/ /计数器工作。计数器工作。初始化程序设计初始化程序设计 (四条指令)(四条指令)MOV TMOD,#01HMOV
14、 TMOD,#01H ;设置;设置T0T0为方式为方式1 1MOV TH0,#0FEH MOV TH0,#0FEH ;T0T0置初值置初值MOV TL0,# 0CHMOV TL0,# 0CHSETB TR0SETB TR0两种方式对溢出作出反应:查询、中断两种方式对溢出作出反应:查询、中断2022-5-319中断方式中断方式:(常用):(常用)查询方式:查询方式:1 1、在主程序中进行中断初始化、在主程序中进行中断初始化2 2、计数(定时)结束后该做的事情放在中断服务、计数(定时)结束后该做的事情放在中断服务程序中程序中1 1、反复查询是否溢出,如、反复查询是否溢出,如JNB TF0JNB T
15、F0,$ $2 2、一旦发现溢出,及时清除溢出标志、一旦发现溢出,及时清除溢出标志3 3、然后安排计数(定时)结束后该做的事情、然后安排计数(定时)结束后该做的事情2022-5-320v计数应用计数应用【例例5-55-5】有一包装流水线,产品每计数有一包装流水线,产品每计数2424瓶时发出一个包瓶时发出一个包装控制信号。试编写程序完成这一计数任务。用装控制信号。试编写程序完成这一计数任务。用T0T0完成计数,完成计数,用用P1.0P1.0发出控制信号。发出控制信号。确定方式字:确定方式字:T0T0在计数的方式在计数的方式2 2时:时:M1M0=10M1M0=10,GATE=0 GATE=0 ,
16、C/T=1C/T=1方式控制字为方式控制字为06H06H 求计数初值求计数初值X:X:N=24N=24X=256-24=232=E8HX=256-24=232=E8H应将应将E8HE8H送入送入TH0TH0和和TL0TL0中中 2022-5-321 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#06H ;MAIN:MOV TMOD,#06H ;置置T0T0计数方式计数方式2 2 MOV TH0,#0E8H; MOV
17、TH0,#0E8H;装入计数初值装入计数初值 MOV TL0,#0E8H MOV TL0,#0E8H SETB ET0 ;T0 SETB ET0 ;T0开中断开中断 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB TR0 ;SETB TR0 ;启动启动T0T0 SJMP $ ; SJMP $ ;等待中断等待中断DVT0:SETB P1.0 DVT0:SETB P1.0 NOP NOP NOP NOP CLR P1.0 CLR P1.0 RETI RETI END END主程序主程序 中断服务程序中断服务程序 2022-5-322v定时应用定时应用v 定时时间较小时(小于
18、定时时间较小时(小于65ms65ms)。可直接采用方式。可直接采用方式1 1完成定时完成定时任务。任务。 两种方式对溢出作出反应:查询、中断两种方式对溢出作出反应:查询、中断v系统时钟为系统时钟为6MHz6MHz时,时,各种方式下的最长定时的计算:各种方式下的最长定时的计算:由最长定时由最长定时=2nTcp ,而而Tcp= 2 s 方式方式0最长可定时最长可定时16.384ms; 方式方式1最长可定时最长可定时131.072ms; 方式方式2最长可定时最长可定时512 s。v晶振为晶振为12 MHz12 MHz时,时,TcyTcy为为1 1S S。最长可定时最长可定时65ms65ms2022-
19、5-323确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M0=01,GATE=0 GATE=0 ,C/T=0C/T=0方式控制字为方式控制字为0101H H 求计数初值求计数初值X:X:TcyTcy为为1 1S S N=10ms/1N=10ms/1S=10S=10 000000X=65536-10000=D8F0HX=65536-10000=D8F0H应将应将D8D8送送TH0, F0HTH0, F0H送送TL0TL0 举例举例2022-5-324 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH OR
20、G 000BH LJMP DVT0 LJMP DVT0 ORG 0100HORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1 MOV TH0,#0D8H; MOV TH0,#0D8H;装入计数初值装入计数初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB ET0 ;T0SETB ET0 ;T0开中断开中断 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB TR0 ;SETB TR0 ;启动启动T0T0 SJMP $ ; SJMP $ ;等待中断等待中断DVT0:CPL P1.0
21、DVT0:CPL P1.0 MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0F0H MOV TL0,#0F0H RETI RETI END END主程序主程序中断方式中断方式 中断服务程序中断服务程序 数数源程序的数数源程序的四要素四要素注意重装初值,注意重装初值,为什么?为什么?数数中断的四数数中断的四要素要素2022-5-325 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 0100H ORG 0100HMAIN:MOV TMOD,#01H ;MAIN:MOV TMOD,#01H ;置置T0T0方式方式1 1LOOP:M
22、OV TH0,#0D8HLOOP:MOV TH0,#0D8H; ;装入计数初值装入计数初值 MOV TL0,#0F0H MOV TL0,#0F0H SETB TR0 SETB TR0 ; ;启动启动T0T0 JNB TF0, $ JNB TF0, $ ;查询;查询TF0TF0标志标志 CLR TF0 CLR TF0 ;T0T0溢出,清标志溢出,清标志 CPL P1.0 CPL P1.0 ;P1.0P1.0的状态求反的状态求反 SJMP LOOPSJMP LOOP END END主程序主程序查询方式查询方式 2022-5-326v 定时时间较大时(大于定时时间较大时(大于65ms65ms)。实现
23、方法:。实现方法:v一是采用一是采用1 1个定时器定时一定的间隔(如个定时器定时一定的间隔(如20ms20ms),然后用软件),然后用软件进行计数;进行计数;v二是采用二是采用2 2个定时器级联,其中一个定时器用来产生周期信号个定时器级联,其中一个定时器用来产生周期信号(如(如20ms20ms为周期),然后将该信号送入另一个计数器的外部脉为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。冲输入端进行脉冲计数。 【例例5-7】2022-5-327编写程序,实现用定时编写程序,实现用定时/ /计数器计数器T0T0定时,使定时,使P1.7P1.7引脚输出周引脚输出周期为期为2s2s
24、的方波。设系统的晶振频率为的方波。设系统的晶振频率为12MHz12MHz。求计数初值求计数初值X:X:TcyTcy为为1 1S S N=20ms/1N=20ms/1S=20S=20 000000X=65536-20000=4E20HX=65536-20000=4E20H应将应将4EH4EH送送TH0, 20HTH0, 20H送送TL0TL0 采用定时采用定时20ms20ms,然后再计数,然后再计数5050次的方法实现次的方法实现-用用DJNZDJNZ指令指令 确定方式字:确定方式字:T0T0在定时的方式在定时的方式1 1时:时:M1M0=01M1M0=01,GATE=0 GATE=0 ,C/T
25、=0C/T=0方式控制字为方式控制字为0101H H 2022-5-328 ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH LJMP DVT0 LJMP DVT0 ORG 0030HORG 0030HMAIN:MOV TMOD,#01H;MAIN:MOV TMOD,#01H;置置T0T0方式方式1 1 MOV TH0,#4EH ; MOV TH0,#4EH ;装入计数初值装入计数初值 MOV TL0,#20H ;MOV TL0,#20H ;首次计数值首次计数值 MOV R7,#50MOV R7,#50 ; ;计数计数505
26、0次次 SETB ET0 ;T0 SETB ET0 ;T0开中断开中断 SETB EA ;CPUSETB EA ;CPU开中断开中断 SETB TR0 ;SETB TR0 ;启动启动T0T0 SJMP $ ; SJMP $ ;等待中断等待中断DVT0:DJNZ R7,NT0DVT0:DJNZ R7,NT0 MOV R7,#50 MOV R7,#50 CPL P1.7 CPL P1.7 NT0:MOV TH0,#4EH NT0:MOV TH0,#4EH MOV TL0,#20H MOV TL0,#20H ;SETB TR0SETB TR0 RETI RETI END END主程序主程序 中断服务
27、程序中断服务程序 1S1S到在哪里?到在哪里? 将上述例题改写成查询方式,并在将上述例题改写成查询方式,并在P1.0上输出周期为上输出周期为2秒秒的方波。的方波。 ORG 0000HRESET: LJMP MAIN ;上电,转主程序入口;上电,转主程序入口MAIN ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针;设堆栈指针 MOV B,#0AH ;设循环次数;设循环次数10次次 MOV TMOD,#01H ;设;设T0工作在方式工作在方式1 MOV TL0,#0B0H ;给;给T0设初值设初值 MOV TH0,#3CH SETB TR0 ;启动;启动T0LOOP1:JNB
28、 TF0,LOOP1 ;查询;查询TF0标志标志CLR TF0 ;T0溢出,清标志溢出,清标志MOV TL0,#0B0H ;T0溢出后溢出后,重装初值,重装初值MOV TH0,#3CH ; DJNZ B,LOOP1 ;满;满10次了吗?次了吗?CPL P1.0 ;P1.0的状态求反的状态求反MOV B,#0AH ;设循环次数;设循环次数10次次SJMP LOOP1END ORG 0000HRESET: LJMP MAIN ;上电,转主程序入口;上电,转主程序入口MAIN ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针;设堆栈指针 MOV TMOD,#01H ;设;设T0工
29、作在方式工作在方式1 SETB TR0 ;启动;启动T0CLR P1.0LOOP1:LCALL DEL1SCPL P1.0 ;P1.0的状态求反的状态求反SJMP LOOP1DEL1S: MOV B,#0AH ;设循环次数;设循环次数10次次LOOP11:MOV TL0,#0B0H ;T0溢出后溢出后,重装初值,重装初值MOV TH0,#3CH ;JNB TF0, $ ;查询;查询TF0标志标志CLR TF0 ;T0溢出,清标志溢出,清标志DJNZ B,LOOP11 ;满;满10次了吗?次了吗?RETEND当当T0T0(P3.4P3.4)引脚上发生负跳变时,从)引脚上发生负跳变时,从P1.0P
30、1.0引脚上输出一引脚上输出一个周期为个周期为1ms1ms的方波的方波, ,如图所示。(系统时钟为如图所示。(系统时钟为6MHz6MHz)举例举例1 1、有定时,有计数、有定时,有计数2 2、方式、方式2 2的应用(免重装初值)的应用(免重装初值)3 3、两个中断源、两个中断源本题分析:本题分析:1 1、 T0T0为方式为方式1 1计数,初值计数,初值 0FFFFH0FFFFH,即外部计数输入端,即外部计数输入端T0T0(P3.4P3.4)发生一次负跳变时,)发生一次负跳变时,T0T0加加1 1且溢出,溢出标且溢出,溢出标志志TF0TF0置置“1”1”,发中断请求。,发中断请求。2 2、 T1
31、T1定义为方式定义为方式2 2定时。在定时。在T0T0脚发生一次负跳变后,启脚发生一次负跳变后,启动动T1T1每每500500 s s产生一次中断,在中断服务程序中对产生一次中断,在中断服务程序中对P1.0P1.0求反,使求反,使P1.0P1.0产生周期产生周期1ms1ms的方波。的方波。本题特点:本题特点:(1)T0、T1工作方式的确定工作方式的确定 MOV TMOD, #00100101B ;各位的含义各位的含义(2)计算)计算T1初值初值 已知机器周期为已知机器周期为2 s,定时为定时为500 s 设设T1的初值为的初值为X: 则则 (28-X)210-6=510-4 S X=28-25
32、0=6=06H(3)主程序的设计)主程序的设计 完成两个定时器的初始化及中断的初始化完成两个定时器的初始化及中断的初始化 注意根据题意,在注意根据题意,在合适的时刻合适的时刻启动定时和开启中断启动定时和开启中断 需要完成下列任务:需要完成下列任务:ORG 0000HRESET: LJMP MAIN ;复位入口转主程序;复位入口转主程序 ORG 000BH LJMP IT0P ;转;转T0中断服务程序中断服务程序 ORG 001BH LJMP IT1P ;转;转T1中断服务程序中断服务程序 ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#25H ;T1为方式为方式2定时
33、,定时,T0为方式为方式1计数计数 MOV TL0,#0FFH ;T0置初值置初值 MOV TH0,#0FFH SETB TR0 ;启动;启动T0MOV TL1,#06H ;T1置初值置初值 MOV TH1,#06HSETB ET0 ;允许;允许T0中断中断SETB EAHERE: AJMP HERE IT0P: CLR TR0 ;T0中断服务程序,停止中断服务程序,停止T0计数计数SETB TR1 ;启动;启动T1 SETB ET1 ;允许;允许T1中断中断 RETIIT1P: CPL P1.0;T1中断服务,中断服务,P1.0位取反位取反RETIEND 两个中断服务主程序的设计:两个中断服
34、务主程序的设计:要求:画出流程图。要求:画出流程图。在在T1定时中断服务程序定时中断服务程序IT1P中,省去了中,省去了T1中断服务中断服务程序中重新装入初值程序中重新装入初值06H的指令。的指令。 GATE0GATE0可使定时器可使定时器/ /计数器计数器T0T0的的启动计数启动计数受受INT0INT0* *的控的控制,可测量引脚制,可测量引脚INT0INT0* *(P3.2P3.2)上正脉冲的宽度)上正脉冲的宽度(可理(可理解为定时器的第三种工作方式解为定时器的第三种工作方式“计时计时”)。)。门控制位门控制位GATEGATE的应用的应用测量脉冲宽度测量脉冲宽度A00AINTGATEINT
35、2022-5-337v门控位的应用门控位的应用【例例5-85-8】 测量测量INT0INT0引脚上出引脚上出现的正脉冲宽度,并将结果现的正脉冲宽度,并将结果(以机器周期的形式)存放在(以机器周期的形式)存放在30H30H和和31H31H两个单元中。两个单元中。v 将将T0T0设置为方式设置为方式1 1的定的定时方式,且时方式,且GATE=1GATE=1,计数,计数器初值为器初值为0 0,将,将TR0TR0置置1 1。 vINT0INT0引脚上出现高电平引脚上出现高电平时,加时,加1 1计数器开始对机计数器开始对机器周期计数。器周期计数。 vINT0INT0引脚上信号变为引脚上信号变为低电平时,
36、停止计数低电平时,停止计数 v然后读出然后读出TH0TH0、TL0TL0的值的值 T0设置为定时还是设置为定时还是计数?计数?2022-5-338 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 0200H ORG 0200H MAIN:MOV TMOD,#09H ; MAIN:MOV TMOD,#09H ;置置T0T0为定时器方式为定时器方式1 1,GATE=1GATE=1 MOV TH0,#00H ; MOV TH0,#00H ;置计数初值置计数初值 MOV TL0,#00HMOV TL0,#00H MOV R0,#31H ; MOV R0,#31H
37、 ;置地址指针初值(指向低字节)置地址指针初值(指向低字节) L1:JB P3.2,L1 ;L1:JB P3.2,L1 ;高电平等待高电平等待 SETB TR0 ;SETB TR0 ;当当INT0INT0由高变低时使由高变低时使TR0=1TR0=1,准备好,准备好 L2:JNB P3.2,L2 ;L2:JNB P3.2,L2 ;等待等待INT0INT0变高变高 L3:JB P3.2,L3 ; L3:JB P3.2,L3 ;已变高,启动定时,直到已变高,启动定时,直到INT0INT0变低变低 CLR TR0 ;INT0 CLR TR0 ;INT0由高变低,停止定时由高变低,停止定时 MOV R0
38、,TL0 ;MOV R0,TL0 ;存结果存结果 DEC R0DEC R0 MOV R0,TH0 MOV R0,TH0 SJMP $ SJMP $ END END ORG ORG 0000H ;MUSIC0000H ;MUSIC LJMP START LJMP START ORG 000BH ORG 000BH LJMP INTT0 LJMP INTT0START: MOV SP,#50HSTART: MOV SP,#50H MOV TH0,#0D8H MOV TH0,#0D8H MOV TL0,#0EFH MOV TL0,#0EFH MOV TMOD,#01H MOV TMOD,#01H M
39、OV IE,#82H MOV IE,#82HMUSIC0: NOPMUSIC0: NOP MOV DPTR,#DAT MOV DPTR,#DAT MOV 20H,#00H MOV 20H,#00HMUSIC1: NOPMUSIC1: NOP CLR A CLR A MOVC A,A+DPTR MOVC A,A+DPTR JZ END0 JZ END0 CJNE A,#0FFH,MUSIC5 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 LJMP MUSIC3MUSIC5: NOP ;MUSIC5: NOP ;正常播放音正常播放音乐乐 MOV R6,A MOV R6,A INC
40、 DPTR INC DPTR MOV A,#0 MOV A,#0 MOVC A,A+DPTR MOVC A,A+DPTR MOV R7,A MOV R7,A SETB TR0 SETB TR0T0定时时间=(216-D8EFH)*12/12MHz=10msv音乐播放音乐播放(C51music1.asm)2022-5-340MUSIC4: NOPMUSIC4: NOP MOV R3,#0FFH MOV R3,#0FFH LCALL DEL LCALL DEL DJNZ R2,MUSIC4 DJNZ R2,MUSIC4 INC DPTR INC DPTR LJMP MUSIC1 LJMP MUSI
41、C1END0: NOPEND0: NOP; ;音音乐乐播放完播放完 MOV R2,#0FFH MOV R2,#0FFHMUSIC6: MOV R3,#00HMUSIC6: MOV R3,#00H LCALL DEL LCALL DEL DJNZ R2,MUSIC6 DJNZ R2,MUSIC6 LJMP MUSIC0 LJMP MUSIC0MUSIC2: NOPMUSIC2: NOP CPL P1.5 CPL P1.5 MOV A,R6 MOV A,R6 MOV R3,A MOV R3,A LCALL DEL LCALL DEL MOV A,R7 MOV A,R7 CJNE A,20H,MUS
42、IC2 CJNE A,20H,MUSIC2 MOV 20H,#00H MOV 20H,#00H INC DPTR INC DPTR LJMP MUSIC1 LJMP MUSIC1MUSIC3: NOPMUSIC3: NOP; ;一小段音一小段音乐乐播放播放结结束,延束,延时时 CLR TR0 CLR TR0 MOV R2,#0DH MOV R2,#0DHv音乐播放音乐播放2022-5-341DAT:DAT:DB DB 18H,30H18H,30H,1CH,10H,1CH,10H, , 20H,40H,1CH,10H 20H,40H,1CH,10HDB 18H,10H,20H,10H,1CH,1
43、0H,18H,40HDB 18H,10H,20H,10H,1CH,10H,18H,40HDB 1CH,20H,20H,20H,1CH,20H,18H,20HDB 1CH,20H,20H,20H,1CH,20H,18H,20HDB 20H,80H,DB 20H,80H,0FFH0FFH,20H,30H,1CH,10H,18H,20H,30H,1CH,10H,18HDB 20H,15H,20H,1CH,20H,20H,20H,26HDB 20H,15H,20H,1CH,20H,20H,20H,26HDB 40H,20H,20H,2BH,20H,26H,20H,20HDB 40H,20H,20H,2
44、BH,20H,26H,20H,20HDB 20H,30H,80H,DB 20H,30H,80H,0FFH0FFH,20H,20H,1CH,10H,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,20H,2BH,40H,20H,20H,1CH,10HDB 30H,20H,2BH,40H,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,2
45、0H,2BH,40H,20H,30H,1CH,10HDB 30H,20H,2BH,40H,20H,30H,1CH,10HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 20H,20H,30H,80H,20H,30H,1CH,10HDB 20H,20H,30H,80H,20H,30H,1CH,10HDEL: NOPDEL: NOPDEL3: MOV R4,#02HDEL
46、3: MOV R4,#02HDEL4: NOPDEL4: NOP DJNZ R4,DEL4 DJNZ R4,DEL4 NOP NOP DJNZ R3,DEL3 DJNZ R3,DEL3 RET RETINTT0: INC 20HINTT0: INC 20H MOV MOV TH0,#0D8HTH0,#0D8H MOV MOV TL0,#0EFHTL0,#0EFH RETI RETI2022-5-342DB 20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,20HDB 20H,10H,1CH,10H,20H,20H,26H,20H,2BH,20H,30H,2
47、0HDB 2BH,40H,20H,15H,1FH,05H,20H,10H, 1CH,10H,20H,20HDB 2BH,40H,20H,15H,1FH,05H,20H,10H, 1CH,10H,20H,20HDB 26H,20H,2BH,20H, 30H,20H,2BH,40H,20H,30H,1CH,10H DB 26H,20H,2BH,20H, 30H,20H,2BH,40H,20H,30H,1CH,10H DB 18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H,20H,20HDB 18H,20H,15H,20H,1CH,20H,20H,20H,26H,40H
48、,20H,20HDB 2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10HDB 2BH,20H,26H,20H,20H,20H,30H,30H,20H,30H,1CH,10HDB 18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20HDB 18H,40H,1CH,20H,20H,20H,26H,40H,13H,60H,18H,20HDB 15H,40H,13H,40H,18H,80H,DB 15H,40H,13H,40H,18H,80H,00H00HENDEND实时时钟的设计实时时钟的设计1、实时时钟实现的基本思想、实时时钟实现的基本思想2、程序设计、程序设计(1)主程序的设计)主程序的设计(2)中断服务程序的设计)中断服务程序的设计 涉及到的话题:涉及到的话题:(1)1秒钟的实现秒钟的实现(2)数据的规划)数据的规划-时、分、秒的数据存放时、分、秒的数据存放 (3)六十进制加法、二十四进制加法的实现、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省舟山市2024-2025学年高二上学期期末检测英语试题(含听力)
- 2025年高考历史风标训练卷3(含解析)
- 岩棉彩钢板施工方案
- 储罐焊缝返修施工方案
- 商丘医用吊桥施工方案
- 2025年西医护理学试题及答案
- 消防常识考试试题及答案
- 6年级上册第22课文言文二则
- 低密度聚乙烯拉伸粘度应变硬化的原因
- catl农产品检测认证100条
- 《商务沟通-策略、方法与案例》课件 第七章 自我沟通
- 2024解析:第十二章机械效率-基础练(解析版)
- 国家电网招聘考试试题及答案
- 2024年度5G基站建设材料采购合同3篇
- 危险化学品目录(2024版)
- Unit 2 Special Days(说课稿)2023-2024学年人教新起点版英语五年级下册
- 脑室镜手术配合
- 2024年湖南省中考数学试卷含答案
- 浓香白酒采购合同范例
- GB/T 11981-2024建筑用轻钢龙骨
- 药店信息化管理制度
评论
0/150
提交评论