




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、定时计数器控制及应用定时计数器控制及应用项目项目6 6 定时定时/计数器控制及应用计数器控制及应用 知识与能力目标知识与能力目标熟悉单片机定时熟悉单片机定时/计数器的结构与功能;计数器的结构与功能;1掌握定时掌握定时/计数器在各个模式下的程序初始化过程;计数器在各个模式下的程序初始化过程;2学会并掌握定时学会并掌握定时/计数器初始值的分析与计算;计数器初始值的分析与计算;34理解并掌握定时理解并掌握定时/计数器的编程与控制方法;计数器的编程与控制方法;65初步学会定时初步学会定时/计数器应用程序的分析与设计。计数器应用程序的分析与设计。熟练使用熟练使用Proteus进行单片机应用程序开发与调试
2、。进行单片机应用程序开发与调试。项目项目6 定时定时/计数器控制及应用计数器控制及应用 1 定时定时/计数器结构与功能分析计数器结构与功能分析2 定时定时/计数器编程与控制计数器编程与控制任务任务6.1 定时定时/计数器分析与控制计数器分析与控制1 控制要求与功能展示控制要求与功能展示2 硬件系统与控制流程分析硬件系统与控制流程分析3 汇编语言程序分析与设计汇编语言程序分析与设计4 C语言程序分析与设计语言程序分析与设计任务任务6.2 简易定时闹钟控制简易定时闹钟控制任务任务6.3 简易按键计数器控制简易按键计数器控制1 控制要求与功能展示控制要求与功能展示2 硬件系统与控制流程分析硬件系统与
3、控制流程分析3 汇编语言程序分析与设计汇编语言程序分析与设计4 C语言程序分析与设计语言程序分析与设计5 基于基于Proteus的调试与仿真的调试与仿真 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 定时定时/ /计数器是单片机系统的一个重要部件,此外计数器是单片机系统的一个重要部件,此外定时定时/ /计数器还可用作为串口通信中波特率发生器。计数器还可用作为串口通信中波特率发生器。 工作工作方式灵活方式灵活使用方便使用方便编程简单编程简单定时定时/计数器计数器信号检测信号检测定时控制定时控制延时时信号发生信号发生脉宽测量脉宽测量频率测量频率测量定时定时/计数器
4、计数器6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 1、定时、定时/计数器的组成计数器的组成 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 (1)设置定时)设置定时/计数器的工作方式计数器的工作方式 通过对方式寄存器通过对方式寄存器TMOD的设置,确定相应的定时的设置,确定相应的定时/计数器是计数器是定时功能还是计数功能,以及工作方式及启动方法。定时功能还是计数功能,以及工作方式及启动方法。 (2)设置计数初值)设置计数初值 定时定时/计数器允许用户编程设定开始计数的数值,称为赋初计数器允许用户编程设定开始计数的数值,称为赋初
5、值。初值不同,则计数器产生溢出时,计数个数也不同。值。初值不同,则计数器产生溢出时,计数个数也不同。 定时定时/ /计数器的工作过程如下:计数器的工作过程如下: 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 定时定时/ /计数器的工作过程如下:计数器的工作过程如下: (3)启动定时)启动定时/计数器计数器 当设置了定时器的工作方式并启动定时器工作后,定时器就当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定的工作方式独立工作,不再占用按被设定的工作方式独立工作,不再占用CPU的操作时间,只有的操作时间,只有在计数器计数溢出时才能中断在计数器计数溢出时
6、才能中断CPU当前的操作。当前的操作。 (4)计数溢出)计数溢出 计数溢出标志位在控制寄存器计数溢出标志位在控制寄存器TCON中,用于通知用户定时中,用于通知用户定时/计计数器已经计满,用户可以采用查询方式或中断方式进行操作。数器已经计满,用户可以采用查询方式或中断方式进行操作。 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 2、定时、定时/计数器的控制寄存器计数器的控制寄存器 (1)定时)定时/计数器的控制寄存器计数器的控制寄存器TCON :既参与中断控制又参与定:既参与中断控制又参与定时控制时控制表表6-1 TCON6-1 TCON寄存器的结构寄存器的结构
7、TCON(88H)D7D6D5D4D3D2D1D0位名称TF1TR1TF0TR0IE1IT1IE0IT0位含义T1的溢出中断标志位T1的启动停止控制位T0的溢出中断标志位T0的启动停止控制位INT1中断请求标志位INT1触发方式控制位INT0中断请求标志位INT0触发方式控制位位地址8FH8EH8DH8CH8BH8AH89H88H6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 2 2、定时、定时/ /计数器的控制寄存器计数器的控制寄存器 (2 2)定时定时/ /计数器的工作方式控制寄存器计数器的工作方式控制寄存器TMOD TMOD 定时定时/ /计数器计数器T0
8、T0定时定时/ /计数器计数器T1T1表表6-2 TMOD6-2 TMOD寄存器的结构寄存器的结构TMOD(89H)TMOD(89H)D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0位名称位名称GATEGATEC/C/ M1M1M0M0GATEGATEC/C/ M1M1M0位含义位含义T1T1门门控位控位模式模式选择选择位位工作方式选工作方式选择位择位T0T0门门控位控位模式模式选择选择位位工作方式选工作方式选择位择位TT6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 2 2、定时、定时/ /计数器的控制寄存器计数器的控制寄存器 M0、M1工作方式选
9、择位工作方式选择位M0和和M1两位二进制数可表示两位二进制数可表示4种状态,通过种状态,通过M1和和M0可选择可选择4种种工作方式工作方式 表表6-3 6-3 工作方式工作方式M1M1、M0M0工作方工作方式式功功 能能M1M1、M0M0工作方工作方式式功功 能能0 00 0方式方式0 01313位计数器位计数器1 01 0方式方式2 28 8位计数器,初值自位计数器,初值自动装入动装入0 10 1方式方式1 11616位计数器位计数器1 11 1方式方式3 3T0T0:两个:两个8 8位计数器位计数器T1: T1: 停止计数停止计数6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计
10、数器结构与功能分析 最大计数值最大计数值M=8192 定时时间为:(定时时间为:(8192-初值)初值)x时钟周期时钟周期x12 3、定时、定时/计数器的工作方式计数器的工作方式 (1)工作方式)工作方式0:M1、M0=00 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 (1)工作方式)工作方式0:M1、M0=00 工作于方式工作于方式0下的下的13位定时位定时/计数器计数器 内部计数器为内部计数器为1313位,由位,由TLiTLi低低5 5位(高位(高3 3位未用,一般清位未用,一般清零)和零)和THiTHi高高8 8位组成。位组成。TLiTLi低低5 5位
11、计数满时不向位计数满时不向TLiTLi的第六位的第六位进位,而是直接向进位,而是直接向THiTHi进位。当进位。当1313位计数计满溢出,溢出标位计数计满溢出,溢出标志位志位TFiTFi置位。置位。 3 3、定时、定时/ /计数器的工作方式计数器的工作方式 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 例如:当晶振为例如:当晶振为12M时,机器周期为时,机器周期为1us,试着配置定时器,试着配置定时器1工工作于方式作于方式0定时时间定时时间5ms的初值。的初值。 由于方式由于方式0采用采用13位计数器,其最大定时时间为:位计数器,其最大定时时间为:8192x1
12、us=8.192ms,大于定时时间,大于定时时间5ms,则计数值为,则计数值为5ms/1us=5000,T1的初值为:的初值为: X=M-计数值计数值=8192-5000=3192=C78H=0110001111000B 13位计数器中位计数器中TL1的高的高3位未用,填写位未用,填写0,TH1占高占高8位,所以位,所以X的实际填写值应为:的实际填写值应为: X=0110001100011000B=6318H 3、定时、定时/计数器的工作方式计数器的工作方式 (1)工作方式)工作方式0:M1、M0=00 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 3、定时、
13、定时/计数器的工作方式计数器的工作方式 (2)工作方式)工作方式1:M1、M0=01最大计数值最大计数值M=65536定时时间为:(定时时间为:(65536-初值)初值)X 时钟周期时钟周期 X 12 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 3、定时、定时/计数器的工作方式计数器的工作方式 (3)工作方式)工作方式2:M1、M0=10最大计数值最大计数值M=256 定时时间为:(定时时间为:(256-初值)初值)X时钟周期时钟周期 X 12 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 3、定时、定时/计数器的工作方式计
14、数器的工作方式 (3)工作方式)工作方式2:M1、M0=10 工作方式工作方式2具有初值自动装载功能,适合用于比较精准的定时场合。具有初值自动装载功能,适合用于比较精准的定时场合。 TLiTLi用作用作8 8位计数器,位计数器,THiTHi用来保持初值。用来保持初值。 编程时,编程时,TLiTLi和和THiTHi必须由软件赋予相同的初值。必须由软件赋予相同的初值。一旦一旦TLiTLi计数溢出,计数溢出,TFiTFi将被置位,同时将被置位,同时THiTHi中保存的初值自动装入中保存的初值自动装入TLiTLi,进,进入新一轮计数。入新一轮计数。 6.1.1 6.1.1 定时定时/ /计数器结构与功
15、能分析计数器结构与功能分析 3、定时、定时/计数器的工作方式计数器的工作方式 (4)工作方式)工作方式3:M1、M0=11只有只有T0可以设置为工作方式可以设置为工作方式3,T1设置为工作方式设置为工作方式3后不工作后不工作 T0被分解成两个独立的被分解成两个独立的8位计数器位计数器TL0和和TH0 6.1.1 6.1.1 定时定时/ /计数器结构与功能分析计数器结构与功能分析 3、定时、定时/计数器的工作方式计数器的工作方式 (4)工作方式)工作方式3:M1、M0=11当当T0T0在工作方式在工作方式3 3时,时,T1T1仍可设置为方式仍可设置为方式0 0、方式、方式1 1或方式或方式2 2
16、。由于由于TR1TR1、TF1TF1和和T1T1中断源已被中断源已被T0T0占用,定时器占用,定时器T1T1仅由控制位仅由控制位C/ C/ 切换其定时或计数功能。切换其定时或计数功能。当当T1T1计数器计满溢出时,只能将输出送往串行口。计数器计满溢出时,只能将输出送往串行口。T1T1一般用一般用作串行口波特率发生器或不需要中断的场合。作串行口波特率发生器或不需要中断的场合。当设置好工作方式后,当设置好工作方式后,T1T1自动开始计数;当送入一个设置自动开始计数;当送入一个设置T1T1为工作方式为工作方式3 3的方式字后,的方式字后,T1T1停止计数。停止计数。6.1.2 6.1.2 定时定时/
17、 /计数器编程与控制计数器编程与控制 6.1.2 6.1.2 定时定时/ /计数器编程与控制计数器编程与控制 (1)中断方式)中断方式编程步骤编程步骤设置中断优先级,当设置中断优先级,当中断只有一个时不用中断只有一个时不用设置设置设置设置TMOD初初始化始化设置定时设置定时/计计数初值数初值启动定时启动定时/计计数器数器编写定时编写定时/计数计数器中断的处理器中断的处理服务程序服务程序1 2 4 5 6 3 编程编程步骤步骤开中断开中断6.1.2 6.1.2 定时定时/ /计数器编程与控制计数器编程与控制 (1 1)中断方式)中断方式汇编语言编写汇编语言编写 ORG 0000H ORG 000
18、0H LJMP MAIN LJMP MAIN ORG 000BH ORG 000BH ; T0T0中断入口地址中断入口地址 LJMP TIMER0 LJMP TIMER0 ORG 0030H ORG 0030H MAIN:SETB EA MAIN:SETB EA ;开总中断;开总中断 SETB ET0SETB ET0 ;开定时器;开定时器T0T0中断中断 MOV TMOD,#XXH MOV TMOD,#XXH ;设置;设置TMODTMOD MOV TH0,#XXH MOV TH0,#XXH ;设置;设置TH0TH0、TL0TL0 MOV TL0,#XXH MOV TL0,#XXH SETB T
19、R0 SETB TR0 ;启动定时器;启动定时器T0T0 TIMER0:TIMER0: ;中断服务程序;中断服务程序 RETIRETI6.1.2 6.1.2 定时定时/ /计数器编程与控制计数器编程与控制 (1 1)中断方式)中断方式 CC语言编写语言编写#include#includevoid main( )void main( ) IE=0X83 IE=0X83; /开中断开中断 TMOD=0XXXTMOD=0XXX; / / 设置设置TMODTMOD TH0=0XXX TH0=0XXX; / / 设置设置TH0TH0、TL0TL0 TL0=0XXX TL0=0XXX; TR0=1TR0=
20、1; / / 启动定时器启动定时器T0T0 ; /=/=中断服务程序中断服务程序=void timer0( ) interrupt 1 / T0void timer0( ) interrupt 1 / T0中断服务子程序中断服务子程序 ; 6.1.2 6.1.2 定时定时/ /计数器编程与控制计数器编程与控制 (1 1)查询方式)查询方式 编程步骤编程步骤设置设置TMOD初始化初始化设置定时设置定时/计计数初值数初值启动定时启动定时/计计数器数器查询溢出标志查询溢出标志位位TF0或或TF1置位情况及相置位情况及相关处理关处理1 2 4 5 3 开中断开中断编程编程步骤步骤6.1.2 6.1.2
21、 定时定时/ /计数器编程与控制计数器编程与控制 (1)查询方式)查询方式汇编语言编写汇编语言编写 ORG 0000H ORG 0000H LJMP LJMPMAINMAIN ORG 0030H ORG 0030H MIAN:CLR EA MIAN:CLR EA ;关中断;关中断 MOV TMOD,#XXH MOV TMOD,#XXH ;设置;设置TMODTMOD MOV MOVTH0,#XXH TH0,#XXH ;设置;设置TH0TH0、TL0TL0 MOV MOVTL0,#XXHTL0,#XXH SETB SETBTR0TR0 ;启动定时器;启动定时器T0T0 LOOP:JBC TF0,T
22、IMER0 LOOP:JBC TF0,TIMER0 ;若;若TF0TF0置位,则先跳转到置位,则先跳转到TIMER0, TIMER0, ;后再清零;后再清零TF0TF0 LJMP LOOP LJMP LOOPTIMER0: TIMER0: ;中断处理程序;中断处理程序 LJMP LOOPLJMP LOOP END END6.1.2 6.1.2 定时定时/ /计数器编程与控制计数器编程与控制 (1)查询方式)查询方式 C语言编写语言编写#include#includevoid main( )void main( ) EA=0 EA=0; TMOD=0XxxTMOD=0Xxx;/设置设置TMODT
23、MOD TH0=0Xxx TH0=0Xxx; /设置设置TH0TH0、TL0TL0 TL0=0Xxx TL0=0Xxx; TR0=1TR0=1; /启动定时器启动定时器T0T0 if(TF0!=0) if(TF0!=0)/查询查询TF0TF0标志位是否置位标志位是否置位 TF0=0 TF0=0; /清零清零TF0TF0标志位标志位 ; /相关处理相关处理 ; 任务任务6.2 6.2 简易定时闹钟控制简易定时闹钟控制 6.2.1 控制要求与功能展示控制要求与功能展示实物运行视频实物运行视频两位数码管两位数码管K1K1按键按键 蜂鸣器蜂鸣器 单片机单片机 K2K2按键按键 6.2.1 控制要求与功
24、能展示控制要求与功能展示简易定时闹钟控制电路原理图简易定时闹钟控制电路原理图 任务任务6.2 6.2 简易定时闹钟控制简易定时闹钟控制6.2.2 6.2.2 硬件系统与控制流程分析硬件系统与控制流程分析 1 1、任务硬件系统分析、任务硬件系统分析 电路原理图所示,该电路主要是由电路原理图所示,该电路主要是由两个按两个按键电路键电路、1 1个蜂鸣器驱动电路个蜂鸣器驱动电路以及以及1 1个两位数码个两位数码管显示电路管显示电路组成。数码管显示电路中单片机组成。数码管显示电路中单片机P0P0口提供段选信号,而口提供段选信号,而P2P2口提供位选信号;蜂鸣口提供位选信号;蜂鸣器驱动电路由器驱动电路由P
25、NPPNP型三极管驱动。型三极管驱动。 6.2.2 6.2.2 硬件系统与控制流程分析硬件系统与控制流程分析 2 2、任务控制流程分析、任务控制流程分析 图图6-9 简易定时闹钟控制程序流程简易定时闹钟控制程序流程 6.2.3 汇编语言程序分析与设计汇编语言程序分析与设计 1 1、任务相关汇编指令、任务相关汇编指令 (1)位控制转移指令:)位控制转移指令:JBC 使用格式:使用格式:JBC bit, 使用说明:使用说明:JBC指令是用来判断某个位是否置位;置位后,则指令是用来判断某个位是否置位;置位后,则跳转到所指定的地址中去执行,同时再清零该位。跳转到所指定的地址中去执行,同时再清零该位。
26、使用示例使用示例 JBC TF0,TIMER0 ;判断;判断TF0是否置位,是则跳转到是否置位,是则跳转到 ;TIMER0执行,后清零执行,后清零TF0 ;否,则顺序执行;否,则顺序执行TIMER0:6.2.3 汇编语言程序分析与设计汇编语言程序分析与设计 (2)逻辑或操作指令:)逻辑或操作指令:ORL 使用格式:使用格式:ORL ,使用说明:使用说明:将目的操作数与源操作数按位进行将目的操作数与源操作数按位进行“或或”运算后,将其结果放回目的目的运算后,将其结果放回目的目的操作数中。操作数中。任意逻辑量和任意逻辑量和1相或,其结果为相或,其结果为1;和;和0相或,其结果不变。逻辑或指令常用相
27、或,其结果不变。逻辑或指令常用来把累加器、内部来把累加器、内部RAM或特殊功能寄存器的指定位置或特殊功能寄存器的指定位置1。目的操作数一般情况为累加器目的操作数一般情况为累加器A,但也可以是内部数据存储单元的地址。,但也可以是内部数据存储单元的地址。 使用示例使用示例ORL A,#01H ;将;将A中的内容与立即数中的内容与立即数01H相或后结果放入相或后结果放入A中中6.2.3 汇编语言程序分析与设计汇编语言程序分析与设计 (3)逻辑与操作指令:)逻辑与操作指令:ANL 使用格式:使用格式:ANL ,使用说明:使用说明:将目的操作数与源操作数按位进行相将目的操作数与源操作数按位进行相“与与”
28、之后,将其结果放在目的操作数之后,将其结果放在目的操作数中中;任意逻辑量(任意逻辑量(0或或1)和)和0相与,其结果为相与,其结果为0;和;和1相与,其结果不变。逻辑与相与,其结果不变。逻辑与指令常用来完成将若干数据位清指令常用来完成将若干数据位清0,而其余位不变的操作。,而其余位不变的操作。目的操作数一般情况为累加器目的操作数一般情况为累加器A,但也可以是内部数据存储单元的地址。,但也可以是内部数据存储单元的地址。 使用示例使用示例ANL A,#01H ;将;将A中的内容与立即数中的内容与立即数01H相与后结果放入相与后结果放入A中中 6.2.3 汇编语言程序分析与设计汇编语言程序分析与设计
29、 (4)逻辑异或操作指令:)逻辑异或操作指令:XRL使用格式:使用格式:XRL ,使用说明:使用说明:将目的操作数与源操作数按位进行相将目的操作数与源操作数按位进行相“异或异或”之后,将其结果放在操作数一之后,将其结果放在操作数一中。中。任意逻辑量(任意逻辑量(0或或1)和)和1相异或,其结果取反;和相异或,其结果取反;和0相异或,其结果不变。逻相异或,其结果不变。逻辑异或指令常用来完成将若干数据位取反,而其余位不变的操作。辑异或指令常用来完成将若干数据位取反,而其余位不变的操作。相同逻辑量(相同逻辑量(0或或1)相异或,结果为)相异或,结果为0,不同逻辑量相异或,结果为,不同逻辑量相异或,结
30、果为1,利用,利用这个特点,也可判断两数是否相等。这个特点,也可判断两数是否相等。 使用示例使用示例XRL A,#01H ;将;将A中内容与立即数中内容与立即数01H相异或后结果放入相异或后结果放入A6.2.3 6.2.3 汇编语言程序分析与设计汇编语言程序分析与设计 汇编程序汇编程序程序初始化程序初始化INIT子程序子程序按键去抖按键去抖子程序子程序QUDOU数码管显示数码管显示子程序子程序DIS主程序主程序MAIN输出处理输出处理子程序子程序SHUCHU定时定时/计数器计数器0中断子程序中断子程序T_0延时子程序延时子程序DELAY显示字符表显示字符表程序初始部分程序初始部分汇编程序汇编程
31、序6.2.4 C6.2.4 C语言程序分析与设计语言程序分析与设计 C C程序程序C C语言语言程序程序主函数主函数 main( )程序初始程序初始化子函数化子函数Init( )数码管显数码管显示子函数示子函数display()输出处理输出处理子函数子函数shuchu( )程序初始程序初始部分(含部分(含数据表定数据表定义)义)按键去抖按键去抖子函数子函数qu_doudong( )定时器中定时器中断子函数断子函数timer0_server( )延时子函数延时子函数delay( )1 1、创建、创建ProteusProteus仿真电路图仿真电路图 (1 1)列出元器件表;()列出元器件表;(2
32、2)绘制仿真电路图)绘制仿真电路图6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 安装插件安装插件vdmagdi.e(注(注意:应把插件安意:应把插件安装在装在Keil3的安的安装目录下)装目录下) 将将Keil安装目录安装目录C51BIN中的中的VDM51.dll文文件复制到件复制到Proteus软件软件的安装目录的安装目录ProteusMODELS目录下目录下 修改修改Keil安装目录安装目录下的下的Tools.ini文文件,在件,在C51字段字段中加入中加入TDRV
33、11=BINVDM51.DLL (“PROTEUS 6 EMULATOR”)并并保存。保存。 (1)(2)(3)2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 打开打开“简易定时闹钟简易定时闹钟控制控制.DSN ”文件,在文件,在Proteus的的“Debug”菜单中选中菜单中选中“Use Remote Debug Monitor(远程监(远程监控)控)”。右键选中。右键选中STC89C51单片机,单片机,在弹出的对话框在弹出的对话框“Program File”项项中,导入在中,导入在Kei
34、l中生中生成的成的HEX文件。文件。Keil打开打开“简易定时简易定时闹钟控制闹钟控制.UV2”,打开窗口打开窗口“Option for Target工程工程名名”。在。在Debug选项中右栏上部的选项中右栏上部的下拉菜单选中下拉菜单选中Proteus VSM Simulator。点击。点击进入进入Settings窗口,窗口,设置设置IP为为127.0.0.1,端口号为端口号为8000。 在在Keil中点击,使用中点击,使用单步执行来调试程单步执行来调试程序,同时在序,同时在Proteus中查看直观的仿真中查看直观的仿真结果。结果。(4)(5)(6)6.2.5 6.2.5 基于基于Proteu
35、sProteus的调试与仿真的调试与仿真 工作模式工作模式定时工作方式定时工作方式定时器当前值定时器当前值中断标志位中断标志位程序初始化后,程序初始化后,T0T0窗口窗口 2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 开启定时器开启定时器定时器当前值定时器当前值启动后中断前,启动后中断前,T0T0窗口窗口 2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 中断后定时器当前值中断后定时器当前
36、值为为0000H0000H标志位当进入中断后标志位当进入中断后自动清零自动清零中断时,中断时,T0T0窗口窗口 2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 TH0=0 x3CTH0=0 x3C、TL0=0 xB0TL0=0 xB0T0T0中断后,重新赋初值中断后,重新赋初值3CB0H 3CB0H 2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 R0=0 x01R0=0 x01T0T0中
37、断次数计数控制中断次数计数控制 2 2、ProteusProteus与与KeilKeil联调联调 2 2、ProteusProteus与与KeilKeil联调联调 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 低电平,蜂鸣器鸣叫低电平,蜂鸣器鸣叫TR0=0TR0=0定时时间到,定时时间到,TOTO停止运行停止运行 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 3 3、ProteusProteus仿真运行仿真运行 6.2.5 6.2.5 基于基于ProteusProteus的调试与仿真的调试与仿真 仿真运行视频仿真运
38、行视频任务任务6.3 6.3 简易按键计数器控制简易按键计数器控制 实物运行视频实物运行视频数码管数码管单片机单片机K1K1按键按键K2K2按键按键6.3.1 控制要求与功能展示控制要求与功能展示6.3.1 控制要求与功能展示控制要求与功能展示简易按键计数器控制电路原理图简易按键计数器控制电路原理图 任务任务6.3 6.3 简易按键计数器控制简易按键计数器控制 6.3.2 6.3.2 硬件系统与控制流程分析硬件系统与控制流程分析 1 1、任务硬件系统分析、任务硬件系统分析 电路原理图所示,该电路主要是由电路原理图所示,该电路主要是由2个按键电路个按键电路和和1个个数码管显示电路数码管显示电路组
39、成。该数码管显示电路中由单片机组成。该数码管显示电路中由单片机P0口口提供段选信号,其共阴端串上阻值提供段选信号,其共阴端串上阻值200欧的限流电阻接地。欧的限流电阻接地。但要使用计数器来实现该控制要求,需要了解单片机计数但要使用计数器来实现该控制要求,需要了解单片机计数器的部分具体知识。器的部分具体知识。 6.3.2 6.3.2 硬件系统与控制流程分析硬件系统与控制流程分析(1)单片机定时)单片机定时/计数器的计数功能计数器的计数功能 注意:计数器的位数确定了计数器的计数范围注意:计数器的位数确定了计数器的计数范围 定时定时/ /计数器有定时和计数两种功能,通过计数器有定时和计数两种功能,通
40、过定时定时/ /计数器的工作方式控制寄存器计数器的工作方式控制寄存器TMODTMOD中的中的C/ C/ 位控制。当位控制。当C/ C/ 位为位为1 1时,定时时,定时/ /计数器设为计数计数器设为计数工作方式,对由工作方式,对由T0(P3.4T0(P3.4引脚引脚) )或或T1(P3.5T1(P3.5引脚引脚) )引引入的外部脉冲计数,其余设置与定时器的设置相入的外部脉冲计数,其余设置与定时器的设置相同。同。 TT6.3.2 6.3.2 硬件系统与控制流程分析硬件系统与控制流程分析2 2、任务控制流程分析、任务控制流程分析图图6-22 简易按键计数器控制流程简易按键计数器控制流程 6.3.3
41、6.3.3 汇编语言程序分析与设计汇编语言程序分析与设计 汇编程序汇编程序程序初始化程序初始化INIT子程序子程序外部中断外部中断1服务服务子程序子程序INT_1数码管显示数码管显示子程序子程序XIANSHI主程序主程序MAIN计数中断计数中断0服务服务子程序子程序JISHU定时器定时器1中断处理中断处理子程序子程序T_1延时子程序延时子程序DELAY显示字符表显示字符表程序初始部分程序初始部分汇编程序汇编程序6.3.4 C6.3.4 C语言程序分析与设计语言程序分析与设计 C C程序程序C C语言语言程序程序主函数主函数 main( )程序初始程序初始化子函数化子函数Init( )数码管显数
42、码管显示子函数示子函数display()计数计数0中中断子函数断子函数T_0()定时器定时器1中中断子函数断子函数T_1()外部中断外部中断1子函数子函数int_1()外部中断外部中断1子函数子函数int_1()延时子函数延时子函数delay( )1 1、创建、创建ProteusProteus仿真电路图仿真电路图 (1 1)列出元器件表;()列出元器件表;(2 2)绘制仿真电路图)绘制仿真电路图6.3.5 6.3.5 基于基于ProteusProteus的调试与仿真的调试与仿真 6.3.5 6.3.5 基于基于ProteusProteus的调试与仿真的调试与仿真 安装插件安装插件vdmagdi
43、.e(注意:(注意:应把插件安装在应把插件安装在Keil3的安装目录的安装目录下)下) 将将Keil安装目录安装目录C51BIN中的中的VDM51.dll文件文件复制到复制到Proteus软件的安装目录软件的安装目录ProteusMODELS目录下目录下 修改修改Keil安装目录安装目录下的下的Tools.ini文文件,在件,在C51字段字段中加入中加入TDRV11=BINVDM51.DLL (“PROTEUS 6 EMULATOR”)并并保存。保存。 (1)(2)(3)2 2、ProteusProteus与与KeilKeil联调联调 6.3.5 6.3.5 基于基于ProteusProteus的调试与仿真的调试与仿真 打开打开“简易按键计数简易按键计数器控制器控制.DSN ”文件,文件,在在Proteus的的“Debug”菜单中选菜单中选中中“Use Remote Debug Monitor(远(远程监控)程监控)”。右键选。右键选中中STC89C51单片机,单片机,在弹出的对话框在弹出的对话框“Program File”项项中,导入在中,导入在Keil中生中生成的成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点解析-人教版九年级物理《内能的利用》章节练习试卷(解析版)
- 调酒知识竞赛试题及答案
- 考点解析-人教版八年级上册物理机械运动《运动的描述》同步训练试卷
- 新疆油田分公司高校毕业生招聘笔试真题2024
- 公路施工机械化作业管理方案
- 2025国考承德市信息技术岗位申论题库含答案
- 2025国考承德市外事管理岗位申论预测卷及答案
- 2024年广安市检察系统考试真题
- 解析卷-人教版八年级上册物理声现象《声音的特性声的利用》综合测试试卷(附答案详解)
- 重难点解析人教版八年级上册物理声现象《声音的产生与传播》专项测评练习题(含答案解析)
- 【求阴影部分面积】五年级上册数学必考求阴影部分面积35题2023.9.27
- 实验 曝气系统中氧的转移
- 蜂蛰伤诊治指南
- 小班音乐《小兔乖乖》
- 原平市屯瓦昌兴选矿厂铁矿资源开发利用、地质环境保护与土地复垦方案
- 河南省工业项目建设用地控制指标
- 工人退场工资结算单
- GB/T 203-2008用于水泥中的粒化高炉矿渣
- 最新交管12123学法减分题库(含答案)
- 人民解放军占领南京教学课件
- 新疆维吾尔自治区幼儿园等级评估标准(试行)
评论
0/150
提交评论