打印
[51单片机]

一个程序中怎么怎们可以同时用到外部中断和定时器

[复制链接]
4656|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
moxue10|  楼主 | 2014-4-12 13:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar bai,shi,ge;
uint num,dishu,geshu;
sbit zhdu=P3^2;
sbit den1=P0^1;
sbit den2=P0^5;
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void init();
uint yunsh(uchar bai,uchar shi,uchar ge);
void shuanfa();
void display(uchar bai,uchar shi,uchar ge);
void delay(uint z);
void main()
{
        init();
        while(1)
        {
                if(dishu==3)
                {
                        dishu=0;
                }
                TR0=0;
                shuanfa();
                display(bai,shi,ge);

        }
       
}


void init()
{
        TMOD=0x01;
        TH0=(65536)/256;
        TL0=(65536)%256;
        EA=1;
        ET0=1;
        EX0=1;
        TR0=1;
        IT0=1;
        num=1;
       
}


void exter0() interrupt 0
{
        den1=0;
        dishu++;
        zhdu=1;
       
}

void timer0() interrupt 1
{
        den2=0;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
}

void shuanfa()
{
                geshu=360/num;
                bai=geshu/100;
                shi=geshu/10%10;
                ge=geshu%10;
}

void display(uchar bai,uchar shi,uchar ge)
{
        P2=0xff;
        P2=table[bai];
        P1=0xef;
        delay(10);

        P2=0xff;       
        P2=table[shi];
        P1=0xdf;
        delay(10);

        P2=0xff;
        P2=table[ge];
        P1=0xbf;
        delay(10);
}

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);       
}

相关帖子

沙发
huangxz| | 2014-4-12 15:14 | 只看该作者
有啥问题啊,你这不是用了吗

使用特权

评论回复
板凳
dirtwillfly| | 2014-4-13 13:45 | 只看该作者
有啥问题?
改错题也地说下什么错误吧

使用特权

评论回复
地板
沧海一笑| | 2014-4-13 14:44 | 只看该作者
呵呵,太神秘了...标题不检查就发出来了.

使用特权

评论回复
5
coody| | 2014-4-13 15:55 | 只看该作者
再多几个中断都可以,只要理清逻辑

使用特权

评论回复
6
liub_2014| | 2014-4-14 14:55 | 只看该作者
他这是在质问?

使用特权

评论回复
7
jxw82284134| | 2014-4-14 15:03 | 只看该作者
配置好中断优先级就行了

使用特权

评论回复
8
moxue10|  楼主 | 2014-5-3 15:36 | 只看该作者
huangxz 发表于 2014-4-12 15:14
有啥问题啊,你这不是用了吗

不知道为什么 一直在定时器的中断中  外部中断好像不起作用  

使用特权

评论回复
9
moxue10|  楼主 | 2014-5-3 15:38 | 只看该作者
dirtwillfly 发表于 2014-4-13 13:45
有啥问题?
改错题也地说下什么错误吧

程序好像一直在定时器中断中  外部中断好像不管用

使用特权

评论回复
10
moxue10|  楼主 | 2014-5-3 15:39 | 只看该作者
dirtwillfly 发表于 2014-4-13 13:45
有啥问题?
改错题也地说下什么错误吧

程序好像一直在定时器中断中  外部中断好像不管用

使用特权

评论回复
11
moxue10|  楼主 | 2014-5-3 15:40 | 只看该作者
沧海一笑 发表于 2014-4-13 14:44
呵呵,太神秘了...标题不检查就发出来了.

不好意思  第一次发没有经验  程序好像一直在定时器中断中  外部中断好像不管用

使用特权

评论回复
12
moxue10|  楼主 | 2014-5-3 15:41 | 只看该作者
coody 发表于 2014-4-13 15:55
再多几个中断都可以,只要理清逻辑

嗯 谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

35

帖子

0

粉丝