实验四 定时计数器实验
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、实验步骤 安装好仿真器,用串行数据通信线连接计算机与仿真器, 1、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真 头插到模块的单片机插座中,打开实验台电源, 头插到模块的单片机插座中,打开实验台电源,打开仿真器电源 打开电脑。 打开电脑。 启动计算机,打开伟福仿真软件,进入仿真环境。 2、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真 器的设置,选择仿真器型号、仿真头型号、CPU类型 类型。 器的设置, 选择仿真器型号、仿真头型号、CPU类型。选择通信 端口,点击测试串行口,通信成功便可退出设置,进行仿真。 端口,点击测试串行口,通信成功便可退出设置,进行仿真。 3 、 在编辑窗口输入源程序 , 保存 , 文件名为 T5-1.ASM 等 。 对 T5ASM等源程序进行编译,编译无误后,执行程序, 1.ASM 等源程序进行编译, 编译无误后 ,执行程序 ,观察实验现 分析结果。 象,分析结果。 4、完成定时计数程序设计。 完成定时计数程序设计。 5、完成定时1秒程序设计。 完成定时1秒程序设计。
内部计数器起计数器的作用时,外部事件计数脉冲由T 内部计数器起计数器的作用时,外部事件计数脉冲由T0 (P3.4 脚引入定时器T 单片机在每个机器周期采样一次输入波形, )脚引入定时器T0。单片机在每个机器周期采样一次输入波形, 因此单片机至少需要两个机器周期才能检测到一次跳变, 因此单片机至少需要两个机器周期才能检测到一次跳变,这就要 求被采样电平至少维持一个完整的机器周期, 求被采样电平至少维持一个完整的机器周期,以保证电平在变化 之前即被采样。 之前即被采样。同时这就决定了输入波形的频率不能超过机器周 期频率。 期频率。
计算机一般利用第三种方法实现
8051内部设有两个16位的定时器/计数器,可用软件控制。 8051内部设有两个16位的定时器/计数器,可用软件控制。 内部设有两个16位的定时器 定时器:对机器周期计数, 定时器:对机器周期计数, 每过一个机器周期,计数器内容加1 每过一个机器周期,计数器内容加1 ;
计数器:对外来脉冲进行计数, 计数器:对外来脉冲进行计数, T0、T1引脚上从高电平到低电平跳变时 计数器内容加1 引脚上从高电平到低电平跳变时, T0、T1引脚上从高电平到低电平跳变时,计数器内容加1。
实验四
一、 实验目的
定时计数器实验
1、学习51单片机内部定时计数器的工作原理、基本性能; 学习51单片机内部定时计数器的工作原理、基本性能; 51单片机内部定时计数器的工作原理 2、学习51单片机内部定时计数器的使用和编程方法; 学习51单片机内部定时计数器的使用和编程方法; 51单片机内部定时计数器的使用和编程方法 3、学习定时扩展的编程方法 。 二、实验仪器和设备 PC机 WAVE仿真软件、 6000/L仿真器+POD-51仿真头、 PC机、WAVE仿真软件、E6000/L仿真器+POD-51仿真头、 仿真软件 /L仿真器+POD 仿真头 单片机应用与仿真开发实验台、开关电源等。 单片机应用与仿真开发实验台、开关电源等。 三、实验内容 内容1 采用查询和中断两种方式编程,利用单片机内部定时计数器T 内容1:A、采用查询和中断两种方式编程,利用单片机内部定时计数器T0定 50ms 使连接到I/O口线上的LED状态发生一次反转,一直循环。 ms, I/O口线上的LED状态发生一次反转 时50ms,使连接到I/O口线上的LED状态发生一次反转,一直循环。 B、完成定时1秒I/O口线状态反转或者P1口所接的LED轮流点亮。 完成定时1 I/O口线状态反转或者P 口所接的LED轮流点亮。 口线状态反转或者 LED轮流点亮 内容2 利用内部定时计数器T 按计数器模式工作于方式1 内容2 :利用内部定时计数器T1,按计数器模式工作于方式1,对P3.5 引脚 进行计数,每计数5个脉冲, I/O口线上的LED反转一次 反复循环。 口线上的LED反转一次, 进行计数,每计数5个脉冲,使I/O口线上的LED反转一次,反复循环。
0000H CSEG AT 0000H LJMP START ;中断方式 000BH CSEG 000BH LJMP TODS 4100H CSEG AT 4100H START: TMOD, START: MOV TMOD,#_____ TH0 MOV TH0,#______ TL0 MOV TL0,#______ TR0 SETB TR0 SJMP $ TODS: TH0 TODS: MOV TH0,#_____ TL0 MOV TL0,#_____ CPL P1.____ RETI END
Байду номын сангаас
机器周期 T0 外来脉冲 单片机
片内计数器
内部定时器/ 内部定时器/计数器的编程主要是时间常数的设置和有关控制寄存器的 设置。内部定时器/计数器在单片机中主要有定时和计数两种功能。 设置。内部定时器/计数器在单片机中主要有定时和计数两种功能。本实验 使用的是定时功能。 使用的是定时功能。 与定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。 与定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD TMOD和控制寄存器TCON 用于设置定时器/计数器的工作方式0 并确定用于定时还是用于计数。 用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。 TCON主要功能是为定时器在溢出时设定标志位 主要功能是为定时器在溢出时设定标志位, TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停 止等。 止等。 内部计数器用作定时器时,是对机器周期计数。 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12个振荡器周期 因为实验系统的晶振是12MHZ, 个振荡器周期。 12MHZ 12个振荡器周期。因为实验系统的晶振是12MHZ,本程序定时器工作于方式 16位方式 位方式) 最大定时时间为: 1(16位方式)时,最大定时时间为: μs=65536 65536μs 216*1μs=65536μs 再利用软件记数, 再利用软件记数,当T0中断16次时,所用时间为 中断16次时, 16次时 65536*16=1048576μs≈1 65536*16=1048576μs≈1s μs≈ 因此在T 中断处理程序中,要判断中断次数是否到16 16次 若不到16 16次 因此在T0中断处理程序中,要判断中断次数是否到16次,若不到16次,则 只使中断次数加1 然后返回,若到了16 16次 则使输出状态位取反。 只使中断次数加1,然后返回,若到了16次,则使输出状态位取反。 在设置时间常数前要先关对应的中断, 在设置时间常数前要先关对应的中断,设置完时间常数之后再打开相 应的中断。 应的中断。
四、实验说明 实现定时一般有三种方法: 实现定时一般有三种方法: 1、利用软件实现(延时程序); 利用软件实现(延时程序) 优点:简单,控制方便;缺点:CPU效率低。 优点:简单,控制方便;缺点:CPU效率低。 效率低 2、硬件实现,专门设计一个单稳态定时器: 硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 优点:CPU效率高;缺点:修改参数麻烦。 效率高 3、利用计数器实现
六、内容1参考程序: 内容1参考程序: 0000H CSEG AT 0000H LJMP START ;查询方式 4100H CSEG AT 4100H START: TMOD, START: MOV TMOD,#_____ TH0 MOV TH0,#______ TL0 MOV TL0,#______ TR0 SETB TR0 WAIT: TF0 WAIT: JBC TF0,NEXT SJMP WAIT NEXT: NEXT: CPL P1.____ TH0 MOV TH0,#_____ TL0 MOV TL0,#_____ SJMP WAIT END
七、实验报告要求 1、实验内容1、2为必做; 实验内容1 为必做; 2、每个内容要求有程序框图与程序清单(指令注释); 每个内容要求有程序框图与程序清单(指令注释) 实验报告应包括实验目的、实验内容、实验步骤、 4、实验报告应包括实验目的、实验内容、实验步骤、记录观察现 实验体会等。 象、实验体会等。