本程序已经测试通过,首发于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(); } }