51单片机试用报告
动态数码管显示
#include
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=p1^4;
unsigned char code LedChar={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
};
unsigned CharBuff={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
void main()
{
unsigned int cnt=0;
ENLED=0;
ADDR3=1;
TMOD=0x01;
TH0=0xFC;
TL0=0X67;
TR0=1;
EA=1;
ET0=1;
while(1)
{
if(cnt>=1000)
{
cnt=0;
sec++;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
}
}
Void InterruptTimer0() interrupt 1
{
static unsigned Char i=0;
TH0=0xFC;
TL0=0x67;
cnt++;
p0=0xFF;
switch(i)
{
case 0:ADDR2=0;ADDR1=0;ADDR0=0;i++;p0=LedBuff;break;
case 1:ADDR2=0;ADDR1=0;ADDR0=1;i++;p0=LedBuff;break;
case 2:ADDR2=0;ADDR1=1;ADDR0=0;i++;p0=LedBuff;break;
case 3:ADDR2=0;ADDR1=1;ADDR0=1;i++;p0=LedBuff;break;
case 4:ADDR2=1;ADDR1=0;ADDR0=0;i++;p0=LedBuff;break;
case 5:ADDR2=1;ADDR1=0;ADDR0=1;i=0;p0=LedBuff;break;
default:break;
}
}
动态数码管显示
#include
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=p1^4;
unsigned char code LedChar={
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
};
unsigned CharBuff={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
void main()
{
unsigned int cnt=0;
ENLED=0;
ADDR3=1;
TMOD=0x01;
TH0=0xFC;
TL0=0X67;
TR0=1;
EA=1;
ET0=1;
while(1)
{
if(cnt>=1000)
{
cnt=0;
sec++;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
LedBuff=LedChar;
}
}
Void InterruptTimer0() interrupt 1
{
static unsigned Char i=0;
TH0=0xFC;
TL0=0x67;
cnt++;
p0=0xFF;
switch(i)
{
case 0:ADDR2=0;ADDR1=0;ADDR0=0;i++;p0=LedBuff;break;
case 1:ADDR2=0;ADDR1=0;ADDR0=1;i++;p0=LedBuff;break;
case 2:ADDR2=0;ADDR1=1;ADDR0=0;i++;p0=LedBuff;break;
case 3:ADDR2=0;ADDR1=1;ADDR0=1;i++;p0=LedBuff;break;
case 4:ADDR2=1;ADDR1=0;ADDR0=0;i++;p0=LedBuff;break;
case 5:ADDR2=1;ADDR1=0;ADDR0=1;i=0;p0=LedBuff;break;
default:break;
}
}