要求
1、8x8点阵显示图形
效果
资源
工程文件压缩包
链接:https://pan.baidu.com/s/1WM8Yl2xe2_ncs1drcy6aOw
提取码:5572
main函数
#include <REGX52.H>
#include <INTRINS.H>
#include "Delay.H"
sbit RCK=P3^5;
sbit SCK=P3^6;
sbit SER=P3^4; //数据接收(1bit/次)
#define MATRIX_LED_PORT P0
/*
* 功能:初始化74HC595
* 参数:无
* 返回值:无
*/
void _74HC595_Init(){
SCK=0; //数据下移一位发生器
RCK=0; //数据传输发生器
}
/*
* 功能:向74HC595写入一个字节
* 参数:一个字节的数据
* 返回值:无
*/
void _74HC595_WeiteByte(unsigned char Byte){
unsigned char i;
for(i=0;i<8;i++){
SER=Byte&(0x80>>i);
SCK=1; //给一个上升沿,将数据下移一位
SCK=0; //恢复,以便下一次上升沿的产生
}
RCK=1; //给一个上升沿,将8位数据传入点阵
RCK=0; //恢复,以便下一次上升沿的产生
}
/*
* 功能:向74HC595写入一个字节,并在指定列显示
* 参数:显示列(0~7列),显示字节(高位在上低位在下)
* 返回值:无
*/
void MatrixLED_ShowColumn(unsigned char column,unsigned char Data){
_74HC595_WeiteByte(Data); //位选(行选,高电平有效)
MATRIX_LED_PORT=_cror_(0x7f,column); //段选(列选,低电平有效)
Delayms(1);
MATRIX_LED_PORT=0xff; //清零
}
void main(){
_74HC595_Init();
while(1){
MatrixLED_ShowColumn(0,0x70);
MatrixLED_ShowColumn(1,0x88);
MatrixLED_ShowColumn(2,0x84);
MatrixLED_ShowColumn(3,0x62);
MatrixLED_ShowColumn(4,0x62);
MatrixLED_ShowColumn(5,0x84);
MatrixLED_ShowColumn(6,0x88);
MatrixLED_ShowColumn(7,0x70);
}
}