các pro ơi giúp mình chữa code ngắt ngoài hiện thị trên led 7 thanh( dếm sản phẩm ) với
mình đang làm đồ án với nó sao mà khi mình bấm ngắt mà các số trong led 7 thanh chạy loạn hết cả lên
ko theo quy tắc mình viết j cả
theo quy nguyên tắc thì mình bấm và giữ 1 nút thì nó chỉ nhẩy 1 số mà bây jo mình mà bấm giữ thì nó chạy lung tung mà chả theo quy tắc từ 1 đến 9 j cả;
đây là code
#include<regx52.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
sbit l1=P3^2;
void tre(unsigned int ms)
{unsigned int i;
unsigned int j;
for(i=0;i<ms;++i);
for(j=0;j<150;++j);
}
unsigned int donvi;
unsigned int chuc;
unsigned int tram;
unsigned int nghin;
unsigned int k;
unsigned int num;
code unsigned char dulieu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 9};
void hienthi()
{
nghin = num/1000; //chia lay phan nguyen
tram = (num%1000)/100; //chia lay phan du
chuc = ((num%1000)%100)/10; //chia lay nguyen
donvi = ((num%1000)%100)%10; //chia lay phan du
{P1=0x01;
P2=dulieu[donvi];tre(10);
P1=0x02;
P2=dulieu[chuc]; ;tre(10);
P1=0x04;
P2=dulieu[tram];tre(10);
P1=0x08;
P2=dulieu[nghin];tre(10);
tre(10);
P1=0xff; tre(10);}
}
void main(void)
{IE = 0x81; //cho phep ngat noai 0
num=0;
while(1)
{
hienthi();
}}
void ngatngoai(void) interrupt 0
{if(l1==0);
tre(50);
++num;//tang bien len 1 gia tri
}
mình ko up dc fire lên
mạch như thế này
port 2 nối với 7 thanh led 7 thanh chung nhau
por1 nối với 4 chân cấp nguồn cho led
ngat mình dùng tạm nút bấm ,
ai giúp mình với
mình mới tham gia diễn đàn
thank nhiều!
mình đang làm đồ án với nó sao mà khi mình bấm ngắt mà các số trong led 7 thanh chạy loạn hết cả lên
ko theo quy tắc mình viết j cả
theo quy nguyên tắc thì mình bấm và giữ 1 nút thì nó chỉ nhẩy 1 số mà bây jo mình mà bấm giữ thì nó chạy lung tung mà chả theo quy tắc từ 1 đến 9 j cả;
đây là code
#include<regx52.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
sbit l1=P3^2;
void tre(unsigned int ms)
{unsigned int i;
unsigned int j;
for(i=0;i<ms;++i);
for(j=0;j<150;++j);
}
unsigned int donvi;
unsigned int chuc;
unsigned int tram;
unsigned int nghin;
unsigned int k;
unsigned int num;
code unsigned char dulieu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 9};
void hienthi()
{
nghin = num/1000; //chia lay phan nguyen
tram = (num%1000)/100; //chia lay phan du
chuc = ((num%1000)%100)/10; //chia lay nguyen
donvi = ((num%1000)%100)%10; //chia lay phan du
{P1=0x01;
P2=dulieu[donvi];tre(10);
P1=0x02;
P2=dulieu[chuc]; ;tre(10);
P1=0x04;
P2=dulieu[tram];tre(10);
P1=0x08;
P2=dulieu[nghin];tre(10);
tre(10);
P1=0xff; tre(10);}
}
void main(void)
{IE = 0x81; //cho phep ngat noai 0
num=0;
while(1)
{
hienthi();
}}
void ngatngoai(void) interrupt 0
{if(l1==0);
tre(50);
++num;//tang bien len 1 gia tri
}
mình ko up dc fire lên
mạch như thế này
port 2 nối với 7 thanh led 7 thanh chung nhau
por1 nối với 4 chân cấp nguồn cho led
ngat mình dùng tạm nút bấm ,
ai giúp mình với
mình mới tham gia diễn đàn
thank nhiều!
Comment