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

📄 test.c

📁 89C52单片机的底层代码,包括A/D,D/A转换,键盘,LED显示等
💻 C
📖 第 1 页 / 共 2 页
字号:
	 sent(dispbuff[i]);
	 CS=1;
   }
}



/*	ORG	8000H
	AJMP	MAIN

	ORG	8100h
MAIN:
	MOV	SP,#60h			;设置SP
	ACALL	DELAY			;延时

	ACALL	INIT_LCD		;初始化液晶模块

	ACALL	WRITE_CGRAM		;设置CGRAM

	MOV	A,#84H			;从第一行第5位开始
	ACALL	WRITE_COM

	MOV	R6,#06			;显示DP-51S
	MOV	DPTR,#TABLE1		;读取DP-51S数据表地址
DISP1:
	CLR	A
	MOVC	A,@A+DPTR
	ACALL	WRITE_DAT
	INC	DPTR
	DJNZ	R6,DISP1

	MOV	A,#0C2H			;第二行第二位开始显示
	ACALL	WRITE_COM

	MOV	R6,#13			;显示ZLG2003年3月26日
	MOV	DPTR,#TABLE2		;读取数据表2地址
DISP2:
	CLR	A
	MOVC	A,@A+DPTR
	ACALL	WRITE_DAT
	INC	DPTR
	DJNZ	R6,DISP2


DISP_LOOP:
	MOV	A,#07H			;设置左移模式
	ACALL	WRITE_COM
	MOV	A,#8FH			;从第一行第16位开始
	ACALL	WRITE_COM

	MOV	R6,#16			;左移16个 空格
DISP_LEFT:
	MOV	A,#10H
	ACALL	WRITE_DAT
	ACALL	DELAY			;延时
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	DJNZ	R6,DISP_LEFT

	MOV	A,#05H			;设置右移模式
	ACALL	WRITE_COM
	MOV	A,#80H			;从第一行第1位开始
	ACALL	WRITE_COM

	MOV	R6,#16
DISP_RIGHT:
	MOV	A,#10H
	ACALL	WRITE_DAT
	ACALL	DELAY			;延时
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	ACALL	DELAY
	DJNZ	R6,DISP_RIGHT
	
	SJMP	DISP_LOOP			;循环移动*/
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time)                                                    *
*`CREATE DATE  :2004.12.20                                                                        *
* CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
* MODEIFY DATE :2005.6.2                                                                          *
* INPUT        :char channel                                                                      *
* OUTPUT       :None                                                                              *
* RETURN       :ADresult                                                                          *
* Global Variable:ADresult                                                                        *
*************************************************************************************************/
void test_lcd()
{
   unsigned char i;
   WR_COM=0x00;
   delay(255);
   delay(255);
   for(i=0;i<16;i++)
    {
    WR_DAT=TABLE1[i];
	delay(255);
	delay(255);
	}
    WR_COM=0xc0;
	delay(255);
	delay(255);
    for(i=0;i<4;i++)
      {
      WR_DAT=TABLE2[i];
    delay(255);
    delay(255);}
  /* for(i=0;i<13;i++)
   {
    WR_DAT=TABLE3[i];
	delay(255);
	delay(255);
	}*/
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time)                                                    *
*`CREATE DATE  :2004.12.20                                                                        *
* CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
* MODEIFY DATE :2005.6.2                                                                          *
* INPUT        :char channel                                                                      *
* OUTPUT       :None                                                                              *
* RETURN       :ADresult                                                                          *
* Global Variable:ADresult                                                                        *
*************************************************************************************************/
	//;初始化液晶模块
void init_lcd()
{
    unsigned char i;
    WR_COM=0x38;     //设置为8位数据总线,16*2,5*7点阵
    for(i=0;i<50;i++)
        delay(255);
    WR_COM=0x01;        //清屏幕
    for(i=0;i<50;i++)
        delay(255);
    WR_COM=0x06;       //光标移动,显示区不移动,读写操作后AC加1
    for(i=0;i<50;i++)
        delay(255);
    WR_COM=0x0c;
} 
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time)                                                    *
*`CREATE DATE  :2004.12.20                                                                        *
* CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
* MODEIFY DATE :2005.6.2                                                                          *
* INPUT        :char channel                                                                      *
* OUTPUT       :None                                                                              *
* RETURN       :ADresult                                                                          *
* Global Variable:ADresult                                                                        *
*************************************************************************************************/
void init_cgram()
{
    unsigned char i;
	//;设置自定义字符
    WR_COM=0x40;
    for(i=0;i<24;i++)
    {
      WR_DAT=CGRAM_TABLE[i];
    }
	for(i=0;i<40;i++)
      delay(255);
}
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time)                                                    *
*`CREATE DATE  :2004.12.20                                                                        *
* CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
* MODEIFY DATE :2005.6.2                                                                          *
* INPUT        :char channel                                                                      *
* OUTPUT       :None                                                                              *
* RETURN       :ADresult                                                                          *
* Global Variable:ADresult                                                                        *
*************************************************************************************************/
void clr_lcd()
{
  WR_COM=0x01;
  delay(255);
  delay(255);
 }
/*************************************************************************************************
* FUNCTION NAME:void delay(unsigned char time)                                                    *
*`CREATE DATE  :2004.12.20                                                                        *
* CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
* MODEIFY DATE :2005.6.2                                                                          *
* INPUT        :char channel                                                                      *
* OUTPUT       :None                                                                              *
* RETURN       :ADresult                                                                          *
* Global Variable:ADresult                                                                        *
*************************************************************************************************/
void printf_lcd(unsigned char StartPosition,char *string,char len)
{
   char i;
   clr_lcd();
   WR_COM=StartPosition;
   delay(255);
   delay(255);
   for(i=0;i<len;i++)
   {
   WR_DAT=*string;
   string++;
   delay(255);
   delay(255);
   }

 }





⌨️ 快捷键说明

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