7-1.c

来自「这是HOLTEK HT 48系列单片机应用实例」· C语言 代码 · 共 101 行

C
101
字号
unsigned char _pa  @0x12;
unsigned char _pac @0x13;
unsigned char _pb  @0x14;
unsigned char _pbc @0x15;
unsigned char _pc  @0x16;
unsigned char _pcc @0x17;
#define _LCD_DATA      _pa
#define _LCD_DATA_CTRL _pac
#define _LCD_CTRL      _pc
#define _LCD_CTRL_CTRL _pcc
#define _RS _16_0
#define _RW _16_1
#define _E _16_2
#define _LCD_CTRL_RS   _17_0
#define _LCD_CTRL_RW   _17_1
#define _LCD_CTRL_E    _17_2
#define _BUSY_TEST     _12_7
const unsigned char row_1[17]={0x4c,0x43,0x44,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x21,0x21,0x20,0x20,0x20,0x20,0x00};
const unsigned char row_2[17]={0x54,0x65,0x73,0x74,0x20,0x4f,0x4b,0x20,0x21,0x21,0x20,0x20,0x20,0x20,0x20,0x20,0x00};
unsigned char ACCregister;
void delay()
{
 unsigned long int i;
 for(i=0;i<20000;i++);
}
void initial()
{
 write_instruction(0x01);
 write_instruction(0x06);
 write_instruction(0x0f);
 write_instruction(0x38);
 delay();
}
void write_LCDDATA()
{
 busy();
 _LCD_CTRL=0x01;
 _LCD_DATA=ACCregister;
 _E=1;
 _E=0;
}
void busy()
{
 _LCD_DATA_CTRL=0x80;
 _LCD_CTRL=0x02;
 _E=1;
 while(_BUSY_TEST == 1);
 _LCD_DATA_CTRL=0x00;
}
void  write_instruction(char c)
{
 busy();
 _LCD_DATA=0x00;
 _LCD_CTRL=0x00;
 _LCD_DATA=c;
 _E=1;

 _E=0;
}
void main()
{
 unsigned int k,l;
 _LCD_DATA_CTRL=0x00;
 _LCD_DATA=0x00;
 _LCD_CTRL_CTRL=0x00;
 initial();
 //display_1
 write_instruction(0x80);
 k=0;
 for(;;)
 {
  l=row_1[k];
  if(!(l == 0x00))
  {
  ACCregister=row_1[k];
  write_LCDDATA();
  k=k+1;
  }
  else
  {
   break;
  }
 }
 k=0;
 write_instruction(0xc0);
 for(;;)
 {
  l=row_2[k];
  if(!(l == 0x00))
  {
  ACCregister=row_2[k];
  write_LCDDATA();
  k=k+1;
  }
  else
  {
   break;
  }
 }
}

⌨️ 快捷键说明

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