ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

51单片机定时器实验

2021-11-21 15:03:04  阅读:151  来源: 互联网

标签:TL0 jinzhi 计数 51 模式 TH0 单片机 定时器


实践内容:
1.修改电路,P2.1接LED,P3.4接按键
2.要求在Proteus中设计硬件电路,单片机晶振设置为11.0596MHz
3.编写程序实现如下功能:
当P3.4引脚的电平连续发生5次负跳变,单片机P2.1引脚所接的LED灯亮3s灭1s,循环5次后停止,数码管显示灯亮时间。
要求用定时中断和计数中断实现。在Proteus中加载程序代码并运行仿真。
在这里插入图片描述
在这里插入图片描述

#include<reg52.h>
sbit P34 = P3^4;
sbit led = P2^1;
unsigned char i,count;
unsigned char jinzhi;
unsigned char code discode[12]={0x76,0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char code discodey[12]={0x89,0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void main(){
	led = 0;
 	TMOD= 0x06;
	TL0 = 0xfb;
	TH0 = 0xfb;
	count = 0;
	jinzhi=0;
	ET0 = 1;
	EA = 1;
	TR0 = 1;
	while(1);
}

void time0_int(void) interrupt 1{
	TMOD = 0x01;
	TL0 = 0x00;
	TH0 = 0xDC;	
	ET0 = 1;
	EA = 1;
	TR0 = 1;
	if(count<5){
		i++;
		if(i==1&&jinzhi==0){
		    led = 1;
		    P1 = discodey[1];
		} 
		else if(i==100&&jinzhi==0){
			i=0;
		 	P1 = discodey[2];
		 	jinzhi = 1;
		}
		else if(i==100&&jinzhi==1){
			P1 = discodey[3];
		}
		else if(i==200){
		 	led=0;
			count++;
			jinzhi = 0;
			P1=discodey[4];
		}



	}
}

			 

问题讨论

定时器4种模式的区别是什么?模式2有何特殊性?

模式0是一个13位的定时器/计数器。在模式0状态下,16位寄存器(TH0和TL0)只用了其中的13位,包括TL0的低5位和TH0的8位,TL0的高3位未用。
模式1是一个16位的定时器/计数器。上图所示为模式1的逻辑电路结构图。
在该模式下,TH0和TL0对应的16位全部参与计数运算。当TH0和TL0计数满溢出时由硬件自动将TF0置位并申请中断,同时16位加1计数器继续从0开始计数。
在定时工作方式,定时时间t对应的初值为初值X = 216 – t × fosc/12
在计数工作方式,计数长度最大为216 = 65536(个外部脉冲)
工作模式3对T0和T1来说大不相同。T0设置为模式3时,TL0和TH0被分成两个相互独立的8位计数器,其中TL0可工作于定时器方式或计数器方式,而TH0只能工作于定时器方式。

特殊:在模式2中,只有TL0用作8位计数器参与脉冲计数工作,TH0不参与计数,只用来保存初值。
该模式可省去软件中重装常数的语句,能够产生相当精确的定时时间,所以适合作为串行口的波特率发生器。

标签:TL0,jinzhi,计数,51,模式,TH0,单片机,定时器
来源: https://blog.csdn.net/oemmm/article/details/121453719

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有