实验五 定时器实验

一、实验目的

  1. 学习定时器的工作原理及使用方法。

  2. 学习定时器的初始化程序、应用程序的编写和调试。

二、实验仪器

  1. Keil5
  2. 普中A2开发板
  3. stc-isp

三、实验内容

数码管间隔一秒循环显示0-F,一秒的时间要求采用内部定时器T0。

四、流程框图

五、实验程序

     ORG     0000HAJMP    STARTORG     000BHAJMP    T0_INTORG     0030H
START:                          ;系统初始化MOV     R0  ,   #00H        ;R0作为TO中断计数器MOV     R1  ,   #00H        ;R1存储显示数字MOV     DPTR,   #TAB1       ;指向字形码表首地址MOV     A   ,   #00H        ;初始化数码管显示0MOVC    A   ,   @A+DPTR     ;取字形码MOV     P0  ,   A           ;数码管显示0ANL     TMOD,   #0F0H       ;初始化定时器0ORL     TMOD,   #01H        ;设置定时器0工作方式1MOV     TL0 ,   #00H        ;设置定时器初值 50msMOV     TH0 ,   #4CH        ;设置定时器初值CLR     TF0                 ;清除TF0标志SETB    TR0                 ;定时器0开始计时SETB    ET0                 ;开启T0溢出中断SETB    EA                  ;开启总中断
KEEP:SJMP    KEEP                ;等待定时器0中断
T0_INT:MOV     TL0 ,   #00H        ;重装定时器初值 50msMOV     TH0 ,   #4CH        ;重装定时器初值INC     R0                  ;R0加1CJNE    R0  ,   #20 ,RETURN ;判断是否到达1sMOV     R0  ,   #00H        ;R0清0INC     R1                  ;显示值加1CJNE    R1  ,   #10H,SC     ;判断R1是否到了16,到了则置0进行循环MOV     R1  ,   #0          ;R1置0
SC:MOV     A   ,   R1          ;MOVC    A   ,   @A+DPTR     ;MOV     P0  ,   A           ;RETI
RETURN:RETI
TAB1:;0 - F共阴极字形码DB      03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0-9DB      77H,7CH,39H,5EH,79H,71HEND

六、程序分析

使用定时器0计时50ms,每50ms进入一次定时器0中断服务函数

使用R0作为T0中断的计数器,每50ms进入中断进行R0+1,若R0等于20,则说明计时1s。

使用R1存储数码管显示的数字,每计时1秒R1+1,若R1等于16,则R1置0,实现0~F循环。

思考题:

阐述定时器几种工作方式所实现的功能及应用时的注意事项。

定时器T0有两种工作模式(计数模式、定时模式)和4种工作方式(方式0,方式1,方式2,方式3)

工作模式

(1)计数模式

计数模式是指对外部事件进行计数,外部事件的发生以输入脉冲来表示,因此计数功能的实质就是对外来脉冲进行计数

(2)定时模式

定时功能也是通过计数来实现的,只不过此时的计数脉冲来自单片机芯片内部,是系统震荡脉冲经12分频后送来的,由于一个机器周期等于12个震荡脉冲周期,所以此时的定时器/计数器是每到一个机器周期就加1,计数频率位震荡脉冲频率的1/12。

工作方式

(1)方式0

为13位计数器,由TL的低5位和TH的在整个8位所构成。TL低5位溢出向TH进位,TH计数溢出则把TCON种的溢出标志位TF置位为1,此时,计数器会清0并暂停工作,待初值重新装入后才又开始工作。

(2)方式1

方式1与方式0基本相同,方式1为16位计数器,由TH作为高8位,TL作为低8位

(3)方式2

为自动恢复初值(初值自动装入)的高8位定时器/计数器,TL作为8位计数器用,TH作为8位常数缓存器,以保存计数初值。当TL计数溢出时,在置1溢出标志TF的同时,还自动将TH中保存的初值送至TL,使TL从初值开始重新计数。

方式2可以省去用户软件中重装初值的指令执行时间,简化定时初值的计算办法,可以相当精确地确定定时时间。

(4)方式3

方式3是为了增加1个附加的8位定时器/计数器提供的,从而使单片机具有三个定时器/计数器。只有定时器/计数器T0能工作于这种方式。

注意事项

初始化定时器时(以初始化定时器0为例),应使用ANL语句而不是MOV语句

ANL TMOD, #0F0H ;初始化定时器0

这样可以将影响定时器0工作方式的标志位清0,且不影响定时器1的工作方式。

再使用ORL语句设置定时器0的工作方式

ORL TMOD, #01H ;设置定时器0工作方式1

如果使用MOV语句,在设置定时器0工作方式的同时会影响定时器1的工作方式。

采用上面两条语句初始化则不需要关心定时器1的工作方式。做到一条语句只办一件事,增强了程序的复用性。

七、测试报告

每隔1秒,数码管显示的值+1,实现0~F循环显示

<微机原理>[汇编语言]-[实验五] 定时器实验相关推荐

  1. led接口实验微型计算机,“微机原理与接口技术”开放性实验建设——“点阵LED显示器显示汉字”实验...

    "微机原理与接口技术"开放性实验建设--"点阵LED显示器显示汉字"实验 维普资讯 http://doc.xuehai.net 第 2 6卷第 9期 20 0 ...

  2. 微机原理-8255A-八人抢答器实验

    1. 首先附上工程原理图,Proteus的版本是8.9,有小伙伴需要下载完整工程的,在本文末尾下方给出了全套工程de百度网盘链接~如果要正常运行此工程,需要Proteus8.9及8.9以上版本. 2. ...

  3. 定时器实验循环彩灯C语言,单片机实验三-定时器实验

    实验三 定时器实验 --循环彩灯实验 一. 实验目的 1. 学习8051内部计数器的使用和编程方法. 2. 进一步掌握中断处理程序的编写方法. 二. 实验原理 1. 定时常数的确定 定时器/计数器的输 ...

  4. 计算机网络实验五,计算机网络(实验五).docx

    计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...

  5. 计算机系统(1) 实验五 中断实验

    计算机系统(1) 实验五 中断实验 一.实验目的 二.实验背景及要求 (一)实验背景: (二)实验要求:实现三部分程序 1.用户程序: 2.键盘中断处理程序: 3.操作系统使能代码: 三.实验步骤 1 ...

  6. C#面向对象程序设计课程实验五:实验名称:C#面向对象技术

    C#面向对象程序设计课程实验五:实验名称:C#面向对象技术 实验内容:C#面向对象技术 一. 实验目的及要求 二.实验环境 三.实验内容与步骤 3.1.实验内容:测试类,实现多态 3.2.实验步骤 3 ...

  7. 子程序调用与宏定义的异同_微机原理 宏指令及子程序设计实验:宏指令和子程序的区别...

    西安邮电学院 微机原理实验报告 题 目: 宏指令及子程序设计实验 院系名称: 班 级: 学生姓名: 学号(8位): 指导教师: 2.5 宏令及子程序设计实验 2.5.1 实验目的 1.熟悉宏指令.宏定 ...

  8. 微机原理与接口技术课内实验-NUAA-Masm for Windows

    目录 1.软件下载:  Masm for Windows 2015(友好的文本编辑器,但是运行和调试仍会调出dosbox.) 2. 做亿点点说明 3.命令行方式运行汇编:(实验四会用到,终究逃不过) ...

  9. 【微机原理与接口技术】实验报告

    文章目录 实验一:系统认识实验 实验二:运算类编程实验 实验三:输入输出类编程实验 实验四:判断类编程实验 实验五:顺序排序实验 实验六:累加求核实验 实验一:系统认识实验 一.实验内容: 编写实验程 ...

最新文章

  1. python怎么编辑图片_python读取图片并修改格式与大小的方法
  2. mysql删除有空格字符名称的触发器
  3. HDFS集群安装部署
  4. LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...
  5. file的open()和read()
  6. mybatis使用注解替代xml配置,动态生成Sql
  7. Android开启adb
  8. C++总结笔记(七)—— 运算符重载
  9. [转帖]jQuery框架学习第四天:使用jQuery操作元素的属性与样式
  10. html a标签有value,html里面a标签里有value吗?
  11. [ACM] hdu 2082 找单词 (母函数)
  12. Response AddHeader使用实例
  13. 安丘妇幼保健院智能照明监控系统的设计与应用-安科瑞耿敏花
  14. 微信卡券的创建、领取、核销
  15. 大地高和正常高、正高的详细说明
  16. win7安装JDK并配置
  17. 未明学院:还没入职就被“裁员”,大批应届生遭千亿巨头强制解约! Sorry,秋招 Offer 我们决定撤回…
  18. Linux 简介 ------ 带你简单了解Linux
  19. c盘空间清理,无需软件
  20. DP动态规划-爬塔(双层dp)

热门文章

  1. Kubernetes实战实现 Guestbook 留言板-简易版详解
  2. Jarvis OJ pwn guestbook2
  3. 报表工具对比选型系列用例——过程计算
  4. photon四种同步方式_Photon与Unity核心技术之角色动作同步 - 纳金网
  5. SELinux权限问题
  6. eclipsePHP配置xdebug
  7. 瑞禧|富勒烯C60|Fullerene-C60|CAS:99685-96-8
  8. 海思3559万能平台搭建:串口编程
  9. 2019年12月广西计算机2级考试时间,2019上半年广西全国计算机二级考试报名时间12月14日-24日...
  10. attribute的用法总结