标题:
单片机考试,说什么解释程序,有大佬嘛
[打印本页]
作者:
v的v饿死
时间:
2017-11-21 20:01
标题:
单片机考试,说什么解释程序,有大佬嘛
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit a1=P1^0;
sbit a2=P1^1;
sbit a3=P1^2;
sbit key=P2^7;
uchar code table[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88};//,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
uchar code dispbit[]={0x01,0x02};//数码管位选码
uchar dis1[]={0,0};
uchar num,temp=10;
uchar t0=0;
void Delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
// temp=0xfb;
// P1=temp;
}
void Display()
{
uchar i,x,y;
dis1[0]=num/10;
dis1[1]=num%10;
for(i=0;i<2;i++)
{
P0=table[dis1[i]];
P3=table[dis1[i]];
P2=dispbit[i];//位选
Delay(5);
P2=0x00;
if(key==1)
{
P1=0xf6;
EA=0;
for(x=5000;x>0;x--)
for(y=110;y>0;y--);
}
else EA=1;
}
}
void main()
{
init();
num=30;
while(num!=0)
{
loop:Display();
if(key==1)
goto loop;
P1=0xde;
// Delay(10);
if(num==5)
{
while(num!=0)
{
loop2:Display();
if(key==1)
goto loop2;
P1=0xee;
Delay(10);
// P1=0xfe;
// Delay(10);
}
}
}
num=30;
while(num!=0)
{
loop1:Display();
if(key==1)
goto loop1;
P1=0xf3;
// Delay(10);
if( num==5)
{
while(num!=0)
{
loop3:Display();
if(key==1)
goto loop3;
P1=0xfd;
Delay(3);
}
}
// P1=0xfb;
// Delay(3);
}
}
void time0()interrupt 1 using 0
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(t0==20)
{
t0=0;
num--;
}
}
复制代码
作者:
v的v饿死
时间:
2017-11-21 20:13
求解释啊,明天考试,大佬们- -
作者:
a1183810556
时间:
2017-11-21 21:04
考试都这么多代码了吗
作者:
lujunda2
时间:
2017-11-22 12:01
怎么看都觉得是计时器的代码
作者:
wc86110
时间:
2017-11-22 16:05
大佬们都很忙的,估计源程序注释标出来了,你的考试也已结束了。
作者:
gaohan130
时间:
2017-11-22 20:54
中断计时,送入数码管显示,通过按键控制某个功能
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1