找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机定时器中断

[复制链接]
跳转到指定楼层
楼主
ID:730131 发表于 2020-4-29 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
#define  unit   unsigned  int
#define  uchar  unsigned  char
bit      BT0;
void  delay(unit n);
main()
{
  unit b[10]={0x0C0,0x0F9,0x0A4,0x0B0,0x99,0x92,0x82,0x0F8,0x80,0x90};
  unit a,d,timecount;
  uchar  x;
  TMOD=0X01;//T0工作方式1
  TH0=0X0B1;
  TL0=0X0E0;
  TR0=1;//开启T0
  EA=1;//开启总中断
  ET0=1;//开启T0中断
  timecount=25;

  d=10;
  a=0;
  while (1)
   {

   x=a/d;//把A的十位分离
      P2=b[x];//查数组表
   P3=0X01;//开十位片选
      delay(1);//动态扫描
   P3=0X00;//关十位片选
   x=a%d;//把A的个位分离
   P2=b[x];//查数组表
   P3=0X02;//开个位片选
   delay(1);//动态扫描
   P3=0X00;//关十位片选

  if (BT0==1)//等待中断的到来
        BT0=1;
    if (timecount==0)//如果到了0.5S,A加1
       {a=a+1;
              timecount=25;
    }
    else
    timecount--;
}

}
void  delay(unit n)//延时程序
{ unit  y;
   unit  j;
   for (y=n;y>0;y--)
      for(j=5000;j>0;j--)
   {;}
  }void T0SER (void) interrupt 1 using 1//T0重新赋初植
{
  TH0=0X0B1;
  TL0=0X0E0;
  BT0=1;

}
类似这样的定时器中断设计00-99的启动停止及清除

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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