实验五---定时计数器实验说课讲解.ppt
实验五-定时计数器实验计数器:计数器:对外来脉冲进行计数,对外来脉冲进行计数,T0T0、T1T1引脚上从高电平到低电平跳变时,计数器内容加引脚上从高电平到低电平跳变时,计数器内容加1 1。外来脉冲外来脉冲T0机器周期机器周期片内计数器片内计数器单片机单片机内内部部定定时时器器/计计数数器器的的编编程程主主要要是是定定时时时时间间常常数数的的设设置置和和有有关关控控制制寄寄存存器器的的设设置置。内内部部定定时时器器/计计数数器器在在单单片片机机中中主主要要有有定定时时和和计计数数两两种种功功能能。本本实验使用的是定时功能。实验使用的是定时功能。与与定定时时器器有有关关的的寄寄存存器器有有工工作作方方式式寄寄存存器器TMODTMOD和和控控制制寄寄存存器器TCONTCON。TMODTMOD用用于于设设置置定定时时器器计计数数器器的的工工作作方方式式0-30-3,并并确确定定用用于于定定时时还还是是用用于于计计数数。TCONTCON主主要要功功能能是是为为定定时时器器在在溢溢出出时时设设定定标标志志位位,并并控控制制定定时时器器的运行或停止等。的运行或停止等。内内部部计计数数器器用用作作定定时时器器时时,是是对对机机器器周周期期计计数数。每每个个机机器器周周期期的的长长度度是是1212个个振振荡荡器器周周期期。因因为为实实验验系系统统的的晶晶振振是是12MHZ12MHZ,本本程程序序定定时时器器工工作于方式作于方式1 1(1616位方式)时,最大定时时间为:位方式)时,最大定时时间为:2 21616*1s=65536s*1s=65536s再利用软件记数再利用软件记数,当当T0T0中断中断1616次时,所用时间为:次时,所用时间为:65536*16=1048576s1s65536*16=1048576s1s因因此此在在T0T0中中断断处处理理程程序序中中,要要判判断断中中断断次次数数是是否否到到1616次次,若若不不到到1616次次,则则只使中断次数加只使中断次数加1 1,然后返回,若到了,然后返回,若到了1616次,则使输出状态位取反。次,则使输出状态位取反。在在设设置置时时间间常常数数前前要要先先关关对对应应的的中中断断,设设置置完完时时间间常常数数之之后再打开相应的中断。后再打开相应的中断。内内 部部 计计 数数 器器 起起 计计 数数 器器 的的 作作 用用 时时,外外 部部 事事 件件 计计 数数 脉脉 冲冲 由由T0T0(P3.4P3.4)脚脚引引入入定定时时器器T0T0。单单片片机机在在每每个个机机器器周周期期采采样样一一次次输输入入波波形形,因因此此单单片片机机至至少少需需要要两两个个机机器器周周期期才才能能检检测测到到一一次次跳跳变变,这这就就要要求求被被采采样样电电平平至至少少维维持持一一个个完完整整的的机机器器周周期期,以以保保证证电电平平在在变变化化之之前前即即被被采采样样。同同时时这这就就决决定定了了输输入入波波形形的的频频率率不不能能超超过过机器周期频率。机器周期频率。五、实验步骤五、实验步骤1 1、安安装装好好仿仿真真器器,用用串串行行数数据据通通信信线线连连接接计计算算机机与与仿仿真真器器,把把仿仿真真头头插插到到模模块块的的单单片片机机插插座座中中,打打开开实实验验台台电电源源,打打开开仿仿真真器器电电源源打开电脑。打开电脑。2 2、启启动动计计算算机机,打打开开伟伟福福仿仿真真软软件件,进进入入仿仿真真环环境境。首首先先进进行行仿仿真真器器的的设设置置,选选择择仿仿真真器器型型号号、仿仿真真头头型型号号、CPUCPU类类型型。选选择择通通信信端口,点击测试串行口,通信成功便可退出设置,进行仿真。端口,点击测试串行口,通信成功便可退出设置,进行仿真。3 3、在在编编辑辑窗窗口口输输入入源源程程序序,保保存存,文文件件名名为为T5-1.ASMT5-1.ASM等等。对对T5-T5-1.ASM1.ASM等等源源程程序序进进行行编编译译,编编译译无无误误后后,执执行行程程序序,观观察察实实验验现现象,分析象,分析结结果。果。4 4、完成定时计数程序设计。完成定时计数程序设计。5 5、完成定时、完成定时1 1秒程序设计。秒程序设计。六、内容六、内容1(A)1(A)参考程序:参考程序:(查询方式)定时查询方式)定时20MS20MS ORG OOOOHORG OOOOH LJMP START ;LJMP START ;查询方式查询方式 ORG 4100HORG 4100HSTART:MOVSTART:MOV TMOD TMOD,#10H;设置工作方式;设置工作方式1 MOV TH1 MOV TH1,#09EH;置定时初值;置定时初值45536=B1E0H MOV TL1 MOV TL1,#58H#58H SETB TR1 SETB TR1 ;启动定时器启动定时器WAITWAIT:JBC TF1JBC TF1,NEXT NEXT ;查询查询定定时时器器0 0溢出溢出标标志位是志位是 否否为为1 1,为为1 1就就执执行行NEXTNEXT子程序子程序 SJMP WAIT SJMP WAIT ;为为0 0就不停的就不停的查询查询TF0TF0NEXTNEXT:CPL P1.5CPL P1.5 MOV TH1 MOV TH1,#09H#09H MOV TL1 MOV TL1,#58H#58H SJMP WAIT SJMP WAIT END END内容内容1(A)1(A)中断方式(中断方式(20MS20MS定时):定时):ORG 0000H ORG 0000H LJMP START LJMP START ;ORG 000BH ORG 000BH ;定;定时计时计数器数器0 0溢出中断入口地址溢出中断入口地址 LJMP TODSLJMP TODS ORG 4100H ORG 4100HSTART:MOVSTART:MOV TMOD TMOD,#10H#10H;设设置工作方式置工作方式1_1_ MOV TH0 MOV TH0,#09EH_#09EH_ ;置定;置定时时初初值值45536=B1E0H45536=B1E0H MOV TL0 MOV TL0,#58H#58H SETB ET1 SETB ET1 ;开放开放TOTO中断中断 SETB EA SETB EA ;开放开放CPUCPU总总中断中断 SETB TR0 SETB TR0 ;启;启动动定定时时器器 SJMP$SJMP$;等待定;等待定时时器器0 0溢出中断溢出中断TODSTODS:MOV TH0MOV TH0,#0B1_#0B1_ ;重装定;重装定时时初初值值 MOV TL0MOV TL0,#0E0_#0E0_ CPL P1.5_ CPL P1.5_ ;取反;取反 RETI RETI ;定;定时时中断返回中断返回 ENDEND内容内容1(B)1(B)中断方式(中断方式(1 1秒定时):秒定时):ORG 0000H ORG 0000H LJMP START LJMP START ;ORG 000BH ORG 000BH ;定;定时计时计数器数器0 0溢出中断入口地址溢出中断入口地址 LJMP TODSLJMP TODS ORG 4100H ORG 4100HSTART:MOVSTART:MOV TMOD TMOD,#10H#10H;设设置工作方式置工作方式1_1_ MOV TH0 MOV TH0,#9EH_#9EH_ ;置定;置定时时初初值值45536=B1E0H45536=B1E0H MOV TL0 MOV TL0,#58H_#58H_ SETB ET1 SETB ET1 ;开放开放TOTO中断中断 SETB EA SETB EA ;开放开放CPUCPU总总中断中断 MOV R2,#50MOV R2,#50 SETB TR0 SETB TR0 ;启;启动动定定时时器器 SJMP$SJMP$;等待定;等待定时时器器0 0溢出中断溢出中断TODSTODS:MOV TH0MOV TH0,#0B1_#0B1_ ;重装定;重装定时时初初值值 MOV TL0MOV TL0,#0E0_#0E0_ DJNZ R2,RTUN DJNZ R2,RTUN CPL P1.5_ CPL P1.5_ ;取反;取反 MOV R2,#50RTUN:RETI ;定时中断返回;定时中断返回 END中断方式:计数ORG0000HSJMPMAINORG000BH;定时器0溢出中断入口地址AJMPJISHU;跳到中断子程序MAIN:MOVA,#00HMOVTMOD#00000101B;设置为工作方式1计数模式MOVTH0,#0FFH;置初值MOVTL0,#0FFHSETBET0;开放T0中断SETBEA;开放(CPU)总中断SETBTR0;启动T1SJMP$;等待中断JISHU:INCA;A加1CPLA;取反MOVP1,A;送P1输出CPLAMOVTH1,#0FFH;重置计数初值MOVTL0,#0FFHRETI七、实验报告要求七、实验报告要求1 1、实验内容、实验内容1 1、2 2为必做;为必做;2 2、每每个个内内容容要要求求有有程程序序框框图图与与程程序序清清单单(指指令令注释);注释);4 4、实实验验报报告告应应包包括括实实验验目目的的、实实验验内内容容、实实验验步骤、记录观察现象、实验体会等。步骤、记录观察现象、实验体会等。此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢