<微机原理>[汇编语言]-[实验五] 定时器实验
实验五 定时器实验
一、实验目的
学习定时器的工作原理及使用方法。
学习定时器的初始化程序、应用程序的编写和调试。
二、实验仪器
- Keil5
- 普中A2开发板
- 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循环显示
<微机原理>[汇编语言]-[实验五] 定时器实验相关推荐
- led接口实验微型计算机,“微机原理与接口技术”开放性实验建设——“点阵LED显示器显示汉字”实验...
"微机原理与接口技术"开放性实验建设--"点阵LED显示器显示汉字"实验 维普资讯 http://doc.xuehai.net 第 2 6卷第 9期 20 0 ...
- 微机原理-8255A-八人抢答器实验
1. 首先附上工程原理图,Proteus的版本是8.9,有小伙伴需要下载完整工程的,在本文末尾下方给出了全套工程de百度网盘链接~如果要正常运行此工程,需要Proteus8.9及8.9以上版本. 2. ...
- 定时器实验循环彩灯C语言,单片机实验三-定时器实验
实验三 定时器实验 --循环彩灯实验 一. 实验目的 1. 学习8051内部计数器的使用和编程方法. 2. 进一步掌握中断处理程序的编写方法. 二. 实验原理 1. 定时常数的确定 定时器/计数器的输 ...
- 计算机网络实验五,计算机网络(实验五).docx
计算机网络(实验五).docx 实验五一.实验内容在这个实验室里,我们将探讨ICMP 协议得几个方面由 Ping 项目产生得P 信息Tracer ute程序生成得C消息关于 CM 信息得格式与内容.在 ...
- 计算机系统(1) 实验五 中断实验
计算机系统(1) 实验五 中断实验 一.实验目的 二.实验背景及要求 (一)实验背景: (二)实验要求:实现三部分程序 1.用户程序: 2.键盘中断处理程序: 3.操作系统使能代码: 三.实验步骤 1 ...
- C#面向对象程序设计课程实验五:实验名称:C#面向对象技术
C#面向对象程序设计课程实验五:实验名称:C#面向对象技术 实验内容:C#面向对象技术 一. 实验目的及要求 二.实验环境 三.实验内容与步骤 3.1.实验内容:测试类,实现多态 3.2.实验步骤 3 ...
- 子程序调用与宏定义的异同_微机原理 宏指令及子程序设计实验:宏指令和子程序的区别...
西安邮电学院 微机原理实验报告 题 目: 宏指令及子程序设计实验 院系名称: 班 级: 学生姓名: 学号(8位): 指导教师: 2.5 宏令及子程序设计实验 2.5.1 实验目的 1.熟悉宏指令.宏定 ...
- 微机原理与接口技术课内实验-NUAA-Masm for Windows
目录 1.软件下载: Masm for Windows 2015(友好的文本编辑器,但是运行和调试仍会调出dosbox.) 2. 做亿点点说明 3.命令行方式运行汇编:(实验四会用到,终究逃不过) ...
- 【微机原理与接口技术】实验报告
文章目录 实验一:系统认识实验 实验二:运算类编程实验 实验三:输入输出类编程实验 实验四:判断类编程实验 实验五:顺序排序实验 实验六:累加求核实验 实验一:系统认识实验 一.实验内容: 编写实验程 ...
最新文章
- python怎么编辑图片_python读取图片并修改格式与大小的方法
- mysql删除有空格字符名称的触发器
- HDFS集群安装部署
- LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...
- file的open()和read()
- mybatis使用注解替代xml配置,动态生成Sql
- Android开启adb
- C++总结笔记(七)—— 运算符重载
- [转帖]jQuery框架学习第四天:使用jQuery操作元素的属性与样式
- html a标签有value,html里面a标签里有value吗?
- [ACM] hdu 2082 找单词 (母函数)
- Response AddHeader使用实例
- 安丘妇幼保健院智能照明监控系统的设计与应用-安科瑞耿敏花
- 微信卡券的创建、领取、核销
- 大地高和正常高、正高的详细说明
- win7安装JDK并配置
- 未明学院:还没入职就被“裁员”,大批应届生遭千亿巨头强制解约! Sorry,秋招 Offer 我们决定撤回…
- Linux 简介 ------ 带你简单了解Linux
- c盘空间清理,无需软件
- DP动态规划-爬塔(双层dp)
热门文章
- Kubernetes实战实现 Guestbook 留言板-简易版详解
- Jarvis OJ pwn guestbook2
- 报表工具对比选型系列用例——过程计算
- photon四种同步方式_Photon与Unity核心技术之角色动作同步 - 纳金网
- SELinux权限问题
- eclipsePHP配置xdebug
- 瑞禧|富勒烯C60|Fullerene-C60|CAS:99685-96-8
- 海思3559万能平台搭建:串口编程
- 2019年12月广西计算机2级考试时间,2019上半年广西全国计算机二级考试报名时间12月14日-24日...
- attribute的用法总结