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

📄 lcd_disp.c

📁 S3c2410下ADC[LTC1867]的驱动程序,在LCD上可以直接显示读取的AD数据
💻 C
字号:

#include "def.h"
#include <stdlib.h>
#include <stdio.h>
#include "function.h"

extern const U8 g_ucHZK16[];
extern const U8 ASCII_table[];
extern int strlen(const char*s);
extern void PutPixel(U16 x,U16 y,U16 c);

void Lcd_disp_word(uint16 x00, uint16 y00, uchar HzColor, char *s)
{
	uint16 i,j,k,x,y,xx,ascii_offset;
	uchar qm,wm;
	uint16  ulOffset;
	uchar wordbuf[32]; 

	for( i = 0; i < strlen((const char*)s); i++ )
	  {
	       if(((uchar)(*(s+i)))<161 )    //显示ASCII码
		       {
                            ascii_offset=*(s+i)*16+1;
                            for( j = 0; j <16; j ++ )
                               {wordbuf[j] = ASCII_table[ascii_offset+j];} 
                            for( y = 0; y < 16; y++ )
                             {
                                for( x = 0; x < 8; x++ ) 
                                 {
                                    k = x % 8;
                                    if( wordbuf[y  + x / 8]  & (0x80 >> k))
                                      {
                                        xx = x00 + x + (i * 8);
                                        PutPixel(xx,y+y00,HzColor);
                                     }
                                }
                           }
                         ascii_offset+=16;
                       }
                 else         //显示汉字
		      {
		        qm = *(s+i) - 161;
    		        wm = *(s + i + 1) - 161;
       		        ulOffset = (uint16)(qm * 94 + wm) * 32;
		        for( j = 0; j < 32; j ++ )
                                { wordbuf[j] = g_ucHZK16[ulOffset + j]; }
                         for( y = 0; y < 16; y++ )
                            {
	        	             for( x = 0; x < 16; x++ ) 
	                       {
                 	                    k = x % 8;
				   if( wordbuf[y * 2 + x / 8]  & (0x80 >> k))
				         {
				    	        xx = x00 + x + i * 8;
				    	        PutPixel(xx,y + y00,HzColor);
				          }
			     }
           	          }
		      i++;
		   }
	   }
}
void Lcd_disp_digital(uint16 x00, uint16 y00, uchar HzColor, uchar value) //display a byte of digital on the LCD
  {
     uint16 k,x,y,xx,ascii_offset;
     uchar wordbuf[32];
     uchar j,t1,t2,p,q,m;
     t1=value/10;
     t2=value%10;
     p=t1;
     q=0;
     x00-=2;
     y00-=1;
     for(m=0;m<3;m++)
       {
         ascii_offset=(p+48)*16;
         for( j = 0; j <16; j ++ )
            {wordbuf[j] = ASCII_table[ascii_offset+j];} 
         for( y = 0; y < 16; y++ )
          {
            for( x = 0; x < 8; x++ ) 
              {
                k = x % 8;
                if( wordbuf[y  + x / 8]  & (0x80 >> k))
                   {
                     xx = x00 + x + 8+q;
                     PutPixel(xx,y+y00,HzColor);
                   }
               }
          }
         m++;
         q+=8;
         p=t2;
      }  
  }
void Lcd_disp_digital_one(uint16 x00, uint16 y00, uchar HzColor, uchar value) //display an half byte of digital on the LCD
  {
     uint16 k,x,y,xx,ascii_offset;
     uchar wordbuf[32];
     uchar j;
     x00-=2;
     y00-=1;
     if(value<=9)
         { ascii_offset=(value+48)*16;}
     else
         { ascii_offset=(value+55)*16;}
     for( j = 0; j <16; j ++ )
            {wordbuf[j] = ASCII_table[ascii_offset+j];} 
     for( y = 0; y < 16; y++ )
         {
            for( x = 0; x < 8; x++ ) 
              {
                k = x % 8;
                if( wordbuf[y  + x / 8]  & (0x80 >> k))
                   {
                     xx = x00 + x + 8;
                     PutPixel(xx,y+y00,HzColor);
                   }
               }
         }
  }
  

⌨️ 快捷键说明

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