📄 5615.c
字号:
#include "intrins.h"
#include "At89x51.h"
/////////////////////////////////////
//采用P1口作控制
//11.0592的晶体
////////////////////////////////////
//I2C总线的数据和时钟
#define SCL P1_7
#define SDA P1_6
#define SCS P1_5
//////////////////////////////////////
//7219的各控制线
#define CLK7219 P2_7
#define DIN7219 P2_6
#define CS7219 P2_5
///////////////////////////////////////
//unsigned int temp;
max7219(unsigned int dat)
{
char i;
CS7219=0;
_nop_();
for(i=0;i<16;i++)
{
DIN7219=(dat>>(15-i))&0x1;
CLK7219=1;
_nop_();
CLK7219=0;
};
CS7219=1;
}
tlc5615(unsigned int Data)
{
unsigned char BitCounter=12;//位数控制
unsigned int temp;//中间变量控制
temp=Data;
SCL=0;
SCS=0;
do{
SCL=0;
_nop_();
if((temp&0x0800)==0x0800)//如果最高位是1
SDA=1;
else
SDA=0;
SCL=1;
temp=temp<<1;//左移
BitCounter--;
}while(BitCounter);
SCL=0;
SCS=1;
}
main()
{
unsigned int i,m;
unsigned char k;
unsigned int disp;
unsigned int j;
//addata,
// SCL=1;
// SDA=1;
for(i=0;i<2000;i++);
CLK7219=0;
for(i=0;i<31000;i++);
///////////////////////////////////////////////////////
//7219初始化
max7219(0x0C01); //shutdown register format
max7219(0x09FF); //decode mode code B 7-0
max7219(0x0A0F); //intensity register format
max7219(0x0B07); //sacan limit register format
max7219(0x0F00); //display test register format
////////////////////////////////////////////////////////
for(k=0;k<8;k++)
{
disp=k+1;
disp<<=8;
max7219(disp);
}
/////////////////////////////////////////////////
while(1)
{
// tlc5615(2730);
for(j=0;j<4096;j++)
{
tlc5615(j);
m=j;
for(k=0;k<4;k++)
{
disp=k+1;
disp<<=8;
disp|=j%10;
j/=10;
max7219(disp);
}
j=m;
for(k=0;k<1;k++)
{
//for(i=0;i<31000;i++);
// for(i=0;i<31000;i++);
for(i=0;i<20;i++);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -