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

📄 st7920p.c

📁 st7920
💻 C
字号:
//===== 51系列单片机, 12M晶振 ======
#include <reg51.h>
#include <absacc.h>
#include <ctype.h>
#include <intrins.h>
#include <setjmp.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
#define xchar unsigned char code
sbit  RS   = P3^2;
sbit  RRW  = P3^3;
sbit  E    = P3^4;
sbit  BF   = ACC^7;
//---------------------
void delayms(uint v)
{
  while(v!=0)v--;
}
void delay(uint n)
{ 
 uint m;
  while(n-->0)
  for(m=0;m<1250;m++)
  { };
}
void check_busy()
{ 
 E=0;RRW=1;RS=0;
  do 
 {  
  P0=0xff;E=1;delayms(2);ACC=P0;E=0;
  }  
while(BF==1);
}
void wcomd(uchar cdat)
{
 check_busy();
  E=0;RRW=0;RS=0;P0=cdat;E=1;delayms(2);E=0;
}
void wdata(uchar ddat)
{ 
 check_busy();
  E=0;RRW=0;RS=1;P0=ddat;E=1;delayms(2);E=0;
}
void initial()
{
 wcomd(0x38);  delayms(60);
  wcomd(0x06);  delayms(60);
  wcomd(0x01);  delay(2); 
 wcomd(0x0c);  delayms(60);
}
void disp_all(uchar dat1,uchar dat2)
{ 
uchar m=0,n=0;
  wcomd(0x3c);
  wcomd(0x03);  
wcomd(0x36);  
for(m=0;m<8;m++)
  {   
wcomd(0x80+2*m);wcomd(0x80+n);
    for(n=0;n<16;n++)  
  { wdata(dat1);}   
 for(n=0;n<16;n++)  
  { wdata(dat1);}   
 wcomd(0x80+2*m+1);wcomd(0x80+n);   
 for(n=0;n<16;n++)   
 { wdata(dat2);}   
 for(n=0;n<16;n++)  
  { wdata(dat2);}  
} 
 for(m=0;m<8;m++)
  {   
 wcomd(0x90+2*m);wcomd(0x90+n); 
  for(n=0;n<16;n++)   
 { wdata(dat1);} 
   for(n=0;n<16;n++)  
  { wdata(dat1);}   
 wcomd(0x90+2*m+1);wcomd(0x90+n);
   for(n=0;n<16;n++)   
 { wdata(dat2);} 
  for(n=0;n<16;n++)  
 { wdata(dat2);}
 }
}
void disp_hz(uchar hdat1,uchar hdat2,uchar hdat3,uchar hdat4)
{ 
 uchar m=0,n=0;
  wcomd(0x80);  
for(n=0;n<16;n++) 
 { wdata(hdat1);wdata(hdat2+n);} 
 wcomd(0x90); 
 for(n=0;n<16;n++) 
 { wdata(hdat3);wdata(hdat4+n);}
}
///////////////////////
void main()
{ 
 delay(20);
  while(1) 
 {   
 initial();
	disp_all(0xff,0xff);delay(100);
	disp_all(0x00,0x00);delay(100);
disp_all(0xaa,0x55);delay(100);  
disp_all(0x55,0xaa);delay(100);   
disp_all(0xaa,0xaa);delay(100);   
disp_all(0x55,0x55);delay(100);	
initial();	
disp_hz(0xa3,0xb0,0xa3,0xc0); delay(100);
	disp_hz(0xb0,0xa1,0xb0,0xb1); delay(100);
	disp_hz(0xb0,0xc1,0xb0,0xd1); delay(100);	
  }
}

⌨️ 快捷键说明

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