<pre name="code" class="objc">#include <reg52.h>
#include <intrins.h>
#include <stdlib.h>
#include <nvhai.h>
#include <nvhai2.h>
#include <nvhai3.h>
#include <laoban.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit PSB=P3^1;
sbit EN=P3^4;
sbit RS=P3^5;
sbit RW=P3^6;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=111;y>0;y--);
}
void check_busy()
{
uchar temp;
RS=0;
RW=1;
EN=1;
delay(1);
temp=P0;
while((temp&0x80)==0x80);
EN=0;
}
void write_cmd(uchar cmd)
{
// check_busy();
EN=0;
RS=0;
RW=0;
EN=1;
P0=cmd;
delay(5);
EN=0;
}
void write_date(uchar date)
{
// check_busy();
EN=0;
RS=1;
RW=0;
EN=1;
P0=date;
delay(5);
EN=0;
}
void init()
{
wela=1;
P0=0xff;
wela=0;
dula=1;
P0=0x00;
dula=0;
PSB=1;
write_cmd(0x30);
write_cmd(0x0c);
write_cmd(0x01);
}
void clear()
{
uint x,y,k;
write_cmd(0x34);
for(k=0;k<2;k++)
{
for(x=0;x<32;x++)
{
write_cmd(0x80+x);
if(k==0)
{
write_cmd(0x80);
}
else
{
write_cmd(0x88);
}
for(y=0;y<8;y++)
{
write_date(0x00);
write_date(0x00);
}
}
}
write_cmd(0x36);
write_cmd(0x30);
}
void displaypic(uchar *p)
{
uint x=0,k,i,y;
write_cmd(0x34);
for(k=0;k<2;k++)
{
for(y=0;y<32;y++)
{
for(i=0;i<8;i++)
{
write_cmd(0x80+y);
if(k==0)
{
write_cmd(0x80+i);
}
else
{
write_cmd(0x88+i);
}
write_date(p[x]); //p[x]=nBitmapDot[x]
x++;
write_date(p[x]);
x++;
}
}
}
write_cmd(0x36);
}
void main()
{
init();
clear();
while(1)
{
displaypic(nvhai); //数组名代表数组第一个元素的地址
delay1(3000);
displaypic(nvhai2);
delay1(3000);
displaypic(nvhai3);
delay1(3000);
displaypic(laoban);
delay1(3000);
}
}
12864显示图片
最新推荐文章于 2020-02-20 15:55:19 发布