显示忆
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit CLK = P2^5;//点阵模块的CLK
sbit CS = P1^1;//点阵模块的CS
sbit DIN = P1^0;//点阵模块的DIN
uchar code yi[8]={0x5E,0x62,0xE4,0x48,0x48,0x50,0x51,0x5E};//忆
void xieyiwei(uchar x)
{
uchar m;
for(m=0;m<8;m++)
{
CLK=0;
DIN=x&0x80;
x=x<<1;
CLK=1;
}
}
void xieshuju(uchar dizhi,uchar shuju)
{
CS=0;
xieyiwei(dizhi);
xieyiwei(shuju);
CS=1;
}
void chushihua() //向MAX7219中写入初始化值
{
xieshuju(0x09, 0x00); //译码方式:BCD码
xieshuju(0x0a, 0x03); //亮度
xieshuju(0x0b, 0x07); //扫描界限;8个数码管显示
xieshuju(0x0c, 0x01); //掉电模式:0,普通模式:1
xieshuju(0x0f, 0x00); //显示
}
void main()
{
uchar i;
chushihua();
while(1)
{
for(i=0;i<8;i++)
{
xieshuju(i+1,yi[i]);
}
}
}
滚屏显示忆
#include <reg52.h> //忆字滚屏效果
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//定义Max7219端口
sbit Max7219_pinCLK = P2^5;//CLK
sbit Max7219_pinCS = P1^1;//CS
sbit Max7219_pinDIN = P1^0;//DIN
uchar code yi[8]=
{0x5E,0x62,0xE4,0x48,0x48,0x50,0x51,0x5E};//忆
uchar code hui[8]={0xFE,0x82,0xBA,0xAA,0xBA,0x82,0xFE,0x82};//回
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<112;j++);
}
//--------------------------------------------
//功能:向MAX7219(U3)写入字节
//入口参数:DATA
//出口参数:无
//说明:
void Write_Max7219_byte(uchar DATA)
{
uchar i;
Max7219_pinCS=0;
for(i=8;i>=1;i--)
{
Max7219_pinCLK=0;
Max7219_pinDIN=DATA&0x80;
DATA=DATA<<1;
Max7219_pinCLK=1;
}
}
//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(uchar address,uchar dat)
{
Max7219_pinCS=0;
Write_Max7219_byte(address); //写入地址,即数码管编号
Write_Max7219_byte(dat); //写入数据,即数码管显示数字
Max7219_pinCS=1;
}
void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00); //译码方式:BCD码
Write_Max7219(0x0a, 0x03); //亮度
Write_Max7219(0x0b, 0x07); //扫描界限;8个数码管显示
Write_Max7219(0x0c, 0x01); //掉电模式:0,普通模式:1
Write_Max7219(0x0f, 0x00); //显示测试:1;测试结束,正常显示:0
}
void main(void)
{
uchar i=0;
uchar j;
Delay_xms(50);
Init_MAX7219();
while(1)
{
for(i=0;i<8;i++)
{
for(j=1;j<9;j++)
{
Write_Max7219(j,_cror_(yi[j-1],i));
}
Delay_xms(100);
}
}
}