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

📄 lcm141.c

📁 上载的程序可以用于PIC单片机,也可以用于430单片机,本人原创,到至今还没有发现哪位网友想出这种办法,希望站长能多加分.
💻 C
字号:
//文件名:lcm141.c
//本程序算法部分可以用在其它部分,
//2007年6月7日调试已通过; 
#define uchar unsigned char
#define uint unsigned int  

#define  XF_MCU    0       //定义用哪一种单片机,1时,用于PIC; 0时,用于MSP430;

#if      XF_MCU==0
#include<msp430x14x.h>
#include "lcm141.h"

#else
#include<PIC.h>
#include "lcm141.h"
uchar pa_out;
uchar pb_out;
uchar pc_out;
uchar pd_out;
uchar pe_out;
#endif 



const uchar coding_up[11]={0xeb,0x60,0xc7,0xe5,0x6c,0xad,0xaf,0xe0,0xef,0xed,0x00};       //LCM141上部0~9的编码
const uchar coding_down[11]={0xd7,0x06,0xe3,0xa7,0x36,0xb5,0xf5,0x07,0xf7,0xb7,0x00};     //LCM141下部0~9的编码


void  LCM_INIT(void)
{   LCM_CS_L;
	DELAYMS(1);
	LCM_CS_H;
	DELAYMS(1);
	LCM_CS_L;
	DELAYMS(1);
	LCM_CS_H;
	DELAYMS(1);
	LCM_CS_L;
	DELAYMS(1);
	LCM_WRITE(com,3);
	LCM_WRITE(init,9);
	LCM_CS_H;
	LCM_WRITE(com,3);
	LCM_WRITE(cy,9);
	LCM_CS_H;
	LCM_WRITE(com,3);
	LCM_WRITE(oscon,9);
	LCM_CS_H;
	LCM_WRITE(com,3);
	LCM_WRITE(lcmon,9);
	LCM_CS_H;
}


//LCM141写数据子程序(数据寄存器,位段寄存器)

void  LCM_SEG(uchar lcms_pd,uchar lcms_pa)
{ uchar lcms_data;
  uchar lcms_bits;
  uchar lcms_i;
  
	{lcms_data=ddata;lcms_bits=3;
	
	LCM_CS_L;
	for(lcms_i=1;lcms_i<=lcms_bits;lcms_i++)
	  {LCM_WR_L;
	   if(!(lcms_data&0x80))
	        LCM_DA_L;
	   else 
	        LCM_DA_H;
	   lcms_data=lcms_data<<1;
	   LCM_WR_H;
	  }
}

{  lcms_data=(lcms_pa<<=2);lcms_bits=6;

	LCM_CS_L;
	for(lcms_i=1;lcms_i<=lcms_bits;lcms_i++)
	  {LCM_WR_L;
	   if(!(lcms_data&0x80))
	        LCM_DA_L;
	   else 
	        LCM_DA_H;
	   lcms_data=lcms_data<<1;
	   LCM_WR_H;
	  }
}

{lcms_data=lcms_pd;lcms_bits=8;

	LCM_CS_L;
	for(lcms_i=1;lcms_i<=lcms_bits;lcms_i++)
	  {LCM_WR_L;
	   if(!(lcms_data&0x80))
	        LCM_DA_L;
	   else 
	        LCM_DA_H;
	   lcms_data=lcms_data<<1;
	   LCM_WR_H;
	  }
}
	LCM_CS_H;
}






void  LCM_WRITE(uchar lcmw_data,uchar lcmw_bits)      //液晶屏写数据。
{ uchar lcms_i;

	LCM_CS_L;
	for(lcms_i=1;lcms_i<=lcmw_bits;lcms_i++)
	  {LCM_WR_L;
	   if(!(lcmw_data&0x80))
	        LCM_DA_L;
	   else 
	        LCM_DA_H;
	   lcmw_data=lcmw_data<<1;
	   LCM_WR_H;
	  }
}


//#############################################
void  CLR_LCM141(void)         //LCM141清数码子程序
{
 LCM_SEG(0x00,0x19);      //01位清0;
 LCM_SEG(0x00,0x17);      //02位清0;
 LCM_SEG(0x00,0x15);      //03位清0;
 LCM_SEG(0x00,0x13);      //04位清0;
 LCM_SEG(0x00,0x11);      //05位清0;
 LCM_SEG(0x00,0x04);      //10位清0;
 LCM_SEG(0x00,0x06);      //09位清0;
 LCM_SEG(0x00,0x0c);      //横条位清0;
 LCM_SEG(0x00,0x0d);      //横条位清0
 LCM_SEG(0x00,0x08);      //08位清0;
 LCM_SEG(0x00,0x0a);      //07位清0;
 LCM_SEG(0x00,0x0f);      //06位清0;
 LCM_SEG(0x00,0x02);      //11位清0;
 LCM_SEG(0x00,0x00);      //12位清0;
 LCM_SEG(0x00,0x1b);      //5种字符位清0;
 LCM_SEG(0x00,0x1c);      //13位清0;
 LCM_SEG(0x00,0x1e);      //14位清0;
}
//###################################################



//.......................................................
void main(void)
{
#if  XF_MCU==0
  WDTCTL=WDTPW+WDTHOLD;         //停止WDT
  P6DIR|=BIT0+BIT1+BIT2;           //P6.0,P6.1,P6.2.为LCM141输出;
#else
	LCM141_DIR_OUT;
#endif 

LCM_INIT();                      //LCM141初始化

DISDATA();                       //显示数1~9

CLR_LCM141();                     //LCM141清数码子程序

DISDATA();                       //显示数1~9
}

void DISDATA(void)                //显示数1~9
{LCM_SEG(coding_up[1],0x19);      //01位
 LCM_SEG(coding_up[2],0x17);      //02位
 LCM_SEG(coding_up[3],0x15);      //03位
 LCM_SEG(coding_up[4],0x13);      //04位
 LCM_SEG(coding_up[5],0x11);      //05位
 LCM_SEG(coding_down[0],0x04);      //10位
 LCM_SEG(coding_down[9],0x06);      //09位
 LCM_SEG(coding_down[8],0x08);      //08位
 LCM_SEG(coding_down[7],0x0a);      //07位
 LCM_SEG(coding_up[6],0x0f);      //06位
 LCM_SEG(coding_down[1],0x02);      //11位
 LCM_SEG(coding_down[2],0x00);      //12位 
 LCM_SEG(coding_down[3],0x1c);      //13位
 LCM_SEG(coding_down[4],0x1e);      //14位
}


void DELAYMS(uint abc)
{uint ac;
 while(abc>0)
   {abc--;
    ac=60;
    while(ac>5)
    ac--;
    }
   ac=0;
}

⌨️ 快捷键说明

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