本程序已經測試通過,首發于51hei單片機網,電路很簡單我就不畫圖了
點陣有16個腳位,8個是行,8個是列,接法就是行接在P1口,列接P2口
以下是程序代碼:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
code uchar TAB[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x81,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0x81,0xff, //"I"字
0x99,0x00,0x00,0x00,0x00,0x81,0xC3,0xE7,0xff, //"紅心"
0x99,0x99,0x99,0x99,0x99,0x99,0xC3,0xE7, //"U字
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
uchar j=0,m=0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
void xianshi_hs()
{ uchar i=0;
P1=0x01;
for(i=0;i<8;i++)
{
P2=TAB[i+j] ;
delay(2);
P1<<=1;
}
}
int_intt0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
m++;
if(m==3)
{
m=0;
j++;
if(34==j)
{
j=0;
}
}
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
xianshi_hs();
}
}
