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

📄 xianshi2.c

📁 c语言编写单片机显示程序源代码 只需要调用
💻 C
字号:
#include<reg55.h>
#include<intrins.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit fmq=P1^6;
//*********文字定义****************
extern uchar code yuan[32];
extern uchar code ding[32];
extern uchar code jin[32];
extern uchar code sheng[32];
extern uchar code tan[32];
//*************LCD与ECU接口定义***************
sbit A0=P2^2;
sbit e1=P2^5;
sbit e2=P2^4;
sbit rw=P2^3;
//*******************delay********************
void delay(uint num)
 { while(num--);  }
//****************SEND COMMAND****************
//-----------内部函数,不直接调用-------------
void send_command(uchar cmd)
 {
  A0=rw=0;     //A0=0,选择指令;rw=0,写。
  e1=e2=1;
  P0=cmd;
  delay(2);
  e1=e2=0;
 }
//*******SELECT PAGE AND LINE AND PUT DATA IN*********
//----------内部函数,不直接调用--------------
void lw(uchar x,uchar y,uchar dd)   //x为列地址,y为页地址,dd为数据。
 {
  if (x<61)
       {
        e1=1;
        A0=rw=0;        //A0=0,选择指令.
        P0=0xb8|y;
        e1=0;

        e1=1;
        A0=rw=0;
        P0=0x00|x;
        e1=0;

        e1=1;
        A0=1;           //A0=1,选择数据;
        rw=0;
        P0=dd;
        e1=0;
      }
  else
      {
        x=x-61;
        e2=1;
        A0=rw=0;
        P0=0x00|x;
        e2=0;

        e2=1;
        A0=rw=0;
        P0=0xb8|y;
        e2=0;

        e2=1;
        A0=1;
        rw=0;
        P0=dd;
        e2=0;
      }
  P0=0xff;
}
//***********INITIALIZE LCD*************
void lcd_init(void)
     {
	uchar x,y;
	e1=e2=0;
	A0=rw=0;
	send_command(0xae);    //关显示
	send_command(0xc0);    //设置显示起始行为第0行
	send_command(0xa4);    //关静态驱动模式
	send_command(0xbb);    //设置页地址为第三页
	send_command(0xa9);   //设置为1/32DUTY
	send_command(0xa0);   //设置显示方向为反向
	send_command(0xee);   //关闭读-修改-写模式并恢复列地址指针到读修改-写模式前的位置。
	send_command(0xaf);     //开显示
     }

//****************CLEAR SCREEN ALL******************
void clr_screen_all(void)
 {
   uchar x,y;
   for (y=0;y<4;y++)
       {
          for (x=0;x<122;x++)
          lw(x,y,0);
       }
 }
//*******************WRITE CHINESE******************
void write_chinese(x,y,array)  //x为列地址,y为页地址,array为字模数组。
  uchar x,y;
  uchar array[];
    {
     uchar j,dd;               //j为汉字32个字模
     for(j=0;j<32;j++)
      {
	    dd=array[j];
    	    if(y==0)
	        {
	          if(j<16) lw(x+j,2,dd);
        	  else     lw(x+j-16,3,dd);
	        }
	    else if(y==1)
	      {
	        if(j<16) lw(x+j,3,dd);
        	else     lw(x+j-16,0,dd);
	      }
	    else if(y==2)
	      {
	        if(j<16) lw(x+j,0,dd);
         	else     lw(x+j-16,1,dd);
	      }
      }
    }

//******************WRITE CHINESE REVERSE*********************
void write_chinese_reverse(x,y,array)
  uchar x,y;
  uchar array[];
    {
      uchar j,dd;
      for(j=0;j<32;j++)
        {
	    dd=~array[j];
    	    if(y==0)
	       {
	         if(j<16) lw(x+j,2,dd);
        	 else     lw(x+j-16,3,dd);
	       }
	     else if(y==1)
	       {
	         if(j<16) lw(x+j,3,dd);
        	 else     lw(x+j-16,0,dd);
	       }
	     else if(y==2)
	       {
	         if(j<16) lw(x+j,0,dd);
          	 else     lw(x+j-16,1,dd);
	       }
        }
     }
//*********************WRITE CHINESE LOVE******************
void ily(void)
 {
   write_chinese(15,1,yuan);
   write_chinese(35,1,ding);
   write_chinese_reverse(55,1,jin);
   write_chinese_reverse(75,1,sheng);
   write_chinese(95,1,tan);
 }
//*********************MAIN**********************
void main(void)
 {
   fmq=0;
   lcd_init();
   clr_screen_all();
   delay(20000);
   ily();
   delay(20000);
 }
//****************汉字代码*****************
uchar code yuan[32]= {0x20,0x38,0xA7,0x62,0x10,0x20,0xA0,0x6C,0x6B,0xAA,0x2A,0x3A,0x26,0xA0,0x20,0x00,
                      0x12,0x13,0x12,0x0A,0x29,0x25,0x12,0x12,0x49,0x85,0x7F,0x02,0x0D,0x18,0x08,0x00};
uchar code ding[32]= {0x00,0x10,0x0C,0xA4,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x14,0x0C,0x04,0x00,
                      0x40,0x20,0x18,0x07,0x08,0x10,0x20,0x7F,0x42,0x42,0x42,0x42,0x40,0x40,0x00,0x00};
uchar code jin[32]=  {0x80,0x80,0x40,0x20,0x10,0x08,0x24,0x43,0xC4,0x08,0x10,0x20,0x60,0xC0,0x40,0x00,
                      0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x82,0x42,0x32,0x0E,0x02,0x00,0x00,0x00,0x00};
uchar code sheng[32]= {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};
uchar code tan[32]= {0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
                     0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};


⌨️ 快捷键说明

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