標題:
我想做一個數(shù)碼管顯示100~300之間的質(zhì)數(shù)的單片機程序 但是輸出數(shù)碼管顯示有問題
[打印本頁]
作者:
不雅
時間:
2018-12-15 19:29
標題:
我想做一個數(shù)碼管顯示100~300之間的質(zhì)數(shù)的單片機程序 但是輸出數(shù)碼管顯示有問題
#include<reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit k3=P3^2;
sbit k4=P3^3;
static j;
static t;
int m;
m=0;
int o,b[50]={50,156,982,384,345,156,68};
o=100;
void dalay(int x)
{int i,j;
for(i=0;i<=x;i++)
for(j=0;j<=30;j++);
}
void Timer0Init()
{
TMOD|=0X01;
TH0=0XFC;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void Int1Init()
{
#include<reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit k3=P3^2;
sbit k4=P3^3;
int o,b[50],m=0;
void dalay(int x)
{int i,j;
for(i=0;i<=x;i++)
for(j=0;j<=30;j++);
}
void Timer0Init()
{
TMOD|=0X01;
TH0=0XFC;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void Int1Init()
{
IT1=1;
EX1=1;
EA=1;
}
void Int0Init()
{
IT0=1;
EX0=1;
EA=1;
}
void baojing()
{
if(o>=0&&o<=3)
{ led4=~led4;
dalay(10);}
}
void zhishu()
{ int t,k,i,j;
k=0;
for(i=100;i<=300;i++)
{
for(j=i-1;j>1;j--)
{
t=1;
if(i%j==0)
{
t=0;break;
}
}
if(t==1)
{ b[k]=i;
k++;}
}
}
void xianshi()
{ int code a[10]={17,215,50,146,212,152,28,211,16,208};
led4=0;
Int1Init();
Timer0Init();
Int0Init();
led1=1;led2=0;led3=0;
P2=a[o%10];
dalay(5);
P2=a[0];
led2=1;led1=0;led3=0;
P2=a[o/10%10];
dalay(5);
P2=a[0];
led2=0;led1=0;led3=1;
P2=a[o/100];
dalay(5);
P2=a[0];
}
int main()
{
Int1Init();
Timer0Init();
Int0Init();
while(1){xianshi();}
return 0;
}
void Time0() interrupt 1
{
static int i;
static m;
m=0;
TH0=0XFC;
TL0=0X18;
i++;
if(i==1000)
{i=0;
o=b[m];
m++;}
}
void int1() interrupt 2
{
dalay(50);
if(k4==0)
TR0=~TR0;
}
void int0() interrupt 0
{
dalay(5);
if(k3==0)
{ o++;led4=0;}
}
作者:
xuyaqi
時間:
2018-12-15 21:34
數(shù)碼管顯示有問題不光跟軟件有關(guān),也和硬件有關(guān),硬件電路也要告訴大家。
作者:
devcang
時間:
2018-12-15 22:03
問題也說說是怎樣的問題吧
~~~~~~~~
作者:
不雅
時間:
2018-12-16 00:37
謝謝老哥們 找到問題了
#include<reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
int o,b[50];
int m;
m=0;
void dalay(int x)
{int q,w;
for(q=0;q<=x;q++)
for(w=0;w<=30;w++);
}
void Timer0Init()
{
TMOD|=0X01;
TH0=0XFC;
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void xianshi()
{ int code a[10]={17,215,50,146,212,152,28,211,16,208};
led4=0;
while(1)
{ Timer0Init();
led1=1;led2=0;led3=0;
P2=a[o%10];
dalay(30);
P2=a[0];
led2=1;led1=0;led3=0;
P2=a[o/10%10];
dalay(30);
P2=0;
P2=a[0];
led2=0;led1=0;led3=1;
P2=a[o/100];
dalay(30);
P2=a[0];
}
}
void zhishu()
{
int t,k,i,j;
k=0;
for(i=100;i<=300;i++)
{
for(j=i-1;j>1;j--)
{
t=1;
if(i%j==0)
{
t=0;break;
}
}
if(t==1)
{ b[k]=i;
k++;}
}}
int main()
{ zhishu();
xianshi();
return 0;
}
void Time0() interrupt 1
{
int h;
TH0=0XFC;
TL0=0X18;
h++;
if(h==1000)
{h=0;
o=b[m];m++;}
}
作者:
不雅
時間:
2018-12-16 00:37
xuyaqi 發(fā)表于 2018-12-15 21:34
數(shù)碼管顯示有問題不光跟軟件有關(guān),也和硬件有關(guān),硬件電路也要告訴大家。
謝謝老哥 找到錯誤了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1