打印

变化的比较慢

[复制链接]
711|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llia|  楼主 | 2023-1-13 23:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
给P3.2口接地,程序应该响应中断,(中断服务程序)d1灯亮,(主程序)数码管停止变化,可是执行的时候d1灯亮,数码管还是在变化,只是变化的比较慢

使用特权

评论回复
沙发
llia|  楼主 | 2023-1-13 23:46 | 只看该作者

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
EA=1;//开总中断
EX0=1;//开外部中断0
//IT0=1;
TCON=0x00;
wela=1;//11101010
P0=0xea;
wela=0;
while(1)
{
     for(num=0;num<16;num++)
      {
       d1=1;
       dula=1;
       P0=table[num];
       dula=0;
       delay(1000);
   }
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}
void exter0() interrupt 0
{
d1=0;
}

使用特权

评论回复
板凳
tpgf| | 2023-2-3 15:51 | 只看该作者
数码管和灯都是如何同单片机进行连接的呢

使用特权

评论回复
地板
qcliu| | 2023-2-3 16:05 | 只看该作者
我觉得这样写代码有问题 因为你在不同的地方给同一个额变量进行了赋值

使用特权

评论回复
5
drer| | 2023-2-3 16:13 | 只看该作者
楼主这样做在单片机里很危险 需要做一个互斥

使用特权

评论回复
6
coshi| | 2023-2-3 16:32 | 只看该作者
实时检测一下d1这个数据的变化 可能问题出在它的身上

使用特权

评论回复
7
kxsi| | 2023-2-3 16:48 | 只看该作者
楼主在中断里边对数据清零了 但是在主函数中又在赋值

使用特权

评论回复
8
wiba| | 2023-2-3 16:55 | 只看该作者
全局变量发生了意外的变化 这样就会对判断产生干扰

使用特权

评论回复
9
Stahan| | 2023-2-8 21:22 | 只看该作者
中断里边对数据清零了

使用特权

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

本版积分规则

961

主题

8893

帖子

4

粉丝