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

📄 displayv2.c

📁 lpc2368 source files
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "lpc23xx.h"
#include "display.h"
#include "dis_font.h"
#include "KeyBoard.h"
#include "rtc.h"
#include "adc.h"

#include <rt_sys.h>
#pragma import(__use_c99_library)
#include <stdio.h>
struct __FILE {
int handle;
/* Whatever you need here (if the only file you are using
is the stdoutput using printf for debugging, no file
handling is required) */
};
//FILE __stdout,__stdin;
//*******************************************************
//void bloff(void);
//void blon(void);
//void bltoggle(void);
//
//void delay_ms(void);
//void del_us(void);
//void disp_data(void);
//void disp_inst(void);
//void write_display(unsigned char );
//unsigned char read_display(void);
//void Disp_initial(void);
//void gotoxy(char ,char );
//void clrscr(void);
//void disp_char(unsigned char );
//char putchar1(char );
////void Disp_time(void);
////void Disp_date(void);
//void Disp_bcd1(unsigned char bcd_i);
//void Disp_bcd2(unsigned char bcd_i);
void Disp_int(unsigned int bcd_i);
//void Disp_cur_rev(void);
//void row_select(void);
//void blank_disp(unsigned char blank_count);
//*******************************************************
unsigned int disp_count,row_count,col_count;
unsigned char backlit,*row_no;
//*******************************************************
void blon(void)
{
	backlit = 1;
	FIO1SET = 0X01 << 21;//ON 
}

void bloff(void)
{
	backlit = 0;
	FIO1CLR = 0X01 << 21;//OFF
}
void bltoggle(void)
{
	FIO1MASK = 0x00000000;
	if(backlit == 0)
	{
		backlit = 1;
		blon();  
	}
	else
	{
		backlit = 0;
		bloff();  
	}
} 


int fputc(int c, FILE *f)
{
 /* Your implementation of fputc */
 unsigned char  lcd_i;
 	
	if (c == 0x0a)
    {
        for (lcd_i=disp_count%20;lcd_i<20;lcd_i++)
        {
            disp_char(' ');
        }
    }
    else if(c == 0x0d)
    {
        disp_count = disp_count - (disp_count%20);
    }
	else if (c == 0x08)
    {
            disp_count--;
			disp_char(' ');
			disp_count--;
    
    }
    else
    {
		disp_char(c);
    }

    return c;
 /* Your implementation of fputc */
//return ch;
}


void delay_ms(void)
{
   long del;

   for(del=500000; del > 0; del--);
   //for(del=500000; del > 0; del--);
   //for(del=500000; del > 0; del--);
   //for(del=500000; del > 0; del--);
}

void del_us(void)
{
   unsigned int del;

   for(del=100; del > 0; del--);
}
void disp_data(void)
{
    FIO1SET = (0X01 << 22);
	//del_us();
}

void disp_inst(void)
{
	FIO1CLR = (0X01 << 22);
	//del_us();
}


void write_display(unsigned char disp_temp5)
{	  
	  FIO1MASK0 = 0xfc;
	  FIO1PIN0  = disp_temp5;
	  FIO1MASK0 = 0XEF;
	  FIO1PIN0 	= disp_temp5 << 2;
	  FIO1MASK1 = 0XF8;
	  FIO1PIN1 	= disp_temp5 >> 3;
	  FIO1MASK3 = 0xfc;
	  FIO1PIN3 	= disp_temp5 >> 6;
      FIO1CLR   = 0X01 << 23;//DISP_EN = 0
      del_us();
  	  del_us();
	  FIO1SET	= 0X01 << 23;//DISP_EN = 1
	  del_us();
  	  del_us();
}

unsigned char read_display(void)
{
     unsigned char  disp_temp4 = 0;
	
	 FIO1DIR    = 0XFCFFC000;
     FIO2CLR0 = 0X80;	//DISP_RW = 0;
     del_us();
	 FIO1MASK0  = 0XFC;
	 disp_temp4 = FIO1PIN0;
	 FIO1MASK0  = 0XEF;
	 disp_temp4 = disp_temp4 | (FIO1PIN0 >> 2);
	 FIO1MASK1  = 0XF8;
	 disp_temp4 = disp_temp4 | (FIO1PIN1 << 3);
	 FIO1MASK3  = 0XFC;
	 disp_temp4 = disp_temp4 | (FIO1PIN3 << 6); 
	 del_us();
     FIO2SET0    = 0X80;// DISP_RW = 1
	 FIO1DIR    = 0XFFFFC713;
    return disp_temp4;
}

void gotoxy(char row,char col)
{
    unsigned char  disp_tempx;
	
	 disp_tempx = ((row-1) * 20) + (col-1);
	 if(disp_tempx < 100)
	 disp_count = disp_tempx; 
}

//void Disp_initial(void)
//{ 
//    
//	disp_inst();
//	{
//     write_display(0xe2);//1
//	 delay_ms();
//	 write_display(0xa0);//2
//	 delay_ms();
//     write_display(0xc0);//3 c0	c8	
//	 delay_ms();	                                                             
//     write_display(0xa3);//4 a3	a2
//	 delay_ms();
//     write_display(0x2c);//5
//     write_display(0x2e);//6
//     write_display(0x2f);//7
//     delay_ms();     
//     write_display(0x26);//8
//     write_display(0x81);//9
//     write_display(0x0F);//10 08
//     delay_ms();
//     write_display(0x40);//11 40
//     write_display(0xb0);//12
//     write_display(0x10);//13 10
//     write_display(0x00);//14 00
//	 write_display(0xaf);//15
//	}
//	clrscr();
//}
void Disp_initial(void)
{ 
    
	disp_inst();
	{
     write_display(0xe2);//1
	 delay_ms();
	 write_display(0xa0);//2
	 delay_ms();
     write_display(0xc0);//3 c0	c8	
	 delay_ms();	                                                             
     write_display(0xa3);//4 a3	a2
 	 delay_ms();
     write_display(0x2c);//5
 	 delay_ms();
     write_display(0x2e);//6
 	 delay_ms();
     write_display(0x2f);//7
	 delay_ms();
     write_display(0x26);//8
     write_display(0x81);//9
     write_display(0x08);//10 08
     delay_ms();
     write_display(0x40);//11 40
     write_display(0xb0);//12
     write_display(0x10);//13 10
     write_display(0x00);//14 00
	 write_display(0xaf);//15
	}
	 delay_ms();
	clrscr();
}

/*void disp_char(unsigned char disp_temp)
{
  unsigned char  row, col,dctemp,i,temp1[8];
  unsigned int  integer_1;
   row = disp_count/20;
   col = disp_count%20;
   col = col * 6;

   if(row%2)
    {
         row = (row * 12)/8; 
         disp_inst();
		 write_display(0xb0 |row);
         write_display((col>>4)|0x10);		  
		 write_display((col & 0x0f)| 0x00);
         disp_data();
         dctemp = read_display();		  
		 for(i=0;i<6;i++)
		 {
		    temp1[i]= read_display();
			temp1[i] = temp1[i] & 0x0f;
		 }
		 disp_inst();
		 write_display((col>>4)|0x10);		  
		 write_display((col & 0x0f)| 0x00);
         disp_data();
		 for(i=0;i<6;i++)
		  {
			integer_1 = (((unsigned int)disp_temp) * 6 + ((unsigned int)i));
		    dctemp = long_font[integer_1] <<4;
			write_display( temp1[i]|dctemp);
		  }
         disp_inst();
		 write_display((0xb0|row) + 1);
         write_display((col>>4)|0x10);		  
		 write_display((col & 0x0f)| 0x00);		  
		 disp_data();
		  for(i=0;i<6;i++)
		  {
			integer_1 = (((unsigned int)disp_temp) * 6 + ((unsigned int)i));	
		    write_display((long_font[integer_1]>>4) |(long_font1[integer_1]<<4));
		  }
	} 	 
   
   else
   {
	  row = (row * 12)/8; 
      disp_inst();
	  write_display(0xb0 |row);
	  write_display((col>>4)|0x10);		  
	  write_display((col & 0x0f)| 0x00);
	  disp_data();		  
	  for(i=0;i<6;i++)
	  {
		integer_1 = (((unsigned int)disp_temp) * 6 + ((unsigned int)i));
		write_display(long_font[integer_1]);
	  }
	 disp_inst();
	 write_display((0xb0 |row) +1);
	 write_display((col>>4)|0x10);		  
	 write_display((col & 0x0f)| 0x00);		  
	 disp_data();
	 dctemp = read_display();		  
	 for(i=0;i<6;i++)
	 {
	    temp1[i]= read_display();
		temp1[i] = temp1[i] & 0xf0;
	 }
	 disp_inst();
	 write_display((col>>4)|0x10);		  
	 write_display((col & 0x0f)| 0x00);		  
	 disp_data();
	for(i=0;i<6;i++)
	{
	   integer_1 = (((unsigned int)disp_temp) * 6 + ((unsigned int)i));
	   write_display(long_font1[integer_1] | temp1[i]);
	}
   }
   disp_count++;
   if(disp_count >99)
    disp_count = 0;
	del_us();
	FIO1SET	= 0X01 << 23;//DISP_EN = 1
	FIO2SET0 = 0X80;//DISP_RW = 1
    
}*/
void disp_char(unsigned char disp_temp)
{
  unsigned char row, col,temp,i,temp1[8];
   row = disp_count/20;
   col = disp_count%20;
   col = col * 6;
	switch(row)
	{
		case 0:	
				row = (row * 12)/8; 
				disp_inst();
				write_display(0xb0 |row);
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);
				disp_data();
				for(i=0;i<6;i++)
				{
					write_display(ravi_font[disp_temp*6+i]);
				}
				disp_inst();
				write_display((0xb0 |row) +1);
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);		  
				disp_data();
				temp = read_display();		  
				for(i=0;i<6;i++)
				{
					temp1[i]= read_display();
					temp1[i] = temp1[i] & 0xf0;
				}
				disp_inst();
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);		  
				disp_data();
				for(i=0;i<6;i++)
				{
					write_display(ravi_font1[disp_temp * 6+i] | temp1[i]);
				}
				break;
		case 1:
				row = (row * 12)/8; 
				disp_inst();
				write_display(0xb0 |row);
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);
				disp_data();
				temp = read_display();		  
				for(i=0;i<6;i++)
				{
					temp1[i]= read_display();
					temp1[i] = temp1[i] & 0x0f;
				}
				disp_inst();
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);
				disp_data();
				for(i=0;i<6;i++)
				{
					temp = ravi_font[disp_temp*6 + i]<<3;// <<4;
					write_display( (temp1[i]|temp));
				}
				
				disp_inst();
				write_display((0xb0|row)+1 );
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);		  
				disp_data();
				for(i=0;i<6;i++)
				{
					//write_display((ravi_font[disp_temp*6 + i]>>4) |(ravi_font1[disp_temp*6 + i]<<4));
					write_display((ravi_font[disp_temp*6 + i]>>5) |(ravi_font1[disp_temp*6 + i]<<3));
				}
				break;
		case 2:
				row = (row * 12)/8; 
				row--;
				disp_inst();
				write_display(0xb0 |row);
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);
				disp_data();
				temp = read_display();		  
				for(i=0;i<6;i++)
				{
					temp1[i]= read_display();
					temp1[i] = temp1[i] & 0x0f;
				}
				disp_inst();
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);
				disp_data();
				for(i=0;i<6;i++)
				{
					temp = ravi_font[disp_temp*6 + i]<<6;
					write_display((temp1[i]|temp));
				}
				disp_inst();
				write_display((0xb0 |row) +1);
				write_display((col>>4)|0x10);		  
				write_display((col & 0x0f)| 0x00);		  
				disp_data();
				temp = read_display();		  
				for(i=0;i<6;i++)

⌨️ 快捷键说明

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