找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8533|回复: 13
打印 上一主题 下一主题
收起左侧

单片机中断程序中ET0和ET1选择的区别

[复制链接]
跳转到指定楼层
楼主
ID:717594 发表于 2020-4-4 23:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在学习普中51单片机时23课时发现,定时器中断时,如果选择定时器的工作方式由1改为2时,TMOD=0X01,TH0=0XFC,TL0=18;ET0=1;要改成TMOD=0X10; TH1=0XFC,TL1=0XFC,ET1=1;

请问这其中的TH0、TL0和ET0,为何要改成TH1、TL1和ET1?

源代码如下
#include "reg52.h"
typedef unsigned int u16;

sbit led=P0^0

void initimer()
{ TMOD=0x01;
   TH0=0XFC;
   TL0=0X18;
   ET0=1;
   EA=1;
   TR0=1;
   }
void main()
{  initimer();
   while(1);
  }
void Init0() interrupt 1   
{ static u16 i;
  TH0=0XFC;
  TL0=0X18;
  i++;
  if(i==1000)
  {led=~led;
    i=0;}
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:201555 发表于 2020-4-5 08:33 | 只看该作者
由定时器0(T0)中断改为用定时器1(T1),相应设置就得改了。
回复

使用道具 举报

板凳
ID:94031 发表于 2020-4-5 09:04 | 只看该作者
51单片机有2个定时器,0和1,TH0、TL0和ET0是管定时器0,TH1、TL1和ET1是管定时器1,要用那个定时器就要用相应参数设置。
回复

使用道具 举报

地板
ID:454000 发表于 2020-4-5 10:03 | 只看该作者
这是51单片机定时器很基础的知识,最好把视频多看几次,理解透彻一些!
回复

使用道具 举报

5#
ID:695749 发表于 2020-4-5 10:31 | 只看该作者
根据需要选用不同的定时器,定时器的参数也要作相应的设置。不过你在写程序时还要进一步的规范,你的程序在编译时报错(例如:sbit led=P0^0),没有加分号(;),共同进步。
回复

使用道具 举报

6#
ID:719007 发表于 2020-4-5 10:42 | 只看该作者
TH0、TL0是定时器0特殊功能寄存器,TH1、TL1是定时器1的特殊功能寄存器
回复

使用道具 举报

7#
ID:719007 发表于 2020-4-5 10:48 | 只看该作者
TH0、TL0是定时器0的特殊功能寄存器,TH1、TL1是定时器1的特殊功能寄存器
回复

使用道具 举报

8#
ID:720276 发表于 2020-4-5 11:30 | 只看该作者
定时器/计数器应用时有四步:1对TMOD赋值,确定是用T0还是T1,TMOD有8位,低四位用于T0,高四位用于T1.当TMOD=0X10时,确定用T1,当TMOD=0X01时,确定用T0.
回复

使用道具 举报

9#
ID:720276 发表于 2020-4-5 11:51 | 只看该作者
定时器/计数器的有四步:1、对TMOD赋值,以确定T1,T0的工作方式,TMOD有8位,高四位用于T1,低四位用于T0,当TMOD=0X10时,确定用T1.当TMOD=0X01时,确定用T0.2、计算初值,并写入TH0、TL0或TH1、TL1。第一步已经确定了定时器,后面直接对应用了定时器T0后面用TH0、TL0,确定用定时器T1,后面就对应用TH1、TL1。3、对IE赋值,开放中断,当用定时器T0时,置ET0=1,当用定时器T1时,置ET1=1,另外需开总允许位,即EA=1。4、对TR0或TR1置位,启动定时/计数器工作,用T0时,置TR0=1,用T1时,置TR1=1。总的来说第一步确定了定时器,后三步也就确定了
回复

使用道具 举报

10#
ID:717594 发表于 2020-4-5 15:37 | 只看该作者
xuyaqi 发表于 2020-4-5 09:04
51单片机有2个定时器,0和1,TH0、TL0和ET0是管定时器0,TH1、TL1和ET1是管定时器1,要用那个定时器就要用 ...

已经明白了,谢谢
回复

使用道具 举报

11#
ID:717594 发表于 2020-4-5 15:38 | 只看该作者
曹鸿剑 发表于 2020-4-5 11:30
定时器/计数器应用时有四步:1对TMOD赋值,确定是用T0还是T1,TMOD有8位,低四位用于T0,高四位用于T1.当TM ...

已经明白了,非常感谢。
回复

使用道具 举报

12#
ID:717594 发表于 2020-4-5 15:39 | 只看该作者
曹鸿剑 发表于 2020-4-5 11:51
定时器/计数器的有四步:1、对TMOD赋值,以确定T1,T0的工作方式,TMOD有8位,高四位用于T1,低四位用于T0 ...

已经明白了,非常感谢。
回复

使用道具 举报

13#
ID:835618 发表于 2022-1-11 14:03 | 只看该作者
TH0 TL0为定时器0初值寄存器,TH1 TL1为定时器1初值寄存器,ET0是定时器0使能寄存器,ET1是定时器1使能寄存器,你使用定时器1,当然就要改成这样了。
回复

使用道具 举报

14#
ID:984253 发表于 2022-1-11 21:57 | 只看该作者
ET0和ET1不是在TMOD(定时计数器工作方式控制寄存器)单元中 ET0和ET1是在IE(中断控制寄存器)单元中 ET0时定时计数器0溢出中断允许控制位 ET1时定时计数器1溢出中断允许控制位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表