标题:
单片机代码无错误,板子无法运行
[打印本页]
作者:
2283213
时间:
2022-6-19 12:28
标题:
单片机代码无错误,板子无法运行
板子用的是STC89C52单片机
#include<reg52.h>
sbit ksec=P3^0;
sbit kmin=P3^1;
sbit khour=P3^2;
unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsigned int num=0,sec=0,min=0,hour=0;
unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(unsigned int);
void keyscan();
void display();
main()
{
TMOD=0x01;
TH0=(65536-50000)/256; // 定时50ms //晶振:11.0592MHZ
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
keyscan();
}
}
//延时函数
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
//定时器中断程序
void time0()interrupt 1
{
num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
//LED显示程序
void display()
{
if(num==20) //累加达到50*20=1000ms=1s
{
num=0;
sec++;
if(sec==60) //累加60s,进位1min
{
sec=0;
min++;
if(min==60) //累加60min,进位1h
{
min=0;
hour++;
if(hour==24) //累加24h,全部回归0
{
hour=0;
min=0;
sec=0;
}
}
}
}
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=0xfe; //11111110,0端口低电平
P0=table[secge];
delay(5);
P2=0xfd; //11111101,1端口低电平
P0=table[secshi];
delay(5);
P2=0xfb;
P0=0x40;
delay(5);
P2=0xf7;
P0=table[minge];
delay(5);
P2=0xef;
P0=table[minshi];
delay(5);
P2=0xdf;
P0=0x40;
delay(5);
P2=0xbf;
P0=table[hourge];
delay(5);
P2=0x7f;
P0=table[hourshi];
delay(5);
}
//按键控制子程序
void keyscan()
{
if(ksec==0)
{
delay(10); //消抖
if(ksec==0)
{
sec++;
if(sec>=60)
sec=0;
}
while(ksec==0)
display();
}
if(kmin==0)
{
delay(10);
if(kmin==0)
{
min++;
if(min>=60)
min=0;
}
while(kmin==0)
display();
}
if(khour==0)
{
delay(10);
if(khour==0)
{
hour++;
if(hour>=24)
hour=0;
}
while(khour==0)
display();
}
}
作者:
兴安xa
时间:
2022-6-19 14:46
单片机运行的几大条件都满足了吗,现在是什么现象,IO都指定对了吗?
作者:
lkc8210
时间:
2022-6-19 22:53
代码仿真正常
Honeycam 2022-06-19 22-51-53.gif
(22.54 KB, 下载次数: 37)
下载附件
2022-6-19 22:52 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1