找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于定时器控制000~999跑表的中断问题:

[复制链接]
跳转到指定楼层
楼主

我这个定时器显示方面没毛病,但是我搞不懂外部中断控制,看视频在外部中断函数中加了“TR0=~TR0”让他可以通过按键来控制通断,可是断开时,它并不能显示中断时的时间,想请各位大佬指教,下边还有我的protues原理图
         #include<STC12C5A60S2.h>
#include<intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit p32=P3^2;
u8 code smgduan[]={
                                                0x3f,0x06,0x5b,0x4f,0x66,
                                                0x6d,0x7d,0x07,0x7f,0x6f,
                                    };
u8 smgwei[]={0,0,0};


void Init0int()
{
        TH0=0XEE;
        TL0=0X00;
        ET0=1;
    TR0=1;
}

u8 k,i,m=0;

void delay(u16 x)
{
    u16 i,j;
    for(i=x;i>0l;i--)
    for(j=255;j>0;j--);
}

void main()
{
        k=0x01;
        i=0;
        m=0;
        TMOD=0X01;
        Init0int();
        IT0=1;
        IE0=1;
        EX0=1;
       
        PT0=1;
        EA=1;
        while(1);
       
              

}

void Key() interrupt 0         using 0
{

               
                TR0=~TR0;

         
}

void display()
{
         P2=0x00;
                if(k==0X01)
                        P0=smgduan[smgwei[0]];
                if(k==0X02)
                        P0=0x40;
        if(k==0x04)
            P0=smgduan[smgwei[1]];
        if(k==0X08)
                        P0=smgduan[smgwei[2]];         
               
                P2=k;
                i++;
                if(i==4)
                {
                        i=0;
               
                        k=0x01;
                }
                else
                        k=_crol_(k,1);
}


void Timer0() interrupt 1
{
       
        TH0=0Xee;
        TL0=0X00;
       
       
        m++;
                 
   if(m==1)
        {
          display();

        }
         
        if(m==2)
        {       
            m=0;
                if(smgwei[2]==9)
                {
                        smgwei[2]=0;
                                       
                        if(smgwei[1]==9)
                        {
                                 smgwei[1]=0;
                               
                                if(smgwei[0]==9)
                                        smgwei[0]=0;
                                else
                                         smgwei[0]++;
                        }
                        else
                                smgwei[1]++;
       
            }
                else
                        smgwei[2]++;
                                                       
    }
         
       
}

捕获.PNG (217.22 KB, 下载次数: 50)

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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