# 成功读取电压并显示
This commit is contained in:
19
.vscode/c_cpp_properties.json
vendored
Normal file
19
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Win32",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"${workspaceFolder}/Driver/**",
|
||||
"${workspaceFolder}/Lib/**",
|
||||
"${workspaceFolder}/Src/**"
|
||||
],
|
||||
"defines": [
|
||||
"_DEBUG",
|
||||
"UNICODE",
|
||||
"_UNICODE"
|
||||
]
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
8
.vscode/settings.json
vendored
Normal file
8
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"iic.h": "c",
|
||||
"config.h": "c",
|
||||
"ina226.h": "c",
|
||||
"oled12864_drv.h": "c"
|
||||
}
|
||||
}
|
19
Driver/iic.h
19
Driver/iic.h
@ -8,20 +8,19 @@
|
||||
|
||||
#include "delay.h"
|
||||
|
||||
|
||||
// #define FOSC 30000000UL // 定义系统频率
|
||||
|
||||
// sbit SDA = P2^7;
|
||||
// sbit SCL = P2^6;
|
||||
|
||||
void IIC_Init(void);
|
||||
void IIC_Start(void);
|
||||
void IIC_Stop(void);
|
||||
void IIC_SendByte(u8 dat);
|
||||
u8 IIC_RecvByte(void);
|
||||
bit IIC_WaitAck(void);
|
||||
void IIC_SendAck(bit ack);
|
||||
bit IIC_WriteBytes(u8 devAddr, u8 regAddr, u8 *pData, u8 len);
|
||||
bit IIC_ReadBytes(u8 devAddr, u8 regAddr, u8 *pData, u8 len);
|
||||
void IIC_Init (void);
|
||||
void IIC_Start (void);
|
||||
void IIC_Stop (void);
|
||||
void IIC_SendByte (u8 dat);
|
||||
u8 IIC_RecvByte (void);
|
||||
bit IIC_WaitAck (void);
|
||||
void IIC_SendAck (bit ack);
|
||||
bit IIC_WriteBytes (u8 devAddr, u8 regAddr, u8 *pData, u8 len);
|
||||
bit IIC_ReadBytes (u8 devAddr, u8 regAddr, u8 *pData, u8 len);
|
||||
|
||||
#endif
|
@ -1,45 +1,56 @@
|
||||
#include "timer4.h"
|
||||
|
||||
u8 Timer4_OF = 0; // 定时器4溢出标志
|
||||
u8 Timer4_OF = 0; // 定时器4溢出标志
|
||||
|
||||
// 定时器4初始化(16位自动重载模式)
|
||||
void Timer4_Init(void) {
|
||||
Timer4_Stop(); // 停止定时器4
|
||||
T4T3M &= 0x0F; // 清除T4控制位
|
||||
T4T3M |= 0x20; // 设置T4为1T模式
|
||||
T4L = 0xD0; // 设置定时初始值
|
||||
T4H = 0x8A; // 设置定时初始值 1ms@30MHz 1T
|
||||
IE2 |= 0x40; // 使能定时器4中断
|
||||
void
|
||||
Timer4_Init (void)
|
||||
{
|
||||
Timer4_Stop (); // 停止定时器4
|
||||
T4T3M &= 0x0F; // 清除T4控制位
|
||||
T4T3M |= 0x20; // 设置T4为1T模式
|
||||
T4L = 0xD0; // 设置定时初始值
|
||||
T4H = 0x8A; // 设置定时初始值 1ms@30MHz 1T
|
||||
IE2 |= 0x40; // 使能定时器4中断
|
||||
}
|
||||
|
||||
// 微秒级延时(误差±0.3us)
|
||||
void Timer4_DelayUs(u16 us) {
|
||||
u32 cycles = us * (FOSC / 1000000); // 计算所需时钟周期数
|
||||
u16 reload = 65536 - (cycles / 1); // 1T模式下无需分频
|
||||
|
||||
T4H = reload >> 8; // 设置重载值高字节
|
||||
T4L = reload & 0xFF;// 低字节
|
||||
T4T3M |= 0x80; // 启动定时器4
|
||||
void
|
||||
Timer4_DelayUs (u16 us)
|
||||
{
|
||||
u32 cycles = us * (FOSC / 1000000); // 计算所需时钟周期数
|
||||
u16 reload = 65536 - (cycles / 1); // 1T模式下无需分频
|
||||
|
||||
while ( Timer4_OF != True ); // 等待TF4溢出标志置位
|
||||
Timer4_OF = False; // 清除溢出标志
|
||||
T4H = reload >> 8; // 设置重载值高字节
|
||||
T4L = reload & 0xFF; // 低字节
|
||||
T4T3M |= 0x80; // 启动定时器4
|
||||
|
||||
while (Timer4_OF != True)
|
||||
; // 等待TF4溢出标志置位
|
||||
Timer4_OF = False; // 清除溢出标志
|
||||
}
|
||||
|
||||
// 毫秒级延时(基于微秒级扩展)
|
||||
void Timer4_DelayMs(u16 ms) {
|
||||
while(ms--) {
|
||||
Timer4_DelayUs(1000);
|
||||
void
|
||||
Timer4_DelayMs (u16 ms)
|
||||
{
|
||||
while (ms--)
|
||||
{
|
||||
Timer4_DelayUs (1000);
|
||||
}
|
||||
}
|
||||
|
||||
// 停止定时器4
|
||||
void Timer4_Stop(void) {
|
||||
T4T3M &= ~0x80; // 停止定时器4
|
||||
void
|
||||
Timer4_Stop (void)
|
||||
{
|
||||
T4T3M &= ~0x80; // 停止定时器4
|
||||
}
|
||||
|
||||
// 定时器4中断服务程序
|
||||
void Timer4_Isr(void) interrupt 20
|
||||
void
|
||||
Timer4_Isr (void) interrupt 20
|
||||
{
|
||||
Timer4_OF = True;
|
||||
Timer4_Stop();
|
||||
Timer4_OF = True;
|
||||
Timer4_Stop ();
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
|
||||
// #define FOSC 30000000UL // 系统时钟30MHz
|
||||
|
||||
void Timer4_Init(void);
|
||||
void Timer4_DelayUs(u16 us);
|
||||
void Timer4_DelayMs(u16 ms);
|
||||
void Timer4_Stop(void);
|
||||
void Timer4_Init (void);
|
||||
void Timer4_DelayUs (u16 us);
|
||||
void Timer4_DelayMs (u16 ms);
|
||||
void Timer4_Stop (void);
|
||||
|
||||
#endif
|
@ -1,25 +1,31 @@
|
||||
#include "uart.h"
|
||||
#include <STC15.H>
|
||||
|
||||
void Uart1_Init(void) //115200bps@30.000MHz
|
||||
void
|
||||
Uart1_Init (void) // 115200bps@30.000MHz
|
||||
{
|
||||
SCON = 0x50; //8位数据,可变波特率
|
||||
AUXR |= 0x01; //串口1选择定时器2为波特率发生器
|
||||
AUXR |= 0x04; //定时器时钟1T模式
|
||||
T2L = 0xBF; //设置定时初始值
|
||||
T2H = 0xFF; //设置定时初始值
|
||||
AUXR |= 0x10; //定时器2开始计时
|
||||
ES = 1; //使能串口1中断
|
||||
SCON = 0x50; // 8位数据,可变波特率
|
||||
AUXR |= 0x01; // 串口1选择定时器2为波特率发生器
|
||||
AUXR |= 0x04; // 定时器时钟1T模式
|
||||
T2L = 0xBF; // 设置定时初始值
|
||||
T2H = 0xFF; // 设置定时初始值
|
||||
AUXR |= 0x10; // 定时器2开始计时
|
||||
ES = 1; // 使能串口1中断
|
||||
}
|
||||
|
||||
// 重定向putchar函数
|
||||
char putchar(char c) {
|
||||
UART_SendByte(c);
|
||||
return c;
|
||||
char
|
||||
putchar (char c)
|
||||
{
|
||||
UART_SendByte (c);
|
||||
return c;
|
||||
}
|
||||
|
||||
void UART_SendByte(unsigned char dat) {
|
||||
SBUF = dat;
|
||||
while(!TI); // 等待发送完成
|
||||
TI = 0; // 清除发送中断标志
|
||||
void
|
||||
UART_SendByte (unsigned char dat)
|
||||
{
|
||||
SBUF = dat;
|
||||
while (!TI)
|
||||
; // 等待发送完成
|
||||
TI = 0; // 清除发送中断标志
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
void Uart1_Init(void);
|
||||
void UART_SendByte(unsigned char dat);
|
||||
void Uart1_Init (void);
|
||||
void UART_SendByte (unsigned char dat);
|
||||
|
||||
#endif
|
18
Lib/delay.c
18
Lib/delay.c
@ -1,16 +1,22 @@
|
||||
#include "delay.h"
|
||||
|
||||
// timer4初始化
|
||||
void Delay_Init(void) {
|
||||
Timer4_Init();
|
||||
void
|
||||
Delay_Init (void)
|
||||
{
|
||||
Timer4_Init ();
|
||||
}
|
||||
|
||||
// 延时us微秒
|
||||
void DelayUs(u16 us) {
|
||||
Timer4_DelayUs(us);
|
||||
void
|
||||
DelayUs (u16 us)
|
||||
{
|
||||
Timer4_DelayUs (us);
|
||||
}
|
||||
|
||||
// 延时ms毫秒
|
||||
void DelayMs(u16 ms) {
|
||||
Timer4_DelayMs(ms);
|
||||
void
|
||||
DelayMs (u16 ms)
|
||||
{
|
||||
Timer4_DelayMs (ms);
|
||||
}
|
@ -4,8 +4,8 @@
|
||||
#include "config.h"
|
||||
#include "timer4.h"
|
||||
|
||||
void Delay_Init(void);
|
||||
void DelayUs(u16 us);
|
||||
void DelayMs(u16 ms);
|
||||
void Delay_Init (void);
|
||||
void DelayUs (u16 us);
|
||||
void DelayMs (u16 ms);
|
||||
|
||||
#endif
|
68
Lib/ina226.c
68
Lib/ina226.c
@ -1,49 +1,61 @@
|
||||
#include "ina226.h"
|
||||
|
||||
static float CurrentLSB; // 电流分辨率
|
||||
static float CurrentLSB; // 电流分辨率
|
||||
|
||||
void INA226_Init(uint16_t r_shunt, float max_current) {
|
||||
uint16_t cal = 0;
|
||||
void
|
||||
INA226_Init (uint16_t r_shunt, float max_current)
|
||||
{
|
||||
uint16_t cal = 0;
|
||||
|
||||
// 1. 计算校准参数
|
||||
CurrentLSB = max_current / 32768.0f; // 公式来源
|
||||
cal = (uint16_t)(0.00512f / (CurrentLSB * r_shunt)); // 校准公式
|
||||
// 1. 计算校准参数
|
||||
CurrentLSB = max_current / 32768.0f; // 公式来源
|
||||
cal = (uint16_t)(0.00512f / (CurrentLSB * r_shunt)); // 校准公式
|
||||
|
||||
// 2. 配置寄存器设置(平均64次,转换时间8.244ms)
|
||||
INA226_WriteReg(CONFIG_REG, 0x45FF); // 配置值参考
|
||||
// 2. 配置寄存器设置(平均64次,转换时间8.244ms)
|
||||
INA226_WriteReg (CONFIG_REG, 0x45FF); // 配置值参考
|
||||
|
||||
// 3. 写入校准寄存器
|
||||
INA226_WriteReg(CAL_REG, cal); // 校准配置方法
|
||||
// 3. 写入校准寄存器
|
||||
INA226_WriteReg (CAL_REG, cal); // 校准配置方法
|
||||
}
|
||||
|
||||
// 寄存器写入函数
|
||||
void INA226_WriteReg(uint8_t reg, uint16_t value) {
|
||||
uint8_t data_t[2];
|
||||
data_t[0] = (uint8_t)(value >> 8);
|
||||
data_t[1] = (uint8_t)(value & 0xFF);
|
||||
IIC_WriteBytes(INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
void
|
||||
INA226_WriteReg (uint8_t reg, uint16_t value)
|
||||
{
|
||||
uint8_t data_t[2];
|
||||
data_t[0] = (uint8_t)(value >> 8);
|
||||
data_t[1] = (uint8_t)(value & 0xFF);
|
||||
IIC_WriteBytes (INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
}
|
||||
// 寄存器读取函数
|
||||
uint16_t INA226_ReadReg(uint8_t reg) {
|
||||
uint8_t data_t[2];
|
||||
IIC_ReadBytes(INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
return (data_t[0] << 8) | data_t[1];
|
||||
uint16_t
|
||||
INA226_ReadReg (uint8_t reg)
|
||||
{
|
||||
uint8_t data_t[2];
|
||||
IIC_ReadBytes (INA226_ADDR, reg, data_t, 2); // 需适配您的I2C驱动
|
||||
return (data_t[0] << 8) | data_t[1];
|
||||
}
|
||||
|
||||
// 电压读取(单位:V)
|
||||
float INA226_ReadBusVoltage(void) {
|
||||
int16_t raw = (int16_t)INA226_ReadReg(BUS_V_REG);
|
||||
return raw * 0.00125f; // LSB=1.25mV
|
||||
float
|
||||
INA226_ReadBusVoltage (void)
|
||||
{
|
||||
int16_t raw = (int16_t)INA226_ReadReg (BUS_V_REG);
|
||||
return raw * 0.00125f; // LSB=1.25mV
|
||||
}
|
||||
|
||||
// 电流读取(单位:A)
|
||||
float INA226_ReadCurrent(void) {
|
||||
int16_t raw = (int16_t)INA226_ReadReg(CURRENT_REG);
|
||||
return raw * CurrentLSB; // 应用校准参数
|
||||
float
|
||||
INA226_ReadCurrent (void)
|
||||
{
|
||||
int16_t raw = (int16_t)INA226_ReadReg (CURRENT_REG);
|
||||
return raw * CurrentLSB; // 应用校准参数
|
||||
}
|
||||
|
||||
// 功率读取(单位:W)
|
||||
float INA226_ReadPower(void) {
|
||||
int16_t raw = (int16_t)INA226_ReadReg(POWER_REG);
|
||||
return raw * 25 * CurrentLSB; // P=25×CurrentLSB×raw
|
||||
float
|
||||
INA226_ReadPower (void)
|
||||
{
|
||||
int16_t raw = (int16_t)INA226_ReadReg (POWER_REG);
|
||||
return raw * 25 * CurrentLSB; // P=25×CurrentLSB×raw
|
||||
}
|
32
Lib/ina226.h
32
Lib/ina226.h
@ -3,29 +3,29 @@
|
||||
|
||||
#include "delay.h"
|
||||
|
||||
#include "iic.h"
|
||||
#include "config.h"
|
||||
#include "iic.h"
|
||||
|
||||
// 寄存器地址定义
|
||||
#define CONFIG_REG 0x00
|
||||
#define SHUNT_V_REG 0x01
|
||||
#define BUS_V_REG 0x02
|
||||
#define POWER_REG 0x03
|
||||
#define CURRENT_REG 0x04
|
||||
#define CAL_REG 0x05
|
||||
#define ID_REG 0xFF
|
||||
#define CONFIG_REG 0x00
|
||||
#define SHUNT_V_REG 0x01
|
||||
#define BUS_V_REG 0x02
|
||||
#define POWER_REG 0x03
|
||||
#define CURRENT_REG 0x04
|
||||
#define CAL_REG 0x05
|
||||
#define ID_REG 0xFF
|
||||
|
||||
// I²C地址(A0/A1接地)
|
||||
#define INA226_ADDR 0x80
|
||||
#define INA226_ADDR 0x80
|
||||
|
||||
// 函数声明
|
||||
void INA226_Init(uint16_t r_shunt, float max_current);
|
||||
void INA226_WriteReg(uint8_t reg, uint16_t value);
|
||||
uint16_t INA226_ReadReg(uint8_t reg);
|
||||
void INA226_Init (uint16_t r_shunt, float max_current);
|
||||
void INA226_WriteReg (uint8_t reg, uint16_t value);
|
||||
uint16_t INA226_ReadReg (uint8_t reg);
|
||||
|
||||
float INA226_ReadShuntVoltage(void);
|
||||
float INA226_ReadBusVoltage(void);
|
||||
float INA226_ReadCurrent(void);
|
||||
float INA226_ReadPower(void);
|
||||
// float INA226_ReadShuntVoltage (void);
|
||||
float INA226_ReadBusVoltage (void);
|
||||
float INA226_ReadCurrent (void);
|
||||
float INA226_ReadPower (void);
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -3,78 +3,80 @@
|
||||
|
||||
#include "delay.h"
|
||||
|
||||
#include "iic.h"
|
||||
#include "config.h"
|
||||
|
||||
#include "iic.h"
|
||||
|
||||
#ifndef ENABLE
|
||||
#define ENABLE 1
|
||||
#define ENABLE 1
|
||||
#endif /* ENABLE */
|
||||
|
||||
#ifndef DISABLE
|
||||
#define DISABLE 0
|
||||
#define DISABLE 0
|
||||
#endif /* DISABLE */
|
||||
|
||||
#ifndef HIGH
|
||||
#define HIGH 1
|
||||
#define HIGH 1
|
||||
#endif /* HIGH */
|
||||
|
||||
#ifndef LOW
|
||||
#define LOW 0
|
||||
#define LOW 0
|
||||
#endif /* LOW */
|
||||
|
||||
//
|
||||
#define OLED_FONT_EIGHT 8
|
||||
#define OLED_FONT_SIXTEEN 16
|
||||
//
|
||||
#define OLED_FONT_EIGHT 8
|
||||
#define OLED_FONT_SIXTEEN 16
|
||||
|
||||
#define OLED_GRAM_MAX 30
|
||||
#define OLED_MAX_COLUMN 128
|
||||
#define OLED_MAX_ROW 64
|
||||
#define OLED_GRAM_MAX 30
|
||||
#define OLED_MAX_COLUMN 128
|
||||
#define OLED_MAX_ROW 64
|
||||
|
||||
#define X_WIDTH 128
|
||||
#define Y_WIDTH 64
|
||||
#define X_WIDTH 128
|
||||
#define Y_WIDTH 64
|
||||
|
||||
#define OLED_LEFT_ROLL 0x27
|
||||
#define OLED_RIGHT_ROLL 0x26
|
||||
|
||||
#define OLED_CLS 0x00
|
||||
#define OLED_SHOW 0xFF
|
||||
#define OLED_LEFT_ROLL 0x27
|
||||
#define OLED_RIGHT_ROLL 0x26
|
||||
|
||||
#define OLED_CLS 0x00
|
||||
#define OLED_SHOW 0xFF
|
||||
|
||||
// extern uint8_t g_OLED_Gram[OLED_GRAM_MAX][16];
|
||||
// extern uint8_t g_OLED_Roll_Page;
|
||||
|
||||
void OLED_Write_Cmd( uint8_t Cmd );
|
||||
void OLED_Write_Data( uint8_t Data, uint8_t Inverse );
|
||||
void OLED_Fill( uint8_t Mode );
|
||||
void OLED_Row_Clear( uint8_t Row, uint8_t Amount ,uint8_t Mode );
|
||||
void OLED_Coord( uint8_t X, uint8_t Y );
|
||||
void OLED_ShowRoll( uint8_t Y, uint8_t Line, uint8_t Mode );
|
||||
void OLED_ShowChar( uint8_t X, uint8_t Y, uint8_t Char, uint8_t Size, uint8_t Inverse );
|
||||
void OLED_ShowString( uint8_t X, uint8_t Y, const uint8_t *pChar, uint16_t Len, uint8_t Size, uint8_t Inverse );
|
||||
void OLED_ShowPrintf( uint8_t X, uint8_t Y, const uint8_t *pChar, uint8_t Size, uint8_t Align, uint8_t Inverse);
|
||||
uint32_t OLED_Power( uint8_t M, uint8_t N );
|
||||
void OLED_ShowNum( uint8_t X, uint8_t Y, uint32_t Num, uint8_t Len, uint8_t Size, uint8_t Prefix, uint8_t Inverse );
|
||||
void OLED_ShowHex( uint8_t X, uint8_t Y, uint32_t Num, uint8_t Size, uint8_t Prefix, uint8_t Inverse );
|
||||
|
||||
void OLED_Write_Cmd (uint8_t Cmd);
|
||||
void OLED_Write_Data (uint8_t Data, uint8_t Inverse);
|
||||
void OLED_Fill (uint8_t Mode);
|
||||
void OLED_Row_Clear (uint8_t Row, uint8_t Amount, uint8_t Mode);
|
||||
void OLED_Coord (uint8_t X, uint8_t Y);
|
||||
void OLED_ShowRoll (uint8_t Y, uint8_t Line, uint8_t Mode);
|
||||
void OLED_ShowChar (uint8_t X, uint8_t Y, uint8_t Char, uint8_t Size,
|
||||
uint8_t Inverse);
|
||||
void OLED_ShowString (uint8_t X, uint8_t Y, const uint8_t *pChar, uint16_t Len,
|
||||
uint8_t Size, uint8_t Inverse);
|
||||
void OLED_ShowPrintf (uint8_t X, uint8_t Y, const uint8_t *pChar, uint8_t Size,
|
||||
uint8_t Align, uint8_t Inverse);
|
||||
uint32_t OLED_Power (uint8_t M, uint8_t N);
|
||||
void OLED_ShowNum (uint8_t X, uint8_t Y, uint32_t Num, uint8_t Len,
|
||||
uint8_t Size, uint8_t Prefix, uint8_t Inverse);
|
||||
void OLED_ShowHex (uint8_t X, uint8_t Y, uint32_t Num, uint8_t Size,
|
||||
uint8_t Prefix, uint8_t Inverse);
|
||||
|
||||
#if 1
|
||||
void OLED_ShowLanguage( uint8_t X, uint8_t Y, const uint8_t *pChar, uint16_t Len, uint8_t Inverse );
|
||||
void OLED_ShowLanguage (uint8_t X, uint8_t Y, const uint8_t *pChar,
|
||||
uint16_t Len, uint8_t Inverse);
|
||||
#else
|
||||
void OLED_ShowLanguage( uint8_t X, uint8_t Y, const uint8_t (*pArray)[16], uint16_t Len, uint8_t Inverse );
|
||||
void OLED_ShowLanguage (uint8_t X, uint8_t Y, const uint8_t (*pArray)[16],
|
||||
uint16_t Len, uint8_t Inverse);
|
||||
#endif
|
||||
|
||||
void OLED_Display_On (void);
|
||||
void OLED_Display_Off (void);
|
||||
void OLED_Init (void);
|
||||
|
||||
void OLED_Display_On(void);
|
||||
void OLED_Display_Off(void);
|
||||
void OLED_Init(void);
|
||||
|
||||
void OLED_ShowChinese( uint8_t X, uint8_t Y, const uint8_t *pArray, uint8_t Inverse );
|
||||
void OLED_Draw_Font( uint8_t X, uint8_t Y, const uint8_t *pArray, uint8_t Inverse );
|
||||
void OLED_ShowChinese (uint8_t X, uint8_t Y, const uint8_t *pArray,
|
||||
uint8_t Inverse);
|
||||
void OLED_Draw_Font (uint8_t X, uint8_t Y, const uint8_t *pArray,
|
||||
uint8_t Inverse);
|
||||
|
||||
#endif /* __OLED12864_DRV_H */
|
||||
|
||||
|
||||
/*---------------------------- END OF FILE ----------------------------*/
|
||||
|
||||
|
||||
|
480
Lib/oled_font.h
480
Lib/oled_font.h
@ -1,107 +1,105 @@
|
||||
#ifndef __OLED_FONT_H
|
||||
#define __OLED_FONT_H
|
||||
|
||||
|
||||
/************************************************
|
||||
函数名称 : F6x8
|
||||
功 能 : 6*8的 ASCII点阵(偏移量32)
|
||||
参 数 : 无
|
||||
返 回 值 : 无
|
||||
*************************************************/
|
||||
const unsigned char F6x8[][6] =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp
|
||||
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // !
|
||||
0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
|
||||
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14, // #
|
||||
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12, // $
|
||||
0x00, 0x62, 0x64, 0x08, 0x13, 0x23, // %
|
||||
0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
|
||||
0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
|
||||
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00, // (
|
||||
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00, // )
|
||||
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
|
||||
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
|
||||
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
|
||||
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
|
||||
0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
|
||||
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /
|
||||
0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
|
||||
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, // 1
|
||||
0x00, 0x42, 0x61, 0x51, 0x49, 0x46, // 2
|
||||
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31, // 3
|
||||
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, // 4
|
||||
0x00, 0x27, 0x45, 0x45, 0x45, 0x39, // 5
|
||||
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
|
||||
0x00, 0x01, 0x71, 0x09, 0x05, 0x03, // 7
|
||||
0x00, 0x36, 0x49, 0x49, 0x49, 0x36, // 8
|
||||
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, // 9
|
||||
0x00, 0x00, 0x36, 0x36, 0x00, 0x00, // :
|
||||
0x00, 0x00, 0x56, 0x36, 0x00, 0x00, // ;
|
||||
0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // <
|
||||
0x00, 0x14, 0x14, 0x14, 0x14, 0x14, // =
|
||||
0x00, 0x00, 0x41, 0x22, 0x14, 0x08, // >
|
||||
0x00, 0x02, 0x01, 0x51, 0x09, 0x06, // ?
|
||||
0x00, 0x32, 0x49, 0x59, 0x51, 0x3E, // @
|
||||
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // A
|
||||
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // B
|
||||
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // C
|
||||
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C, // D
|
||||
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // E
|
||||
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, // F
|
||||
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, // G
|
||||
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // H
|
||||
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, // I
|
||||
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, // J
|
||||
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // K
|
||||
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, // L
|
||||
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
|
||||
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, // N
|
||||
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // O
|
||||
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // P
|
||||
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q
|
||||
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, // R
|
||||
0x00, 0x46, 0x49, 0x49, 0x49, 0x31, // S
|
||||
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // T
|
||||
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, // U
|
||||
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, // V
|
||||
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, // W
|
||||
0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // X
|
||||
0x00, 0x07, 0x08, 0x70, 0x08, 0x07, // Y
|
||||
0x00, 0x61, 0x51, 0x49, 0x45, 0x43, // Z
|
||||
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, // [
|
||||
0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55, // 55
|
||||
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, // ]
|
||||
0x00, 0x04, 0x02, 0x01, 0x02, 0x04, // ^
|
||||
0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // _
|
||||
0x00, 0x00, 0x01, 0x02, 0x04, 0x00, // '
|
||||
0x00, 0x20, 0x54, 0x54, 0x54, 0x78, // a
|
||||
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38, // b
|
||||
0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c
|
||||
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F, // d
|
||||
0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // e
|
||||
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02, // f
|
||||
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g
|
||||
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, // h
|
||||
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, // i
|
||||
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, // j
|
||||
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, // k
|
||||
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, // l
|
||||
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, // m
|
||||
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, // n
|
||||
0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // o
|
||||
0x00, 0xFC, 0x24, 0x24, 0x24, 0x18, // p
|
||||
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, // q
|
||||
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
||||
0x00, 0x48, 0x54, 0x54, 0x54, 0x20, // s
|
||||
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
||||
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
||||
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, // v
|
||||
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, // w
|
||||
0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // x
|
||||
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y
|
||||
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, // z
|
||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // horiz lines
|
||||
const unsigned char F6x8[][6] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp
|
||||
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // !
|
||||
0x00, 0x00, 0x07, 0x00, 0x07, 0x00, // "
|
||||
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14, // #
|
||||
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12, // $
|
||||
0x00, 0x62, 0x64, 0x08, 0x13, 0x23, // %
|
||||
0x00, 0x36, 0x49, 0x55, 0x22, 0x50, // &
|
||||
0x00, 0x00, 0x05, 0x03, 0x00, 0x00, // '
|
||||
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00, // (
|
||||
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00, // )
|
||||
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14, // *
|
||||
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, // +
|
||||
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00, // ,
|
||||
0x00, 0x08, 0x08, 0x08, 0x08, 0x08, // -
|
||||
0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // .
|
||||
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, // /
|
||||
0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0
|
||||
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, // 1
|
||||
0x00, 0x42, 0x61, 0x51, 0x49, 0x46, // 2
|
||||
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31, // 3
|
||||
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, // 4
|
||||
0x00, 0x27, 0x45, 0x45, 0x45, 0x39, // 5
|
||||
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, // 6
|
||||
0x00, 0x01, 0x71, 0x09, 0x05, 0x03, // 7
|
||||
0x00, 0x36, 0x49, 0x49, 0x49, 0x36, // 8
|
||||
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, // 9
|
||||
0x00, 0x00, 0x36, 0x36, 0x00, 0x00, // :
|
||||
0x00, 0x00, 0x56, 0x36, 0x00, 0x00, // ;
|
||||
0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // <
|
||||
0x00, 0x14, 0x14, 0x14, 0x14, 0x14, // =
|
||||
0x00, 0x00, 0x41, 0x22, 0x14, 0x08, // >
|
||||
0x00, 0x02, 0x01, 0x51, 0x09, 0x06, // ?
|
||||
0x00, 0x32, 0x49, 0x59, 0x51, 0x3E, // @
|
||||
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, // A
|
||||
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // B
|
||||
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // C
|
||||
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C, // D
|
||||
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, // E
|
||||
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, // F
|
||||
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A, // G
|
||||
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // H
|
||||
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, // I
|
||||
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, // J
|
||||
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // K
|
||||
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, // L
|
||||
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M
|
||||
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, // N
|
||||
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // O
|
||||
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // P
|
||||
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, // Q
|
||||
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, // R
|
||||
0x00, 0x46, 0x49, 0x49, 0x49, 0x31, // S
|
||||
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // T
|
||||
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, // U
|
||||
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, // V
|
||||
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, // W
|
||||
0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // X
|
||||
0x00, 0x07, 0x08, 0x70, 0x08, 0x07, // Y
|
||||
0x00, 0x61, 0x51, 0x49, 0x45, 0x43, // Z
|
||||
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00, // [
|
||||
0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55, // 55
|
||||
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00, // ]
|
||||
0x00, 0x04, 0x02, 0x01, 0x02, 0x04, // ^
|
||||
0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // _
|
||||
0x00, 0x00, 0x01, 0x02, 0x04, 0x00, // '
|
||||
0x00, 0x20, 0x54, 0x54, 0x54, 0x78, // a
|
||||
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38, // b
|
||||
0x00, 0x38, 0x44, 0x44, 0x44, 0x20, // c
|
||||
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F, // d
|
||||
0x00, 0x38, 0x54, 0x54, 0x54, 0x18, // e
|
||||
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02, // f
|
||||
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C, // g
|
||||
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, // h
|
||||
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, // i
|
||||
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00, // j
|
||||
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, // k
|
||||
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, // l
|
||||
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, // m
|
||||
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, // n
|
||||
0x00, 0x38, 0x44, 0x44, 0x44, 0x38, // o
|
||||
0x00, 0xFC, 0x24, 0x24, 0x24, 0x18, // p
|
||||
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, // q
|
||||
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
||||
0x00, 0x48, 0x54, 0x54, 0x54, 0x20, // s
|
||||
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
||||
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
||||
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, // v
|
||||
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, // w
|
||||
0x00, 0x44, 0x28, 0x10, 0x28, 0x44, // x
|
||||
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C, // y
|
||||
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, // z
|
||||
0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // horiz lines
|
||||
};
|
||||
|
||||
/************************************************
|
||||
@ -110,109 +108,199 @@ const unsigned char F6x8[][6] =
|
||||
参 数 : 无
|
||||
返 回 值 : 无
|
||||
*************************************************/
|
||||
const unsigned char F8x16[][16]=
|
||||
{
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0
|
||||
0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00, // ! 1
|
||||
0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " 2
|
||||
0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00, // # 3
|
||||
0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00, // $ 4
|
||||
0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00, // % 5
|
||||
0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10, // & 6
|
||||
0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' 7
|
||||
0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00, // ( 8
|
||||
0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00, // ) 9
|
||||
0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00, // * 10
|
||||
0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00, // + 11
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00, // , 12
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, // - 13
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, // . 14
|
||||
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00, // / 15
|
||||
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, // 0 16
|
||||
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // 1 17
|
||||
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, // 2 18
|
||||
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, // 3 19
|
||||
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, // 4 20
|
||||
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, // 5 21
|
||||
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, // 6 22
|
||||
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, // 7 23
|
||||
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, // 8 24
|
||||
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, // 9 25
|
||||
0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, // : 26
|
||||
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00, // ; 27
|
||||
0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00, // < 28
|
||||
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00, // = 29
|
||||
0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00, // > 30
|
||||
0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00, // ? 31
|
||||
0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00, // @ 32
|
||||
0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, // A 33
|
||||
0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00, // B 34
|
||||
0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00, // C 35
|
||||
0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00, // D 36
|
||||
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00, // E 37
|
||||
0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, // F 38
|
||||
0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00, // G 39
|
||||
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20, // H 40
|
||||
0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // I 41
|
||||
0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00, // J 42
|
||||
0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00, // K 43
|
||||
0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00, // L 44
|
||||
0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00, // M 45
|
||||
0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00, // N 46
|
||||
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00, // O 47
|
||||
0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00, // P 48
|
||||
0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00, // Q 49
|
||||
0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20, // R 50
|
||||
0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00, // S 51
|
||||
0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, // T 52
|
||||
0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, // U 53
|
||||
0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00, // V 54
|
||||
0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00, // W 55
|
||||
0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20, // X 56
|
||||
0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, // Y 57
|
||||
0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00, // Z 58
|
||||
0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00, // [ 59
|
||||
0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00, // \ 60
|
||||
0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00, // ] 61
|
||||
0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ 62
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, // _ 63
|
||||
0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` 64
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20, // a 65
|
||||
0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00, // b 66
|
||||
0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00, // c 67
|
||||
0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20, // d 68
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00, // e 69
|
||||
0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // f 70
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00, // g 71
|
||||
0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, // h 72
|
||||
0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // i 73
|
||||
0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00, // j 74
|
||||
0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00, // k 75
|
||||
0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // l 76
|
||||
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F, // m 77
|
||||
0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, // n 78
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, // o 79
|
||||
0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00, // p 80
|
||||
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80, // q 81
|
||||
0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00, // r 82
|
||||
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00, // s 83
|
||||
0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00, // t 84
|
||||
0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20, // u 85
|
||||
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00, // v 86
|
||||
0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00, // w 87
|
||||
0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00, // x 88
|
||||
0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00, // y 89
|
||||
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00, // z 90
|
||||
0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40, // { 91
|
||||
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, // | 92
|
||||
0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00, // } 93
|
||||
0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~ 94
|
||||
const unsigned char F8x16[][16] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0
|
||||
0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x33, 0x30, 0x00, 0x00, 0x00, // ! 1
|
||||
0x00, 0x10, 0x0C, 0x06, 0x10, 0x0C, 0x06, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // " 2
|
||||
0x40, 0xC0, 0x78, 0x40, 0xC0, 0x78, 0x40, 0x00,
|
||||
0x04, 0x3F, 0x04, 0x04, 0x3F, 0x04, 0x04, 0x00, // # 3
|
||||
0x00, 0x70, 0x88, 0xFC, 0x08, 0x30, 0x00, 0x00,
|
||||
0x00, 0x18, 0x20, 0xFF, 0x21, 0x1E, 0x00, 0x00, // $ 4
|
||||
0xF0, 0x08, 0xF0, 0x00, 0xE0, 0x18, 0x00, 0x00,
|
||||
0x00, 0x21, 0x1C, 0x03, 0x1E, 0x21, 0x1E, 0x00, // % 5
|
||||
0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x00,
|
||||
0x1E, 0x21, 0x23, 0x24, 0x19, 0x27, 0x21, 0x10, // & 6
|
||||
0x10, 0x16, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ' 7
|
||||
0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x02, 0x00,
|
||||
0x00, 0x00, 0x00, 0x07, 0x18, 0x20, 0x40, 0x00, // ( 8
|
||||
0x00, 0x02, 0x04, 0x18, 0xE0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0x20, 0x18, 0x07, 0x00, 0x00, 0x00, // ) 9
|
||||
0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00,
|
||||
0x02, 0x02, 0x01, 0x0F, 0x01, 0x02, 0x02, 0x00, // * 10
|
||||
0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x1F, 0x01, 0x01, 0x01, 0x00, // + 11
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0xB0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, // , 12
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, // - 13
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // . 14
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x04,
|
||||
0x00, 0x60, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, // / 15
|
||||
0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||
0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00, // 0 16
|
||||
0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // 1 17
|
||||
0x00, 0x70, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00,
|
||||
0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00, // 2 18
|
||||
0x00, 0x30, 0x08, 0x88, 0x88, 0x48, 0x30, 0x00,
|
||||
0x00, 0x18, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00, // 3 19
|
||||
0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00,
|
||||
0x00, 0x07, 0x04, 0x24, 0x24, 0x3F, 0x24, 0x00, // 4 20
|
||||
0x00, 0xF8, 0x08, 0x88, 0x88, 0x08, 0x08, 0x00,
|
||||
0x00, 0x19, 0x21, 0x20, 0x20, 0x11, 0x0E, 0x00, // 5 21
|
||||
0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00,
|
||||
0x00, 0x0F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00, // 6 22
|
||||
0x00, 0x38, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, // 7 23
|
||||
0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00,
|
||||
0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00, // 8 24
|
||||
0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||
0x00, 0x00, 0x31, 0x22, 0x22, 0x11, 0x0F, 0x00, // 9 25
|
||||
0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, // : 26
|
||||
0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, // ; 27
|
||||
0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00,
|
||||
0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // < 28
|
||||
0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||
0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, // = 29
|
||||
0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00,
|
||||
0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, // > 30
|
||||
0x00, 0x70, 0x48, 0x08, 0x08, 0x08, 0xF0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x30, 0x36, 0x01, 0x00, 0x00, // ? 31
|
||||
0xC0, 0x30, 0xC8, 0x28, 0xE8, 0x10, 0xE0, 0x00,
|
||||
0x07, 0x18, 0x27, 0x24, 0x23, 0x14, 0x0B, 0x00, // @ 32
|
||||
0x00, 0x00, 0xC0, 0x38, 0xE0, 0x00, 0x00, 0x00,
|
||||
0x20, 0x3C, 0x23, 0x02, 0x02, 0x27, 0x38, 0x20, // A 33
|
||||
0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00, // B 34
|
||||
0xC0, 0x30, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00,
|
||||
0x07, 0x18, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, // C 35
|
||||
0x08, 0xF8, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00, // D 36
|
||||
0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x20, 0x23, 0x20, 0x18, 0x00, // E 37
|
||||
0x08, 0xF8, 0x88, 0x88, 0xE8, 0x08, 0x10, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, // F 38
|
||||
0xC0, 0x30, 0x08, 0x08, 0x08, 0x38, 0x00, 0x00,
|
||||
0x07, 0x18, 0x20, 0x20, 0x22, 0x1E, 0x02, 0x00, // G 39
|
||||
0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08,
|
||||
0x20, 0x3F, 0x21, 0x01, 0x01, 0x21, 0x3F, 0x20, // H 40
|
||||
0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00,
|
||||
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // I 41
|
||||
0x00, 0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00,
|
||||
0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, 0x00, // J 42
|
||||
0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x01, 0x26, 0x38, 0x20, 0x00, // K 43
|
||||
0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x30, 0x00, // L 44
|
||||
0x08, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x08, 0x00,
|
||||
0x20, 0x3F, 0x00, 0x3F, 0x00, 0x3F, 0x20, 0x00, // M 45
|
||||
0x08, 0xF8, 0x30, 0xC0, 0x00, 0x08, 0xF8, 0x08,
|
||||
0x20, 0x3F, 0x20, 0x00, 0x07, 0x18, 0x3F, 0x00, // N 46
|
||||
0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||
0x0F, 0x10, 0x20, 0x20, 0x20, 0x10, 0x0F, 0x00, // O 47
|
||||
0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, 0xF0, 0x00,
|
||||
0x20, 0x3F, 0x21, 0x01, 0x01, 0x01, 0x00, 0x00, // P 48
|
||||
0xE0, 0x10, 0x08, 0x08, 0x08, 0x10, 0xE0, 0x00,
|
||||
0x0F, 0x18, 0x24, 0x24, 0x38, 0x50, 0x4F, 0x00, // Q 49
|
||||
0x08, 0xF8, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x00, 0x03, 0x0C, 0x30, 0x20, // R 50
|
||||
0x00, 0x70, 0x88, 0x08, 0x08, 0x08, 0x38, 0x00,
|
||||
0x00, 0x38, 0x20, 0x21, 0x21, 0x22, 0x1C, 0x00, // S 51
|
||||
0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00,
|
||||
0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00, // T 52
|
||||
0x08, 0xF8, 0x08, 0x00, 0x00, 0x08, 0xF8, 0x08,
|
||||
0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00, // U 53
|
||||
0x08, 0x78, 0x88, 0x00, 0x00, 0xC8, 0x38, 0x08,
|
||||
0x00, 0x00, 0x07, 0x38, 0x0E, 0x01, 0x00, 0x00, // V 54
|
||||
0xF8, 0x08, 0x00, 0xF8, 0x00, 0x08, 0xF8, 0x00,
|
||||
0x03, 0x3C, 0x07, 0x00, 0x07, 0x3C, 0x03, 0x00, // W 55
|
||||
0x08, 0x18, 0x68, 0x80, 0x80, 0x68, 0x18, 0x08,
|
||||
0x20, 0x30, 0x2C, 0x03, 0x03, 0x2C, 0x30, 0x20, // X 56
|
||||
0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00,
|
||||
0x00, 0x00, 0x20, 0x3F, 0x20, 0x00, 0x00, 0x00, // Y 57
|
||||
0x10, 0x08, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00,
|
||||
0x20, 0x38, 0x26, 0x21, 0x20, 0x20, 0x18, 0x00, // Z 58
|
||||
0x00, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x02, 0x00,
|
||||
0x00, 0x00, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x00, // [ 59
|
||||
0x00, 0x0C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x06, 0x38, 0xC0, 0x00, // \ 60
|
||||
0x00, 0x02, 0x02, 0x02, 0xFE, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0x40, 0x40, 0x7F, 0x00, 0x00, 0x00, // ] 61
|
||||
0x00, 0x00, 0x04, 0x02, 0x02, 0x02, 0x04, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ^ 62
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // _ 63
|
||||
0x00, 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ` 64
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x19, 0x24, 0x22, 0x22, 0x22, 0x3F, 0x20, // a 65
|
||||
0x08, 0xF8, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00, // b 66
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x0E, 0x11, 0x20, 0x20, 0x20, 0x11, 0x00, // c 67
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x88, 0xF8, 0x00,
|
||||
0x00, 0x0E, 0x11, 0x20, 0x20, 0x10, 0x3F, 0x20, // d 68
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x1F, 0x22, 0x22, 0x22, 0x22, 0x13, 0x00, // e 69
|
||||
0x00, 0x80, 0x80, 0xF0, 0x88, 0x88, 0x88, 0x18,
|
||||
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // f 70
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||
0x00, 0x6B, 0x94, 0x94, 0x94, 0x93, 0x60, 0x00, // g 71
|
||||
0x08, 0xF8, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20, // h 72
|
||||
0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // i 73
|
||||
0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00,
|
||||
0x00, 0xC0, 0x80, 0x80, 0x80, 0x7F, 0x00, 0x00, // j 74
|
||||
0x08, 0xF8, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||
0x20, 0x3F, 0x24, 0x02, 0x2D, 0x30, 0x20, 0x00, // k 75
|
||||
0x00, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00, // l 76
|
||||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||
0x20, 0x3F, 0x20, 0x00, 0x3F, 0x20, 0x00, 0x3F, // m 77
|
||||
0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x20, 0x3F, 0x21, 0x00, 0x00, 0x20, 0x3F, 0x20, // n 78
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F, 0x00, // o 79
|
||||
0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x80, 0xFF, 0xA1, 0x20, 0x20, 0x11, 0x0E, 0x00, // p 80
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||
0x00, 0x0E, 0x11, 0x20, 0x20, 0xA0, 0xFF, 0x80, // q 81
|
||||
0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||
0x20, 0x20, 0x3F, 0x21, 0x20, 0x00, 0x01, 0x00, // r 82
|
||||
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||
0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00, // s 83
|
||||
0x00, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1F, 0x20, 0x20, 0x00, 0x00, // t 84
|
||||
0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00,
|
||||
0x00, 0x1F, 0x20, 0x20, 0x20, 0x10, 0x3F, 0x20, // u 85
|
||||
0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||
0x00, 0x01, 0x0E, 0x30, 0x08, 0x06, 0x01, 0x00, // v 86
|
||||
0x80, 0x80, 0x00, 0x80, 0x00, 0x80, 0x80, 0x80,
|
||||
0x0F, 0x30, 0x0C, 0x03, 0x0C, 0x30, 0x0F, 0x00, // w 87
|
||||
0x00, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00,
|
||||
0x00, 0x20, 0x31, 0x2E, 0x0E, 0x31, 0x20, 0x00, // x 88
|
||||
0x80, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||
0x80, 0x81, 0x8E, 0x70, 0x18, 0x06, 0x01, 0x00, // y 89
|
||||
0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
|
||||
0x00, 0x21, 0x30, 0x2C, 0x22, 0x21, 0x30, 0x00, // z 90
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x7C, 0x02, 0x02,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x40, // { 91
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, // | 92
|
||||
0x00, 0x02, 0x02, 0x7C, 0x80, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0x40, 0x3F, 0x00, 0x00, 0x00, 0x00, // } 93
|
||||
0x00, 0x06, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ~ 94
|
||||
};
|
||||
|
||||
|
||||
#endif /* __OLED_FONT_H */
|
||||
|
||||
|
||||
/*---------------------------- END OF FILE ----------------------------*/
|
||||
|
||||
|
||||
|
22
Lib/stdint.h
22
Lib/stdint.h
@ -4,22 +4,22 @@
|
||||
#define __STDINT_H__
|
||||
|
||||
/* 精确宽度整数类型 */
|
||||
typedef unsigned char uint8_t; // 无符号 8-bit
|
||||
typedef signed char int8_t; // 有符号 8-bit
|
||||
typedef unsigned char uint8_t; // 无符号 8-bit
|
||||
typedef signed char int8_t; // 有符号 8-bit
|
||||
|
||||
typedef unsigned int uint16_t; // 无符号 16-bit (Keil C51中int是16位)
|
||||
typedef signed int int16_t; // 有符号 16-bit
|
||||
typedef unsigned int uint16_t; // 无符号 16-bit (Keil C51中int是16位)
|
||||
typedef signed int int16_t; // 有符号 16-bit
|
||||
|
||||
typedef unsigned long uint32_t; // 无符号 32-bit
|
||||
typedef signed long int32_t; // 有符号 32-bit
|
||||
typedef unsigned long uint32_t; // 无符号 32-bit
|
||||
typedef signed long int32_t; // 有符号 32-bit
|
||||
|
||||
/* 快速最小宽度类型(按编译器最优选择)*/
|
||||
typedef unsigned char uint_fast8_t;
|
||||
typedef unsigned int uint_fast16_t;
|
||||
typedef unsigned long uint_fast32_t;
|
||||
typedef unsigned char uint_fast8_t;
|
||||
typedef unsigned int uint_fast16_t;
|
||||
typedef unsigned long uint_fast32_t;
|
||||
|
||||
/* 指针类型(51 单片机为 8/16 位地址)*/
|
||||
typedef unsigned char uintptr_t; // 数据指针(8位)
|
||||
typedef unsigned int uintptr16_t;// 代码指针(16位)
|
||||
typedef unsigned char uintptr_t; // 数据指针(8位)
|
||||
typedef unsigned int uintptr16_t; // 代码指针(16位)
|
||||
|
||||
#endif /* __STDINT_H__ */
|
13
Src/config.h
13
Src/config.h
@ -3,26 +3,23 @@
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
//#define NDEBUG //取消断言
|
||||
#include <assert.h> // 断言库
|
||||
// #define NDEBUG //取消断言
|
||||
#include <assert.h> // 断言库
|
||||
|
||||
#include <intrins.h>
|
||||
|
||||
#include <STC15.H>
|
||||
|
||||
|
||||
#define FOSC 30000000UL // 定义系统频率
|
||||
#define FOSC 30000000UL // 定义系统频率
|
||||
|
||||
typedef uint32_t u32;
|
||||
typedef uint16_t u16;
|
||||
typedef uint8_t u8;
|
||||
|
||||
|
||||
#define True 1
|
||||
#define False 0
|
||||
|
||||
sbit SDA = P2^7;
|
||||
sbit SCL = P2^6;
|
||||
|
||||
sbit SDA = P2 ^ 7;
|
||||
sbit SCL = P2 ^ 6;
|
||||
|
||||
#endif
|
128
Src/main.c
128
Src/main.c
@ -1,76 +1,104 @@
|
||||
//System
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
// System
|
||||
#include <STC15.H>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
// Driver
|
||||
#include "uart.h"
|
||||
#include "iic.h"
|
||||
#include "uart.h"
|
||||
// Config
|
||||
#include "config.h"
|
||||
// Lib
|
||||
#include "delay.h"
|
||||
#include "ina226.h"
|
||||
#include "oled12864_drv.h"
|
||||
|
||||
void SystemClock_Init(void) {
|
||||
// 烧录时选择30M主频
|
||||
CLK_DIV = 0x00; // 时钟不分频(30MHz直接输出)
|
||||
void
|
||||
SystemClock_Init (void)
|
||||
{
|
||||
// 烧录时选择30M主频
|
||||
CLK_DIV = 0x00; // 时钟不分频(30MHz直接输出)
|
||||
}
|
||||
|
||||
void main() {
|
||||
u8 addr;
|
||||
void
|
||||
main ()
|
||||
{
|
||||
u8 addr;
|
||||
u16 read_i = 0;
|
||||
u16 adder = 0;
|
||||
|
||||
SystemClock_Init(); // 时钟配置
|
||||
SystemClock_Init (); // 时钟配置
|
||||
|
||||
EA = 1; // 开总中断
|
||||
EA = 1; // 开总中断
|
||||
|
||||
Delay_Init();
|
||||
Uart1_Init();
|
||||
|
||||
printf("IIC_Init()\r\n");
|
||||
IIC_Init();
|
||||
Delay_Init ();
|
||||
Uart1_Init ();
|
||||
|
||||
printf("OLED_Init()\r\n");
|
||||
OLED_Init();
|
||||
printf ("IIC_Init()\r\n");
|
||||
IIC_Init ();
|
||||
|
||||
DelayMs(100); // 初始化延时
|
||||
printf ("OLED_Init()\r\n");
|
||||
OLED_Init ();
|
||||
|
||||
printf("OLED_ShowPrintf()\r\n");
|
||||
OLED_ShowPrintf(0, 0, "Hello, oWorld!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL, OLED_SHOW);
|
||||
|
||||
OLED_ShowPrintf(0, 2, "Hello, 2World!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL, OLED_CLS);
|
||||
|
||||
OLED_ShowPrintf(0, 1, "Hello, 1Worl2d!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL, OLED_CLS);
|
||||
|
||||
OLED_ShowPrintf(0, 4, "Hello, 4Wo4rld!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL, OLED_CLS);
|
||||
printf ("INA226_Init()\r\n");
|
||||
INA226_Init (0x0A, 0.05f);
|
||||
|
||||
OLED_ShowNum(4, 6, 123456789, 10, OLED_FONT_SIXTEEN, OLED_LEFT_ROLL, OLED_SHOW);
|
||||
DelayMs (100); // 初始化延时
|
||||
|
||||
while(1) {
|
||||
printf("Scanning I2C bus...\r\n");
|
||||
|
||||
for(addr = 0x08; addr <= 0x78; addr++) { // 有效地址范围
|
||||
IIC_Start();
|
||||
IIC_SendByte(addr << 1); // 发送写命令
|
||||
if(IIC_WaitAck()) {
|
||||
printf("Device found at: 0x%02X\n", addr);
|
||||
printf ("OLED_ShowPrintf()\r\n");
|
||||
OLED_ShowPrintf (0, 0, "Hello, oWorld!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_SHOW);
|
||||
|
||||
OLED_ShowPrintf (0, 2, "Hello, 2World!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_CLS);
|
||||
|
||||
OLED_ShowPrintf (0, 4, "Hello, 4Wo4rld!", OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_CLS);
|
||||
|
||||
OLED_ShowNum (4, 4, 123456789, 10, OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_SHOW);
|
||||
|
||||
while (1)
|
||||
{
|
||||
adder++;
|
||||
|
||||
OLED_ShowNum (8, 2, adder, 10, OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_SHOW);
|
||||
|
||||
DelayMs (1000);
|
||||
|
||||
read_i = (int16_t)(INA226_ReadBusVoltage ()*1000);
|
||||
|
||||
OLED_ShowNum (4, 6, read_i, 10, OLED_FONT_SIXTEEN, OLED_LEFT_ROLL,
|
||||
OLED_SHOW);
|
||||
|
||||
printf ("Scanning I2C bus...\r\n");
|
||||
|
||||
for (addr = 0x08; addr <= 0x78; addr++)
|
||||
{ // 有效地址范围
|
||||
IIC_Start ();
|
||||
IIC_SendByte (addr << 1); // 发送写命令
|
||||
if (IIC_WaitAck ())
|
||||
{
|
||||
printf ("Device found at: 0x%02X\n", addr);
|
||||
}
|
||||
IIC_Stop();
|
||||
DelayMs(1);
|
||||
IIC_Stop ();
|
||||
DelayMs (1);
|
||||
}
|
||||
|
||||
printf("Scan complete.\n");
|
||||
DelayMs(1000);
|
||||
|
||||
printf ("Scan complete.\n");
|
||||
DelayMs (1000);
|
||||
}
|
||||
}
|
||||
|
||||
void Uart1_Isr(void) interrupt 4
|
||||
void
|
||||
Uart1_Isr (void) interrupt 4
|
||||
{
|
||||
if (TI) //检测串口1发送中断
|
||||
{
|
||||
TI = 0; //清除串口1发送中断请求位
|
||||
}
|
||||
if (RI) //检测串口1接收中断
|
||||
{
|
||||
RI = 0; //清除串口1接收中断请求位
|
||||
}
|
||||
if (TI) // 检测串口1发送中断
|
||||
{
|
||||
TI = 0; // 清除串口1发送中断请求位
|
||||
}
|
||||
if (RI) // 检测串口1接收中断
|
||||
{
|
||||
RI = 0; // 清除串口1接收中断请求位
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user