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

📄 lcd.c

📁 介绍基于液晶T6963C控制器的ARM程序实现
💻 C
字号:
#include"config.h"
#define WR  1<<8
#define RD  1<<9
#define CE  1<<10
#define IOCON (WR|RD|CE)
volatile uint8 LCDX,LCDY;
void delay(uint32 dly)
{
 uint32 i;
 while(--dly)
 {for(i=0;i<5000;i++);
 }
 }
 
void checkbusy(void)
{
 uint8 temp;
 IO0DIR=0x700;
 while(1)
 {
  IO0SET=CE;
  IO0CLR=RD;
  temp=IO0PIN;
  IO0SET=RD;
  if((temp&0x03)==0x03)break;
  }
 IO0DIR=0x7ff;
 }
 
 void wr_data(uint8 data1,uint8 data2,uint8 cmd,uint8 num)
 {
  uint8 temp;
  temp=num;
  if(temp==2)
  {
   checkbusy();
   IO0CLR=CE;
   IO0CLR=0xff;
   IO0SET=data1;
   IO0CLR=WR;
   IO0SET=WR;
   }
  if(temp==2|temp==1)
  { checkbusy();
    IO0CLR=CE;
    IO0CLR=0xff;
    IO0SET=data2;
    IO0CLR=WR;
    IO0SET=WR;
   }
  checkbusy();
  IO0SET=CE;
  IO0CLR=0xff;
  IO0SET=cmd;
  IO0CLR=WR;
  IO0SET=WR;
  }
 void lcd_init(void)
 {
  PINSEL0=0x00000000;
  IO0DIR=0x7ff;
  IO0SET=0x7ff;
  wr_data(0x00,0x00,0x42,2);
  wr_data(0x20,0x00,0x43,2);
  wr_data(0x00,0x00,0x80,0);
  wr_data(0x00,0x00,0x98,0);
  }
  
void xhanzi(uint8 x,uint8 y,uint8 code,uint8 kk,uint8 const *str)
{
 uint16 i=0,j=0;
 uint16 temp ;
 uint8 addrh,addrl;
 LCDX=x;
 LCDY=y;
 temp=(LCDX*32)+LCDY;
 addrh=temp/256;
 addrl=temp%256;
 if(kk==0)  {i=code*32;}
 else       {i=code*16;}
 
 for(j=0;j<16;j++)
 {
  wr_data(addrl,addrh,0x24,2);
  wr_data(0,str[i],0xC0,1);
  i++;
  if(kk==0)
 { wr_data(0,str[i],0xC0,1);
  i++;
  }
  LCDX+=1;
  temp=(LCDX*32)+LCDY;
  addrh=temp/256;
  addrl=temp%256;
  } 
 }
 
 void xinghao(void)
 {
  uint8 i=0;
  for(i=0;i<20;i++)
  {
   xhanzi(17,i,0,1,TESHU);
   }
  }

⌨️ 快捷键说明

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