display.h

来自「AVR红外遥控」· C头文件 代码 · 共 83 行

H
83
字号
#ifndef __DISPLAY_H__
#define __DISPLAY_H__

#include <avr/io.h>
#include "cc.h"


// I/O bit ************************************************************
// 1) SPI master for all 74HC595
#define SD        PB3
#define SCLK      PB5
#define SS        PB2
// 2) 74HC595
#define LATCH1    PC1       // for RCLK1
#define LATCH2    PC0       // for RCLK2
#define LATCH3    PC2       // for RCLK3
#define OE        PC3       // for /OE

// 3) LED14/15/16
#define LED14     PC5
#define LED15     PC4
#define LED16     PD5

#define LED14_OFF    (PORTC |= _BV(LED14))
#define LED14_ON     (PORTC &= ~_BV(LED14))

#define LED15_OFF    (PORTC |= _BV(LED15))
#define LED15_ON     (PORTC &= ~_BV(LED15))

#define LED16_OFF    (PORTD |= _BV(LED16))
#define LED16_ON     (PORTD &= ~_BV(LED16))

// 13个LED数码块显示缓冲区,值为BCD码(bit0-3) 0x0~0x9
extern u8_t bcd_buf[13];



// ==================================================================
// LED 显示初始化
void init_display(void);


// 用于立即关闭所有显示
// 通常在掉电时节能,以便完成剩余的紧急事件。比如:写EEPROM
void display_off(void);


// sdata: 显示的BCD码0xo~0x9
// spos:  显示位置
// spt:   0x01显示小数点,00x00不显示小数点
// 该过程主要由T0中断自动调用,也可以外部使用
void led_putchar(u8_t sdata, u8_t spos, u8_t spt);





// ====================================================================
// buff: BCD的数据指针,指向8单元的数组
// pdata: 数据最大99999999
// 转换正确返回: 1
u8_t htobcd8(u8_t *buff, u32_t pdata);

// buff: BCD的数据指针,指向8单元的数组
// pdata: 数据最大99999
// 转换正确返回: 1
u8_t htobcd5(u8_t *buff, u32_t pdata);














#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?