?? max5354.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;
}
max5354(unsigned int Data)
{
unsigned char BitCounter=16;//位數控制
unsigned int temp;//中間變量控制
temp=Data;
SCL=0;
SCS=0;
do{
SCL=0;
_nop_();
if((temp&0x8000)==0x8000)//如果最高位是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<1024;j++)
{
m=j;
j<<=3;
// j|=0x2000;
j&=0xffff;
max5354(j);
j=m;
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 + -