想用Nokia170 5110 8299 列举网和单片机和DH11做一个温度计,然后

DH11的51单片机程序资料
我的图书馆
DH11的51单片机程序资料
DHT11对时钟要求特别高,以下两个程序
前者时钟是22.1184MHz;
后者是11.0592MHz,请注意区分...
//****************************************************************//
//& & & && && && && && &&&DHT11使用范例
//单片机 : AT89S52 或 STC89C52RC
// 功能&&:串口发送温湿度数据 晶振&&22.1184M& &&&
//****************************************************************//
#include &reg52.h&
//----------------------------------------------//
//----------------IO口定义区--------------------//
//----------------------------------------------//
sbit&&P2_0&&= P2^0 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
unsigned char&&U8FLAG=0,U8temp=0;
unsigned char&&U8T_data_H=0,U8T_data_L=0,U8RH_data_H=0,U8RH_data_L=0,U8checkdata=0;
unsigned char str[5];
&&void Delay2(unsigned int j)
& & {& && &
& & & && &&&for(;j&0;j--)
& & & && & { & & & &
& & & & & & & & for(i=0;i&150;i++);
& & & && & }
&&void&&Delay_10us(void)
& & {& && &
& & & && & unsigned&&i;
& & & && & for(i=16;i&0;i--) ;
unsigned char COM(void)
& & & && && && &unsigned char i,U8
& && & for(i=0;i&8;i++)& & & && &
& & & && &&&{
& & & & & & & &
& & & && & & & & && &&&U8FLAG=2;& & & &
& & & && & & & & & while((!P2_0)&&U8FLAG++);
& & & & & & & & & & & & Delay_10us();
& & & & & & & && &&&Delay_10us();
& & & & & & & & & & & & Delay_10us();
& & & && && & & & & & & & U8temp=0;
& & & && && &if(P2_0)U8temp=1;
& & & & & & & && &&&U8FLAG=2;
& & & & & & & &&&while((P2_0)&&U8FLAG++);
& & & && & & & & & //超时则跳出for循环& & & & & & & && &
& & & && & & & & &&&if(U8FLAG==1)
& & & && & & & & & //判断数据位是0还是1& & & &&&
& & & && & & & & && &
& & & & & & & & // 如果高电平高过预定0高电平值则数据位为 1
& & & && & & & & &&&
& & & & & & & && & U8comdata&&=1;
& & & && & & & & && & U8comdata|=U8& && &&&//0
& & & && && &}//rof
& & & && &return&&U8comdata& & & & ;
& & & & //--------------------------------
& & & & //-----湿度读取子程序 ------------
& & & & //--------------------------------
& & & & //----以下变量均为全局变量--------
& & & & //----温度高8位== U8T_data_H------
& & & & //----温度低8位== U8T_data_L------
& & & & //----湿度高8位== U8RH_data_H-----
& & & & //----湿度低8位== U8RH_data_L-----
& & & & //----校验 8位 == U8checkdata-----
& & & & //----调用相关子程序如下----------
& & & & //---- Delay();, Delay_10us();,COM();
& & & & //--------------------------------
void RH(void)
unsigned char&&U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_
& & & && &//主机拉低18ms
& && & P2_0=0;
& & & && & Delay2(180);
& & & && & P2_0=1;
& & & &&&//总线由上拉电阻拉高 主机延时20us
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & &&&//主机设为输入 判断从机响应信号
& & & && & P2_0=1;
& & & &&&//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行& & & && &
& & & && & if(!P2_0)& & & & & & & &&&//T !& & & && &
& & & && & {
& & & && & U8FLAG=2;
& & & &&&//判断从机是否发出 80us 的低电平响应信号是否结束& & & &&&
& & & && & while((!P2_0)&&U8FLAG++);
& & & && & U8FLAG=2;
& & & &&&//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
& & & && & while((P2_0)&&U8FLAG++);
& & & &&&//数据接收状态& & & & & & & &&&
& & & && &U8RH_data_H_temp= COM();
& & & && &U8RH_data_L_temp= COM();
& & & && &U8T_data_H_temp=COM();
& & & && &U8T_data_L_temp=COM();
& & & && &U8checkdata_temp=COM();
& & & && & P2_0=1;
& & & &&&//数据校验
& & & && & U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
& & & && & if(U8temp==U8checkdata_temp)
& & & && & {
& & & && & & & & && &U8RH_data_H=U8RH_data_H_
& & & && & & & & && &U8RH_data_L=U8RH_data_L_
& & & & & & & && &U8T_data_H=U8T_data_H_
& & & && & & & & && &U8T_data_L=U8T_data_L_
& & & && & & & & && &U8checkdata=U8checkdata_
& & & && & }//fi
& & & && & }//fi
//----------------------------------------------
//main()功能描述:&&AT89C51&&22.1184MHz & & & & 串口发
//送温湿度数据,波特率 9600
//----------------------------------------------
void main()
& & & & Delay2(1);& && && &//延时100US(22.1184M晶振)
& & & & while(1)
& & & & {&&
& & & && & //------------------------
& & & && & //调用温湿度读取子程序
& & & && & RH();
& & & && & //串口显示程序
& & & && & str[0]=U8RH_data_H;
& & & && & str[1]=U8RH_data_L;
& & & && & str[2]=U8T_data_H;
& & & && & str[3]=U8T_data_L;
& & & && & str[4]=U8
& & & && &&&
& & & && & //读取模块数据周期不易小于 2S
& & & && & Delay2(20000);
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
//****************************************************************//
//& & & && && && && && &&&DHT11使用范例
//单片机 : AT89S52 或 STC89C52RC
// 功能&&:串口发送温湿度数据 晶振 11.0592M 波特率 9600
//硬件连接: P2.0口为通讯口连接DHT11,DHT11的电源和地连接单片机的电源和地,单片机串口加MAX232连接电脑
// 公司&&:奥松电子& &
//****************************************************************//
#include &reg51.h&
#include &intrins.h&
typedef unsigned char&&U8;& && & /* defined for unsigned 8-bits integer variable & & & && &无符号8位整型变量&&*/
typedef signed& &char&&S8;& && & /* defined for signed 8-bits integer variable& & & & & & & && &有符号8位整型变量&&*/
typedef unsigned int& &U16;& && &/* defined for unsigned 16-bits integer variable & & & && &无符号16位整型变量 */
typedef signed& &int& &S16;& && &/* defined for signed 16-bits integer variable & & & && &有符号16位整型变量 */
typedef unsigned long&&U32;& && &/* defined for unsigned 32-bits integer variable & & & && &无符号32位整型变量 */
typedef signed& &long&&S32;& && &/* defined for signed 32-bits integer variable & & & && &有符号32位整型变量 */
typedef float& && && & F32;& && &/* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedef double& && && &F64;& && &/* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
#define uchar unsigned char
#define uint unsigned int
#define& &Data_0_time& & 4
//----------------------------------------------//
//----------------IO口定义区--------------------//
//----------------------------------------------//
sbit&&P2_0&&= P2^0 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
U8&&U8FLAG,k;
U8&&U8count,U8
U8&&U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8
U8&&U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_
U8&&outdata[5];&&//定义发送的字节数& & & && &
U8&&indata[5];
U8&&count, count_r=0;
U8&&str[5]={"RS232"};
U16 U16temp1,U16temp2;
SendData(U8 *a)
& & & & outdata[0] = a[0];
& & & & outdata[1] = a[1];
& & & & outdata[2] = a[2];
& & & & outdata[3] = a[3];
& & & & outdata[4] = a[4];
& & & & count = 1;
& & & & SBUF=outdata[0];
& && & void Delay(U16 j)
& & {& && &U8
& & & && &&&for(;j&0;j--)
& & & && &{ & & & &
& & & & & & & & for(i=0;i&27;i++);
& & & && &}
& && & void&&Delay_10us(void)
& && &&&U8
& && &&&i--;
& && &&&i--;
& && &&&i--;
& && &&&i--;
& && &&&i--;
& && &&&i--;
& && &&&void&&COM(void)
& & & && && && &U8
& && & for(i=0;i&8;i++)& & & && &
& & & && &&&{
& & & & & & & &
& & & && & & & & && &&&U8FLAG=2;& & & &
& & & && & & & & & while((!P2_0)&&U8FLAG++);
& & & & & & & & & & & & Delay_10us();
& & & & & & & && &&&Delay_10us();
& & & & & & & & & & & & Delay_10us();
& & & && && & & & & & & & U8temp=0;
& & & && && &if(P2_0)U8temp=1;
& & & & & & & && &&&U8FLAG=2;
& & & & & & & &&&while((P2_0)&&U8FLAG++);
& & & && & & & & & //超时则跳出for循环& & & & & & & && &
& & & && & & & & &&&if(U8FLAG==1)
& & & && & & & & & //判断数据位是0还是1& & & &&&
& & & && & & & & && &
& & & & & & & & // 如果高电平高过预定0高电平值则数据位为 1
& & & && & & & & &&&
& & & & & & & && & U8comdata&&=1;
& & & && & & & & && & U8comdata|=U8& && &&&//0
& & & && && &}//rof
& & & && &
& & & & //--------------------------------
& & & & //-----湿度读取子程序 ------------
& & & & //--------------------------------
& & & & //----以下变量均为全局变量--------
& & & & //----温度高8位== U8T_data_H------
& & & & //----温度低8位== U8T_data_L------
& & & & //----湿度高8位== U8RH_data_H-----
& & & & //----湿度低8位== U8RH_data_L-----
& & & & //----校验 8位 == U8checkdata-----
& & & & //----调用相关子程序如下----------
& & & & //---- Delay();, Delay_10us();,COM();
& & & & //--------------------------------
& & & & void RH(void)
& & & && &//主机拉低18ms
& && & P2_0=0;
& & & && & Delay(180);
& & & && & P2_0=1;
& & & &&&//总线由上拉电阻拉高 主机延时20us
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & && & Delay_10us();
& & & &&&//主机设为输入 判断从机响应信号
& & & && & P2_0=1;
& & & &&&//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行& & & && &
& & & && & if(!P2_0)& & & & & & & &&&//T !& & & && &
& & & && & {
& & & && & U8FLAG=2;
& & & &&&//判断从机是否发出 80us 的低电平响应信号是否结束& & & &&&
& & & && & while((!P2_0)&&U8FLAG++);
& & & && & U8FLAG=2;
& & & &&&//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
& & & && & while((P2_0)&&U8FLAG++);
& & & &&&//数据接收状态& & & & & & & &&&
& & & && & COM();
& & & && & U8RH_data_H_temp=U8
& & & && & COM();
& & & && & U8RH_data_L_temp=U8
& & & && & COM();
& & & && & U8T_data_H_temp=U8
& & & && & COM();
& & & && & U8T_data_L_temp=U8
& & & && & COM();
& & & && & U8checkdata_temp=U8
& & & && & P2_0=1;
& & & &&&//数据校验
& & & && & U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
& & & && & if(U8temp==U8checkdata_temp)
& & & && & {
& & & && & & & & && &U8RH_data_H=U8RH_data_H_
& & & && & & & & && &U8RH_data_L=U8RH_data_L_
& & & & & & & && &U8T_data_H=U8T_data_H_
& & & && & & & & && &U8T_data_L=U8T_data_L_
& & & && & & & & && &U8checkdata=U8checkdata_
& & & && & }//fi
& & & && & }//fi
//----------------------------------------------
//main()功能描述:&&AT89C51&&11.0592MHz & & & & 串口发
//送温湿度数据,波特率 9600
//----------------------------------------------
void main()
//& & & & U8&&i,j;
& & & & //uchar str[6]={"RS232"};
& & & & /* 系统初始化 */
& & & & TMOD = 0x20;& & & && &//定时器T1使用工作方式2
& & & & TH1 = 253;& && &&&// 设置初值
& & & & TL1 = 253;
& & & & TR1 = 1;& && && & // 开始计时
& & & & SCON = 0x50;& & & && &//工作方式1,波特率9600bps,允许接收& &
& & & & ES = 1;
& & & & EA = 1;& && && &&&// 打开所以中断& &
& & & & TI = 0;
& & & & RI = 0;
& & & & SendData(str) ;& &//发送到串口
& & & & Delay(1);& && && &//延时100US(12M晶振)
& & & & while(1)
& & & & {&&
& & & && & //------------------------
& & & && & //调用温湿度读取子程序
& & & && & RH();
& & & && & //串口显示程序
& & & && & //--------------------------
& & & && & str[0]=U8RH_data_H;
& & & && & str[1]=U8RH_data_L;
& & & && & str[2]=U8T_data_H;
& & & && & str[3]=U8T_data_L;
& & & && & str[4]=U8
& & & && & SendData(str) ;&&//发送到串口&&
& & & && & //读取模块数据周期不易小于 2S
& & & && & Delay(20000);
& & & & }//elihw
void RSINTR() interrupt 4 using 2
& & & & U8 InPut3;
& & & & if(TI==1) //发送中断& & & && &
& & & & & & & & TI=0;
& & & & & & & & if(count!=5) //发送完5位数据& & & &&&
& & & & & & & & {
& & & & & & & & & & & & SBUF= outdata[count];
& & & & & & & & & & & & count++;
& & & & & & & & }
& & & & if(RI==1)& & & &&&//接收中断& & & & & & & && &
& & & & {& & & &
& & & & & & & & InPut3=SBUF;
& & & & & & & & indata[count_r]=InPut3;
& & & & & & & & count_r++;
& & & & & & & & RI=0;& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&
& & & & & & & & if (count_r==5)//接收完4位数据
& & & & & & & & {
& & & & & & & & //数据接收完毕处理。
& & & & & & & & & & & & count_r=0;
& & & & & & & & str[0]=indata[0];
& & & & & & & &&&str[1]=indata[1];
& & & & & & & && & str[2]=indata[2];
& & & & & & & & & & & &&&str[3]=indata[3];
& & & & & & & & & & & & & & & &&&str[4]=indata[4];
& & & & & & & & & & & & & & & &&&P0=0;
& & & & & & & & }
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢5条线搞定nokia诺基亚5110lcd液晶屏|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
5条线搞定5110液晶屏驱动不要vcc不要gnd[attachment=6112425]
赞助商链接
main.c#include &reg51.h&#include&Nokia5110lcd.h&//#include&font6x8.h&#define&&uchar unsigned char#define&&uint unsigned intsbit relay=P3^0;sbit beep=P3^1; //oksbit led=P1^1;sbit k1=P1^3;sbit k2=P1^4;sbit k3=P1^5;sbit k4=P1^6;uint Suint PumpT//浇水时间 void Timer0Init(void)&&&&&&&&//50毫秒@6.000MHz{&&&&AUXR &= 0x7F;&&&&&&&&//定时器时钟12T模式&&&&TMOD &= 0xF0;&&&&&&&&//设置定时器模式&&&&TMOD |= 0x01;&&&&&&&&//设置定时器模式&&&&TL0 = 0x58;&&&&&&&&//设置定时初值&&&&TH0 = 0x9E;&&&&&&&&//设置定时初值&&&&TF0 = 0;&&&&&&&&//清除TF0标志&&&&//TR0 = 1;&&&&&&&&//定时器0开始计时&&&&ET0=1;&&&&EA=1;} main(){&&&& &&&& &&&&&&Lcd5110Init();&&//初始化LCD模块 &&&&Lcd5110Clear(); //清屏幕&&&& &&&&&&while(1)&&&&&&{&&&&&&&&&&&&// Lcd5110String8x12(1,0,&1&);&&&&&&&&// Lcd5110String8x12(0,0,&0&);&&&&&&&&// Lcd5110String8x12(2,0,&2&);&&&&&&&&// Lcd5110String8x12(3,0,&3&);&&&&&&&&// Lcd5110String8x12(1,9,&3&);&&&&&&&&// Lcd5110String8x12(0,9,&4&);&&&&&&&&// Lcd5110String8x12(2,9,&5&);&&&&&&&&// Lcd5110String8x12(3,9,&6&);&&&&&&&&&&&&&&&&&&&&&&// Lcd5110String6x8(1,13,&Pumping&);&&&&&&&&// Lcd5110String6x8(2,13,&85-12-5&);&&&&&&&&// Lcd5110String6x8(3,13,&Pumping&);&&&&&&&&// Lcd5110String8x16(1,0,&15-12-5&);&&&&&&&&&&//Lcd5110String(1,54,&12:30&);&&&&&&&&// Lcd5110String(2,0,&QQ:&);&&&&&&&&//Lcd5110SetXY(0,0);&&&&&&&&//Lcd5110show8x16AscAtAddr(0,17,'8');&&&&&&&&//Lcd5110show8x16AscAtAddr(3,17,'8');&&&&&&&& && &&&&&&&&Lcd5110ShowHZ12X12(1,0,1);&&// &&&&&&&&Lcd5110ShowHZ12X12(0,0,0);&&// &&&&&&&&Lcd5110ShowHZ12X12(3,0,3);&&//&&&&&&&&Lcd5110ShowHZ12X12(2,0,2);&&// &&&&&&&&Lcd5110ShowHZ12X12(1,15,5);&&//&&&& &&&&&&&&Lcd5110ShowHZ12X12(0,15,4);&&// &&&&&&&&Lcd5110ShowHZ12X12(2,15,6);&&//&&&& &&&&&&&&Lcd5110ShowHZ12X12(3,15,7);&&// &&&&&&&&Lcd5110ShowHZ16X16(0,34,0);&&// &&&&&&&&Lcd5110ShowHZ16X16(0,50,1);&&//&&&&&&&&&&Lcd5110ShowHZ16X16(0,66,2);&&// &&&&&&&&Lcd5110ShowHZ16X16(2,34,3);&&// &&&&&&&&Lcd5110ShowHZ16X16(2,66,4);&&// &&&&&&&&Lcd5110ShowHZ16X16(4,34,5);&&// &&&&&&&&Lcd5110ShowHZ16X16(4,50,6);&&// &&&&&&&&Lcd5110ShowHZ16X16(4,66,7);&&// &&&&&&&& &&&& &&&&&&}}void t0() interrupt 1{&&&&&&&&TL0 = 0x58;&&&&&&&&//设置定时初值&&&&TH0 = 0x9E;&&&&&&&&//设置定时初值&&&&i++;&&&&if(i==20)&&&&{&&&&&&&&i=0;&&&&&&&&Sysec++;&&&&}}
赞助商链接
#ifndef __Nokia5110Lcd_H__&&&&&&&&#define __Nokia5110Lcd_H__&&&&#define uchar unsigned char /*显存&&示意图0----------------------X| 1| 2| 3| 4| 5Y垂直方向共有6行, 数据手册上叫做 bank 每行8个点,只能不能按照0-43的方式寻址*/ extern void delay(int t);extern void Lcd5110Init(void);//初始化extern void Lcd5110Clear(void);//清屏 extern void Lcd5110Write6x8AtAddr(uchar hang, addr, dat);//在1-6行的第几个像素开始写一个字符(从左上角的第一个像素算) extern void Lcd5110String6x8(uchar hang , addr, uchar *p);extern void Lcd5110String8x16(uchar hang , addr, uchar *p);extern void Lcd5110ShowHZ12X12(uchar hang,addr, dat) ; extern void Lcd5110ShowHZ16X16(uchar hang,addr, dat) ;extern void Lcd5110show8x16AscAtAddr(uchar x,y,&&dat);//显示一个6*8的字符,x是0-83&&y是6行中的某一行 extern void Lcd5110show6x8AscWithNoAddr(uchar&&dat); //显示一个ascii码extern void Lcd5110SetXY(uchar x,y); extern void Lcd5110show8x12AscAtAddr(uchar hang,addr ) ;extern void Lcd5110String8x12(uchar hang,addr,uchar *p);
/* lcd.c把控制器的 8位一个地址共6地址的方式,使用软件的方式重新划分为12位一个地址共4地址的方式进行12x12汉字显示目前只能能第0行往第3行显示任意顺序的显示部分还没做*/#include &reg51.h&#include&Nokia5110Lcd.h&#include&intrins.h&#define&& nop() _nop_() sbit&&&&res = P3^2;&&//复位,0复位sbit&&&&sce = P3^3;&&//片选sbit&&&&dc&&= P3^4;&&//1写数据,0写指令sbit&&&&sdin = P3^5;&&//数据sbit&&&&sclk = P3^7;&&//时钟 uchar code Ascii6x8[]={ //6*8点阵的 完整的Ascii码0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// 20 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00,// 21 ! 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// 22 & 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// 23 # 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// 24 $ 0x00, 0x23, 0x13, 0x08, 0x64, 0x62,// 25 % 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// 26 & 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// 27 ' 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// 28 ( 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// 29 ) 0x00, 0x14, 0x08, 0x3e, 0x08, 0x14,// 2a * 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08,// 2b + 0x00, 0x00, 0x50, 0x30, 0x00, 0x00,// 2c , 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// 2d - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// 2e . 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// 2f / 0x00, 0x3e, 0x51, 0x49, 0x45, 0x3e,// 30 0 0x00, 0x00, 0x42, 0x7f, 0x40, 0x00,// 31 1 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 32 2 0x00, 0x21, 0x41, 0x45, 0x4b, 0x31,// 33 3 0x00, 0x18, 0x14, 0x12, 0x7f, 0x10,// 34 4 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 35 5 0x00, 0x3c, 0x4a, 0x49, 0x49, 0x30,// 36 6 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 37 7 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 38 8 0x00, 0x06, 0x49, 0x49, 0x29, 0x1e,// 39 9 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// 3a : 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// 3 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// 3c & 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// 3d = 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// 3e & 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// 3f ? 0x00, 0x32, 0x49, 0x79, 0x41, 0x3e,// 40 @ 0x00, 0x7e, 0x11, 0x11, 0x11, 0x7e,// 41 A 0x00, 0x7f, 0x49, 0x49, 0x49, 0x36,// 42 B 0x00, 0x3e, 0x41, 0x41, 0x41, 0x22,// 43 C 0x00, 0x7f, 0x41, 0x41, 0x22, 0x1c,// 44 D 0x00, 0x7f, 0x49, 0x49, 0x49, 0x41,// 45 E 0x00, 0x7f, 0x09, 0x09, 0x09, 0x01,// 46 F 0x00, 0x3e, 0x41, 0x49, 0x49, 0x7a,// 47 G 0x00, 0x7f, 0x08, 0x08, 0x08, 0x7f,// 48 H 0x00, 0x00, 0x41, 0x7f, 0x41, 0x00,// 49 I 0x00, 0x20, 0x40, 0x41, 0x3f, 0x01,// 4a J 0x00, 0x7f, 0x08, 0x14, 0x22, 0x41,// 4b K 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40,// 4c L 0x00, 0x7f, 0x02, 0x0c, 0x02, 0x7f,// 4d M 0x00, 0x7f, 0x04, 0x08, 0x10, 0x7f,// 4e N 0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e,// 4f O 0x00, 0x7f, 0x09, 0x09, 0x09, 0x06,// 50 P 0x00, 0x3e, 0x41, 0x51, 0x21, 0x5e,// 51 Q 0x00, 0x7f, 0x09, 0x19, 0x29, 0x46,// 52 R 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// 53 S 0x00, 0x01, 0x01, 0x7f, 0x01, 0x01,// 54 T 0x00, 0x3f, 0x40, 0x40, 0x40, 0x3f,// 55 U 0x00, 0x1f, 0x20, 0x40, 0x20, 0x1f,// 56 V 0x00, 0x3f, 0x40, 0x38, 0x40, 0x3f,// 57 W 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// 58 X 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// 59 Y 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// 5a Z 0x00, 0x00, 0x7f, 0x41, 0x41, 0x00,// 5b [ 0x00, 0x02, 0x04, 0x08, 0x10, 0x20,// 5c \ // 0x00, 0x00, 0x41, 0x41, 0x7f, 0x00,// 5d ] 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// 5e ^ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// 5f _ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// 60 ` 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// 61 a 0x00, 0x7f, 0x48, 0x44, 0x44, 0x38,// 62 b 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// 63 c 0x00, 0x38, 0x44, 0x44, 0x48, 0x7f,// 64 d 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// 65 e 0x00, 0x08, 0x7e, 0x09, 0x01, 0x02,// 66 f 0x00, 0x0c, 0x52, 0x52, 0x52, 0x3e,// 67 g 0x00, 0x7f, 0x08, 0x04, 0x04, 0x78,// 68 h 0x00, 0x00, 0x44, 0x7d, 0x40, 0x00,// 69 i 0x00, 0x20, 0x40, 0x44, 0x3d, 0x00,// 6a j 0x00, 0x7f, 0x10, 0x28, 0x44, 0x00,// 6b k 0x00, 0x00, 0x41, 0x7f, 0x40, 0x00,// 6c l 0x00, 0x7c, 0x04, 0x18, 0x04, 0x78,// 6d m 0x00, 0x7c, 0x08, 0x04, 0x04, 0x78,// 6e n 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// 6f o 0x00, 0x7c, 0x14, 0x14, 0x14, 0x08,// 70 p 0x00, 0x08, 0x14, 0x14, 0x18, 0x7c,// 71 q 0x00, 0x7c, 0x08, 0x04, 0x04, 0x08,// 72 r 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// 73 s 0x00, 0x04, 0x3f, 0x44, 0x40, 0x20,// 74 t 0x00, 0x3c, 0x40, 0x40, 0x20, 0x7c,// 75 u 0x00, 0x1c, 0x20, 0x40, 0x20, 0x1c,// 76 v 0x00, 0x3c, 0x40, 0x30, 0x40, 0x3c,// 77 w 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// 78 x 0x00, 0x0c, 0x50, 0x50, 0x50, 0x3c,// 79 y 0x00, 0x44, 0x64, 0x54, 0x4c, 0x44,// 7a z 0x00, 0x00, 0x08, 0x36, 0x41, 0x00,// 7b { 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00,// 7c | 0x00, 0x00, 0x41, 0x36, 0x08, 0x00,// 7d } 0x00, 0x10, 0x08, 0x08, 0x10, 0x08,// 7e ~ 0x00, 0x78, 0x46, 0x41, 0x46, 0x78,// 7f (delete)}; uchar code Ascii8x16[]={&&&&0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,&& };uchar code Ascii8x12[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// //00x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,//!//10x00,0x08,0x04,0x02,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//&//20x90,0xF0,0x9C,0x90,0xF0,0x9C,0x90,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x00,//#//30x00,0x18,0x24,0xFE,0x44,0x8C,0x00,0x00,0x00,0x03,0x02,0x07,0x02,0x01,0x00,0x00,//$//40x3C,0x24,0xBC,0x60,0xD0,0x4C,0xC0,0x00,0x00,0x02,0x01,0x00,0x03,0x02,0x03,0x00,//%//50xC0,0x38,0x64,0xA4,0x38,0xE0,0x20,0x00,0x01,0x02,0x02,0x02,0x01,0x02,0x02,0x02,//&//60x00,0x0A,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'//70x00,0x00,0x00,0xF0,0x0C,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x00,//(//80x00,0x02,0x04,0x08,0xF0,0x00,0x00,0x00,0x00,0x04,0x02,0x01,0x00,0x00,0x00,0x00,//)//90x90,0x60,0x60,0xF8,0x60,0x60,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,//*//100x20,0x20,0x20,0xFC,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,//+//110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x06,0x00,0x00,0x00,0x00,0x00,//,//120x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//-//130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,//.//140x00,0x00,0x00,0x80,0x60,0x18,0x0C,0x02,0x00,0x04,0x03,0x00,0x00,0x00,0x00,0x00,/////150x00,0xF0,0x0C,0x04,0x04,0x0C,0xF0,0x00,0x00,0x00,0x03,0x02,0x02,0x03,0x00,0x00,//0//160x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,//1//170x00,0x18,0x04,0x84,0x44,0x24,0x18,0x00,0x00,0x03,0x03,0x02,0x02,0x02,0x03,0x00,//2//180x00,0x08,0x04,0x24,0x24,0x24,0xD8,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//3//190x00,0x60,0x90,0x88,0x84,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x00,0x00,//4//200x00,0x3C,0x24,0x24,0x24,0x24,0xC4,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//5//210x00,0xF0,0x48,0x24,0x24,0x2C,0xC0,0x00,0x00,0x01,0x03,0x02,0x02,0x02,0x01,0x00,//6//220x00,0x0C,0x04,0xC4,0x34,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,//7//230x00,0x98,0x64,0x24,0x44,0x64,0x98,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//8//240x00,0x38,0x48,0x44,0x44,0x28,0xF0,0x00,0x00,0x00,0x03,0x02,0x02,0x03,0x00,0x00,//9//250x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,//://260x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,//;//270x00,0x20,0x50,0x88,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x00,//&//280x90,0x90,0x90,0x90,0x90,0x90,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//=//290x00,0x02,0x04,0x08,0x88,0x50,0x20,0x00,0x00,0x02,0x01,0x01,0x00,0x00,0x00,0x00,//&//300x00,0x18,0x14,0x04,0xC4,0x44,0x38,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,//?//310xF0,0x08,0xE4,0x94,0xF4,0x8C,0x78,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x00,//@//320x00,0x80,0xF0,0x8C,0x98,0xE0,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x02,0x03,0x02,//A//330x04,0xFC,0x24,0x24,0x24,0x58,0xC0,0x00,0x02,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//B//340xF0,0x08,0x04,0x04,0x04,0x04,0x0C,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//C//350x04,0xFC,0x04,0x04,0x04,0x08,0xF0,0x00,0x02,0x03,0x02,0x02,0x02,0x01,0x00,0x00,//D//360x04,0xFC,0x24,0x24,0x74,0x04,0x08,0x00,0x02,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//E//370x04,0xFC,0x24,0x24,0x74,0x04,0x08,0x00,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,//F//380xF0,0x08,0x04,0x04,0x44,0xCC,0x40,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,//G//390x04,0xFC,0x24,0x20,0x20,0x24,0xFC,0x04,0x02,0x03,0x02,0x00,0x00,0x02,0x03,0x02,//H//400x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x00,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,//I//410x00,0x00,0x04,0x04,0xFC,0x04,0x04,0x00,0x06,0x04,0x04,0x04,0x03,0x00,0x00,0x00,//J//420x04,0xFC,0x24,0x60,0x94,0x0C,0x04,0x00,0x02,0x03,0x02,0x00,0x02,0x03,0x02,0x00,//K//430x04,0xFC,0x04,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x02,0x02,0x02,0x03,0x00,//L//440x04,0xFC,0x3C,0xC0,0x3C,0xFC,0x04,0x00,0x02,0x03,0x00,0x03,0x00,0x03,0x02,0x00,//M//450x04,0xFC,0x08,0x30,0x40,0x84,0xFC,0x04,0x02,0x03,0x02,0x00,0x00,0x01,0x03,0x00,//N//460xF0,0x08,0x04,0x04,0x04,0x0C,0xF0,0x00,0x00,0x01,0x02,0x02,0x02,0x01,0x00,0x00,//O//470x04,0xFC,0x24,0x24,0x24,0x24,0x18,0x00,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,//P//480xF0,0x08,0x84,0x84,0x04,0x08,0xF0,0x00,0x00,0x01,0x02,0x02,0x03,0x05,0x04,0x00,//Q//490x04,0xFC,0x24,0x24,0x64,0xA4,0x18,0x00,0x02,0x03,0x02,0x00,0x00,0x01,0x03,0x02,//R//500x00,0x18,0x24,0x24,0x24,0x44,0x8C,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//S//510x0C,0x04,0x04,0xFC,0x04,0x04,0x0C,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00,//T//520x04,0xFC,0x04,0x00,0x00,0x04,0xFC,0x04,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//U//530x04,0x1C,0xE4,0x00,0xC0,0x74,0x0C,0x04,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x00,//V//540x7C,0x84,0x80,0x7C,0xC0,0x84,0x7C,0x00,0x00,0x03,0x01,0x00,0x00,0x03,0x00,0x00,//W//550x04,0x0C,0x9C,0x60,0x60,0x9C,0x0C,0x04,0x02,0x03,0x03,0x00,0x00,0x03,0x03,0x02,//X//560x04,0x0C,0x34,0xE0,0x34,0x0C,0x04,0x00,0x00,0x00,0x02,0x03,0x02,0x00,0x00,0x00,//Y//570x08,0x04,0x84,0x64,0x14,0x0C,0x04,0x00,0x02,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//Z//580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x07,0x04,0x04,0x04,0x00,//[//590x00,0x02,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x00,//\//600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x07,0x00,0x00,0x00,//]//610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^//620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,//_//630x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`//640x00,0x40,0xA0,0xA0,0xA0,0xA0,0xC0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x03,0x02,//a//650x04,0xFC,0x40,0x20,0x20,0x20,0xC0,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//b//660x00,0xC0,0x60,0x20,0x20,0x20,0x40,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//c//670x00,0xC0,0x40,0x20,0x20,0x24,0xFC,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x03,0x02,//d//680x00,0xC0,0xA0,0xA0,0xA0,0xA0,0xC0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x00,//e//690x00,0x20,0x20,0xF8,0x24,0x24,0x24,0x04,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,//f//700x00,0x40,0xA0,0xA0,0xA0,0x60,0x20,0x00,0x00,0x07,0x0A,0x0A,0x0A,0x0A,0x04,0x00,//g//710x04,0xFC,0x40,0x20,0x20,0x20,0xC0,0x00,0x02,0x03,0x02,0x00,0x00,0x02,0x03,0x02,//h//720x00,0x20,0x24,0xE4,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,//i//730x00,0x00,0x00,0x20,0x24,0xE4,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x07,0x00,0x00,//j//740x04,0xFC,0x80,0xC0,0x60,0x20,0x20,0x00,0x02,0x03,0x02,0x00,0x03,0x02,0x02,0x00,//k//750x00,0x04,0x04,0xFC,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,//l//760x20,0xE0,0x20,0x20,0xE0,0x20,0x20,0xE0,0x02,0x03,0x02,0x00,0x03,0x02,0x00,0x03,//m//770x20,0xE0,0x40,0x20,0x20,0x40,0xC0,0x00,0x02,0x03,0x02,0x00,0x00,0x02,0x03,0x02,//n//780x00,0xC0,0x20,0x20,0x20,0x20,0xC0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//o//790x20,0xE0,0x20,0x20,0x20,0x40,0xC0,0x00,0x08,0x0F,0x0A,0x02,0x02,0x02,0x01,0x00,//p//800x00,0xC0,0x20,0x20,0x20,0x20,0xE0,0x00,0x00,0x01,0x02,0x02,0x02,0x0A,0x0F,0x08,//q//810x20,0x20,0xE0,0x40,0x20,0x20,0x20,0x00,0x02,0x02,0x03,0x02,0x02,0x00,0x00,0x00,//r//820x00,0x40,0xA0,0xA0,0xA0,0xA0,0x20,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x01,0x00,//s//830x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x00,0x00,//t//840x20,0xE0,0x00,0x00,0x00,0x20,0xE0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x03,0x02,//u//850x20,0x60,0xA0,0x00,0x00,0xE0,0x60,0x20,0x00,0x00,0x01,0x02,0x01,0x00,0x00,0x00,//v//860xE0,0x20,0x00,0xE0,0x80,0x20,0xE0,0x20,0x00,0x03,0x01,0x00,0x01,0x02,0x01,0x00,//w//870x00,0x20,0x60,0xC0,0xE0,0x60,0x20,0x00,0x00,0x02,0x03,0x03,0x01,0x03,0x02,0x00,//x//880x20,0x60,0xA0,0x00,0x00,0xE0,0x60,0x20,0x08,0x08,0x08,0x07,0x03,0x00,0x00,0x00,//y//890x00,0x60,0x20,0xA0,0xA0,0x60,0x20,0x00,0x00,0x02,0x03,0x03,0x02,0x02,0x03,0x00,//z//900x00,0x00,0x00,0x00,0x20,0xDE,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x04,//{//910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,//|//920x00,0x02,0x02,0xDE,0x20,0x00,0x00,0x00,0x00,0x04,0x04,0x03,0x00,0x00,0x00,0x00,//}//930x00,0x02,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~//94};uchar code test[]={0x00,0xF0,0x48,0x24,0x24,0x2C,0xC0,0x00,0x00,0x01,0x03,0x02,0x02,0x02,0x01,0x00,//6//210x00,0x0C,0x04,0xC4,0x34,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,//7//220x00,0x98,0x64,0x24,0x44,0x64,0x98,0x00,0x00,0x01,0x02,0x02,0x02,0x02,0x01,0x00,//8//230x00,0x38,0x48,0x44,0x44,0x28,0xF0,0x00,0x00,0x00,0x03,0x02,0x02,0x03,0x00,0x00,//9//24};unsigned char code CH12x12[]={0x00,0xFE,0x02,0x82,0x7E,0x02,0x02,0x7E,0x82,0x82,0xFE,0x00,0x00,0x0F,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0F,0x00,//四//0,0x48,0x24,0xF2,0x09,0x10,0x12,0x12,0x12,0xF2,0x12,0x10,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x08,0x08,0x0F,0x00,0x00,0x00,//行//1,0x04,0x04,0x1C,0x64,0x85,0x06,0x84,0x64,0x1C,0x04,0x04,0x00,0x08,0x08,0x04,0x04,0x02,0x01,0x02,0x04,0x04,0x08,0x08,0x00,//文//2,0x0C,0x04,0x24,0x24,0x25,0x26,0xA4,0x64,0x24,0x04,0x0C,0x00,0x01,0x01,0x01,0x09,0x09,0x0F,0x01,0x01,0x01,0x01,0x01,0x00,//字//3,0x22,0x44,0xFE,0x02,0xFA,0x02,0xFE,0x00,0xFC,0x00,0xFF,0x00,0x04,0x02,0x09,0x04,0x03,0x04,0x09,0x00,0x01,0x08,0x0F,0x00,//测//4,0x11,0xF2,0x00,0x00,0x24,0xE4,0x24,0x04,0xFF,0x04,0x05,0x00,0x00,0x0F,0x04,0x00,0x04,0x07,0x02,0x00,0x03,0x04,0x0E,0x00,//试//5,0x00,0xFC,0x24,0x24,0xE4,0x04,0xFF,0x04,0x85,0x66,0x04,0x00,0x08,0x07,0x00,0x02,0x0B,0x04,0x02,0x01,0x02,0x04,0x0F,0x00,//成//6,0x04,0x04,0xFC,0x04,0x04,0x08,0xFF,0x08,0x08,0x08,0xF8,0x00,0x02,0x02,0x01,0x09,0x05,0x03,0x00,0x00,0x08,0x08,0x07,0x00,//功//7,};unsigned char code CH16x16[]={0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,//三//0,0x00,0x10,0x88,0xC4,0x33,0x00,0x40,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x40,0x00,0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,//行//1,0x08,0x08,0x08,0x38,0xC8,0x08,0x09,0x0E,0x08,0x08,0xC8,0x38,0x08,0x08,0x08,0x00,0x80,0x80,0x40,0x40,0x20,0x11,0x0A,0x04,0x0A,0x11,0x20,0x40,0x40,0x80,0x80,0x00,//文//2,0x10,0x0C,0x04,0x24,0x24,0x24,0x25,0x26,0xA4,0x64,0x24,0x04,0x04,0x14,0x0C,0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,//字//3,0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00,0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00,//测//4,0x40,0x40,0x42,0xCC,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x11,0x16,0x10,0x00,0x00,0x00,0x00,0x3F,0x10,0x28,0x60,0x3F,0x10,0x10,0x01,0x0E,0x30,0x40,0xF0,0x00,//试//5,0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0x08,0x08,0xFF,0x08,0x09,0x0A,0xC8,0x08,0x00,0x80,0x60,0x1F,0x00,0x10,0x20,0x1F,0x80,0x40,0x21,0x16,0x18,0x26,0x41,0xF8,0x00,//成//6,0x08,0x08,0x08,0xF8,0x08,0x08,0x08,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,0x10,0x30,0x10,0x1F,0x08,0x88,0x48,0x30,0x0E,0x01,0x40,0x80,0x40,0x3F,0x00,0x00,//功//7,};void delay(int t){&&&&&&&&while(t--)&&&&{&&&&&&&&for(i=0;i&125;i++)&&&&&&&&{} &&&&}} void Lcd5110WriteDta(uchar dat){&&&& &&&&sce=0;&&&&&&&&dc=1;&&&&&&&&for(i=0;i&8;i++)&&&&{ &&&&&&&&if(dat&0x80)&&&&&&&&&&&&sdin=1;&&&&&&&&else&&&&&&&&&&&&sdin=0;&&&&&&&&dat=dat&&1;&&&&&&&&&&&&&&&&sclk=0; &&&&&&&&nop();&&&&&&&&sclk=1;&&&&&&}&&&&&&&&dc=1;&&&&&&&&sce=1;&&&&&&&&sdin=1;}void Lcd5110WriteCMD(uchar dat){&&&&&&&& &&&&sce=0;&&&&&&&&dc=0;&&&&&&&&for(i=0;i&8;i++)&&&&{ &&&&&&&&if(dat&0x80)&&&&&&&&&&&&sdin=1;&&&&&&&&else&&&&&&&&&&&&sdin=0;&&&&&&&&dat=dat&&1;&&&&&&&&&&&&&&&&sclk=0;&&&& &&&&&&&&nop();&&&&&&&&sclk=1; &&&&&&&& &&&&}&&&&&&&&dc=1;&&&&&&&&sce=1;&&&&&&&&sdin=1;}/*---------------------------------------LCD_init: 3310LCD初始化编写日期: -----------------------------------------&&*/void Lcd5110Init(void){&&&&// res=0;&&&&// delay(10);&&&&// res=1; //以上三句 不用也行&&&&Lcd5110WriteCMD(0x21 );//初始化Lcd,功能设定使用扩充指令&&&&Lcd5110WriteCMD(0xc0 );//设定液晶偏置电压&&&&//Lcd5110WriteCMD(0xc0);//设定液晶偏置电压 //调试用 显示全黑&&&&Lcd5110WriteCMD(0x06 );//温度校正&&&&&&Lcd5110WriteCMD(0x13 );;//1:48&&&&Lcd5110WriteCMD(0x20 );//使用基本指令&&&&Lcd5110WriteCMD(0x0C );//设定显示模式,正常显示}/*-------------------------------------------LCD_set_XY: 设置LCD坐标函数输入参数:X:0-83&&Y:0-5编写日期: ---------------------------------------------*/ void Lcd5110SetXY(uchar X,Y){&&&&Lcd5110WriteCMD(0x40 | Y&&);// 垂直方向 0-5&&&&Lcd5110WriteCMD(0x80 | X&&);// 水平方向0-83} /*------------------------------------------LCD_clear: LCD清屏函数编写日期: --------------------------------------------*/void Lcd5110Clear(void){&&&&&&&&&&&&Lcd5110SetXY(0,0);&&&&for(t=0;t&6;t++)&&&&{ &&&&&&&&for(k=0;k&84;k++)&&&&&&&&&&&&Lcd5110WriteDta(0x00);&&&&}}/*---------------------------------------------LCD_write_shu: 显示8(宽)*16(高)点阵列数字字母符号等半角类 addr:写入地址hang: 第几行 对于6*8点阵 实际5*7留有空边,字高8个点, 屏幕一共6行&&竖着48个点dd:字符-----------------------------------------------*/void Lcd5110Write6x8AtAddr(uchar hang, addr, dat) {&&&&&&&&&&&&&&&&&&dat=dat-32; //ascii转换为字库偏移地址&&&&Lcd5110SetXY(addr, hang-1);// 某行的某个地址 行1-6地址0-83&&&&for(i=0; i&6;i++) &&&&{&&&&&&&&Lcd5110WriteDta(Ascii6x8[dat*6+i]); &&&&}&&&&}void Lcd5110show6x8AscWithNoAddr(uchar&&dat)//显示一个6*8点阵{&&&&&&&&dat-=32;&&&&for(i=0; i&6;i++) &&&&&&&&Lcd5110WriteDta(Ascii6x8[dat*6+i]); }void Lcd5110String6x8(uchar hang , addr, uchar *p){&&&&&&&&Lcd5110SetXY(addr, hang);// 列,页 &&&&&&&&while(*p!='\0')&&&&{&&&&&&&&dat =*p;&&&&&&&&&&&&Lcd5110show6x8AscWithNoAddr(dat);&&&&&&&&*p++;&&&&&&}}void Lcd5110show8x16AscAtAddr(uchar hang,addr,&&dat){&&&&//&&&&// dat-=32;&&&&// Lcd5110SetXY(addr,hang);&&&&// for(i=0; i&8;i++) &&&&&&&& // Lcd5110WriteDta(Ascii8x16[dat*16+i]); &&&&// Lcd5110SetXY(addr,hang+1);&&&& // for(i=8; i&16;i++) &&&&&&&&&&// Lcd5110WriteDta(Ascii8x16[dat*16+i]);}void Lcd5110show8x12AscAtAddr(uchar hang,addr ){&&&& &&&&Lcd5110SetXY(addr,hang);&&&&for(i=0; i&8;i++) &&&&&&&& Lcd5110WriteDta(test); &&&&Lcd5110SetXY(addr,hang+1);&&&& for(i=8; i&16;i++) &&&&&&&&&&Lcd5110WriteDta(test);}/*行 范围 1-6一共6行,但在行=6的时候会显示不全*/void Lcd5110String8x16(uchar hang , addr, uchar *p){&&&&//不再用8*16的ascii了,直接屏蔽掉,想用的时候在解除屏蔽即可&&&&//&&&&// while(*p!='\0')&&&&// {&&&&&&&&// dat =*p;&&&&&&&&&&&&// Lcd5110show8x16AscAtAddr(hang-1 ,addr, dat);&&&&&&&&// *p++;&&&&&&&&&&// addr+=8;&&&&// }}/*---------------------------------------------显示一个16*16的汉字hang: 1-6行addr:这一行的第几个像素dat,要显示 字库中第几个数-----------------------------------------------*/void Lcd5110ShowHZ16X16(uchar hang,addr, dat) {//&&&&现在不用16的汉字,都用12的,直接屏蔽掉,&&&&&&&&&&&&&&&&&&Lcd5110SetXY(addr, hang);// 列,页 &&&&for(i=0; i&16;i++)&&&&&&{&&&&&&&&Lcd5110WriteDta(CH16x16[dat*32+i]); &&&&}&&&&&&&&Lcd5110SetXY(addr, hang+1);// 列,页 &&&&for(i=16; i&32;i++) &&&&{&&&&&&&&Lcd5110WriteDta(CH16x16[dat*32+i]);&&&&}&&&&} void Lcd5110DisplayAscii6x12AtAddr(uchar hang,addr, dat) {&&&&//&&&&&&// uchar Y0Ram[8]; //第0行汉字的临时缓存&&&&// uchar Y1Ram[8];&&&&// uchar Y2Ram[8];&&&&// uchar Y3Ram[8];&&&&// dat-=32;&&&&// if(hang==0)//按照4行显示,首行为0,地址就是0-3行,不是控制器的地址&&&&// {&&&&&&&&// Lcd5110SetXY(addr, hang);// 列,页 &&&&&&&&// for(i=0; i&8;i++)&&//上半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Lcd5110WriteDta(Ascii8x12[dat*16+i]); &&&&&&&&// }&&&&&&&&// Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&// for(i=8; i&16;i++)&&//下半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Y0Ram[i-8]=Ascii8x12[dat*16+i]; //第0行的下半部分12个字节存起来&&&&&&&&&&&&// Lcd5110WriteDta(Y0Ram[i-8] | Y1Ram[i-8]&&4 );&&&&&&&&// }&&&&&&&&&&&&&&&&// }&&&&// if(hang==1)&&&&// {&&&&&&&&// Lcd5110SetXY(addr, hang);// 列,页 &&&&&&&&// for(i=0; i&8;i++)&&//上半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Y1Ram=Ascii8x12[dat*16+i];//第1行上半部分存起来&&&&&&&&&&&&// Lcd5110WriteDta(Y1Ram&&4 | Y0Ram); &&&&&&&&// }&&&&&&&&// Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&// for(i=8; i&16;i++)&&//下半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Lcd5110WriteDta(Ascii8x12[dat*16+i]&&4 | Ascii8x12[dat*16+i-8]&&4&&);&&&&&&&&// }&&&&&&&&&&&&// }&&&&// if(hang==2)//按照4行显示,首行为0,地址就是0-3行,不是控制器的地址&&&&// {&&&&&&&&// Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&// for(i=0; i&8;i++)&&//上半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Lcd5110WriteDta(Ascii8x12[dat*16+i]); &&&&&&&&// }&&&&&&&&// Lcd5110SetXY(addr, hang+2);// 列,页 &&&&&&&&// for(i=8; i&16;i++)&&//下半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Y2Ram[i-8]=Ascii8x12[dat*16+i]; //第0行的下半部分12个字节存起来&&&&&&&&&&&&// Lcd5110WriteDta(Y2Ram[i-8] | Y3Ram[i-8]&&4 );&&&&&&&&// }&&&&&&&&&&&&&&&&// }&&&&// if(hang==3)//按照4行显示的话,地址就是0-3行&&&&// {&&&&&&&&// Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&// for(i=0; i&8;i++)&&//上半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Y3Ram=Ascii8x12[dat*16+i];//第1行上半部分存起来&&&&&&&&&&&&// Lcd5110WriteDta(Y3Ram&&4 | Y2Ram); &&&&&&&&// }&&&&&&&&// Lcd5110SetXY(addr, hang+2);// 列,页 &&&&&&&&// for(i=8; i&16;i++)&&//下半部分 12个像素&&&&&&&&// {&&&&&&&&&&&&// Lcd5110WriteDta(Ascii8x12[dat*16+i]&&4 | Ascii8x12[dat*16+i-8]&&4&&);&&&&&&&&// }&&&&&&&&&&&&// }&&&&}void Lcd5110String8x12(uchar hang,addr,uchar *p){&&&&&&&&while(*p!='\0')&&&&{&&&&&&&&dat =*p;&&&&&&&&&&&&Lcd5110DisplayAscii6x12AtAddr(hang ,addr, dat);&&&&&&&&*p++;&&&&&&&&&&addr+=8;&&&&&&&&delay(6000);&&&&}}/*---------------------------------------------显示一个12*12的汉字hang: 0-3行addr:这一行的第几个像素dat,要显示 字库中第几个数-----------------------------------------------*/void Lcd5110ShowHZ12X12(uchar hang,addr, dat) {&&&&&&&&&&uchar Y0Ram[12]; //第0行汉字的临时缓存&&&&uchar Y1Ram[12];&&&&uchar Y2Ram[12];&&&&uchar Y3Ram[12];&&&&if(hang==0)//按照4行显示,首行为0,地址就是0-3行,不是控制器的地址&&&&{&&&&&&&&Lcd5110SetXY(addr, hang);// 列,页 &&&&&&&&for(i=0; i&12;i++)&&//上半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Lcd5110WriteDta(CH12x12[dat*24+i]); &&&&&&&&}&&&&&&&&Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&for(i=12; i&24;i++)&&//下半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Y0Ram[i-12]=CH12x12[dat*24+i]; //第0行的下半部分12个字节存起来&&&&&&&&&&&&Lcd5110WriteDta(Y0Ram[i-12] | Y1Ram[i-12]&&4 );&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&if(hang==1)&&&&{&&&&&&&&Lcd5110SetXY(addr, hang);// 列,页 &&&&&&&&for(i=0; i&12;i++)&&//上半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Y1Ram=CH12x12[dat*24+i];//第1行上半部分存起来&&&&&&&&&&&&Lcd5110WriteDta(Y1Ram&&4 | Y0Ram); &&&&&&&&}&&&&&&&&Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&for(i=12; i&24;i++)&&//下半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Lcd5110WriteDta(CH12x12[dat*24+i]&&4 | CH12x12[dat*24+i-12]&&4&&);&&&&&&&&}&&&&&&&&&&&&}&&&&if(hang==2)//按照4行显示,首行为0,地址就是0-3行,不是控制器的地址&&&&{&&&&&&&&Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&for(i=0; i&12;i++)&&//上半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Lcd5110WriteDta(CH12x12[dat*24+i]); &&&&&&&&}&&&&&&&&Lcd5110SetXY(addr, hang+2);// 列,页 &&&&&&&&for(i=12; i&24;i++)&&//下半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Y2Ram[i-12]=CH12x12[dat*24+i]; //第0行的下半部分12个字节存起来&&&&&&&&&&&&Lcd5110WriteDta(Y2Ram[i-12] | Y3Ram[i-12]&&4 );&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&if(hang==3)//按照4行显示的话,地址就是0-3行&&&&{&&&&&&&&Lcd5110SetXY(addr, hang+1);// 列,页 &&&&&&&&for(i=0; i&12;i++)&&//上半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Y3Ram=CH12x12[dat*24+i];//第1行上半部分存起来&&&&&&&&&&&&Lcd5110WriteDta(Y3Ram&&4 | Y2Ram); &&&&&&&&}&&&&&&&&Lcd5110SetXY(addr, hang+2);// 列,页 &&&&&&&&for(i=12; i&24;i++)&&//下半部分 12个像素&&&&&&&&{&&&&&&&&&&&&Lcd5110WriteDta(CH12x12[dat*24+i]&&4 | CH12x12[dat*24+i-12]&&4);&&&&&&&&}&&&&&&&&&&&&}&&&&}
是不是在屏上做了借电电路,像18B20那种,数据线也提供电能
我不知道啊,自己做了转接板,不接电源就能显示,淘宝买来的就不行,奇了怪了
:我不知道啊,自己做了转接板,不接电源就能显示,淘宝买来的就不行,奇了怪了 ( 15:58) 这样的屏我也有2个
:我不知道啊,自己做了转接板,不接电源就能显示,淘宝买来的就不行,奇了怪了 ( 15:58) 求转接板资料,买了几个5110屏没有转接板。
熱心助人,多谢兄弟了。
客气,Pm地址吧
楼主把整个工程文件发上来吧
:楼主把整个工程文件发上来吧 ( 19:23) 我发的就是全部文件,你建个工程加进去就可以了, 我用tks做的,用keil也基本一样
没有这个屏,只有,12232这三个屏,都驱动成功了。但了一个电压表和红外解码器。
:我发的就是全部文件,你建个工程加进去就可以了, 我用tks做的,用keil也基本一样&( 22:45)&不太懂C,正在努力学习中,用keil编译不通过
不通过那就有错误提示吧?应该是你的头文件的问题,
真会玩,哈哈,这个屏幕能当显示器了,呵呵。
不太懂C,正在努力学习中,用keil编译不通过
查看完整版本: [--
Powered by
Time 0.080430 second(s),query:5 Gzip enabled

我要回帖

更多关于 170 5110 8299 的文章

 

随机推荐