模块6单片机的定时器计数器课件

上传人:沈*** 文档编号:138647667 上传时间:2022-08-21 格式:PPT 页数:57 大小:533.50KB
收藏 版权申诉 举报 下载
模块6单片机的定时器计数器课件_第1页
第1页 / 共57页
模块6单片机的定时器计数器课件_第2页
第2页 / 共57页
模块6单片机的定时器计数器课件_第3页
第3页 / 共57页
资源描述:

《模块6单片机的定时器计数器课件》由会员分享,可在线阅读,更多相关《模块6单片机的定时器计数器课件(57页珍藏版)》请在装配图网上搜索。

1、1主编主编 任元吉任元吉“十二五十二五”高职高专高职高专“教与做教与做1+1”体体验互动式创新规划教材验互动式创新规划教材2模块模块6 单片机的定时器计数器单片机的定时器计数器从单片机的角度来看,因为从单片机的角度来看,因为AT89C51AT89C51系列单片系列单片机具有串行口的通信机制,以单片机或计算机作机具有串行口的通信机制,以单片机或计算机作为通信的主体,以串行信道作为通信的媒介,以为通信的主体,以串行信道作为通信的媒介,以单片机串口的逻辑电平、数据格式、数据传输波单片机串口的逻辑电平、数据格式、数据传输波特率等作为通信的协议基础,单片机也就具有了特率等作为通信的协议基础,单片机也就具

2、有了多系统信息传递,协同工作的能力,这也就为单多系统信息传递,协同工作的能力,这也就为单片机的多系统控制和应用打开了崭新的天地。片机的多系统控制和应用打开了崭新的天地。3项目项目6.1 6.1 定时器定时器/计数器计数器项目项目6.26.2电子钟的制作及应用电子钟的制作及应用项目项目6.36.3 智能抢答器的制作及应用智能抢答器的制作及应用技能训练技能训练:设计设计DS18B20DS18B20与单片机的与单片机的连接实验连接实验 基础训练基础训练 4知识目标:知识目标:广州城建职业学院 电子系 谢元成制作 手机:186 8843 9181 QQ:79652257 Email:1、了解单片机的中

3、断定时计数器系统的结构 2、掌握单片机的定时计数器控制 3、掌握在程序设计中应用定时计数器的方法5 技能目标:技能目标:1、能够熟悉单片机的定时计数器 2、能够掌握输入/输出的控制方式 3、能在程序设计中应用中断方式【课时建议】6课时 教学重点:教学重点:单片机的定时计数器 教学难点:教学难点:应用中断定时计数器方式进行程序设计核心职业核心职业技术基础课技术基础课项目项目6.1 6.1 定时器定时器/计数器计数器广州城建职业学院 电子系 谢元成制作 手机:186 8843 9181 QQ:79652257 Email:6.1.16.1.1定时器定时器/计数器概述计数器概述 之前我们学习过用延时

4、子程序实现一段时间的定时功能,但这种方法有它的局限性,在定时的过程中因延时子程序的运行会一直占用CPU,在延时时间段内单片机无法再做其它的事情了。如果我们需要用到一种不占用CPU的定时方法,就要用到单片机自带的定时/计数器进行定时工作。80C51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套。器属于五个中断源包含两个外部中断,两个定时/计数器,一个串行中断。图1 中断控制电路v如图1所示,80C51单片机共有五个中断源,每个中断源都可根据相应条件产生中断请求,中断请求会将相应的标志位置1,当单片机允许使用中断源时,会每过一个指令周期对相应中断标志位进行一次查询。如发现该标志位为1,则会

5、停下当前工作转到中断子程序处进行程序处理,之后再返回刚才中断处继续执行。从中断请求的发生到处理完中断返回这一过程成为一个完整的中断过程。图2 定时/计数器的原理图v定时/计数器的原理图如图2所示,单片机共有两个定时计数器,每一个定时/计数器的主要组成部分是两个连续的8位的存储单元,这两个存储单元分为低8位和高8位,低位可向高位进位。在定时计/数器进行定时工作时,每过一个机器周期(6MHZ晶振-2us,12MHZ晶振-1us),定时计数器的低8位存储单元会自动加一;当低8位(TL0或TL1)加满溢出后会向高8位存储单元(TH0或TH1)进位;当高、低两个8位存储单元全部加满溢出后会将与之对应的中

6、断标志位(TF0或TH1)置1;当单片机允许使用定时/计数器这一中断源时,CPU会每过一个指令周期对与被使用的定时/计数器相应的中断标志位进行一次查询。如发现中断标志位为1,则说明定时到时,会停下当前工作,进入中断子程序进行相应的中断处理,之后返回原来的工作位置继续之前的工作。CPU TCON(88H)TMOD(89H)TH1TL17700(8DH)(8BH)定时器T1TH0TL07700(8CH)(8AH)定时器T0内部总线溢出溢出启动启动工作方式工作方式T0(P3.4)T1(P3.5)中断INT1(P3.3)INT0(P3.2)1.什么是单片机的定时和计数功能 定时(定时(Timer):)

7、:是对机器周期计数,每到一个机器周期,计数器加1,直至计满并产生溢出信号。计数器计数器(Counter):是对外部信号计数,计数脉冲来自外部引脚T0,(P3.4)、T1(P3.5),并采用其下降沿触发计数。共同:计数;不同:计数对象不同。6.1.2定时器定时器/计数器控制分析计数器控制分析vAT89S51单片机内部定时器/计数器结构如图3所示。内部设有两个16位的可编程定时器/计数器。可编程是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。图3 定时/计数器的内部结构v从

8、图3可看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。v定时/计数器的的控制就是要对这些寄存器进行相应的赋值,使定时/计数器按照需要完成初始化,起到定时/技术作用。6.1.3定时器定时器/计数器的工作模式计数器的工作模式v定时计数器在使用时首先要对其工作模式进行设定,与之有关的特殊功

9、能寄存器在上一节已经有了介绍,下面我们就对其各自的作用做详细的介绍。v1.定时/计数器控制寄存器TCONvTCON是定时/计数器控制寄存器,它包含两个定时/计数器的溢出中断标志及外部中断和的中断标志。,TCON的内部结构如表1所示,TCON位定义如表2所示。TCOND7D6D5D4D3D2D1D0位符号TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H 表1 TCON位格式表2 TCON位定义 v2.定时/计数器工作模式控制寄存器TMODv定时器方式控制寄存器TMOD,其结构如表3所示。表3 TMOD格式TMOD的高4位用控制于T1,低4用于

10、控制T0,每一位的具体作用如下:0INT1INTGATE:门控制位。GATE和软件控制位TR0(或TR1)、外部引脚信号(或)的状态,共同控制定时器计数器的打开或关闭。vC/:定时器计数器选择位。C/1,为计数器方式;C/0,为定时器方式。vM1M0:工作方式选择位,定时器计数器工作方式由M1M0设定。具体如表4所示。表4 定时/计数器的工作方式M1 M0工作方式功能描述0 0工作方式013位计数器0 1工作方式116位计数器1 0工作方式2自动装入初值的8位计数器1 1工作方式3定时器0:分成两个8位计数器,定时器1:停止计数v3.中断允许寄存器IEvIE控制CPU总断源的允许或禁止以及每个

11、中断源是否允许中断。IE内部结构如表5所示,IE位定义如表6所示。表5 IE格式IEIED7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位位符符号号EAEAESESETET1 1EXEX1 1ETET0 0EXEX0 0位位地地址址AFAFH HAEAEH HADADH HACACH HABABH HAAAAH HA9A9H HA8A8H H表6 IE位定义v4.中断优先寄存器IPvIP用来控制各中断源优先级的选择,即设定中断源的中断响应优先级别,IP内部结构如表7所示,IP位定义如表8所示。表7 IP位格式IPIPD D7 7D D6 6D D5 5D D4 4D D3 3D

12、 D2 2 D D1 1D D0 0位位符符号号 P PS SP PT T1 1P PX X1 1P PT T0 0P PX X0 0位位地地址址B BF FH HB BE EH HB BD DH HB BC CH HB BB BH HB BA AH HB B9 9H HB B8 8H H 表8 IP位定义 v单片机复位后,IP低五位全部清零,并将所有中断源设置为低优先级中断。v如果几个同优先级的中断源同时向CPU申请中断,哪一个申请得到服务,取决于它们在CPU内部登记排队的序号。CPU通过内部硬件查询登记序号,按自然优先级响应各个中断请求。其内部登记序号是由硬件形成的,先后顺序如下:INT0

13、INT1 T0T1RI/TI v6.1.4定时器定时器/计数器的容量计数器的容量v在使用在使用AT89S51的定时器计数器之前,一般完成以下几个步骤:的定时器计数器之前,一般完成以下几个步骤:v 1)确定定时确定定时/计数器工作方式,对计数器工作方式,对TMOD赋值;赋值;v 2)计算定时计算定时/计数器的初值,对计数器的初值,对TH0、TL0或或TH1、TL1赋值;赋值;v 3)开放开放CPU、定时、定时/计数器中断,对计数器中断,对IE中的中的EA、ET0、ET1赋值;赋值;v 4)启动定时器计数器,对启动定时器计数器,对TCON中中TRl或或TR0位赋值。位赋值。v下面我们来学习定时/计

14、数器的初值的具体方法:v因为在不同工作方式下计数器位数不同,因而最大计数值也不同。现假设最大计数值为M,那么各方式下的最大值M值如下:v方式0:M=213=8192v方式1:M=216=65536v方式2:M=28=256v方式3:定时器0分成两个8位计数器,所以两个M均为256。v因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:vX=M-N/(12/fosc)v其中N为定时时间,fosc为晶振频率。v在实际应用中经常采用16位的方式1,下面以16位的方式1说明如何确定初值。v例如,T0选用方式1用于定时,外接晶振频率为12MHz,定时时间为10ms,计算

15、过程如下:v方式1时,M=65536,定时时间N=1010-3s,fosc=12MHz=12106HzvX=M-N/(12/fosc)=65536-1010-3/(12/12106)v =65536-10000=55536v拆分X的高八位送TH0,低八位送TL0:vMOV TH0,#0D8H;vMOV TL0,#0F0H;v6.2.1定时器定时器/计数器应用步骤计数器应用步骤v经过以上学习我们知道要想使用定时/计数器必须先对其进行初始化,流程图如图4。项目项目6.26.2电子钟的制作及应用电子钟的制作及应用开始开始选择模式选择模式置初值置初值开启中断开启中断启定时启定时结束结束 TMOD TH

16、0、TL0、TH1、TL1 IE TR0、TR1图4 定时/计数器初始化流程v定时器/计数器初始化函数及中断服务函数格式:vT0方式1:以10ms定时时间、12MHz晶振为例vORG 0000HvLJMP STARTvORG OO13HvLJMP INTT0vORG 0040HvLCALL CSHv.vSJMP$;vORG 0100HvCSH:MOV EA,01H;v MOV ET0,01H;v MOV TMOD,01H;v MOV TH0,0D8H;v MOV TL0,0F0H;v MOV TR0,01H;vRETvORG 0200HvINTT0:MOV TH0,0D8H;v MOV TL0

17、,0F0H;v .v RETIv6.2.2电子钟系统制作分析电子钟系统制作分析v1.任务要求v六位数码显示,采用动态扫描方式,两位显示时位,两位显示分位,两位显示秒位,初始时间为23点58分46秒,如图5所示。图图5 数字钟电路图数字钟电路图v2.任务分析v在本任务中要解决两个问题,一个是显示问题,一个是定时问题。v断码显示器的使用在之前的学习中我们已经掌握了,在本任务中我们要同时显示六位不同的数字,但是80C51单片机只有4组I/O驱动引脚,无法同时对六位断码显示器输出显示数据,这就需要用到动态扫描的方法来完成显示功能。下面以两位数显示为例来说明动态扫描在断码显示中的应用。电路图如图6所示。

18、图6 动态扫描显示电路 vORG 0000Hv LJMP STARTv ORG 0030Hv START:MOV R0,#40H ;40H.41H是显示缓冲区,依次存放十,个位v MOV A,#06H ;十位v MOV R0,A ;v INC R0 ;个位v MOV A,#00Hv MOV R0,Av vDS1:MOV R0,#40H ;置显示缓冲区首址v MOV R2,#02H ;置扫描初值,点亮最左边的LED6vDS2:MOV A,R0 ;得到的段显码输出到段数据口v ACALL TABLEv MOV P0,Av MOV A,R2 ;向位数据口P1输出位显码v CPL Av MOV P2,

19、AvMOV R3,#0ffH ;延时一小段时间vDEL:NOPv DJNZ R3,DELv INC R0 ;显示缓冲字节加一v CLR Cv MOV A,R2v RRC A ;显码右移一位v MOV R2,A ;最末一位是否显示完毕?,如无则v JNZ DS2 ;继续往下显示v MOV A,TBFv MOV B,#10v DIV ABv MOV 40H,Av MOV A,Bv MOV 41H,Av SJMP DS1vTABLE:INC A ;取与数字对应的段码v MOVC A,A+PCv RETv DB 0EDH,48H,0E6H,6EH,4BHv DB 2FH,0AFH,68H,0EFH,6

20、FHvENDv 图中使用两位共阳极段码显示器,P1口用来提供显示断码,P2.0、P2.1两位引脚用来提供显示器位选择码。在显示时,先由P2.0引脚输出高电平,P2.1引脚输出低电平选择个位显示器工作,这时让P1口输出“0”的断码使各位显示内容为“0”。这时开始一小段时间的延时(在视觉残留允许范围内,如10ms),之后改变P2.0、P2.1、P1的值使十位显示器工作,并显示“6”,再加入一小段时间的延时。这时只要重复上面的过程就可以让两位显示器交替显示,达到同时显示“60”的动态显示效果了。程序如下。v在动态扫描显示的时候,程序进入了无限循环的状态,无法在进行其他的工作了,要想完成一秒钟的定时以

21、及到时后的显示内容修改工作就要中断当前的循环工作进程,在1S到时的时候进行中断,处理完显示内容修改后再返回动态扫描的显示程序中,这样就可以实现任务要求的数字钟设计了。下面以60S倒计时为例,编程实现动态扫描与定时/计数器中断的使用方法。vBUF EQU 23H ;存放计数值v TBF EQU 22H ;存放显示值v ORG 0000Hv LJMP STARTv ORG 000BHv LJMP CLOCKv ORG 0030Hv START:MOV R0,#40H ;40H.41H是显示缓冲区,依次存放十,个位v MOV A,#06H ;十位v MOV R0,A ;v INC R0 ;个位v M

22、OV A,#00Hv MOV R0,Av MOV TMOD,#01H ;定时器0初始化为方式1v MOV TH0,#0D8H ;置时间常数,延时0.1秒v MOV TL0,#0F0Hv MOV BUF,#00H ;置0v MOV TBF,#60v SETB ET0v SETB EAv SETB TR0vDS1:MOV R0,#40H ;置显示缓冲区首址v MOV R2,#02H ;置扫描初值,点亮最左边的LED6vDS2:MOV A,R0 ;得到的段显码输出到段数据口v ACALL TABLEv MOV P0,AvMOV A,R2 ;向位数据口P1输出位显码v CPL Av MOV P2,Av

23、 MOV R3,#0ffH ;延时一小段时间vDEL:NOPv DJNZ R3,DELv INC R0 ;显示缓冲字节加一v CLR Cv MOV A,R2v RRC A ;显码右移一位v MOV R2,A ;最末一位是否显示完毕?,如无则v JNZ DS2 ;继续往下显示v MOV A,TBFv MOV B,#10v DIV ABv MOV 40H,Av MOV A,Bv MOV 41H,Av SJMP DS1vTABLE:INC A ;取与数字对应的段码v MOVC A,A+PCv RETv DB 0EDH,48H,0E6H,6EH,4BHv DB 2FH,0AFH,68H,0EFH,6F

24、HvCLOCK:MOV TL0,#0D0H ;置时间常数v MOV TH0,#0F0Hv PUSH PSWv PUSH ACCv INC BUF ;计数加一v MOV A,BUF ;计到10否?没有则转到QUIT退出中断v CJNE A,#02H,QUITv MOV BUF,#00H ;置初值v MOV A,TBFv DEC A ;v MOV TBF,Av CJNE A,#00H,QUITv CLR TR0vQUIT:POP ACCv POP PSWv RETI ;中断返回vENDv6.2.3编制程序编制程序v将这样的动态扫描内容进行扩充即可实现六位数的动态扫描显示效果。在上一节两位数码显示中

25、已经学习了如何显示、如何产生1秒计时,数字钟在此基础上又增加了分位和时位,我们知道当秒位计够60秒时,自身归0,同时让分位上加1,当分位计够60时,分为归0,时位加1,当时位计够24时,时位归0,数字钟的程序就是按照这样的逻辑关系进行编写的。初始化初始化图图8数字钟流程图数字钟流程图动态扫描动态扫描、数码显示数码显示产生秒计时产生秒计时计够计够 60分分无限循环无限循环计够计够 60秒秒计够计够 24时时秒归秒归 0,分加分加 1分归分归 0,时加时加 1时归时归 0秒加秒加 1中断返回中断返回程序开始程序开始 YYYNNNa 主函数主函数b 定时器定时器 T0中断函数中断函数vBUF EQU

26、 23H ;存放计数值存放计数值vSBF EQU 22H ;存放秒值存放秒值vMBF EQU 21H ;存放分值存放分值vHBF EQU 20H ;存放时值存放时值vCSEG AT 0000Hv LJMP STARTvCSEG AT 01BHv LJMP CLOCKvCSEG AT 0030HvSTART:MOV R0,#40H ;40H-45H是显示缓冲区,依次存放是显示缓冲区,依次存放 时分秒时分秒v MOV A,#02H ;时高位时高位v MOV R0,A ;v INC R0 ;时、底位时、底位v MOV A,#03Hv MOV R0,Av INC R0 ;分高位分高位v MOV A,#

27、05Hv MOV R0,Av INC R0 ;存分低位存分低位v MOV A,#08Hv MOV R0,Av INC R0 ;秒高位秒高位v MOV A,#04Hv MOV R0,Av INC R0 ;秒低位秒低位v MOV A,#06Hv MOV R0,Av MOV TMOD,#10H ;定时器1初始化为方式1v MOV TH1,#0D8H ;置时间常数,延时0.1秒v MOV TL1,#0F0Hv MOV BUF,#00H ;置0v MOV HBF,#23v MOV SBF,#58v MOV MBF,#46v SETB ET1v SETB EAv SETB TR1vDS1:MOV R0,#

28、40H ;置显示缓冲区首址v MOV R2,#20H ;置扫描初值,点亮最左边的LED6vDS2:MOV A,R0 ;得到的段显码输出到段数据口v ACALL TABLEv MOV P0,Av MOV A,R2 ;向位数据口P1输出位显码v CPL Av MOV P1,AvMOV R3,#0FFH ;延时一小段时间延时一小段时间vDEL:NOPv DJNZ R3,DELv INC R0 ;显示缓冲字节加一显示缓冲字节加一v CLR Cv MOV A,R2v RRC A ;显码右移一位显码右移一位v MOV R2,A ;最末一位是否显示完毕最末一位是否显示完毕?,如无则如无则v JNZ DS2

29、;继续往下显示继续往下显示v MOV R0,#45Hv MOV A,SBF ;把秒值分别放于把秒值分别放于44H,45H中中v ACALL GETv MOV A,MBF ;把分值分别放入把分值分别放入40H,41H中中v ACALL GETv MOV A,HBFv ACALL GETv SJMP DS1 ;转转DS1从头显示起从头显示起vTABLE:INC A ;取与数字对应的段码取与数字对应的段码v MOVC A,A+PCv RETv DB 3FHv DB 06Hv DB 5BHv DB 4FHv DB 66Hv DB 6DHv DB 7DHv DB 07Hv DB 7FHv DB 6FHv

30、 DB 40HvGET:MOV R1,A ;把从时。分或秒字节中取来的值的高把从时。分或秒字节中取来的值的高v ANL A,#0FH ;位屏蔽掉位屏蔽掉,并送入缓冲区并送入缓冲区v MOV R0,Av DEC R0v MOV A,R1 ;把时。从分或秒字节中取来的值的低把时。从分或秒字节中取来的值的低v SWAP A ;位屏蔽掉位屏蔽掉,并送入缓冲区并送入缓冲区v ANL A,#0FHv MOV R0,Av DEC R0 ;R0指针下移一位指针下移一位v RETvCLOCK:MOV TL1,#0D8H ;置时间常数v MOV TH1,#0F0Hv PUSH PSWv PUSH ACCv v C

31、PL P1.0v CPL P1.1v CPL P1.2v CPL P1.3v v INC BUF ;计数加一v MOV A,BUF ;计到10否?没有则转到QUIT退出中断v CJNE A,#0AH,QUITv MOV BUF,#00H ;置初值v MOV A,SBFv INC A ;秒值加一,经十进制调整后放入v DA A ;秒字节v MOV SBF,Av CJNE A,#60H,QUIT;计到60否?没有则转到QUIT退出中断v MOV SBF,#00H ;是,秒字节清零vMOV A,MBFv INC A ;分值加一,经十进制调整后放入v DA A ;分字节v MOV MBF,Av CJN

32、E A,#60H,QUIT;分值为60否?不是则退出中断v MOV MBF,#00H ;是,清零v MOV A,HBFv INC Av DA Av MOV HBF,Av CJNE A,#24H,QUITv MOV HBF,#00HvQUIT:POP ACCv POP PSWv RETI ;中断返回vENDv6.2.4系统调试系统调试v在Proteuse软件上自行设计电路图,并根据自己设计的电路图在Keilc软件中编译程序进行调试,观察仿真运行结果。在程序中修改使数字钟的显示初始值为18点26分56秒,在进行运行观察变化。v6.3.1电路原理分析及设计电路原理分析及设计v抢答器可同时供不大于8名

33、选手或8个代表队参加比赛,各用一个抢答按钮,按钮的编号与选手的编号是相对应的,分别是S1、S2、S3、S4、S5、S6、S7、S8;给节目主持人设置二个控制按钮开关,用来控制系统的清零和抢答的开始;抢答开始后,若有选手按动抢答按钮,在数码管上显示出选手的编号,同时蜂鸣器给出音响提示,禁止其他选手抢答,优先抢答选手的编号一直保持到主持人将系统清零为止。v当节目主持人启动开始键后,要求定时器立即减计时,并用显示器显示,同时蜂鸣器发出短暂的声响,声响持续时间 0.5S,参赛选手在设定的时间内抢答有效,定时器停止工作,显示器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零;如果定时抢答的时间

34、不大于5S后,却没有选手抢答时,系统持续报警,直到定时抢答的时间为零,本次抢答无效,并封锁输入电路,禁止选手超时后抢答,时间显示器上显示FFF 犯规处理;如果主持人没按开始键,就有选手抢答,则显示选手编码,并持续报警;如果已经有选手抢答了,别的选手则按键无效。直到主持人重新复位按下开始键为止,电路图如图8所示。项目项目6.36.3 智能抢答器的制作及应用智能抢答器的制作及应用图8 抢答器电路v6.3.2硬件系统制作分析硬件系统制作分析v在制作硬件电路时应注意各元件的工作电压以及工作电流条件,在相应的电路中应添加适当的限流电阻,同时要注意P0引脚在使用时应连接上拉电阻。为了使蜂鸣器具有足够的驱动

35、电流,在P3.7引脚增加了三极管做电流放大。同时为了使设计电路图符合实际电路需求,在电路图中增加了上拉电阻及缓存器。v6.3.3编制程序编制程序v ORG 0000Hv LJMP STARTv ORG 0003Hv LJMP ESS ;跳转到外部中断0中断子函数v ORG 00A0HvSTART:SETB EA v SETB EX0v SETB IT0 ;外部中断初始化vLP:MOV R2,#00Hv INC R2v JB P1.0,LP1v LCALL LOPvLP1:INC R2v JB P1.1,LP2v LCALL LOPvLP2:INC R2v JB P1.2,LP3v LCALL

36、LOPvLP3:INC R2v JB P1.3,LP4v LCALL LOPvLP4:INC R2v JB P1.4,LP5v LCALL LOPvLP5:INC R2v JB P1.5,LP6v LCALL LOPvLP6:INC R2v JB P1.6,LP7v LCALL LOPvLP7:INC R2v JB P1.7,LP8v LCALL LOPvLP8:LJMP LP ;按键判断vLOP:MOV 56H,#02HvLP16:MOV 51H,#10Dv MOV 52H,#10Hv CLR P3.7 ;蜂鸣器报警vLP10:LCALL DELAYv DJNZ 51H,LP10v SETB

37、 P3.7 ;蜂鸣器结束报警vLP15:LCALL DELAYv DJNZ 52H,LP15v DJNZ 56H,LP16v MOV DPTR,#TABv MOV A,R2v MOVC A,A+DPTRvLP11:MOV P2,#01Hv MOV P0,Av LJMP LP11v RETvESS:MOV P2,#00Hv CLR P3.7v MOV TMOD,#00000001Bv MOV R3,#0AHvL12:MOV R4,#14Hv L11:MOV TH0,#3CHv MOV TL0,#0B0Hv MOV DPTR,#TABv SETB TR0 ;定时/计数器0初始化v MOV A,R3

38、v MOV B,#0AHv DIV ABv MOVC A,A+DPTRv MOV P2,#01Hv MOV P0,Av LCALL DLAYv MOV A,Bv MOVC A,A+DPTRv MOV P2,#02Hv MOV P0,Av LCALL DLAYv L10:JNB TF0,L10 ;查询方式进行定时/计数器中断处理v CLR TF0v SETB P3.7v DJNZ R4,L11v DEC R3v CJNE R3,#0FFH,L19v LJMP L18vL19:CJNE R3,#00H,L12 v MOV 51H,#50Dv CLR P3.7vL15:LCALL DELAYv DJ

39、NZ 51H,L15v SETB P3.7v MOV P2,#00Hv LJMP L18vL18:RETIvDLAY:MOV 53H,#05HvL14:MOV 54H,#0F0HvL13:MOV R2,#00Hv INC R2v JB P1.0,L1v LCALL LOOPvL1:INC R2v JB P1.1,L2v LCALL LOOPvL2:INC R2v JB P1.2,L3v LCALL LOOPvL3:INC R2v JB P1.3,L4v LCALL LOOPvL4:INC R2v JB P1.4,L5v LCALL LOOPvL5:INC R2v JB P1.5,L6v LCA

40、LL LOPvL6:INC R2v JB P1.6,L7v LCALL LOOPvL7:INC R2v JB P1.7,L8v LCALL LOOPvL8:DJNZ 54H,L13v DJNZ 53H,L14v RETvLOOP:MOV TMOD,#00010000Bv MOV R5,#11HvL22:MOV R6,#14HvL21:MOV TH1,#3CHv MOV TL1,#0B0Hv SETB TR1 ;定时/计数器1初始化处理v MOV DPTR,#TABv MOV A,R2v MOVC A,A+DPTRvL16:MOV P2,#01Hv MOV P0,Av LCALL DELAYv

41、CJNE R5,#0FH,L24v LJMP L25vL24:JC L25v LJMP L20 vL25:MOV A,R5v MOV B,#0AHv DIV ABv MOV DPTR,#TABv MOVC A,A+DPTRv MOV P2,#04Hv MOV P0,Av LCALL DELAYv MOV A,Bv MOV DPTR,#TABv MOVC A,A+DPTRv MOV P2,#08Hv MOV P0,Av LCALL DELAYv MOV P2,#02Hv MOV P0,#0BFHv LCALL DELAYvL20:JNB TF1,L20 ;查询方式进行定时/计数器中断处理v CL

42、R TF1v DJNZ R6,L21v DEC R5v CJNE R5,#0FFH,L22v MOV 57H,#10Hv CLR P3.7vL27:LCALL DELAYv DJNZ 57H,L27v SETB P3.7v MOV R3,#00Hv MOV P2,#00Hv RETvDELAY:MOV 61H,#10Dv D0:MOV 62H,#248Dv D1:DJNZ 62H,D1v DJNZ 61H,D0v RETvTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HvENDv6.3.4系统调试系统调试v在Proteuse软件上自行绘制电路图,并根据自己设计的电路图在Keilc软件中编译程序进行调试,观察仿真运行结果。调试运行以下功能:v1 选手抢答时是否触发报警提示。v2 选手正确抢答后答题时间是否正确倒计时显示,倒计时到时后是否自动清0。v3 主持人按下复位按钮后是否进入初始状态。v4 在一名选手抢答后,其他选手是否还可以继续抢答。v技能训练;技能训练;技能训练技能训练6.1:设计:设计DS18B20与单片机的连接与单片机的连接实验;实验;谢谢!谢谢!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!