51单片机定时器实验(汇编)

这篇具有很好参考价值的文章主要介绍了51单片机定时器实验(汇编)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于AT89C51的定时器实验,汇编语言,分享出来是希望各位能共同学习。附上注释希望能认真研究,若有错误请指出,谢谢。

一、实验目的

  1. 掌握单片机定时器的使用方法。
  2. 掌握中断的使用方法。

二、实验内容

采用中断方式控制定时器。使得单片机P1.0引脚产生周期为1S的方波,控制发光二极管D1以1S为周期闪烁(即亮、灭的时间各为0.5S)。单片机P1.1引脚产生周期为20S的方波,控制发光二极管D2以20S为周期闪烁(即亮、灭的时间各为10S)。

三、 实验说明

       中断定时时间可设置为50ms,计时50ms时间到即进入中断子程序。同时,程序设置两个计数器,进入中断子程序则计数器10减1,计数器10减为0则定时时间为0.5s,此时可将P1.0口的值取反,产生周期为1s的方波;而当0.5s时间到,计数器20可减1,当减为0则定时时间为10s,此时可将P1.1口的值取反,产生周期为20s的方波。

四、实验代码

代码以及注释

  ORG	0000H			;程序入口地址
	    AJMP	START			;跳转到START程序
	    ORG	000BH			;中断服务程序入口
	    AJMP	TIME			;中断服务程序TIME
	    ORG	0030H			;START程序起始地址
START:	
	    MOV	SP,#60H			;设置堆栈指针
	    MOV	TMOD,#01H	;设置T0方式1定时模式
	    MOV	TL0,#0B0H		;TL0赋初值
	    MOV 	TH0,#3CH		;TH0赋初值,总定时50ms
	    SETB	ET0				;允许T0中断
	     SETB	TR0			  ;启动T0计数
	    SETB	EA				;允许总中断
	    MOV	R7,#20			;计数器2	,只有R1循环十次,R0才循环一次
	    MOV	R2,#10			;计数器1
LOOP:	
	    AJMP	LOOP			;等待循环
TIME:   
	    MOV	TL0,#0B0H		;恢复定时器初值
	    MOV	TH0,#3CH		
	    DJNZ	R2,SS			;当R1不为0时,跳出中断,又开始计时,为0时,将R1的循环次数恢复,为下一次循环做准备
	    MOV	R2,#10
	    CPL	P0.0			;计时到0.5s,P0.0取反
	    DJNZ	R7,SS			;当R0不等于0时,跳出中断,计时,为0时,恢复循环次数,
	    MOV	R7,#20
	    CPL	P0.1
SS:	  	    
	    RETI	    
	    END

电路图如下51单片机定时器实验(汇编)

 

五、实验结果

1.定时器D1 0.5S闪烁一次

2.定时器D2 10S闪烁一次

六、实验小结

要注意到原本电阻很大,LED没办法亮起来,将电阻改为100欧姆以后,LED正常使用(通过测试,低于500欧姆能发光,不过电阻在500欧姆时候只会微亮,不明显)文章来源地址https://www.toymoban.com/news/detail-507366.html

到了这里,关于51单片机定时器实验(汇编)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机定时器/计数器(定时器中断)

    实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1、51单片机定时器原理 定时器实质上就是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到定数器满时,再输入一个脉冲就使定时器回零

    2024年02月06日
    浏览(57)
  • 51单片机——定时器中断

    新版51单片机内部有 3 个16位可编程的定时器/计数器,即定时器 T0,T1,T2 。他们既有 定时 功能又有 计数 功能,我们可以通过配置与它们相关的特殊功能寄存器可以选择启用定时功能或计数功能;其中需要注意的是,这个定时器系统是单片机内部的一个独立的硬件部分,它与

    2023年04月10日
    浏览(44)
  • 51单片机(七)定时器

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月07日
    浏览(56)
  • 51单片机之定时器篇

    首先,学好单片机必须要搞懂定时器,定时器是单片机重要的组成部分之一,总之,学不好定时器,单片机相当于没学,下面就让我介绍如何学好单片机定时器。 学习单片机首先要明白的: 1,51单片机有两组定时器/计数器,既可以定时,又可以计数,总称之定时器 2,单片

    2024年02月11日
    浏览(54)
  • 51单片机PWM(定时器)

    目录 前言 一、PWM的介绍 二、在定时器中配置PWM 三、代码  总结         PWM普遍应用于惯性系统,我们知道单片机几乎只能输出“1”和“0”两种状态,即开和关,想要输出模拟量是不太容易实现的,那么怎样才能使单片机输出平滑的线性信号呢?没接触过PWM的小伙伴可能第

    2024年02月09日
    浏览(55)
  • 【51单片机】:定时器的详解(包括对单片机定时解释、各类定时方式,以及中断方式)

              51定时/计数器的详解。                   码字不易,如有帮助请收藏,点赞哦。         前提:首先我们知道51单片机内部有21~26个特殊功能寄存器: P.x口寄存器:P0、P1、P2、P3 数据指针寄存器:DP0H、DP0L、DP1H、DP1L 定时器: TH1、TL1、TH0、TL0、TMOD、TCON 串口:

    2024年02月07日
    浏览(98)
  • 51单片机定时器基础知识

    经验总结:定时器0工作方式1的溢出中断初始值计算 1.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。 65536-46080=19456(4c00) TH0=0x4c,TL0=0x00 2.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。 65536-50000=15536(3cb0) TH0=0x

    2024年02月04日
    浏览(115)
  • 51单片机定时器中断TMOD

    最近在学定时器中断TMOD,写程序时,要对定时器进行配置 对TMOD进行赋值时,拌了好久。。。。 如何根据所用的      定时器0/1 ,  工作方式0/1/2/3      对TMOD赋值呢? 我们知道: 1.TMOD长这样 :  由八位组成,前四位是T1的参数;后四位是T0的参数;GATE 和 C/T\\\' 不用多讲,

    2024年02月12日
    浏览(47)
  • 51单片机中断定时器1用法

    中断为使单片机具有对内部或外部随机发生的事件实时处理而设置的。 中断技术不仅解决了快速主机与I/O设备的数据传送问题,而且还有具有如下的优点: 1. 分时操作:CPU可以分时为多个I/O设备服务,提高了计算机的利用率。 2. 实时操作:CPU能够及时处理应用系统的随机事

    2024年02月06日
    浏览(61)
  • 【单片机c51】定时器应用1

    1.系统时钟为12MHz,编程实现从P1.0引脚输出一个周期为2ms的方波。 注:要想产生一个周期2ms的方波,定时器应产生1ms的周期性的定时,定时对P1.0求反。选择定时器T0,方式1定时,采用中断方式,GATE不起作用。   注:1.EA=1 所有的中断请求被开放 2.ET0=1  允许T0溢出的请求 3.T

    2024年02月04日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包