导航:首页 > 操作系统 > 51单片机驱动12864

51单片机驱动12864

发布时间:2023-01-02 07:26:08

㈠ 51单片机最小系统板上怎么连接12864屏幕啊。。有些插孔没有注明

最小系统板上,都留出单片机的全部引脚了,可以随便接到任一个引脚。而LCD12864与单片机的连接是可以随便接的。只要能知道是单片机的哪个l/O脚,与LCD的什么脚连接了就行的,程序中就能用sbit 定义引脚了。

㈡ 求51单片机驱动液晶12864的程序,要求是串口方式。程序里不要有绘图反白之类的,只要能显示汉字就行。

绝对好用的串口程序
sbit SID=P2^1; //12864数据
sbit SCLK=P2^2; //12864时钟
init()
{
write(0,0x30); //8 位接口,基本指令集
write(0,0x0c); //显示打开,光标关,反白关
write(0,0x01); //清屏,将DDRAM的地址计数器归零
delaynms(10);
write(0,0x80); for(i=0;i<16;i++) write(1,datas11[i]);
write(0,0x90); for(i=0;i<16;i++) write(1,datas2[i]);
write(0,0x88); for(i=0;i<16;i++) write(1,datas3[i]);
write(0,0x98); for(i=0;i<16;i++) write(1,datas4[i]);
}
/**********************12864*************************/
void delaynms(unsigned int di) //延时
{
unsigned int da,db;
for(da=0;da<di;da++)
for(db=0;db<10;db++);
}
void sendbyte(unsigned char bbyte) //发送一个字节
{
unsigned char i;
for(i=0;i<8;i++)
{
SID=bbyte&0x80; //取出最高位
SCLK=1;
SCLK=0;
bbyte<<=1; //左移
}
}
void write(bit start, unsigned char ddata) //写指令或数据
{
unsigned char start_data,Hdata,Ldata;
if(start==0) start_data=0xf8; //写指令
else start_data=0xfa; //写数据

Hdata=ddata&0xf0; //取高四位
Ldata=(ddata<<4)&0xf0; //取低四位
sendbyte(start_data); //发送起始信号
delaynms(5); //延时是必须的
sendbyte(Hdata); //发送高四位
delaynms(1); //延时是必须的
sendbyte(Ldata); //发送低四位
delaynms(1); //延时是必须的
}
/*void lcdinit(void) //初始化LCD
{
delaynms(10); //启动等待,等LCM讲入工作状态
//PSB=0; ; //串口驱动模式
// RESET=0; delaynms(1); RESET=1; // 复位LCD
// CS=1;
write(0,0x30); //8 位接口,基本指令集
write(0,0x0c); //显示打开,光标关,反白关
write(0,0x01); //清屏,将DDRAM的地址计数器归零
}*/

㈢ 51单片机双机串口通信 一个单片机控制12864显示程序模板

我这里只有RS-485在单片机多机通信中的应用的,不过读懂程序就可以控制12864,不是很难,我同学都有做成功。

1、RS-485在单片机多机通信中的应用

主机程序

#include"reg52.h"

#define uint unsigned int

#define uchar unsigned char

sbit p10=P1^0;

sbit p11=P1^1;

void main(void)

{

uchar i=0;

TMOD=0X20;//设置定时器1工作模式2

TH1=0XFF;

TL1=0XFF; //这里是假设晶振是11。0592的 波特率设置57600

SCON=0X40; //设置方式1 只能发送 不能接受

PCON=0X80;

TR1=1; // 启动T1

while(1)

{

if(p10==0)

{

SBUF=0x11; //次LED单片机的针头

while(TI==0);

TI=0;

while(p10==0);

}

if(p11==0)

{

SBUF=0x12; //次闪单片机的针头

while(TI==0);

TI=0;

while(p11==0);

}

}


}

从机2

#include"reg51.h"

#define uint unsigned int

#define uchar unsigned char

bit flag=0;

sbit p20=P2^0;

void main(void)

{ uchar i=0;

TMOD=0X20;

TH1=0XFF;

TL1=0XFF; //这里晶振频率同主机是11。0592的波特率设置57600

SCON=0X50; //设置方式1 只能发送 不能接受

PCON=0X80;

TR1=1; // 启动T1

while(1)

{

while(RI==0);//采用查询的方法判断时候接受到数据

RI=0;

i=SBUF;

if(i==0x12)

p20=~p20;

i=0x00;

}

}

从机1

RS BIT P1.7

RW BIT P1.6

E BIT P1.5

KOU EQU P2

ORG 0030H

LOP: MOV SP,#5fH

MOV TMOD,#20H

MOV 40H,#00H

MOV TH1,#0FFH

MOV TL1,#0FFH

MOV SCON,#50H

MOV PCON,#80H

SETB TR1

ACALL LCD_MODEL ;初始化的模块

MOV KOU,#81H

ACALL READY

MOV DPTR,#TAB

ACALL WRITE ;显示的模块

MOV P2,#0C1H

ACALL READY

MOV DPTR,#TAB1

ACALL WRITE

xt: jnb RI,$

CLR RI

x: MOV A,SBUF

CJNE A,#11H,rel

INC 40H

MOV A,40H

CJNE A,#10,XTG

MOV 40H,#0

XTG: MOV P2,#0C9H

ACALL READY

MOV DPTR,#TAB2

ACALL WRITEx

AJMP xt

rel: ajmp xt

WRITEx:MOV A,40H

MOVC A,@A+DPTR

MOV KOU,A

ACALL WRITE1

RET

WRITE: MOV A,#00H

MOVC A,@A+DPTR

CJNE A,#0FFH,s

AJMP EXIT

S: MOV KOU,A

ACALL WRITE1

INC DPTR

AJMP WRITE

EXIT: RET

WRITE1:SETB RS

CLR RW

CLR E

ACALL DELAY

SETB E

RET

LCD_MODEL: MOV KOU,#01H

ACALL READY

MOV KOU,#03H

ACALL READY

MOV KOU,#00000110B

ACALL READY

MOV KOU,#00001100B

ACALL READY

MOV KOU,#38H

ACALL READY

RET

READY: CLR RS

CLR RW

CLR E

ACALL DELAY

SETB E

RET

DELAY: MOV KOU,#0FFH

CLR RS

SETB RW

CLR E

NOP

SETB E

JB KOU.7,DELAY

RET

TAB: DB "Proteus 7.1" ,0FFH ;显示字库

TAB1: DB "Count:" ,0FFH

TAB2: DB "0123456789"

END

仿真图

㈣ 51单片机编写12864

你自己写错了函数名 前后不一致 是display不是dispaly。。。最后的main里面

㈤ 最近要做一个51单片机SD卡的读写用12864显示!哪位大神能说下原理,怎么才能把SD卡的东西显示到12864上!

本SD卡读写系统中的接口电路采用的STCl2C5A60S2单片机控制,并通过软件编程实现SPI模式的数据传输(包括串行时钟、数据的输入和输出)。在SPI模式下。单片机与SD卡的连接主要有四根线(包括时钟线,两根数据传输线和一根片选线),
通常,SD卡有两种总线模式,即SD总线模式和SPI总线模式。其中SD总线模式采用四条数据线并行传输数据,数据传输速率高,但是传输协议复杂,只有少数单片机才提供有此接口,而用软件方法模拟SD总线又比较繁琐,会降低SD卡的数据传输速率;而SPI总线模式只有一条数据传输线。传输协议简单,易于实现,虽然数据传输速率较低,但绝大多数中高档单片机都提供有SPI总线,同时由于其易于用软件方法来模拟。因此,本设计采用SPI总线模式。
SPI总线技术是MOTOROIA公司推出的一种同步串行总线接口,是目前单片机应用系统中最常用的几种串行扩展接口之一。 SPI总线主要通过三根线进行数据传输,包括同步时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输人数据线MOSI。另外,它还有一条低电平有效的从机片选线CS,片选信号以及同步时钟脉冲由主机提供。SPI总线模式的数据是以字节为单位进行传输的,主机与SD卡的各种通信都由主机控制。
软件设计
SD卡的初始化
SD卡从上电到对SD卡进行正确的读写操作,往往都需要一个上电初始化的过程。SD卡上电后,主机必须先向SD卡发送74个时钟周期,以完成SD卡的上电过程。通常SD卡上电后会自动进入SD总线模式,并在SD总线模式下向SD卡发送复位命令(CMD0)。
SD卡的读写
SD卡的数据传输主要通过块读写来实现。块长度默认为512 KB。当RAM中已存放由模数转换模块传来的512 KB数据时,单片机便向SD卡写入此块数据。块读取时,可发送命令CMDl7,接收到的应答信号为0x00。这样就可以直接接收数据了,接收到的数据的第1个字节为数据令牌0xfe,后面的为接收到的数据,当输出口变为高电平时。表明读取操作完成。

装数据读出以后,通过单片机处理,把结果在液晶上显示。

阅读全文

与51单片机驱动12864相关的资料

热点内容
什么叫源码编译器 浏览:227
加密数字货币的市场 浏览:245
linux切换数据库的命令是 浏览:944
武汉车子解压可以自己办吗 浏览:169
代理服务器有什么功效 浏览:755
我是华为手机快手app在哪里找 浏览:812
日语中的命令行介绍 浏览:939
中央编译局比较政治学 浏览:543
管道计算app中公式如何看到 浏览:864
pythonsocket下载 浏览:822
查看所有进程的命令 浏览:3
数码摄影圣经pdf 浏览:787
苹果耳机照片怎么加密 浏览:653
电脑保存命令 浏览:786
怎么安装苏宁推客app 浏览:389
田英章7000常用字pdf 浏览:358
python爬虫起点 浏览:403
三维图常见命令 浏览:677
美的压缩机保修几年 浏览:136
linuxnfs服务器配置 浏览:85