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

📄 jidian.c

📁 用S52和1602液晶做的可进行设置的多级菜单
💻 C
字号:
/******************************************************

  74138.a=P2.7; 74138.b=P2.6; 74138.c=P2.5;

*******************************************************/
#include<at89x52.h>
#include<absacc.h>
#include<memory.h>
#include<lcm.h>

#define COM8279 XBYTE[0x8001]      //8279命令状态地址
#define DAT8279 XBYTE[0x8000]      //8279数据地址

code unsigned char table[]={'8','9','A','B','C','D','E','F','0','1','2','3','4','5','6','7'};
code unsigned char ini[]="Test memory";
code unsigned char iso[]="is OK!";



void printx(unsigned char x,unsigned char y,unsigned char *ptr)
{
 while(*ptr++!='\0')DispOneChar(x++,y,*(ptr-1));
}

void print(unsigned char xdata *ptr)
{
 unsigned int db;
 db=ptr;
 DispOneChar(0,1,(db/1000)+0x30);db=db%1000;
 DispOneChar(1,1,(db/100)+0x30); db=db%100;
 DispOneChar(2,1,(db/10)+0x30);
 DispOneChar(3,1,(db%10)+0x30);

}
void testmem()
{
unsigned char xdata *ptr;

printx(0,0,ini);
printx(5,1,iso);
  for(ptr=0;ptr<XDATALEN;ptr++)*ptr=0x33;
  for(ptr=0;ptr<XDATALEN;ptr++){if(*ptr==0x33){print(ptr);
   												if(ptr==2*1024)DispOneChar(11,0,'>');
   												if(ptr==4*1024)DispOneChar(12,0,'>');
   												if(ptr==6*1024)DispOneChar(13,0,'>');
   												if(ptr==8*1024-1)DispOneChar(14,0,'>'); }
                                  else while(1);}
  printx(0,1," All");Delay400Ms();
  printx(0,1,"    ");Delay400Ms();
  printx(0,1," All");Delay400Ms();
  printx(0,1,"    ");Delay400Ms();
  printx(0,1," All");Delay400Ms();
  printx(0,1,"    ");Delay400Ms();
  LcdWriteCommand( 0x01, 1);            // 显示清屏
  printx(0,0,"Plese input: ");
  LcdWriteCommand( 0x0f, 1);            // 显示清屏
}

void init8279()
{
COM8279=0xD1;		              //清除命令字
while(COM8279&0x80);              //8279状态字读,准备好
COM8279=0x2A;                     //分频系数;
COM8279=0x01;
IE=0x84;
IT1=1;
}


void keyserver() interrupt 2
{

if((COM8279&0x0F)==0)return;
COM8279=0x40;//发读键盘命令字
DispOneChar(13,0,table[DAT8279&0x0F]);
COM8279=0xC2;
}



void main()
{ 
  Delay400Ms();						 //等待lcm进入工作状态
  LcdReset();						 //工作初始化
  init8279();
  testmem();
  while(1);
}

⌨️ 快捷键说明

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