提交工程,小程序源码已完成,单片机待完成
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
#include "UART.h"
|
||||
#include <string.h>
|
||||
#include "oled.h"
|
||||
#include <stdio.h>
|
||||
|
||||
// 用于存储接收数据的数组
|
||||
unsigned char rxBuffer[ARRAY_SIZE];
|
||||
unsigned int rxIndex = 0; // 接收数据的索引
|
||||
unsigned int rx_flag=0;
|
||||
extern unsigned int CONNECT_FLEG;//连接标志
|
||||
// 初始化串口
|
||||
void Serial_Init() {
|
||||
SCON = 0x50; // 设置为模式1,8位数据,可变波特率
|
||||
TMOD &= 0x0F; // 清除定时器1模式位
|
||||
TMOD |= 0x20; // 设置定时器1为8位自动重装模式
|
||||
TH1 = TL1 = 256 - (11059200 / 12 / 32) / BAUDRATE; // 设置波特率
|
||||
TR1 = 1; // 启动定时器1
|
||||
ES = 1; // 开启串口中断
|
||||
EA = 1; // 开启全局中断
|
||||
}
|
||||
|
||||
void Delay(unsigned int xms)
|
||||
{
|
||||
unsigned char i, j;
|
||||
while(xms--)
|
||||
{
|
||||
i = 2;
|
||||
j = 239;
|
||||
do
|
||||
{
|
||||
while (--j);
|
||||
} while (--i);
|
||||
}
|
||||
}
|
||||
|
||||
void buff_memset(void)
|
||||
{
|
||||
memset(rxBuffer,0,64);
|
||||
rxIndex=0;
|
||||
rx_flag = 0;
|
||||
}
|
||||
unsigned int WIFI_CheckAck(char* src, char* dest, int timeout)
|
||||
{
|
||||
char *check = NULL;
|
||||
//清空缓冲
|
||||
buff_memset();
|
||||
|
||||
UART_sentString(src);
|
||||
timeout=timeout/10;//10ms处理一次
|
||||
while(timeout--)
|
||||
{
|
||||
Delay(10);//延时1ms
|
||||
if(rx_flag==1)
|
||||
{
|
||||
check = strstr(rxBuffer,dest);
|
||||
if(check != NULL)
|
||||
{
|
||||
buff_memset();//数据有误 清空
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
buff_memset();//数据有误 清空
|
||||
return 0;//超时
|
||||
}
|
||||
|
||||
sbit LED = P2^5;
|
||||
sbit motor1 = P2^6;
|
||||
sbit motor2 = P2^7;
|
||||
|
||||
void CONNECT_TX_Control(void)
|
||||
{
|
||||
char *ptr = NULL;
|
||||
int number;
|
||||
if (CONNECT_FLEG)
|
||||
{
|
||||
if(rx_flag)
|
||||
{
|
||||
if(strstr(rxBuffer,"192.168.0")!=NULL)
|
||||
{
|
||||
ptr = strrchr((char*)rxBuffer,','); // 以最后一个,为准后面为数据
|
||||
|
||||
if(strlen(ptr)-3==1) //判断接收到为一位数据 ,*\r\n
|
||||
{
|
||||
number = ptr[1]-'0';
|
||||
switch(number)
|
||||
{
|
||||
case 1: LED = 0 ; break;
|
||||
case 2: LED = 1; break;
|
||||
case 3:OLED_Show(); break;
|
||||
case 4:OLED_Clear(); break;
|
||||
case 5:motor1=0;motor2=1; break;
|
||||
case 6:motor1=1;motor2=0; break;
|
||||
case 7:motor1=0;motor2=0 ; break;
|
||||
default: return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(strstr((char *)rxBuffer,"RECV:test-app")!=NULL)
|
||||
{
|
||||
ptr = strrchr((char*)rxBuffer,','); // 以最后一个,为准后面为数据
|
||||
|
||||
if(strlen(ptr)-3==1) //判断接收到为一位数据 ,*\r\n
|
||||
{
|
||||
number = ptr[1]-'0';
|
||||
switch(number)
|
||||
{
|
||||
case 1: LED = 0 ; break;
|
||||
case 2: LED = 1; break;
|
||||
case 3:OLED_Show(); break;
|
||||
case 4:OLED_Clear(); break;
|
||||
case 5:motor1=0;motor2=1; break;
|
||||
case 6:motor1=1;motor2=0; break;
|
||||
case 7:motor1=0;motor2=0 ; break;
|
||||
default: return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
buff_memset();//数据有误 清空
|
||||
}
|
||||
}
|
||||
void CONNECT_TO_TCP(unsigned char* id,unsigned char *password)
|
||||
{
|
||||
unsigned char buf[50];
|
||||
WIFI_CheckAck("+++",id,1500); //确保其退出透传
|
||||
//while(!WIFI_CheckAck("AT+RESTORE\r\n","OK",5000));
|
||||
while(!WIFI_CheckAck("AT\r\n","OK",1000));
|
||||
while(!WIFI_CheckAck("AT+CWMODE=0\r\n","OK",2000));
|
||||
sprintf((char *)buf,"AT+CWJAP=%s,%s\r\n",id,password);
|
||||
while(!WIFI_CheckAck((char *)buf,"+CWJAP:1,",5000));
|
||||
while(!WIFI_CheckAck("AT+CIPMODE=1\r\n","OK",1000)!=0);
|
||||
while(!WIFI_CheckAck("AT+CIPSTART=TCP,192.168.0.146,2347\r\n","+CIPSTART:1",3000));
|
||||
while(!WIFI_CheckAck("AT+CIPSEND\r\n","OK",1000));
|
||||
UART_sentString(":Connected\r\n");
|
||||
CONNECT_FLEG = 1;
|
||||
}
|
||||
void CONNECT_TO_UDP(unsigned char* id,unsigned char *password)
|
||||
{
|
||||
unsigned char buf[50];
|
||||
|
||||
WIFI_CheckAck("+++",id,1500); //确保其退出透传
|
||||
//while(!WIFI_CheckAck("AT+RESTORE\r\n","OK",5000));
|
||||
while(!WIFI_CheckAck("AT\r\n","OK",1000));
|
||||
while(!WIFI_CheckAck("AT+CWMODE=0\r\n","OK",2000));
|
||||
sprintf((char *)buf,"AT+CWJAP=%s,%s\r\n",id,password);
|
||||
while(!WIFI_CheckAck((char *)buf,"+CWJAP:1,",5000));
|
||||
while(!WIFI_CheckAck("AT+CIPMODE=1\r\n","OK",1000)!=0);
|
||||
while(!WIFI_CheckAck("AT+CIPSTART=UDP,192.168.0.146,2345,1112,0\r\n","+CIPSTART:1",3000)); //192.168.0.150,2345为IP地址 2345 端口号1112 是模块设置的端口号 0 UDP固定目标模式
|
||||
while(!WIFI_CheckAck("AT+CIPSEND\r\n","OK",1000));
|
||||
UART_sentString(":Connected\r\n");
|
||||
CONNECT_FLEG = 1;
|
||||
}
|
||||
void CONNECT_TO_MQTT(unsigned char* id,unsigned char *password)
|
||||
{
|
||||
unsigned char buf[50];
|
||||
while(!WIFI_CheckAck("AT+MQTTCLEAN\r\n","OK",1000));
|
||||
//while(!WIFI_CheckAck("AT+RESTORE\r\n","OK",5000));
|
||||
while(!WIFI_CheckAck("AT\r\n","OK",1000));
|
||||
while(!WIFI_CheckAck("AT+CWMODE=0\r\n","OK",2000)); //STA模式
|
||||
sprintf((char *)buf,"AT+CWJAP=%s,%s\r\n",id,password);
|
||||
while(!WIFI_CheckAck((char *)buf,"+CWJAP:1,",5000));//连接WIFI
|
||||
while(!WIFI_CheckAck("AT+MQTTLONGCLIENTID=WF-TEST2\r\n","OK",1000)!=0);//配置 MQTT 客户端所需的客户端 ID、用户名和密码
|
||||
while(!WIFI_CheckAck("AT+MQTTCONN=broker.emqx.io,1883,0\r\n","MQTTCONNECTED:",2000)!=0);//连接 MQTT 服务器
|
||||
while(!WIFI_CheckAck("AT+MQTTSUB=test-app,0\r\n","OK",2000)!=0);//订阅主题 test-app
|
||||
while(!WIFI_CheckAck("AT+MQTTPUBRAW=test-w,32,0,0\r\n","OK",2000)!=0);
|
||||
UART_sentString("MQTT_Connected\r\n");
|
||||
buff_memset();
|
||||
CONNECT_FLEG = 1;
|
||||
}
|
||||
|
||||
void UART_SendByte(unsigned char Byte)
|
||||
{
|
||||
SBUF=Byte;
|
||||
while(!TI);
|
||||
TI=0;
|
||||
}
|
||||
|
||||
void UART_sentString(char *str)
|
||||
{
|
||||
|
||||
while(*str){
|
||||
UART_SendByte(*str);
|
||||
str++;
|
||||
}
|
||||
}
|
||||
// 串口接收中断服务程序
|
||||
void Serial_ISR() interrupt 4 {
|
||||
if (RI) {
|
||||
RI = 0; // 清除接收中断标志
|
||||
|
||||
|
||||
rxBuffer[rxIndex++] = SBUF; // 存储接收到的数据
|
||||
if(rxBuffer[rxIndex-1]=='\n')
|
||||
{
|
||||
rx_flag=1;
|
||||
}
|
||||
if(rxIndex==64)
|
||||
{
|
||||
rxIndex=0;
|
||||
rx_flag=1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef _UART_H_
|
||||
#define _UART_H_
|
||||
#include <REGX52.H> // STC89C52RC的寄存器定义
|
||||
#define BAUDRATE 9600 // 波特率
|
||||
#define ARRAY_SIZE 64 // 数组大小
|
||||
void Serial_Init();
|
||||
void Uart_send_String();
|
||||
void UART_SendByte(unsigned char Byte);
|
||||
void UART_sentString(char *str);
|
||||
void Delay(unsigned int xms);
|
||||
unsigned int WIFI_CheckAck(char* src, char* dest, int timeout);
|
||||
void CONNECT_TO_TCP(unsigned char* id,unsigned char *password);
|
||||
void CONNECT_TO_UDP(unsigned char* id,unsigned char *password);
|
||||
void CONNECT_TO_MQTT(unsigned char* id,unsigned char *password);
|
||||
void CONNECT_TX_Control(void);
|
||||
#endif
|
||||
@@ -0,0 +1,75 @@
|
||||
//**** 声明 ********************************************************************
|
||||
/*******************************************************************************
|
||||
* 下面来自互联开源程序,由深圳市大夏龙雀科技有限公司收集
|
||||
* 方便用户参考学习,本公司不提供任何技术支持
|
||||
* 程序仅供测试参考,不能应用在实际工程中,不一定能通过编译
|
||||
* 公司网站 http://www.szdx-smart.com/
|
||||
* 淘宝网址 https://shop184598174.taobao.com/?spm=a1z10.5-c-s.w12096189-21564973333.3.547b1176WCCDxR&scene=taobao_shop
|
||||
*******************************************************************************/
|
||||
/********************************************************************
|
||||
* 文件名 : WF24-UDP协议应用
|
||||
* 描述 : 该文件实现WF24和单片机数据透传。
|
||||
***********************************************************************/
|
||||
/*
|
||||
Name: UDP
|
||||
Created: 2024/8/21
|
||||
Author: WAM
|
||||
*/
|
||||
#include <REGX52.H> // STC89C52RC的寄存器定义
|
||||
#include "UART.h"
|
||||
#include "string.h"
|
||||
#include "stdio.h"
|
||||
#include "oled.h"
|
||||
extern unsigned int rxIndex;
|
||||
extern unsigned char rxBuffer[ARRAY_SIZE];
|
||||
extern unsigned int rx_flag;
|
||||
unsigned int CONNECT_FLEG;//连接标志
|
||||
// 主函数
|
||||
unsigned char conver[64];
|
||||
char *ptr = NULL;
|
||||
void MQTT_CONVER(void);
|
||||
void TCP_UDP_CONVER(void);
|
||||
void main() {
|
||||
Serial_Init(); // 初始化串口
|
||||
OLED_Init();
|
||||
CONNECT_TO_UDP("DX-SMART","SMART@601");
|
||||
while (1) {
|
||||
|
||||
// 主循环,可以添加其他任务
|
||||
TCP_UDP_CONVER();
|
||||
}
|
||||
}
|
||||
|
||||
void TCP_UDP_CONVER(void)
|
||||
{
|
||||
if (rx_flag)
|
||||
{
|
||||
UART_sentString(rxBuffer);
|
||||
// CONNECT_TX_Control();
|
||||
rxIndex = 0; // 重置索引,准备下一次接收
|
||||
memset(rxBuffer,0,ARRAY_SIZE); //清空缓冲区
|
||||
}
|
||||
}
|
||||
void MQTT_CONVER(void)
|
||||
{
|
||||
if (rx_flag)
|
||||
{
|
||||
if(strstr(rxBuffer,"RECV:test-app")!=NULL)
|
||||
{
|
||||
ptr = strrchr(rxBuffer,',');
|
||||
memcpy(conver,ptr,*(ptr-1));
|
||||
while(!WIFI_CheckAck("AT+MQTTPUBRAW=test-w,32,0,0\r\n","OK",2000)!=0);
|
||||
buff_memset();//数据有误 清空
|
||||
UART_sentString(conver);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void MQTT_CONTROL(void)
|
||||
{
|
||||
if (rx_flag)
|
||||
{
|
||||
CONNECT_TX_Control();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,249 @@
|
||||
#include "oled.h"
|
||||
#include "oledfont.h"
|
||||
|
||||
void delay_ms(unsigned int ms)
|
||||
{
|
||||
unsigned int a;
|
||||
while(ms)
|
||||
{
|
||||
a=1800;
|
||||
while(a--);
|
||||
ms--;
|
||||
}
|
||||
return;
|
||||
}
|
||||
void OLED_Show()
|
||||
{
|
||||
OLED_ShowCHinese(16,0,0);
|
||||
OLED_ShowCHinese(32,0,1);
|
||||
OLED_ShowCHinese(48,0,2);
|
||||
OLED_ShowCHinese(64,0,3);
|
||||
OLED_ShowCHinese(80,0,4);
|
||||
OLED_ShowCHinese(96,0,5);
|
||||
OLED_ShowString(32,2,"WF24");
|
||||
|
||||
}
|
||||
#if OLED_MODE==1
|
||||
//向SSD1106写入一个字节。
|
||||
//dat:要写入的数据/命令
|
||||
//cmd:数据/命令标志 0,表示命令;1,表示数据;
|
||||
void OLED_WR_Byte(u8 dat,u8 cmd)
|
||||
{
|
||||
DATAOUT(dat);
|
||||
if(cmd)
|
||||
OLED_DC_Set();
|
||||
else
|
||||
OLED_DC_Clr();
|
||||
OLED_CS_Clr();
|
||||
OLED_WR_Clr();
|
||||
OLED_WR_Set();
|
||||
OLED_CS_Set();
|
||||
OLED_DC_Set();
|
||||
}
|
||||
#else
|
||||
//向SSD1306写入一个字节。
|
||||
//dat:要写入的数据/命令
|
||||
//cmd:数据/命令标志 0,表示命令;1,表示数据;
|
||||
void OLED_WR_Byte(u8 dat,u8 cmd)
|
||||
{
|
||||
u8 i;
|
||||
if(cmd)
|
||||
OLED_DC_Set();
|
||||
else
|
||||
OLED_DC_Clr();
|
||||
OLED_CS_Clr();
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
OLED_SCLK_Clr();
|
||||
if(dat&0x80)
|
||||
{
|
||||
OLED_SDIN_Set();
|
||||
}
|
||||
else
|
||||
OLED_SDIN_Clr();
|
||||
OLED_SCLK_Set();
|
||||
dat<<=1;
|
||||
}
|
||||
OLED_CS_Set();
|
||||
OLED_DC_Set();
|
||||
}
|
||||
#endif
|
||||
void OLED_Set_Pos(unsigned char x, unsigned char y)
|
||||
{
|
||||
OLED_WR_Byte(0xb0+y,OLED_CMD);
|
||||
OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
|
||||
OLED_WR_Byte((x&0x0f)|0x01,OLED_CMD);
|
||||
}
|
||||
//开启OLED显示
|
||||
void OLED_Display_On(void)
|
||||
{
|
||||
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
|
||||
OLED_WR_Byte(0X14,OLED_CMD); //DCDC ON
|
||||
OLED_WR_Byte(0XAF,OLED_CMD); //DISPLAY ON
|
||||
}
|
||||
//关闭OLED显示
|
||||
void OLED_Display_Off(void)
|
||||
{
|
||||
OLED_WR_Byte(0X8D,OLED_CMD); //SET DCDC命令
|
||||
OLED_WR_Byte(0X10,OLED_CMD); //DCDC OFF
|
||||
OLED_WR_Byte(0XAE,OLED_CMD); //DISPLAY OFF
|
||||
}
|
||||
//清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!
|
||||
void OLED_Clear(void)
|
||||
{
|
||||
u8 i,n;
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
OLED_WR_Byte (0xb0+i,OLED_CMD); //设置页地址(0~7)
|
||||
OLED_WR_Byte (0x00,OLED_CMD); //设置显示位置—列低地址
|
||||
OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
|
||||
for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);
|
||||
} //更新显示
|
||||
}
|
||||
|
||||
|
||||
//在指定位置显示一个字符,包括部分字符
|
||||
//x:0~127
|
||||
//y:0~63
|
||||
//mode:0,反白显示;1,正常显示
|
||||
//size:选择字体 16/12
|
||||
void OLED_ShowChar(u8 x,u8 y,u8 chr)
|
||||
{
|
||||
unsigned char c=0,i=0;
|
||||
c=chr-' ';//得到偏移后的值
|
||||
if(x>Max_Column-1){x=0;y=y+2;}
|
||||
if(SIZE ==16)
|
||||
{
|
||||
OLED_Set_Pos(x,y);
|
||||
for(i=0;i<8;i++)
|
||||
OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);
|
||||
OLED_Set_Pos(x,y+1);
|
||||
for(i=0;i<8;i++)
|
||||
OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);
|
||||
}
|
||||
|
||||
}
|
||||
//m^n函数
|
||||
u32 oled_pow(u8 m,u8 n)
|
||||
{
|
||||
u32 result=1;
|
||||
while(n--)result*=m;
|
||||
return result;
|
||||
}
|
||||
//显示2个数字
|
||||
//x,y :起点坐标
|
||||
//len :数字的位数
|
||||
//size:字体大小
|
||||
//mode:模式 0,填充模式;1,叠加模式
|
||||
//num:数值(0~4294967295);
|
||||
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)
|
||||
{
|
||||
u8 t,temp;
|
||||
u8 enshow=0;
|
||||
for(t=0;t<len;t++)
|
||||
{
|
||||
temp=(num/oled_pow(10,len-t-1))%10;
|
||||
if(enshow==0&&t<(len-1))
|
||||
{
|
||||
if(temp==0)
|
||||
{
|
||||
OLED_ShowChar(x+(size2/2)*t,y,' ');
|
||||
continue;
|
||||
}else enshow=1;
|
||||
|
||||
}
|
||||
OLED_ShowChar(x+(size2/2)*t,y,temp+'0');
|
||||
}
|
||||
}
|
||||
//显示一个字符号串
|
||||
void OLED_ShowString(u8 x,u8 y,u8 *chr)
|
||||
{
|
||||
unsigned char j=0;
|
||||
while (chr[j]!='\0')
|
||||
{ OLED_ShowChar(x,y,chr[j]);
|
||||
x+=8;
|
||||
if(x>120){x=0;y+=2;}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
//显示汉字
|
||||
void OLED_ShowCHinese(u8 x,u8 y,u8 no)
|
||||
{
|
||||
u8 t,adder=0;
|
||||
OLED_Set_Pos(x,y);
|
||||
for(t=0;t<16;t++)
|
||||
{
|
||||
OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
|
||||
adder+=1;
|
||||
}
|
||||
OLED_Set_Pos(x,y+1);
|
||||
for(t=0;t<16;t++)
|
||||
{
|
||||
OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
|
||||
adder+=1;
|
||||
}
|
||||
}
|
||||
/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
|
||||
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
|
||||
{
|
||||
unsigned int j=0;
|
||||
unsigned char x,y;
|
||||
|
||||
if(y1%8==0) y=y1/8;
|
||||
else y=y1/8+1;
|
||||
for(y=y0;y<y1;y++)
|
||||
{
|
||||
OLED_Set_Pos(x0,y);
|
||||
for(x=x0;x<x1;x++)
|
||||
{
|
||||
OLED_WR_Byte(BMP[j++],OLED_DATA);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//初始化SSD1306
|
||||
void OLED_Init(void)
|
||||
{
|
||||
|
||||
|
||||
|
||||
OLED_RST_Set();
|
||||
delay_ms(100);
|
||||
OLED_RST_Clr();
|
||||
delay_ms(100);
|
||||
OLED_RST_Set();
|
||||
OLED_WR_Byte(0xAE,OLED_CMD);//--turn off oled panel
|
||||
OLED_WR_Byte(0x00,OLED_CMD);//---set low column address
|
||||
OLED_WR_Byte(0x10,OLED_CMD);//---set high column address
|
||||
OLED_WR_Byte(0x40,OLED_CMD);//--set start line address Set Mapping RAM Display Start Line (0x00~0x3F)
|
||||
OLED_WR_Byte(0x81,OLED_CMD);//--set contrast control register
|
||||
OLED_WR_Byte(0xCF,OLED_CMD); // Set SEG Output Current Brightness
|
||||
OLED_WR_Byte(0xA1,OLED_CMD);//--Set SEG/Column Mapping 0xa0左右反置 0xa1正常
|
||||
OLED_WR_Byte(0xC8,OLED_CMD);//Set COM/Row Scan Direction 0xc0上下反置 0xc8正常
|
||||
OLED_WR_Byte(0xA6,OLED_CMD);//--set normal display
|
||||
OLED_WR_Byte(0xA8,OLED_CMD);//--set multiplex ratio(1 to 64)
|
||||
OLED_WR_Byte(0x3f,OLED_CMD);//--1/64 duty
|
||||
OLED_WR_Byte(0xD3,OLED_CMD);//-set display offset Shift Mapping RAM Counter (0x00~0x3F)
|
||||
OLED_WR_Byte(0x00,OLED_CMD);//-not offset
|
||||
OLED_WR_Byte(0xd5,OLED_CMD);//--set display clock divide ratio/oscillator frequency
|
||||
OLED_WR_Byte(0x80,OLED_CMD);//--set divide ratio, Set Clock as 100 Frames/Sec
|
||||
OLED_WR_Byte(0xD9,OLED_CMD);//--set pre-charge period
|
||||
OLED_WR_Byte(0xF1,OLED_CMD);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
|
||||
OLED_WR_Byte(0xDA,OLED_CMD);//--set com pins hardware configuration
|
||||
OLED_WR_Byte(0x12,OLED_CMD);
|
||||
OLED_WR_Byte(0xDB,OLED_CMD);//--set vcomh
|
||||
OLED_WR_Byte(0x40,OLED_CMD);//Set VCOM Deselect Level
|
||||
OLED_WR_Byte(0x20,OLED_CMD);//-Set Page Addressing Mode (0x00/0x01/0x02)
|
||||
OLED_WR_Byte(0x02,OLED_CMD);//
|
||||
OLED_WR_Byte(0x8D,OLED_CMD);//--set Charge Pump enable/disable
|
||||
OLED_WR_Byte(0x14,OLED_CMD);//--set(0x10) disable
|
||||
OLED_WR_Byte(0xA4,OLED_CMD);// Disable Entire Display On (0xa4/0xa5)
|
||||
OLED_WR_Byte(0xA6,OLED_CMD);// Disable Inverse Display On (0xa6/a7)
|
||||
OLED_WR_Byte(0xAF,OLED_CMD);//--turn on oled panel
|
||||
|
||||
OLED_WR_Byte(0xAF,OLED_CMD); /*display ON*/
|
||||
OLED_Clear();
|
||||
OLED_Set_Pos(0,0);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
#ifndef _OLED_H_
|
||||
#define _OLED_H_
|
||||
#include <REGX52.H>
|
||||
#define u8 unsigned char
|
||||
#define u32 unsigned int
|
||||
#define OLED_CMD 0 //写命令
|
||||
#define OLED_DATA 1 //写数据
|
||||
#define OLED_MODE 0
|
||||
|
||||
sbit OLED_CS=P2^4; //片选
|
||||
sbit OLED_RST =P2^2;//复位
|
||||
sbit OLED_DC =P2^3;//数据/命令控制
|
||||
sbit OLED_SCL=P2^0;//时钟 D0(SCLK
|
||||
sbit OLED_SDIN=P2^1;//D1(MOSI) 数据
|
||||
|
||||
|
||||
#define OLED_CS_Clr() OLED_CS=0
|
||||
#define OLED_CS_Set() OLED_CS=1
|
||||
|
||||
#define OLED_RST_Clr() OLED_RST=0
|
||||
#define OLED_RST_Set() OLED_RST=1
|
||||
|
||||
#define OLED_DC_Clr() OLED_DC=0
|
||||
#define OLED_DC_Set() OLED_DC=1
|
||||
|
||||
#define OLED_SCLK_Clr() OLED_SCL=0
|
||||
#define OLED_SCLK_Set() OLED_SCL=1
|
||||
|
||||
#define OLED_SDIN_Clr() OLED_SDIN=0
|
||||
#define OLED_SDIN_Set() OLED_SDIN=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//OLED模式设置
|
||||
//0:4线串行模式
|
||||
//1:并行8080模式
|
||||
|
||||
#define SIZE 16
|
||||
#define XLevelL 0x02
|
||||
#define XLevelH 0x10
|
||||
#define Max_Column 128
|
||||
#define Max_Row 64
|
||||
#define Brightness 0xFF
|
||||
#define X_WIDTH 128
|
||||
#define Y_WIDTH 64
|
||||
//-----------------OLED端口定义----------------
|
||||
|
||||
void delay_ms(unsigned int ms);
|
||||
|
||||
|
||||
|
||||
void OLED_Show();
|
||||
//OLED控制用函数
|
||||
void OLED_WR_Byte(u8 dat,u8 cmd);
|
||||
void OLED_Display_On(void);
|
||||
void OLED_Display_Off(void);
|
||||
void OLED_Init(void);
|
||||
void OLED_Clear(void);
|
||||
void OLED_DrawPoint(u8 x,u8 y,u8 t);
|
||||
void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);
|
||||
void OLED_ShowChar(u8 x,u8 y,u8 chr);
|
||||
void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2);
|
||||
void OLED_ShowString(u8 x,u8 y, u8 *p);
|
||||
void OLED_Set_Pos(unsigned char x, unsigned char y);
|
||||
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
|
||||
void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
//#endif /*_OLEDFONT_H*/
|
||||
#ifndef __OLEDFONT_H
|
||||
#define __OLEDFONT_H
|
||||
//常用ASCII表
|
||||
//偏移量32
|
||||
//ASCII字符集
|
||||
//偏移量32
|
||||
//大小:12*6
|
||||
/************************************6*8的点阵************************************/
|
||||
const unsigned char code 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
|
||||
};
|
||||
/****************************************8*16的点阵************************************/
|
||||
const unsigned char code F8X16[]=
|
||||
{
|
||||
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 char code Hzk[][32]={
|
||||
|
||||
{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},
|
||||
{0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00},/*"大",0*/
|
||||
|
||||
{0x00,0x01,0x01,0xFD,0x55,0x55,0x57,0x55,0x55,0x55,0x55,0xFD,0x01,0x01,0x00,0x00},
|
||||
{0x80,0x90,0x88,0x45,0x4F,0x55,0x25,0x25,0x25,0x55,0x4D,0x45,0x80,0x80,0x80,0x00},/*"夏",1*/
|
||||
|
||||
{0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x10,0x11,0x16,0xD0,0x10,0x10,0x00},
|
||||
{0x80,0x40,0x20,0x18,0x06,0x41,0x20,0x10,0x3F,0x44,0x42,0x41,0x40,0x40,0x78,0x00},/*"龙",2*/
|
||||
|
||||
{0x00,0x10,0x88,0x86,0x40,0x40,0x20,0x2F,0x50,0x90,0x08,0x02,0x04,0x08,0x00,0x00},
|
||||
{0x01,0x01,0x00,0xFF,0x55,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x41,0x00,0x00},/*"雀",3*/
|
||||
|
||||
{0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00},
|
||||
{0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x04,0xFF,0x02,0x02,0x02,0x00},/*"科",5*/
|
||||
|
||||
{0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00},
|
||||
{0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",6*/
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user