⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hanzi2.c

📁 c8051f020单片机控制三星高亮192*128型汉字屏动画汉字显示
💻 C
📖 第 1 页 / 共 2 页
字号:
//============================================================================
//2002A LCD显示程序,运行程序LCD显示动画文字
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <c8051f020.h>                 // SFR declarations


//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------
#define  uchar unsigned char
#define  uint  unsigned int

#define dataport    P7
#define highadress    P3
#define SYSCLK     25000000


//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------

sfr16 DP       = 0x82;                 // data pointer
sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
sfr16 TMR3     = 0x94;                 // Timer3 counter
sfr16 ADC0     = 0xbe;                 // ADC0 data
sfr16 ADC0GT   = 0xc4;                 // ADC0 greater than window
sfr16 ADC0LT   = 0xc6;                 // ADC0 less than window
sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
sfr16 T2       = 0xcc;                 // Timer2
sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
sfr16 T4       = 0xf4;                 // Timer4
sfr16 DAC0     = 0xd2;                 // DAC0 data
sfr16 DAC1     = 0xd5;                 // DAC1 data

//----------------------------------------------------------------------------

void lcd_init(void);
void clearlcd(void);
void writedata(uchar wdata,uchar a0_7,uchar a2_0);
 void disword(int wideth,int highth,uchar adress,char ttab[],int displace);
void PORT_Init (void);
void Timer3_Init (int counts);
void Timer3_ISR (void);

 void display(void);
  void display1(void) ;


 void SYSCLK_Init (void);
 void delay(int dtime);


sbit  ADR2  = P1^3;   /// 
sbit  ADR1  = P1^5;   /// 
sbit  ADR0  = P1^7;   ///
sbit  BRAD_  = P1^1;   ///

sbit  DP1  = P0^0;   /// 
sbit WP1  = P0^1;   ///
sbit  DP0  = P0^2;   ///
sbit  WP0  = P0^3;   ///

sbit  READY_  = P0^6;   /// 
sbit CLEAR_  = P0^5;   ///
sbit  DSPE  = P0^4;   ///
sbit  WRITE_  = P0^7;   ///

uint  msnum;
uint  sec;
uint  min;
char *p;
xdata char tab[32*11]= {/*--  文字:  全  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x40,0x60,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x70,0x60,0x20,0x00,0x00,
0x00,0x40,0x40,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x46,0x44,0x60,0x40,0x00,

/*--  文字:  国  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,

/*--  文字:  大  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,

/*--  文字:  学  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,

/*--  文字:  生  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x60,0x1E,0x10,0x10,0x10,0x10,0xFF,0x12,0x10,0x10,0x98,0x10,0x00,0x00,
0x01,0x40,0x40,0x41,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x61,0x40,0x00,

/*--  文字:  电  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,

/*--  文字:  子  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xE2,0x12,0x0A,0x06,0x02,0x00,0x80,0x00,0x00,
0x01,0x01,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,

/*--  文字:  设  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x40,0x41,0xCE,0x04,0x00,0x80,0x40,0xBE,0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00,
0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43,0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00,

/*--  文字:  计  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x20,0x21,0x2E,0xE4,0x00,0x00,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x00,
0x00,0x00,0x00,0x7F,0x20,0x10,0x08,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  大  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,

/*--  文字:  赛  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x08,0x86,0xAA,0xAA,0xAA,0xFE,0xAA,0xAB,0xAA,0xFE,0xAA,0xAA,0xA2,0x86,0x02,0x00,
0x04,0x04,0x82,0x82,0x5F,0x42,0x22,0x1E,0x22,0x22,0x5F,0xC1,0x42,0x06,0x02,0x00,
};

//=================================================================================

xdata char tab2[]={


/*--  文字:  激  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x20,0x44,0x08,0x00,0x70,0xA8,0xAE,0x68,0x98,0x40,0x38,0xE6,0x20,0x20,0x00,0x00,
0x10,0x1C,0x23,0x12,0x0A,0x26,0x25,0x1D,0x10,0x0A,0x04,0x0B,0x10,0x20,0x20,0x00,

/*--  文字:  情  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xE0,0x00,0xFE,0x10,0x00,0x20,0x2A,0xAA,0xBF,0xAA,0xAA,0x20,0x20,0x00,0x00,
0x01,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x0A,0x0A,0x20,0x7F,0x00,0x00,0x00,0x00,

/*--  文字:  创  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x80,0x40,0xA0,0x58,0x46,0xC8,0x10,0x20,0x00,0xF0,0x00,0xFE,0x00,0x00,0x00,
0x01,0x00,0x00,0x0F,0x10,0x12,0x13,0x10,0x0C,0x00,0x03,0x20,0x7F,0x00,0x00,0x00,

/*--  文字:  造  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x80,0x44,0xC8,0x00,0xA0,0x9C,0x88,0x48,0x7F,0x48,0x48,0x40,0x40,0x00,0x00,
0x10,0x10,0x0B,0x0C,0x10,0x10,0x10,0x16,0x25,0x25,0x25,0x23,0x20,0x20,0x20,0x00,

/*--  文字:  精  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x90,0xA0,0x80,0xFE,0x90,0xA0,0x28,0xAA,0xBF,0xAA,0xAA,0xA0,0x20,0x00,0x00,
0x08,0x04,0x02,0x01,0x3F,0x02,0x04,0x00,0x3F,0x0A,0x0A,0x20,0x7F,0x00,0x00,0x00,

/*--  文字:  彩  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x80,0x90,0xA4,0x84,0xEA,0x53,0x48,0x44,0x00,0x20,0x90,0x48,0x26,0x00,0x00,
0x00,0x08,0x04,0x02,0x01,0x3F,0x01,0x02,0x40,0x20,0x11,0x08,0x04,0x03,0x00,0x00,

/*--  文字:  无  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x40,0x40,0x44,0xC4,0x7C,0xC4,0x44,0x44,0x40,0x40,0x00,0x00,0x00,0x00,
0x20,0x20,0x10,0x08,0x06,0x01,0x00,0x0F,0x10,0x20,0x20,0x20,0x20,0x10,0x00,0x00,

/*--  文字:  限  --*/
/*--  楷体_GB231212;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xF8,0x04,0xB4,0xCC,0x00,0xFC,0xD4,0x54,0x44,0x3C,0x80,0x00,0x00,0x00,0x00,
0x00,0x3F,0x00,0x00,0x00,0x00,0x3F,0x10,0x09,0x02,0x05,0x0C,0x08,0x08,0x08,0x00};

//===============================================================================
xdata char tab3[140]={
/*--  文字:  0  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,0x03,0x04,0x08,0x08,0x04,0x03,0x00,

/*--  文字:  1  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,

/*--  文字:  2  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x18,0x04,0x04,0x84,0x44,0x38,0x00,0x0C,0x0A,0x09,0x08,0x08,0x0C,0x00,

/*--  文字:  3  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x18,0x04,0x44,0x44,0xA4,0x18,0x00,0x06,0x08,0x08,0x08,0x08,0x07,0x00,

/*--  文字:  4  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x80,0x40,0x30,0x08,0xFC,0x00,0x00,0x01,0x01,0x01,0x09,0x0F,0x09,0x00,

/*--  文字:  5  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x7C,0x44,0x24,0x24,0x24,0xC4,0x00,0x06,0x08,0x08,0x08,0x08,0x07,0x00,

/*--  文字:  6  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0xF0,0x88,0x44,0x44,0x4C,0x80,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00,

/*--  文字:  7  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x1C,0x04,0x84,0x64,0x1C,0x04,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,

/*--  文字:  8  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x38,0xC4,0x44,0x44,0xC4,0x38,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00,

/*--  文字:  9  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=7x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=7x16  --*/
0x78,0x84,0x84,0x84,0x48,0xF0,0x00,0x00,0x0C,0x08,0x08,0x04,0x03,0x00};
//=================================================================================


xdata char tab4[108]={
/*--  文字:  A  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x00,0x00,0xC0,0x30,0x0C,0x30,0xC0,0x00,0x00,0x08,0x0E,0x09,0x01,0x01,0x01,0x09,
0x0E,0x08,

/*--  文字:  B  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x00,0x04,0xFC,0x44,0x44,0x44,0xA4,0x18,0x00,0x00,0x08,0x0F,0x08,0x08,0x08,0x08,
0x07,0x00,

/*--  文字:  C  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x00,0xE0,0x18,0x08,0x04,0x04,0x04,0x04,0x0C,0x00,0x01,0x06,0x04,0x08,0x08,0x08,
0x04,0x02,

/*--  文字:  D  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x00,0x04,0xFC,0x04,0x04,0x04,0x08,0x18,0xE0,0x00,0x08,0x0F,0x08,0x08,0x08,0x04,
0x06,0x01,

/*--  文字:  E  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x04,0xFC,0x44,0x44,0x44,0xF4,0x0C,0x00,0x00,0x08,0x0F,0x08,0x08,0x08,0x09,0x0C,
0x00,0x00,

/*--  文字:  F  --*/
/*--  @MS PMincho11;  此字体下对应的点阵为:宽x高=9x14   --*/
/*--  高度不是8的倍数,现调整为:宽度x高度=9x16  --*/
0x04,0xFC,0x44,0x44,0x44,0xF4,0x0C,0x00,0x00,0x08,0x0F,0x08,0x00,0x00,0x01,0x00,
0x00,0x00};


//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------

void main (void) 
{ int i;
   WDTCN = 0xde;                       // disable watchdog timer
   WDTCN = 0xad;
    SYSCLK_Init ();
                                        // setting (24500000)
   PORT_Init ();                        // initialize crossbar and GPIO                
    lcd_init();
   Timer3_Init (SYSCLK/12/1000);//1ms intrupt


    EA=1;
    display();
 	   while(1)
      {
	   
         display1(); 
	
	   
		}
   
   
}
//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
//
//
void PORT_Init (void)
{  
  
   XBR0 = 0x00;                       // Enable UART0,SMB0EN
   XBR1 = 0x40;                       // Enable crossbar and weak pull-ups

   XBR2 = 0x40;


   P0MDOUT = 0xf0;  
   P1MDOUT = 0xFF;                    // All P0 pins open-drain output
   P2MDOUT = 0x04;
   P3MDOUT = 0xff;
   P74OUT = 0xff;

}
//-----------------------------------------------------------------------------
 void SYSCLK_Init (void)
{
   int i;                              // delay counter

   OSCXCN = 0x67;                      // start external oscillator with
                                       // 22.1184MHz crystal

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -