2014年AT89C51单片机开发板程序.doc
文本预览下载声明
AT89C51单片机开发板程序
1个LED数码管静态显示(0-9)
includereg52.h
#define uchar unsigned char
#define uint unsigned int
uchar i;
uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint z);
void main()
{
while(1)
{
for(i=0;i10;i++)
{
P2=0xfe;
P0=a[i];
delay(1000);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x0;x--)
for(y=122;y0;y--);
}
LED数码管显示(0-99)
#includereg52.h
unsigned char count,num;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main()
{
P2=0xfe;
IE=0x82;
TMOD=0x01;
TCON=0x30;
while(1);
}
void TOINT() interrupt 1
{
TH0=0xd8;TL0=0xf0;
if(P21)P1=table[num/10];else P1=table[num%10];
P2^=3;
if(++count100)return;
count=0;
if(++num99)num=0;
}
定时控制一只闪亮的灯
#includereg51.h
#define uchar unsigned char
#define uint unsigned int
uint n;
sbit led=P0^0;
void main ()
{
TMOD=0xf1;
TMOD|=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
}
}
void timer0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
n++;
if(n==100)
{
n=0;
led=~led;
}
}
用独立键盘显示LED数码管(1-4)
#includereg52.h
#define uchar unsigned char
#define uint unsigned int
uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0xff};
void delay(uint z);
void main()
{
uchar b,c;
c=5;
while(1)
{
P0|=0x0f;
b=P0;
b=0x0f;
if(b!=0x0f)
{
delay(20);
P0|=0x0f;
b=P0;
b=0x0f;
if(b!=0x0f)
{
switch(b)
{
case 0x0e:c=1;break;
case 0x0d:c=2;break;
case 0x0b:c=3;break;
case 0x07:c=4;break;
default:c=0;
}
}
}
P1=0xfe;
P2=a[c];
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x0;x--)
for(y=122;y0;y--);
}
用矩阵键盘显示LED数码管(0-9,A-F)
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
void delay(uint z);
sbit hang1=P0^3;
sbit hang2=P0^2;
sbit hang3=P0^1;
sbit hang4=P0^0;
void main()
{
uchar b,c;
c=16;
while(1)
{
hang1=0;
hang2=1;
hang3=1;
hang4=1;
P0|=0xf0;
b=P0;
b=0xf0;
if(b!=0xf0)
{
delay(10);
P0|=0xf0;
b=P0;
b=0xf0;
显示全部