📄 max7219.c
字号:
/**********************************************
* File: MAX7219.C
* Description: Tri-Angle
* Created Date: 2007-10-01
* Last Modified: 2007-10-01
* Author: Jeffrey - Schicksal@126.com
* Notes: None
**********************************************/
//#include "Atmel/AT89X51.h"
#include "SST89x5x4.H"
#include "INTRINS.H"
#include "DS1620.h"
#include "MAX7219.h"
/**********************************************
* Function: void write_7219(unsigned char a, unsigned char b)
* Input Variables: unsigned char a, unsigned char b
* Return Variables: None
* Usage: Write to 7219
**********************************************/
void write_7219( unsigned char addr, unsigned char dat )
{
bit t;
_7219_CLK = 0;
_7219_CS = SELECTED;
ACC = addr;
t = 1;
WriteLoop:
_7219_MOSI = ACC_7;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_6;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_5;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_4;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_3;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_2;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_1;
_7219_CLK = 1;
_7219_CLK = 0;
_7219_MOSI = ACC_0;
_7219_CLK = 1;
if (t == 1)
{
t = 0;
ACC = dat;
_7219_CLK = 0;
goto WriteLoop;
}
//EndWriteLoop:
_7219_CS = UNSELECTED;
_7219_CLK = 0;
_7219_CLK = 1;
_7219_CLK = 0;
}
/**********************************************
* Function: Init7219()
* Input Variables:void
* Return Variables: None
* Usage: Init 7219
**********************************************/
void Init7219()
{
write_7219(0x0c,0x00); // 关闭MAX7219,对7219进行配置
_nop_(); // nop
_nop_(); // nop
_nop_(); // nop
write_7219(0x0a,0x05); // 调整亮度
write_7219(0x09,0xff); // 模式设置,全部解码操作
write_7219(1,0x0f); // blank
write_7219(2,0x0f); // blank
write_7219(3,0x0f); // blank
write_7219(4,0x0f); // blank
write_7219(5,0x0f); // blank
write_7219(6,0x0f); // 六位数码全部blank
write_7219(0x0c,0x01); // 启动7219
write_7219(0x0b,0x05); // 扫描位数 6位
}
/**********************************************
* Function:void Display_Temp()
* Input Variables:void
* Return Variables: None
* Usage: Display_Temp
**********************************************/
void Display_Temp()
{
unsigned char LS;
LS=DS1620read();
LS/=2;
if (LS==0)
{
write_7219(0x05,0x0a);
write_7219(0x06,0x0a);
}
else
{
write_7219(0x05,LS/10);
write_7219(0x06,LS%10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -