串口通信接收LCD1602显示Word格式文档下载.docx

上传人:b****2 文档编号:1197183 上传时间:2023-04-30 格式:DOCX 页数:9 大小:34.35KB
下载 相关 举报
串口通信接收LCD1602显示Word格式文档下载.docx_第1页
第1页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第2页
第2页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第3页
第3页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第4页
第4页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第5页
第5页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第6页
第6页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第7页
第7页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第8页
第8页 / 共9页
串口通信接收LCD1602显示Word格式文档下载.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

串口通信接收LCD1602显示Word格式文档下载.docx

《串口通信接收LCD1602显示Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《串口通信接收LCD1602显示Word格式文档下载.docx(9页珍藏版)》请在冰点文库上搜索。

串口通信接收LCD1602显示Word格式文档下载.docx

#include<

reg52.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

/*LED_Buffer[16]用来存储串口发送的数据,com_dat用来记录串口发送的个数*/ucharLED_Buffer[16],*q,com_dat;

//从串口接收的数据

//这三个引脚参考资料

sbitE=P2^7;

//1602使能引脚

sbitRW=P2^6;

//1602读写引脚

sbitRS=P2^5;

//1602数据/命令选择引脚

*名称:

Delay(uintdel)

*功能:

延时10ms*del

*输入:

*输出:

voidDelay(uintdel)

{

uinti,j;

for(i=0;

i<

del;

i++)

for(j=0;

j<

1827;

j++)

;

}

delay()

延时,延时时间大概为140US。

voiddelay()

inti,j;

=10;

=2;

Convert(ucharIn_Date)*功能:

因为电路设计时,P0.0--P0.7接法刚好了资料中的相反,所以设计该函数。

*输入:

1602资料上的值

送到1602的值

ucharConvert(ucharIn_Date){

uchari,Out_Date=0,temp=0;

8;

temp=(In_Date>

>

i)&

0x01;

Out_Date|=(temp<

<

(7-i));

returnOut_Date;

enable(uchardel)

1602命令函数

输入的命令值

voidenable(uchardel)

P0=Convert(del);

RS=0;

RW=0;

E=0;

delay();

E=1;

write(uchardel)

1602写数据函数

需要写入1602的数据

voidwrite(uchardel)

RS=1;

L1602_init()

1602初始化,请参考1602的资料

voidL1602_init(void)

enable(0x01);

enable(0x38);

enable(0x0c);

enable(0x06);

enable(0xd0);

L1602_char(ucharhang,ucharlie,charsign)*功能:

改变液晶中某位的值,如果要让第一行,第五个字符显示"

b"

,调用该函数如下

L1602_char(1,5,'

b'

行,列,需要输入1602的数据

voidL1602_char(ucharhang,ucharlie,charsign)

uchara;

if(hang==1)a=0x80;

if(hang==2)a=0xc0;

a=a+lie-1;

enable(a);

write(sign);

L1602_string(ucharhang,ucharlie,uchar*p)

改变液晶中某位的值,如果要让第一行,第五个字符开始显示"

abcdef"

L1602_string(1,5,"

abcdef;

"

)*输入:

voidL1602_string(ucharhang,ucharlie,uchar*p)

while

(1)

if(*p=='

\0'

)break;

write(*p);

p++;

Com_Int()

串口中断子函数

voidCom_Int(void)interrupt4{

EA=0;

if(RI==1)//当硬件接收到一个数据时,RI会置位

LED_Buffer[com_dat]=SBUF;

//把从串口读出的数存到数组

RI=0;

com_dat++;

if(com_dat==16)com_dat=0;

//当com_dat=16时,清0,防止数组溢出

EA=1;

Com_Init()

串口初始化,晶振11.0592,波特率9600,使能了串口中断*输入:

voidCom_Init(void)

TMOD=0x20;

//定时器工作在定时器1的方式2

PCON=0x00;

//不倍频

SCON=0x50;

//串口工作在方式1,并且启动串行接收

TH1=0xFd;

//设置波特率9600

TL1=0xFd;

TR1=1;

//启动定时器1

ES=1;

//开串口中断

//开总中断

Main()

主函数

voidMain()

uchari=0,com_dat=0;

L1602_init();

Delay(100);

Com_Init();

P2=0x00;

q=LED_Buffer;

L1602_string(1,1,q);

com_dat=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2