📄 mega64_max7219.c
字号:
//----------------------------------------------------------------
// max7219 显示
//----------------------------------------------------------------
void led_write( unsigned char address , unsigned char data)
{
unsigned char i;
unsigned char temp;
cbi( PORTA , LED_LOAD);
delay_us(10);
for( i=0 ; i<8 ; i++ ) {
cbi( PORTA , LED_CLK );
asm("nop");
if( (address&0x80) == 0x80 ){
sbi( PORTA , LED_DIN);
}
else {
cbi( PORTA , LED_DIN);
}
sbi( PORTA , LED_CLK );
address = address<< 1 ;
asm("nop");
}
for( i=0 ; i<8 ; i++ ) {
cbi( PORTA , LED_CLK );
asm("nop");
if( (data&0x80) == 0x80 ){
sbi( PORTA , LED_DIN);
}
else {
cbi( PORTA , LED_DIN);
}
sbi( PORTA , LED_CLK );
data = data<< 1 ;
asm("nop");
}
sbi( PORTA , LED_LOAD );
delay_us(10);
}
// max7219 初始化
void init_max7219()
{
led_write(0x09,0x00);//译码模式:非译码
led_write(0x0a,0x06);//亮度控制
led_write(0x0b,0x05);//扫描位数控制:0-6
led_write(0x0c,0x01);//非关断模式
led_write(0x0f,0x01);//测试模式
delay_ms( 10 );
led_write(0x0f,0x00);//显示模式
}
void dis_led ( unsigned char *str_ptr , unsigned int led )
{
led_write(0x0b,0x05);//扫描位数控制:0-5
led_write( 0x0a ,g_control.led );//亮度控制
led_write( 0x0c , 0x01);//非关断模式
led_write( 0x0f , 0x00);//显示模式
led_write( 0x01 , str_ptr[0] );
led_write( 0x02 , str_ptr[1] );
led_write( 0x03 , str_ptr[2] );
led_write( 0x04 , str_ptr[3] );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -