📄 display.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -