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

📄 lcd.c

📁 lcd显示屏的英文显示
💻 C
字号:
//#include "..\inc\44b.h"
//#include "..\inc\44blib.h"
#include "..\inc\clock.h"
#include "..\inc\ASII.H"


#define INT32U unsigned int
#define INT16U unsigned short
#define S32 int
#define S16 short int
#define INT8U unsigned char
#define U16 unsigned short int
#define INT16  short

/ 
/*******************************************
英文显示
******************************************/
 void dischar(char hao,unsigned char line,unsigned char xdot)
{   
     unsigned char *pbuffer;
     unsigned int i;
     if(xdot%2==0)xdot+=1;
     else xdot-=1;

     pbuffer =(unsigned char *) 0xc400000;  
    
   for (i=0;i<16;i++)
   {
     pbuffer[20*i+16*20*line+xdot*2]=hzdot[2*i+1+32*hao];
     pbuffer[20*i+16*20*line+xdot*2+1]=hzdot[2*i+32*hao];
     }
} 
/*******************************************
英文字符串显示
******************************************/
 void disstr( char * hao,unsigned char line,unsigned char xdot)
 {   
     char * m=hao;
     while(* m!=0)
     { 
        if(xdot>=10){xdot-=10;line++;}
        dischar(* m,line,xdot);
        m++;
        xdot++;
        
     }
 }
/*******************************************
沿时程序
********************************************/
 void  delay(long n)
 {
   long i;
   long k;
   long j;
   for(i=0;i<n;i++)
   {
    for(k=0;k<600;k++)
    {
      for(j=0;j<1000;j++)
      {
        int n=1;
        int m=2;
      }
    }
   } 
 }

    		
/*******************************************
s3sev40 lcd像素显示宏定义
   lcd_PutPixel(x,y,c)-----把像素发送到显示数据暂存区
   lcd_Active_PutPixel-----发送到显示缓冲区(直接驱动lcd)
   **********************************/
   #define LCD_PutPixel(x,y,c)  \
   (*(INT32U *)(LCD_VIRTUAL_BUFFER+(y)*SCR_XSIZE/2+((x))/8*4))= (*(INT32U *)(LCD_VIRTUAL_BUFFER+(y)*SCR_XSIZE/2+((x))/8*4))&((0xf0000000>>((((x))%8)*4)))|((c)<<(7-((x))%8)*4)
    
    #define LCD_Active_PutPixel(x,y,c)  \
   (*(INT32U *)(LCD_ACTIVE_BUFFER+(y)*SCR_XSIZE/2+(319-(x))/8*4))=\
   (*(INT32U *)(LCD_ACTIVE_BUFFER+(y)*SCR_XSIZE/2+(319-(x))/8*4))&\
   ((0xf0000000>>(((319-(x))%8)*4)))|((c)<<(7-(319-(x))%8)*4)

/*****************************************
*Embest arm教学系统软件宏定义
*****************************************/
#define M5D(n)  ((n)&0x1fffff)			//高3位清0宏
#define BLACK   0XFFFFFFFF
#define WHITE   0X0

/*****************************************
*S3C44B0X的lcd控制寄存器访问地址
*******************************************/
/*#define rLCDCON1       (*(voatile unsigned *)0x1f00000)
#define rLCDCON2       (*(voatile unsigned *)0x1f00004)
#define rLCDCON3       (*(voatile unsigned *)0x1f00040)
#define rLCDSADDR1       (*(voatile unsigned *)0x1f00008)
#define rLCDSADDR2       (*(voatile unsigned *)0x1f0000c)
#define rLCDSADDR3       (*(voatile unsigned *)0x1f00010)
#define rREDLUT       (*(voatile unsigned *)0x1f00014)
#define rGREENLUT       (*(voatile unsigned *)0x1f00018)
#define rBLUELUT       (*(voatile unsigned *)0x1f0001c)
#define rDP1_2       (*(voatile unsigned *)0x1f00020)
#define rDP4_7       (*(voatile unsigned *)0x1f00024)
#define rDP3_5       (*(voatile unsigned *)0x1f00028)
#define rDP2_3       (*(voatile unsigned *)0x1f0002c)
#define rDP5_7       (*(voatile unsigned *)0x1f00030)
#define rDP3_4       (*(voatile unsigned *)0x1f00034)
#define rDP4_5       (*(voatile unsigned *)0x1f00038)
#define rDP6_7       (*(voatile unsigned *)0x1f0003c)
#define rDITHMODE       (*(voatile unsigned *)0x1f00044)*/
/********************************************
s3cev40实验系统的lcd属性定义
********************************************/
#define MLCD_320_240     (3)
#define LCD_TYPE         MLCD_320_240
#define SCR_XSIZE        (160)
#define SCR_YSIZE        (240)
#define LCD_XSIZE        (160)
#define LCD_YSIZE        (240)
/*********************************************
*s3c44b0x的lcd控制器宏定义
************************************************/
#define MIDE_GREY16	 (16)
#define CLKVAL_GREY16  (13)

#define HOZVAL  (LCD_XSIZE/4-1)
#define LINEVAL  (LCD_YSIZE-1)
#define MVAL    (13)
#define MVAL_USED   0
/**********************************************
*embest arm教学系统的lcd显示缓冲区
***********************************************/
#define ARRAY_SIZE_GREY16    (SCR_XSIZE/2*SCR_YSIZE)

#define LCD_BUF_SIZE        (SCR_XSIZE*SCR_YSIZE/2)
#define LCD_ACTIVE_BUFFER   (0xc400000)
#define LCD_VIRTUAL_BUFFER  (0xc400000+LCD_BUF_SIZE)

/************************************************
*函数名:Lcd_Init()
*功能:   初始化lcd控制器
*参数:   无
*返回:   无
**************************************************/
void Lcd_Init(void)
{
rDITHMODE=  0X1223a;
rDP1_2  =  0x5a5a;
rDP4_7  =  0x366cd9b;
rDP3_5  =  0xda5a7;
rDP2_3  =  0xad7;
rDP5_7  =  0xfeda5b7;
rDP3_4  =  0xebd7;
rDP4_5  =  0xebfd7;
rDP6_7  =  0x7efdfbf;

/*---------------LCDCON1控制字清0----------------*/
rLCDCON1=(0)|(1<<5)|(MVAL_USED<<7)|(0X3<<8)|(0X3<<10)|(CLKVAL_GREY16<<12);
/*---------------LCDCON2控制字设置lcd分辨率320*240,水平线扫描空闲时间10mclk----------------*/
rLCDCON2=(LINEVAL)|(HOZVAL<<10)|(10<<21);
/*---------------LCDSADDR1-3为帧缓冲区起始地址----------------*/
rLCDSADDR1=(0X0<<27)|(((LCD_ACTIVE_BUFFER>>22)<<21)|M5D(LCD_ACTIVE_BUFFER>>1));
/*---------------设置:16级灰度,LCDBANK,LCDBDEU----------------*/
rLCDSADDR2=M5D(((LCD_ACTIVE_BUFFER+(SCR_XSIZE*LCD_YSIZE/2/4))>>1))|(MVAL<<21);
rLCDSADDR3=(LCD_XSIZE/4/4)|(((SCR_XSIZE-LCD_XSIZE)/4/4)<<9);
//重新设置lcdcon1:4位单扫描模式;WDLY=8CLK,WLH=8CLK
rLCDCON1=(1)|(1<<5)|(MVAL_USED<<7)|(0X3<<8)|(0X3<<10)|(CLKVAL_GREY16<<12);
rBLUELUT=0xfa40;
/*---------------LCD驱动逻辑使能,打开背光----------------*/
rPDATE=rPDATE&0X0e;
}
/************************************************
//函数名   Lcd_Clr()
//功能    清显示屏
//参数   无
//返回   无
*************************************************/
void  Lcd_Clr(void)
{
 INT32U   i;
 INT32U    * pDisp=(INT32U *)LCD_VIRTUAL_BUFFER;
 for(i=0;i<(SCR_XSIZE*SCR_YSIZE/8);i++)
 {
  *pDisp++=BLACK;
 }
 return;
}
/**************************************************
//函数名   Lcd_Active_Clr()
//功能    清屏
//参数   无
//返回   无
**********************************************/
void Lcd_Active_Clr(void)
{
 INT32U  i;
 INT32U  * pDisp=(INT32U *)LCD_ACTIVE_BUFFER;
  for(i=0;i<(SCR_XSIZE*SCR_YSIZE/8);i++)
 {
   *pDisp++=WHITE;
   
 }
 return;
}










⌨️ 快捷键说明

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