📄 st7920p.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 + -