武汉绘芯科技有限公司欢迎您!
10余年经验沉淀展览展示运动控制的专家
全国咨询热线:027-87052087
联系我们
武汉绘芯科技有限公司
电话:027-87052087
手机:13329706647
邮箱:956693667@qq.com
地址:武汉市江夏区藏龙岛谭湖一路8号
联系人:黄先生
您的位置: 直播软件|直播系统 > 知识库 >
知识库

基于单片机控制的开关电源设计

日期:2016-07-28 18:05:10 来源:未知 点击

基于单片机控制的开关电源设计


开关电源体积小、效率高,被誉为高效节能电源,现己成为稳压电源的主导产品。随着开关电源在计算机、通信、航空航天、仪器仪表及家用电器等方面的广泛应用, 人们对其需求量日益增长, 并且对电源的效率、体积、重量及可靠性等方面提出了更高的要求。开关电源以其效率高、体积小、重量轻等优势在很多方面逐步取代了效率低、又笨又重的线性电源。

本文介绍了一款基于PWM技术的DC-DC开关稳压电源,proteus仿真,输出纹波小,电压稳定可靠.

 


 

一、引 言

本设计中采用的是脉宽调制型, Pwm技术是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。在脉宽调制中因为频率不变,所以无论是对电路中的磁性元件及晶体管的测试和设计都很方便,而且对射频干扰的抑制也变得比较容易。利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。高度集成、功能强大的开关型稳压电源代表着开关电源发展的主流方向,其技术也日驱成熟。

 

二、总体设计

本课题的主要思想是利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。通过键盘预置电压,控制单片机进行脉宽调制,使输出电压在大范围内可调。通过单片机软件控制,实现电源的智能保护,可以设定某个规定的电压或者电流,当超过该电压或者电流时,单片机关断开关管,电源不再工作,以便保护电源。

三、硬件设计

(一)硬件总体设计

本设计中拟采用脉宽调制型,先通过电压及功率变换设计出一个DC12V左右的电压源,再对12V的电压源,通过脉宽调制,实现步进0.1V、输出电流500 mALCD显示的直流电压。利用单片机可以实现对开关电源的智能控制,实现智能化开关电源的制作。硬件总体框图如图3-1所示

 

 

 

 

 

 

 

 

 

 

 

3-1硬件总体框图

 

(二)AT89C52单片机概述

1.AT89C52单片机组成

 

 

 

3-2  AT89C52单片机组成结构图

 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8CPU和闪烁存储器组合在单个芯片中,ATMELAT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

 

2AT89C52单片机引脚结构

(1)89C51外部引脚图:

 
;        

 

 

 

 

 

 

 

 

 

 

 

 

 

 

引脚说明:

1)电源引脚

  Vcc40脚):典型值+5V

  Vss20脚):接低电平。

 2)外部晶振

  X1X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地。

  3)输入输出口引脚:

   P0口:I/O双向口。作输入口时,应先软件置“ 1

   P1口:I/O双向口。作输入口时,应先软件置“ 1

   P2口:I/O双向口。作输入口时,应先软件置“ 1

   P3口:I/O双向口。作输入口时,应先软件置“ 1

   

4)控制引脚

 RST9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作、计时完成后,RST引脚输出96个晶振周期的高电平。DISROT默认状态下,复位高电平有效。

        ALE/PROG30引脚):一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

        PSEN29引脚):外部程序存储信号时外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次。

        EA/VPP31引脚):访问外部程序存储器控制信号,为使能从0000HFFFFH的外部程序存储器读取指令,必须接END

        XTAL119引脚):振荡器反相放大器和内部时钟发生电路的输入端。

        XTAL218引脚):振荡器反相放大器的输入端。

P1口作为LCD液晶屏的数据口,采用并口数据传输模式,P2口中的P2.0P2.1P2.2、作为控制信号输出口,分别接RSR/WE控制端,P2.3P2.4分别接湿温度传感器的SCKDATAP2.5.P2.6P2.7接按键电路,P1口的P1.0P1.1P1.2分别接ADC0831的控制端,P1.4接报警的蜂鸣器。

     3AT89C52单片机的最小系统

                                       

3-4 AT89C52单片机组成结构图

 

1)复位电路:

由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐10uR10K。原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。

 

2 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M

 
 

 

 

 

 

 

 

 

 

 

 


(三)开关电源系统硬件设计

1.        

开关电源电路设计

 

 

3-3开关电源电路

如图3-3可看出,DC50V输入,Q1,Q2,Q3,进行交流变换,输入给储能性元件L1,当输出电压有波动时,调整管Q4调整输入电压,反过来抑制输出电压的波动。

 

2.        电压反馈电路

   电压反馈部分,当电压达到12V时,电流流经稳压二极管D4、三极管Q2 BE极、电阻R8  使Q2导通,Q2导通将使三极管13003提前进入关断区,从而使输出电压稳定在12V左右。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.        限流电路

  R11上流经的电流到达一定值,在R11上将产生压降,当压降超过0.7V,三极管Q3饱和导通.Q3集电极电压为0,自激式振荡回路终止,输出电流变小,当R11上的电流小到足够的值,R11两端的电压低于0.7VQ3又截止,自激振荡回路又继续振荡。

 

 

 

 

 

 

 

 

 

 

 

 





三、软件设计

(一)总的软件设计思想

系统的软件设计采用C语言,对单片机进行编程实现各项功能。

程序是采用keil c51软件编写的,可以使液晶显示屏对特定数字、英文字母以及汉字组成的句子进行显示,并通过按键对显示内容实现控制、转换等功能。

主程序主要起到一个导向和决策功能,决定液晶显示屏该显示什么内容,该如何显示。液晶显示屏各种功能的实现主要通过调用具体的子程序。

(二)各部分的软件框图和程序

1.主程序设计

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文字描述下  例如(通电之后,系统开始工作,若是有键按下,就根据按键程序进行工作,并把结果显示到LCD液晶显示屏上,若是没有按键,定时时间一到,气体传感

 

 

 

 

 

 

 

 

2.数据显示子程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.键盘扫描子程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.键值处理子程序流程图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

四、程序清单

//*************************************************************************************************

//*                                                                                      *

//*           ******************************头文件及宏定义**************************                *

//*                                                                                      *

//*************************************************************************************************

#include<reg52.h>

#include"includes.h"

#define uchar unsigned char

#define uint unsigned int

#define SCANPORT P2    

#define TIME1H 80

#define TIME1L 80                     //定时器1溢出时间//

sbit wr=P3^1;

sbit rd=P3^0;

sbit P27=P2^7;

unsigned long int shuchu=500;       //默认的开机电压//

uint zhuhuandata;

unsigned  long int ch=0;

uchar i=0;                              //按键标记//

uchar uca_LineScan[3]={0xEF,0xDF,0xBF};

void chuli();                           //函数定义//

uchar getkey();                         //函数定义//

//*************************************************************************************************

//*                                                                                      *

//*             ********************************将键值累加并送显示******************************    *

//*                                                                                      *

//*************************************************************************************************

void qiuhe(uchar t)

  {

   if(i==1)

   {

   ch=t;

   vShowOneChar(6,89,uca[t]);

   }

   if(i==2)

   {

   ch=ch*10+t;

   vShowOneChar(6,103,uca[t]);

   }

   if(i==3)

   {

   ch=ch*10+t;

   vShowOneChar(6,111,uca[t]);

   }

   }

//*************************************************************************************************

//*                                                                                      *

//*             ********************************按键功能函数******************************      *

//*                                                                                      *

//*************************************************************************************************

void key_chuli(uchar x)

 {   

        uchar t;

       switch(x)

       {

       case 42: t=0;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'0'

       case 31: t=1;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                     //'1'

       case 32: t=2;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'2'

       case 33: t=3;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'3'

       case 21: t=4;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'4'

       case 22: t=5;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                     //'5'

       case 23: t=6;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'6'

       case 11: t=7;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'7'

       case 12: t=8;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                       //'8'

       case 13: t=9;

                i++;

                 qiuhe(t);

               if(i==3)

                {

                vShowOneChin(2,49,uca_que);

                vShowOneChin(2,64,uca_ding);

                vShowOneChin(4,59,uca_wenhao);

                   }

               break;                     //'9'

       case 41:  if(i==3)                   //'ok'

                {

                ch=ch*256/512;

                shuchu=ch;

                  ch=0;

                  TH0=65200;

                 TL0=65200;

                vShowOneChin(2,49,uca_0);

                vShowOneChin(2,64,uca_0);

                vShowOneChin(4,48,uca_SHU);

                 vShowOneChin(4,64,uca_CHU);

                vShowOneChar(6,88,uca_HEN);

                 vShowOneChar(6,104,uca_HEN);

                 vShowOneChar(6,112,uca_HEN);

                }

                i=0;

                break;  

       }           

}

 

void vTimer0(void) interrupt 1 using 2

{

    uchar a,d;

   unsigned  long int c=0;

   uchar data tab[3];

   a=(((zhuhuandata&0xf0)>>4)*100/16);

    d=((zhuhuandata&0x0f)*100/256);

    c=(a+d)*5.12;

    tab[0]=c%10;

    tab[1]=c/10%10;

    tab[2]=c/100%10;

   vShowOneChar(2,89,uca[tab[2]]);

   vShowOneChar(2,103,uca[tab[1]]);

   vShowOneChar(2,111,uca[tab[0]]);

    TH0=TIME1H;

   TL0=TIME1L;

  

}

 

void main(void)

{

    SCANPORT=0x8F;  

   ClearLCD(0x00);

   vShowOneChar(2,89,uca[5]);

   vShowOneChar(2,96,uca_XIAOSHU);

   vShowOneChar(2,103,uca[0]);

   vShowOneChar(2,111,uca[0]);

   vShowOneChar(2,120,uca_V);

    vShowOneChin(0,0,uca_DANG);

   vShowOneChin(0,16,uca_QIAN);

   vShowOneChin(0,32,uca_GONG);

   vShowOneChin(0,48,uca_ZUO);

   vShowOneChin(0,64,uca_DIAN);

   vShowOneChin(0,80,uca_YA);

   vShowOneChin(0,96,uca_MAOHAO);

   vShowOneChin(4,0,uca_QING);

   vShowOneChin(4,16,uca_SHE);

   vShowOneChin(4,32,uca_ZHI);

   vShowOneChin(4,48,uca_SHU);

   vShowOneChin(4,64,uca_CHU);

   vShowOneChin(4,80,uca_DIAN);

   vShowOneChin(4,96,uca_YA);

   vShowOneChin(4,112,uca_MAOHAO);

   vShowOneChar(6,96,uca_XIAOSHU);

   vShowOneChar(6,88,uca_HEN);

   vShowOneChar(6,104,uca_HEN);

   vShowOneChar(6,113,uca_HEN);

   vShowOneChar(6,119,uca_V);

  

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

   TMOD=0X01;

    TH0=TIME1H;

   TL0=TIME1L;

   ET0=1;        //T/C0开中断

   TR0=1;         //开定时器0中断

   IT0=1;        //外中断方式:下降沿。

   EX0=1;        //开启外部中断。

    EA=1;

 

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于开启键盘扫描及键码处理标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

   

while(1)

 {

     wr=0;

     wr=1;

     chuli();

       if(zhuhuandata<=shuchu)P27=0;

   if(zhuhuandata>shuchu)P27=1;

    if(zhuhuandata<=shuchu)P27=0;

  }

 }

 

void chuli()

{

 rd=0;

 zhuhuandata=P0;

}

 

//*************************************************************************************************

//*                                                                                      *

//*             ********************************函数实现******************************           *

//*                                                                                      *

//*************************************************************************************************

unsigned char getkey()

{  

    uchar ucTemp=0;             //扫描状态暂存。

   uchar ucRow=0,ucLine=0;      //行号,列号。

 

     for(ucLine=0;ucLine<3;ucLine++)      //列扫描

       {

          SCANPORT=uca_LineScan[ucLine];            //输出扫描电位。

          ucTemp=SCANPORT&0x8F;                     //输入扫描电位,并屏蔽高4位。

          if(ucTemp!=0x8F)    

            {                           //判断该列是否有按键按下。

              switch(ucTemp)

                 {

                 case 0x8E: ucRow=10;break;        //如果有,则判断行号。

                 case 0x8D: ucRow=20;break;

                 case 0x8B: ucRow=30;break;

                 case 0x87: ucRow=40;break;

                 default: P2=~P2;  break;

                  }

                  break;

             }

        } 

 

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复键扫描处理前初始状态>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

   SCANPORT=0x8F;                      //恢复P2

   return (ucRow+ucLine+1);//返回按键编码。格式为2位数,高位为行号,低位为列号。

  }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<恢复键扫描处理前初始状态>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

void vINT0(void) interrupt 0

{

  EX0=0;

  key_chuli(getkey());

  while((SCANPORT&0x8F)!=0x8f)   //等待按键松开//

  {

  };

  EX0=1;

 }

 

//*************************************************************************************************

//*                                                                                      *

//*           ******************************LCD12864驱动程序**************************             *

//*                                                                                      *

//*************************************************************************************************

 

//*************************************************************************************************

//*                                                                                      *

//*           ******************************头文件及宏定义**************************                *

//*                                                                                      *

//*************************************************************************************************

#include <reg52.h>

#define   LCDPORT P1

sbit   E= P3^7;

sbit   RW= P3^6;

sbit   DI= P3^5;

sbit   CS1= P3^3;

sbit   CS2= P3^4;

sbit BUSYSTATUS= P1^7;               //忙状态位。

//#define DISONSTATUS P0_5           //显示开关状态位。

//#define RSTSTATUS P0_4             //复位状态位。

#define LCDSTARTROW 0xC0             //设置起始行指令。

#define LCDPAGE 0xB8             //设置页指令。

#define LCDLINE 0x40             //设置列指令。

 

 

 

 

//*************************************************************************************************

//*                                                                                      *

//*           ********************************读忙标志位*********************************         *

//*                                                                                      *

//*************************************************************************************************

bit bCheckBusy()

{

   LCDPORT=0x00;

   RW=1;

   DI=0;

   E=1;

   E=0;

   return BUSYSTATUS;

}

 

//*************************************************************************************************

//*                                                                                      *

//*           ********************************写数据*********************************           *

//*                                                                                      *

//*************************************************************************************************

void vWriteData(unsigned char ucData)

{

   while(bCheckBusy());

   LCDPORT=0x00;

 

   RW=0;

   DI=1;

   LCDPORT=ucData;

   E=1;

   E=0;

}

 

//*************************************************************************************************

//*                                                                                      *

//*           ********************************写指令*********************************           *

//*                                                                                      *

//*************************************************************************************************

void vWriteCMD(unsigned char ucCMD)

{

   while(bCheckBusy());

   LCDPORT=0x00;

    RW=0;

   DI=0;

   LCDPORT=ucCMD;

   E=1;

   E=0;

}

 

//*************************************************************************************************

//*                                                                                      *

//*           ********************************LCD初始化函数*******************************      *

//*                                                                                      *

//*************************************************************************************************

/*void vLCDInitialize()

{

   CS1=1;

   CS2=1;

   vWriteCMD(0x38);     //8位形式,两行字符。

   vWriteCMD(0x0F);     //开显示。

   vWriteCMD(0x01);     //清屏。

   vWriteCMD(0x06);     //画面不动,光标右移。

   vWriteCMD(LCDSTARTROW);  //设置起始行。

}

*/

//*************************************************************************************************

//*                                                                                      *

//*           ******************************显示自定义行*********************************         *

//*                                                                                      *

//*************************************************************************************************

//8×128的格子里显示自定义长度的一行

void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow)

{

   unsigned char ucCount;                //取值范围:ucPage:07ucLine:0127

   if(ucLine<64)                      //ucWidth:0127ucLine+ucWidth<1128

       {

       CS1=1;

       CS2=0;

       vWriteCMD(LCDPAGE+ucPage);

       vWriteCMD(LCDLINE+ucLine);

       if((ucLine+ucWidth)<64)

          {

          for(ucCount=0;ucCount<ucWidth;ucCount++)

              vWriteData(*(ucaRow+ucCount));

          }

       else

          {

          for(ucCount=0;ucCount<64-ucLine;ucCount++)

              vWriteData(*(ucaRow+ucCount));

 

          CS1=0;

          CS2=1;

          vWriteCMD(LCDPAGE+ucPage);

          vWriteCMD(LCDLINE);

          for(ucCount=64-ucLine;ucCount<ucWidth;ucCount++)

              vWriteData(*(ucaRow+ucCount));

          }

       }

   else

       {

       CS1=0;

       CS2=1;

       vWriteCMD(LCDPAGE+ucPage);

       vWriteCMD(LCDLINE+ucLine-64);

       for(ucCount=0;ucCount<ucWidth;ucCount++)

          vWriteData(*(ucaRow+ucCount));

       }

}

//*************************************************************************************************

//*                                                                                      *

//*           *****************************汉字显示函数***********************************         *

//*                                                                                      *

//*************************************************************************************************

//此函数将16×16汉字显示在8×128的格子里。

void vShowOneChin(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaChinMap)

{

   vShowCustomRow(ucPage,ucLine,16,ucaChinMap);

   vShowCustomRow(ucPage+1,ucLine,16,ucaChinMap+16);

 

}

//*************************************************************************************************

//*                                                                                      *

//*           *****************************字符显示函数***********************************         *

//*                                                                                      *

//*************************************************************************************************

//此函数将8×16字符显示在8×128的格子里。

void vShowOneChar(unsigned char ucPage,unsigned char ucLine,unsigned char *ucaCharMap)

{

   vShowCustomRow(ucPage,ucLine,8,ucaCharMap);

   vShowCustomRow(ucPage+1,ucLine,8,ucaCharMap+8);

 

}

//*************************************************************************************************

//*                                                                                      *

//*           *****************************清屏函数***********************************           *

//*                                                                                      *

//*************************************************************************************************//此函数将清空显示屏。

void ClearLCD(unsigned char date)

{

   unsigned char page,column;

    CS1=1;

   CS2=0;

   vWriteCMD(LCDSTARTROW);

   for(page=0;page<8;page++)

   {

    vWriteCMD(page+LCDPAGE);

      vWriteCMD(LCDLINE);

     for(column=0;column<64;column++)

     {    

       vWriteData(date);               //清左屏

      }  

   }

   CS1=0;

   CS2=1;

   vWriteCMD(LCDSTARTROW);

   for(page=0;page<8;page++)

   {

     vWriteCMD(page+LCDPAGE);

      vWriteCMD(LCDLINE);

     for(column=0;column<64;column++)

     {    

       vWriteData(date);               //清右屏

      }  

   }

}

   unsigned char code uca_DANG[]=

{0x00,0x40,0x42,0x44,0x4C,0x40,0x40,0x7F,0x40,0x40,0x48,0x44,0xE6,0x40,0x00,0x00,

 0x00,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00}; /*"",0*/

 

unsigned char code uca_QIAN[]=

{0x08,0x08,0xE8,0x29,0x2A,0x2E,0xE8,0x08,0x08,0xCC,0x0A,0x0B,0xE8,0x0C,0x08,0x00,

 0x00,0x00,0xFF,0x09,0x49,0x89,0x7F,0x00,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,0x00}; /*"",0*/

 

 unsigned char code uca_GONG[]=

{0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,

 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00}; /*"",0*/

 

unsigned char code uca_ZUO[]=

{0x80,0x40,0x20,0xF8,0x87,0x40,0x30,0x0F,0xF8,0x88,0x88,0xC8,0x88,0x0C,0x08,0x00,

 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0x0C,0x08,0x00,0x00}; /*"",0*/

 

unsigned char code uca_DIAN[]=

{0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,

 0x00,0x07,0x02,0x02,0x02,0x02,0x3F,0x42,0x42,0x42,0x42,0x47,0x40,0x70,0x00,0x00}; /*"",0*/

 

unsigned char code uca_YA[]=

{0x00,0x00,0xFE,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC3,0x82,0x00,0x00,

 0x40,0x30,0x0F,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x42,0x44,0x4C,0x60,0x40,0x00}; /*"",0*/

 

unsigned char code uca_QING[]=

{0x20,0x22,0xEC,0x00,0x20,0x22,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xEB,0xA2,0x20,0x00,

 0x00,0x00,0x7F,0x20,0x10,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00};/*"",*/

 

unsigned char code uca_SHE[]=

{0x40,0x40,0x42,0xCC,0x00,0x40,0xA0,0x9F,0x81,0x81,0x81,0x9F,0xA0,0x20,0x20,0x00,

 0x00,0x00,0x00,0x7F,0xA0,0x90,0x40,0x43,0x2C,0x10,0x28,0x26,0x41,0xC0,0x40,0x00};/*""*/

 

unsigned char code uca_ZHI[]=

{0x00,0x10,0x17,0xD5,0x55,0x57,0x55,0x7D,0x55,0x57,0x55,0xD5,0x17,0x10,0x00,0x00,

 0x40,0x40,0x40,0x7F,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x7F,0x40,0x60,0x40,0x00};/*""*/

 

unsigned char code uca_SHU[]=

{0x44,0xF4,0x4F,0xE4,0x44,0x64,0x90,0x98,0x94,0x93,0x14,0x98,0x08,0xD0,0x10,0x00,

0x04,0x04,0x04,0xFF,0x02,0x02,0xFF,0x4A,0x8A,0x7F,0x00,0x3F,0x80,0xFF,0x00,0x00};/*""*/

 

unsigned char code uca_CHU[]=

{0x00,0x00,0xFC,0x40,0x40,0x40,0x40,0xFF,0x40,0x40,0x40,0x40,0xFC,0x00,0x00,0x00,

 0x00,0xFE,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0xFE,0x00,0x00};/*""*/

 

 

 

unsigned char code uca_MAOHAO[]=

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

 0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*";*/

 

 unsigned char code uca_0[]=

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*";*/

 

unsigned char code uca_HEN[]=

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00};/*"_"_*/

 

unsigned char code uca_XIAOSHU[]=

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00};/*".".*/

 

 unsigned char code uca_V[]=

{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};/*"V"*/

 

unsigned char code uca[][16]=

{

{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",0*/

 

{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"1",1*/

 

{0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",2*/

 

{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},/*"3",3*/

 

{0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},/*"4",4*/

 

{0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},/*"5",5*/

 

{0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"6",6*/

 

{0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},/*"7",7*/

 

{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",8*/

 

{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}/*"9",9*/

};

unsigned char code uca_que[]=

{0xFF,0x7B,0x1B,0xA3,0xBB,0x3B,0xEF,0x07,0x68,0x6D,0x0D,0x65,0x69,0x0D,0xFF,0xFF,

0xFE,0xFF,0xC0,0xF7,0x77,0xB0,0xCF,0xF0,0xFB,0xFB,0xC0,0xBB,0x7B,0x80,0xFF,0xFF};/*" ",11*/

 

unsigned char code uca_ding[]=

{0xFF,0xEF,0xF3,0x5B,0xDB,0xDB,0xDA,0x19,0xDB,0xDB,0xDB,0xDB,0xEB,0xF3,0xFB,0xFF,

0xBF,0xDF,0xE7,0xF8,0xF7,0xEF,0xDF,0x80,0xBD,0xBD,0xBD,0xBD,0xBF,0xBF,0xFF,0xFF};/*"",12*/

 

unsigned char code uca_wenhao[]=

{0xff,0xff,0xff,0xFF,0x9F,0xEF,0xF7,0xF7,0x6F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};/*"",13*/

 

 

 

 


在线客服
联系方式

热线电话

13329706647

上班时间

周一到周五

公司电话

027-87052087

二维码
线