历史上的今天
今天是:2025年01月11日(星期六)
2018年01月11日 | 12864 LCD显示屏读写程序
2018-01-11 来源:eefocus
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit SCLK=P2^2;
sbit SID=P2^1;
sbit CS=P2^0;
void delay(uint v)/*延时*/
{
while(v!=0) v--;
}
void ser_in(uchar c)/*serial输入程序*/
{
uchar BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++)
{
if((c<
delay(1);
SCLK=1;
delay(3);
SCLK=0;
}
}
void wcode (uchar cmd)/*写命令*/
{
CS=0;
delay(10);
CS=1;
ser_in(0xf8);
ser_in(cmd&0xf0);
ser_in((cmd&0x0f)<<4);
}
void wdata(uchar dat)/*写数据*/
{
CS=0;
delay(10);
CS=1;
ser_in(0xfa);
ser_in(dat&0xf0);
ser_in((dat&0x0f)<<4);
}
/*void set_adr(uchar x,uchar y)/*设定行列*/
/*{
x=x+0x80;
y=y+0x40;
wcode(x);
wcode(y);
}*/
void set_adr_GB(uchar x)/*设定国标码地址*/
{
x=x+0x80;
wcode(x);
}
void clear(void)/*清除显示*/
{
wcode(0x01);
}
void set_function(uchar c)/*功能设定*/
{
c=c+0x30;
wcode(c);
}
void addr_zero(void)/*地址归零*/
{
wcode(0x02);
}
void dis_on_off(uchar c)/*显示状态*/
{
c=c+0x08;
wcode(c);
}
void setup(void)
{
wcode(0x01);
wcode(0x30);
wcode(0x02);
wcode(0x04);
wcode(0x0c);
wcode(0x01);
wcode(0x80);
}
void main(void)
{
uint GB,GB_l,GB_h;
uchar loop;
//PSB=0;
/*reset();*/
dis_on_off(0x07);
set_function(0x00);
setup();
while(1)
{
addr_zero();
clear();
set_adr_GB(0);
loop=0;
for(GB=0xb0a1;GB<=0xf7ff;GB++)
{
loop++;
if(loop==33){addr_zero();clear();set_adr_GB(0);loop=0;}
GB_h=(GB&0xff00)>>8;
GB_l=GB&0xff;
if(GB_l==0x00){GB_h=GB_h;GB_l=0xa1;GB=(GB_h<<8)+GB_l;}
wdata(GB_h);
wdata(GB_l);
delay(12000);
}
}
}
上一篇:蜂鸣器报警声C51程序
史海拾趣
|
被动红外探测器是一种在安防工程中使用极为普遍的一类探测器。但要其正常使用,既要防止漏报,又要减少误报,特别是如何将误报现象降到最低的限度是一个摆在广大工程设计人员面前的一个课题。要做到这一点,必须首先要了解被动红外探测器的一些基本 ...… 查看全部问答> |
|
本想用一用realview IDE里的一些高级功能,但到realveiw debugger,所支持的仿真器中没有什么ULINK之类的便宜东东,而支持的ULINK不知为何realview ice的仿真器这么贵,… 查看全部问答> |
|
因为使用到一款PCI5110的CAN卡,因为他们公司原来是在2.2下面编译的,现在我需要在2.0下面进行,出现驱动的.o文件格式识别不了,请教各位大哥有什么办法,还有,他们有帮忙修改了,格式是可以识别,但是打开CAN卡的时候,函数返回值都是正确的,但 ...… 查看全部问答> |
|
我用的是LPC1788 想实现以太网功能,PHY 模块用的是DP83848 使用easyWeb 历程修改为发送数据,定义一个数组大小为600字节向电脑发送以太网帧,用以太网调试助手接受数据 发现每次接收到4200个字节, 每次接收将定义的数据重复发送了7次 不知道怎么 ...… 查看全部问答> |
|
求高手点拨。 想要使用单通道连续采样,工作在最高采样率。但是用TI的例程实测,采样率都低太多。 时钟用ADC内部振荡器,约5MHz,2个采样周期+13个转换周期,计算下来应该4us左右采一个点。 但是,输入5kHz的正方波——100us高电平, 采下来高 ...… 查看全部问答> |




