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

📄 160x160.c

📁 摘要:人机交互中经常用到显示屏
💻 C
字号:

#include "absacc.h"


/*define function*/


/*define SED1335 port address*/
#define SEDWRCOM XBYTE[0X8001]      //写指令代码
#define SEDRDCSR XBYTE[0X8001]      //读光标指针
#define SEDWRDAT XBYTE[0X8000]      //写指令参数和显示数据
#define SEDRDSTA XBYTE[0X8000]      //读状态标志

/*define LCD code */
#define SYSSET          0x40//显示参数
#define SCROLL          0x44
#define SLEEP           0x53
#define DISPON          0x59
#define DISPOFF         0x58
#define OVLAY           0x5b
#define HDOTSCR         0x5a
#define CSRFORM         0x5d
#define CGRAMADR        0x5c
#define CSRRGT          0x4c
#define CSRLFT          0x4d
#define CSRUP           0x4e
#define CSRDOWN         0x4f
#define CSRW            0x46
#define CSRR            0x47
#define MWRITE          0x42
#define MREAD           0x43

#define BasePart1       0x00	//SAD1H
#define BasePart2       0x40	//SAD2H
#define BasePart3       0x60	//SAD3H
#define BasePart4       0x00	//SAD4H
#define	paraP9          0x14    // 相对于160 X 160每行20列




unsigned char code SYSTAB[8]={0x30,0x87,0x07,0x13,0x1f,0xa0,0x14,0x00};//初始化系统参数
unsigned char code SCRTAB[10]={0x00,0x00,0x9f,0x00,0x40,0x9f,0x00,0x60,0x00,0x00};



/*******************************************************************************************/
/*函数名称:void WLcdCom(unsigned char com )								                           */
/*功能描述:写LCD控制命令												                   */
/*输入:命令										   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数:                                                                               */
/*            	                                                                           */
/*创建人:	罗广良																		   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */

void WLcdCom(unsigned char com )
{
    SEDWRCOM = com;
    _nop_();
}
/*******************************************************************************************/
/*函数名称:void WLcdData(unsigned char ref )							                           */
/*功能描述:写LCD控制参数和显示字符数据												                   */
/*输入:控制参数和显示字符数据										   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数:                                                                               */
/*            	                                                                           */
/*创建人:	罗广良																		   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */
//
void WLcdData(unsigned char ref )
{
    SEDWRDAT = ref;
    _nop_();
}
/*******************************************************************************************/
/*函数名称:void ClrVRam(void)							                           */
/*功能描述:显示存储器清零												                   */
/*输入:										   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数:                                                                               */
/*            	                                                                           */
/*创建人:	罗广良																		   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */
//
void ClrVRam(void)
{
    unsigned int ii=0x2000,j;

    WLcdCom(CSRRGT);
    WLcdCom(CSRW);
    WLcdData(0x00);
    WLcdData(0x00);
    WLcdCom(MWRITE);
    while(ii--)
    {
        WLcdData(0x00);
    }

}


/*函数名称:void LCM_SetCsrMovDir( unsigned char direction)						                           */
/*功能描述:设置光标自动移动方向 0x4D,或者0x4E											                   */
/*输入:	方向参数									   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数:                                                                               */
/*            	                                                                           */
/*创建人:	罗广良																		   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:	*/						

void LCM_SetCsrMovDir( unsigned char direction)
{
    WLcdCom( direction );
}


/*******************************************************************************************/
/*函数名称:void LCM_SetDisOnOff( unsigned char DisOnOff,unsigned char DisParameter )							                           */
/*功能描述:开关显示屏,写显示参数,可设置显示区域												                   */
/*输入:	
//DisOnOff: 为固定的开关显示参数
//DisParametter: 显示参数,									   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数:                                                                               */
/*            	                                                                           */
/*创建人:	罗广良																		   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */

void LCM_SetDisOnOff( unsigned char DisOnOff,unsigned char DisParameter )
{
	WLcdCom( DisOnOff);
	WLcdData( DisParameter );
}


/*******************************************************************************************/
/*函数名称:void LCM_Disp_HZ( unsigned char x, unsigned char y, unsigned char chartype, unsigned char *pLocation )								                           */
/*功能描述:显示一个字符或者汉字												                   */
/*输入:
//x,y坐标,x以字符为单位,y以点为单位
//chartype -8,表示8X16的数字,-16,表示16X16的汉字
//pLocation,表示要显示字的点阵数据的指针									   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数: 在要显示字符的函数调用                                                                              */
/*            	                                                                           */
/*创建人:	罗广良																			   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */

void LCM_Disp_HZ( unsigned char x, unsigned char y, unsigned char chartype, unsigned char *pLocation )
{
    unsigned int  Optr;
    unsigned char i,j;
    unsigned char BaseCount = 16;

    Optr = y * paraP9 + x;              // paraP9=20

    LCM_SetCsrMovDir( CSRDOWN );		// 自动右移。
    LCM_SetDisOnOff( DISPON,0x54 );

    switch(chartype)
    {
        case 8:     //ASCII,8*16
             WLcdCom(CSRW);
	         WLcdData( (unsigned char)(Optr % 256) );	         // 设置光标地址CSR低8位
             WLcdData( (unsigned char)(Optr / 256) + BasePart1); // 设置光标地址CSR高8位
             WLcdCom(MWRITE);

            for( j=0; j < 16; j++ )
            {
                WLcdData( *(pLocation + j) );
            }
            break;
        case 16:    //16x16
            for (i = 0; i < 2; i++)
            {
                WLcdCom(CSRW);
	            WLcdData( (unsigned char)(Optr % 256) );	        // 设置光标地址CSR低8位
                WLcdData( (unsigned char)(Optr / 256) + BasePart1); // 设置光标地址CSR高8位
                WLcdCom(MWRITE);

                for( j=0; j < 16 ; j++ )
                {
                    WLcdData( *(pLocation + j * 2 + i) );
                }
                Optr++;
            }
            break;
        default:
            break;
    }
}

/*******************************************************************************************/
/*函数名称:void LCM_Init(void)								                           */
/*功能描述:初始化LCD显示参数以及界面												                   */
/*输入:										   					                       */
/*输出:									                                               */
/*全局变量:											                                   */
/*调用函数: 主程序初始化完设备后时调用                                                                              */
/*            	                                                                           */
/*创建人:	罗广良																	   */
/*创建日期:2007年11月13日																   */
/*修改人:																				   */
/*修改日期:																			   */
/*修改描述:																			   */

void LCM_Init(void)
{
    unsigned char i;

    WLcdCom(SYSSET);
    for(i=0;i<8;i++)
    {
        WLcdData(SYSTAB[i]);
    }
    WLcdCom(SCROLL);
    for(i=0;i<10;i++)
    {
        WLcdData(SCRTAB[i]);
    }
    WLcdCom(HDOTSCR);//水平点位移设置
    WLcdData(0X00);
    WLcdCom(OVLAY);
    WLcdData(0X1c);
    WLcdCom(DISPOFF);//关显示
    WLcdData(0X56);//设置光标参数
    ClrVRam();     //清屏
    WLcdCom(CSRFORM);  //设置光标形状
    WLcdData(0X07);
    WLcdData(0X87);
    WLcdCom(DISPON);//开显示
    WLcdData(0X54);
}
****************************************************************************************/

⌨️ 快捷键说明

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