#include <reg52.h> #include <intrins.h> //位移函数 sbit DIO=P3^4; //2片74HC595数据输入端 sbit S_CLK=P3^5;//串行输入时钟 sbit R_CLK=P3^6;//并行输出时钟 unsigned char code table[2][8]={0xEF,0xEF,0xEF,0x01,0x6D,0x01,0xEF,0xEF,0x01,0x7D,0x01,0x69,0x45,0x6D,0x45,0x01};//取模软件生成“中国”扫描列码 void Dio_Byte(unsigned char dat)//1个字节数据输入 {unsigned char i; for(i=0;i<8;i++) { S_CLK=0; if(dat&0x01) DIO=1; else DIO=0; S_CLK=1; dat=dat>>1;
} } void main() {unsigned char i,j,row; unsigned int k;//扫描次数,作用是每个字停留一定时间 while(1) { for(i=0;i<2;i++) { for(k=0;k<1000;k++) { row=0x80; for(j=0;j<8;j++) {R_CLK=0; Dio_Byte(table[i][j]); Dio_Byte(row); R_CLK=1; row=cror(row,1);
} } }} }