技术资料

ST7920程序

时间:2018-09-11 来源:admin浏览次数:92

//***************************************************
//ST7920
//***************************************************
 
#include <reg52.h>
#include <intrins.h>
sbit RS=P3^0;
sbit RW=P3^7;
sbit E=P3^6;
#define Lcd_Bus P1;
 
//******************************
//时子程序
//*******************************
void delay (unsigned int t)
{
   unsigned int i,j;
   for (i=0;i<t;i++)
       for(j=0;j<10;j++);
}
 
//*********写命令***************
void write_com(unsigned char cmdcode)
{
   RS=0;
   RW=0;
   E=1;
   Lcd_Bus=cmdcode;
   E=0;
   delay(5);
}
//**********写数据******************
void write_data(unsigned char Dispdata)
{
   RS=1;
   RW=0;
   E=1;
   Lcd_Bus=Dispdata;
   E=0;
   delay(5);
}
//********LCD初始代********************
void lcdinit()
{
   delay(2000);
   write_com(0x30);
   delay(10);
   write_com(0x30);
   delay(5);
   write_com(0x0c);
   delay(10);
   write_com(0x01);
   delay(500);
   write_com(0x06);
   delay(1);
}
//*********显示图片**********************
void Disp_Img(unsigned char code *img)
{
   unsigned  int  j=0;
   unsigned  char x,y,i;
         for(i=0;i<9;i+=8)
for(y=0;y<32;y++)
for(x=0;y<32;y++)
   {
     write_com(0x36);
write_com(y+0x80);
write_com(x+0x80+i);
write_com(0x30);
write_data(img[j++]);
write_data(img[j++]);
   }
}
unsigned char code BMP[]={}; 
 
//*********主函数************************
main()
{
   lcdinit ();
   delay(10);
   while(1)
  {
     ceshi ();
delay(5000);
write_com(0x01);
delay(10);
Disp_Img(BMP);
delay(10000);
write_com(0x01);
delay(10);
   }
}
 
本文标签: