#include #include #define NOP() _nop_() // 定义空指令 ,这个函数在库 //--重定义函数变量--// #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //--定义SPI要使用的 IO--// sbit MOSIO = P3^4; sbit R_CLK = P3^5; sbit S_CLK = P3^6; //---全局变量声明--// ulong column; //点阵列 ulong row; //点阵行 ulong dt; //点阵显示数组 uchar code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00}; //--亲--// uchar code tab1[] = { ,0,128,8,2,31,16,2,32,1,255,63,,0,,0, 2,31,,0,72,6,68,8,82,16,32,0,0,0,0,0}; //--爱--// uchar code tab2[] = { 0,14,252,1,72,8,144,4,2,63,2,16,33,8,252, 31,32,0,224,7,80,2,136,1,68,2,58,28,0,0,0,0}; //--的--// uchar code tab3[] = { 8,2,8,2,4,17,62,63,162,16,98,16,34,17,62, 18,34,18,34,16,34,16,34,16,62,10,34,4,0,0,0,0}; //--顾--// uchar code tab4[] = { 0,16,190,63,2,2,186,31,170,16,170,20,170,20,186,20, 138,20,138,20,170,20,26,10,1,49,193,32,0,0,0,0}; //--客--// uchar code tab5[] = { ,0,128,0,2,31,34,16,241,11,40,2,68,1,192,1,32, 2,248,63,23,4,16,4,16,4,240,7,0,0,0,0}; //--欢--// uchar code tab6[] = { 0,1,0,1,63,1,32,63,162,32,148,18,84,2,8,2, 8,2,20,5,36,5,162,8,65,16,32,32,0,0,0,0}; //--迎--// uchar code tab7[] = { 2,1,196,16,36,62,32,18,32,18,39,18,36,18,1,18, 100,18,36,26,4,2,10,2,49,0,192,63,0,0,0,0}; //--使--// uchar code tab8[] = { 16,2,16,18,232,63,8,2,204,31,74,18,73,18,200,31, 8,18,72,2,136,2,8,1,136,6,104,56,0,0,0,0}; //--用--// uchar code tab9[] = { 0,8,252,31,132,8,132,8,252,15,132,8,132,8,132,8, 252,15,132,8,132,8,130,8,130,10,129,4,0,0,0,0}; //--开--// uchar code tab10[] = { 0,8,2,31,16,2,16,2,16,2,16,18,255,63,16,2, 16,2,16,2,16,2,8,2,4,2,3,2,0,0,0,0}; //--发--// uchar code tab11[] = { 32,2,36,4,36,4,34,16,2,63,32,0,224,15,80,8, 80,4,136,2,8,1,132,2,98,60,29,16,0,0,0,0}; //--板--// uchar code tab12[] = { 4,8,4,30,196,1,95,0,196,15,68,8,78,9,86,9, 69,5,69,5,68,2,36,5,1,56,84,16,0,0,0,0}; //--∩_∩--// uchar code tab13[] = { 0,0,0,0,60,240,102,156,67,130,0,0,0,0,0,0, 0,0,0,0,48,24,96,8,192,7,0,0,0,0,0,0}; //函数声明 void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0); /*************主函数*****************************/ void main(void) { int k, i, ms; i = 80; //显示时间 while(1) { //--显示\"亲\"--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab1[2*k +1],~tab1[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“爱”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab2[2*k +1],~tab2[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“的”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab3[2*k +1],~tab3[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“顾”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab4[2*k +1],~tab4[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“客”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab5[2*k +1],~tab5[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“欢”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) //欢 { HC595SendData(~tab6[2*k +1],~tab6[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“迎”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab7[2*k +1],~tab7[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“使”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab8[2*k +1],~tab8[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“用”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab9[2*k +1],~tab9[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“开”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab10[2*k +1],~tab10[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示“发”--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab11[2*k +1],~tab11[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示\"板\"--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab12[2*k +1],~tab12[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); //--显示\"∩_∩\"--// for(ms = i; ms > 0; ms--) { for(k = 0; k < 16; k++) { HC595SendData(~tab13[2*k +1],~tab13[2*k],tab0[2*k],tab0[2*k + 1]); } } //--清屏--// HC595SendData(0xff,0xff,0,0); } } /******************************************************************************* * 函 数 名 : HC595SendData * 函数功能 : 通过595发送四个字节的数据 * 输 入 : BT3:第四个595输出数值 * * BT2: 第三个595输出数值 * * BT1:第二个595输出数值 * * BT0:第一个595输出数值 * 输 出 : 无 *******************************************************************************/ void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0) { uchar i; //--发送第一个字节--// for(i=0;i<8;i++) { MOSIO = BT3 >> 7 ; //从高位到低位 BT3 <<= 1; S_CLK = 0; S_CLK = 1; } //--发送第一个字节--// for(i=0;i<8;i++) { MOSIO = BT2 >>7; BT2 <<= 1; S_CLK = 0; S_CLK = 1; } //--发送第一个字节--// for(i=0;i<8;i++) { MOSIO = BT1 >> 7; BT1 <<= 1; S_CLK = 0; //从高位到低位 //从高位到低位 S_CLK = 1; } //--发送第一个字节--// for(i=0;i<8;i++) { MOSIO = BT0 >> 7; //从高位到低位 BT0 <<= 1; S_CLK = 0; S_CLK = 1; } //--输出--// R_CLK = 0; //set dataline low R_CLK = 1; //片选 R_CLK = 0; //set dataline low } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务