📄 9e5-max7219.c
字号:
#include<reg9e5.h>
#include <ABSACC.h>
#include <intrins.h>
#include <stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit DIN=P0^1;
sbit LOAD=P0^2;
sbit CLK=P0^3;
sbit BUTTON=P0^4;
sbit SOUND=P0^6;
uchar DisBuffer[10]={0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89};
//状态输出口//
sbit LCD = P0^0;
///////////延时/////////////////
void Delay(uint x)
{
uint i;
for(i=0;i<x;i++){
_nop_();
}
}
void LongDelay()
{
int i;
int c;
for(i=0;i<1000;i++)
for(c=0;c<127;c++)
{;}
}
void send(uchar add,uchar dat)
{
uchar ADS,i,j;
LOAD=0;
i=0;
while(i<16)
{
if(i<8)
ADS=add;
else
ADS=dat;
for(j=8;j>=1;j--)
{
DIN=ADS&0X80;
ADS=ADS<<1;
CLK=1;
CLK=0;
}
i=i+8;
}
LOAD=1;
}
void Ini_System(void)
{
EA=1;
IT1=0;
EX1=1;
P0_DIR=0X00;
P0_ALT=0X10;
LCD=0;
DIN=0;
LOAD=0;
CLK=0;
SOUND=0;
LongDelay();
}
void Led_Ini(void)
{
send(0x0c,0x01);
send(0x0b,0x07);
send(0x0a,0xf5);
send(0x09,0xff);
}
void Led_Show(void)
{ send(0x01,DisBuffer[0]);
send(0x02,DisBuffer[1]);
send(0x03,DisBuffer[2]);
send(0x04,DisBuffer[3]);
send(0x05,DisBuffer[4]);
send(0x06,DisBuffer[5]);
send(0x07,DisBuffer[6]);
send(0x08,DisBuffer[7]);
}
void Led_Chage(void) interrupt 2// [using y]
{ uint j;
Delay(20000);
while(!BUTTON);
for(j=0;j<9;j++)
{
DisBuffer[j]=DisBuffer[j+1];
}
DisBuffer[j]=0;
LCD=!LCD;
SOUND=1;
Delay(20000);
SOUND=0;
}
main()
{ Ini_System();
while(1)
{ Led_Ini();
Led_Show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -