
二、程序代码
1、程序设计
#include <reg52.h>//头文件
#define uchar unsigned char
#define uint unsigned int
uchar table[ ]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//P0
//uchar table1[ ]={0xFF,0x99,0x66,0x7E,0x7E,0xBD,0xDB,0xE7};//P1 心形图案
uchar table11[]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7};
//uchar table2[ ]={0x99,0x66,0x7E,0x7E,0xBD,0xDB,0xE7,0xFF};//P1 心形图案 上移
uchar table22[]={0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF};
uchar i,num;//定义变量
/*延时函数*/
void delay(uint a)
{
while(a--);
}
/*主函数*/
void main( )
{
TMOD=0X01;//0000 0001//定时器0工作方式1
TH0=0X3C;//装入初值 50毫秒
TL0=0XB0;//装入初值
EA=1;//打开总中断开关
ET0=1;//打开定时器0中断开关
TR0=1;//启动定时器0
while(1)
{
if(num>=0&&num<=20)
{
for(i=0;i<8;i++)
{
P0=table[i];
P1=table11[i];
delay(30);
}
P1=0xff;
}
if(num>20&&num<=40)
{
for(i=0;i<8;i++)
{
P0=table[i];
P1=table22[i];
delay(30);
}
}
}
}
void timer0 ( )interrupt 1 //中断函数
{
TH0=0X3C;//装入初值
TL0=0XB0;//装入初值
num++; //变量累加
if(num>40)
{
num=0;
}
}
2、程序解释:
if(num>=0&&num<=20)
“&&”逻辑与,num>=0&&num<=20含义是num>=0与num<=20同时满足,才能执行“{}”中的语句。
激动人心的时刻即将到来,下载程序,跳动的心呈现在眼前。
采用table1与table2是空心跳动的心,采用table11与table22是实心跳动的心。