//函数声明
void send_595(unsigned char Data1,unsigned char Data2); //串行输入,并行输出
/*----------------------------------------------------------------------------*/
//串行数据输入
void send_595(unsigned char Data1,unsigned char Data2)
{
unsigned char i;
for(i = 0; i < 8; i++)
{
SH_CK = 0; //先置为低
SD0= Data1 & 0x80; //取数据的最高位
SD1= Data2 & 0x80; //取数据的最高位
Data1 <<= 1; //将数据的次高位移到最高位,为下一次取数据做准备
Data2 <<= 1; //将数据的次高位移到最高位,为下一次取数据做准备
SH_CK = 1; //再置为高,产生移位时钟上升沿,上升沿时数据寄存器的数据移位
}
ST_CK = 0; //先置为低,再置为高,
ST_CK = 1; //上升沿时移位寄存器的数据进入数据存储寄存器,更新显示数据
}
/*----------------------------------------------------------------------------*/
#endif
main.c主程序文件
//包含头文件
#include <REG52.H>
#include <INTRINS.H>
#include "hanzi.h"
/*----------------------------------------------------------------------------*/
//数据类型定义
#define uint8unsigned char
#define uint16unsigned short
/*----------------------------------------------------------------------------*/
//对应硬件接口
//74hc138的ABCD接P2口的0123,0xA0就是P2口地址
#define LS138_PORT P2
/**************************************************************************/
//关键参数声明,4为LED最多能显示的32*32的汉字个数
#define LED_SIZE 4