51单片机程序设计:[6]88点阵显示动画
1、详细电路图连接蔡龇呶挞关系如下图。通过取模软件,分别去的下面需要的字模数组:unsigned char code tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};unsigned char code digittab[41][8]={//图形1 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},/*"未命名文件",0*/ {0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},/*"未命名文件",0*/ {0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//图形2 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00},/*"未命名文件",0*/ {0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//图形3 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x10,0x24,0x1A,0x58,0x24,0x08,0x00},/*"未命名文件",0*/ {0x08,0x10,0x24,0x9A,0x59,0x24,0x08,0x10},/*"未命名文件",0*/ {0x0C,0x10,0xA4,0x9A,0x59,0x25,0x08,0x30},/*"未命名文件",0*/ {0x0E,0x90,0xA4,0x9A,0x59,0x25,0x09,0x70},/*"未命名文件",0*/ {0x8F,0x90,0xA4,0x9A,0x59,0x25,0x09,0xF1},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},};
2、代码的规整版本图片:(多张图片,可以通过行号区别)
3、//效果截图,详细代码://跳线设置:默认跳线位#include <AT89X52.H>//段码选通位-控制74HC573段输出sbit dula=P2^6; sbit wela=P2^7; //位码选通位-控制74HC573位输出//sbit OE1=P2^6; //OE u8-573#define uchar unsigned charsbit simuseri_CLK=P2^4; //用P2^4模拟串口时钟sbit simuseri_DATA=P2^5; //用P2^5模拟串口数据sbit a7=ACC^7;#define uint unsigned int//unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};unsigned char code digittab[41][8]={//图形1 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},/*"未命名文件",0*/ {0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},/*"未命名文件",0*/ {0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//图形2 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00},/*"未命名文件",0*/ {0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//图形3 {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},/*"未命名文件",0*/ {0x00,0x00,0x24,0x18,0x18,0x24,0x00,0x00},/*"未命名文件",0*/ {0x00,0x10,0x24,0x1A,0x58,0x24,0x08,0x00},/*"未命名文件",0*/ {0x08,0x10,0x24,0x9A,0x59,0x24,0x08,0x10},/*"未命名文件",0*/ {0x0C,0x10,0xA4,0x9A,0x59,0x25,0x08,0x30},/*"未命名文件",0*/ {0x0E,0x90,0xA4,0x9A,0x59,0x25,0x09,0x70},/*"未命名文件",0*/ {0x8F,0x90,0xA4,0x9A,0x59,0x25,0x09,0xF1},/*"未命名文件",0*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},};unsigned int timecount;unsigned char cnta;unsigned char cntb;//-------------------------------------------------------------------------------------------------------// 函数名称:out_simuseri// 输入参数:data_buf// 输出参数:无// 功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA//--------------------------------------------------------------------------------------------------------void out_simuseri(uchar data_buf){ uchar i; i=8; ACC=data_buf; do { simuseri_CLK=0; simuseri_DATA=a7; simuseri_CLK=1; ACC=ACC<<1; } while (--i!=0);}void delay(){ uint i; i = 0x1ff; while (i--);}void main(void){ P1_4=1; P0=0xff; dula=1; wela=1; P0=0xff; wela=0; TMOD=0x01; TH0=(65536-3000)/256; TL0=(65536-3000)%256; TR0=1; ET0=1; EA=1; while (1) { ; }}void t0(void) interrupt 1 using 0{ TH0=(65536-3000)/256; TL0=(65536-3000)%256;//out_simuseri(0x00); P0=0xff; // 消隐,很重要,不加要红一片 out_simuseri(tab[cnta]); P0= ~digittab[cntb][cnta]; cnta++; if (cnta==8) { cnta=0; } timecount++; if (timecount==70) //调速度 { timecount=0; cntb++; if (cntb==18) { cntb=0; } }}