用点阵显示一个爱心

来源:互联网 发布:首创证券软件下载 编辑:程序博客网 时间:2024/04/29 09:34
#include<reg52.h>typedef unsigned char uint8;typedef unsigned int  uint16;uint8 led[]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7};sbit  ADDR0=P1^0;sbit  ADDR1=P1^1;sbit  ADDR2=P1^2;sbit  ENLED1=P1^4;sbit  ENLED2=P1^3;void display_love();void int_init();void timer1_init();main(){    P0=0x00;ENLED1=0;ENLED2=0;//选中定时器1方式1timer1_init();int_init();while(1);}void timer1_init(){    TMOD |= 0x10;TMOD &= 0xdf; TR1   = 1;   //0xF8CD 是2ms,定时器1方式1TH1=0xF8;TL1=0xCD;}void int_init(){ET1 = 1;EA  = 1;}void display_love(){   static uint8 n=0;  switch(n)  {    case 0:ADDR0=0;ADDR1=0;ADDR2=0; break;case 1:ADDR0=1;ADDR1=0;ADDR2=0; break;case 2:ADDR0=0;ADDR1=1;ADDR2=0; break;case 3:ADDR0=1;ADDR1=1;ADDR2=0; break;case 4:ADDR0=0;ADDR1=0;ADDR2=1; break;case 5:ADDR0=1;ADDR1=0;ADDR2=1; break;case 6:ADDR0=0;ADDR1=1;ADDR2=1; break;case 7:ADDR0=1;ADDR1=1;ADDR2=1; break;default:break;  }  P0=led[n];  if(7==n++)n=0;}void interrupt_led() interrupt 3{  TH1=0xF8;TL1=0xCD;//display();display_love();}

原创粉丝点击