单片机小白
运行效果:
以下是截的图,显示的是我们陈老师的名字
代码:
#include#include #define Row P0 #define u8 unsigned char sbit SER=P3^4; sbit RCLK=P3^5; sbit SRCLK=P3^6; u8 code nan[31][8]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff}, {0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xdc}, {0x00,0x00,0x00,0x00,0x00,0xff,0xdc,0x00}, {0x00,0x00,0x00,0x00,0xff,0xdc,0x00,0x5a}, {0x00,0x00,0x00,0xff,0xdc,0x00,0x5a,0x68}, {0x00,0x00,0xff,0xdc,0x00,0x5a,0x68,0xff}, {0x00,0xff,0xdc,0x00,0x5a,0x68,0xff,0x48}, {0xff,0xdc,0x00,0x5a,0x68,0xff,0x48,0x4a}, {0xdc,0x00,0x5a,0x68,0xff,0x48,0x4a,0x00}, {0x00,0x5a,0x68,0xff,0x48,0x4a,0x00,0x00}, {0x5a,0x68,0xff,0x48,0x4a,0x00,0x00,0x28}, {0x68,0xff,0x48,0x4a,0x00,0x00,0x28,0x30}, {0xff,0x48,0x4a,0x00,0x00,0x28,0x30,0xff}, {0x48,0x4a,0x00,0x00,0x28,0x30,0xFF,0x30}, {0x00,0x00,0x00,0x28,0x30,0xFF,0x30,0x28}, {0x00,0x00,0x28,0x30,0xFF,0x30,0x28,0x00}, {0x00,0x28,0x30,0xFF,0x30,0x28,0x00,0x5f}, {0x28,0x30,0xFF,0x30,0x28,0x00,0x5f,0x50}, {0x30,0xFF,0x30,0x28,0x00,0x5F,0x50,0x7E}, {0xFF,0x30,0x28,0x00,0x5F,0x50,0x7E,0xD7}, {0x30,0x28,0x00,0x5F,0x50,0x7E,0xD7,0x5E}, {0x28,0x00,0x5F,0x50,0x7E,0xD7,0x5E,0x51}, {0x00,0x5F,0x50,0x7E,0xD7,0x5E,0x51,0x5f}, {0x5F,0x50,0x7E,0xD7,0x5E,0x51,0x5f,0x00}, {0x50,0x7E,0xD7,0x5E,0x51,0x5f,0x00,0x00}, {0x7E,0xD7,0x5E,0x51,0x5f,0x00,0x00,0x00}, {0xD7,0x5E,0x51,0x5f,0x00,0x00,0x00,0x00}, {0x5E,0x51,0x5f,0x00,0x00,0x00,0x00,0x00}, {0x51,0x5f,0x00,0x00,0x00,0x00,0x00,0x00}, {0x5f,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, }; void delay(u8 ms)//定时器延时函数 { TMOD=0; TH0=0xfb; TL0=0x80; TR0=1; while(ms--) { if(TF0==1) { TF0=0; TH0=0xfb; TL0=0x80; } } } void HC595(u8 date)//串转并函数 { u8 i=0; SRCLK=RCLK=0; for(i=0;i<8;i++) { SER=date>>7; date<<=1; SRCLK=1; delay(5); SRCLK=0; } RCLK=1; delay(5); RCLK=0; } void main() { u8 i,j,k; i=j=k=0; while(1) { Row=0xfe; for(k=0;k<31;k++)//循环显示选中二维数组中的数组元素 { //上述有31个数组,对应31种LED显示效果,通过循环实现动态 for(j=0;j<35;j++)//延时,动态LED移动的速度 { for(i=0;i<8;i++)//循环选中8列LED { Row=(Row>>1)|(Row<<7);//移位 //Row=_cror_(Row,1); HC595(nan[k][i]);//选中数据显示在点阵LED的每一列 //例如选中0x48,那么这一列的亮灯情况为自上而下(8421 8421)第2,5颗亮 HC595(0x00);//消影 } } } } }



