单片机串口1602lcd显示程序(单片机串口协议)

介绍

串口是一种用于在计算机和外设间传输数据的一种通信协议,很多单片机都具有可编程的串口或UART。在单片机中,我们可以使用串口来与外部设备进行通信,如鼠标、键盘、传感器等。为了更加方便地查看单片机与外部设备之间的通信数据,我们可以将串口数据通过1602 LCD屏幕来显示。

具体步骤

以下是实现单片机串口1602LCD显示的具体步骤:

  1. 设置串口通信参数,如波特率、校验位、数据位等。
  2. 初始化LCD屏幕,设置LCD显示模式、位置等参数。
  3. 通过串口接收数据,并将数据发送到LCD屏幕上。

需要注意的是,串口接收数据的时候需要等待数据的到来,并判断接收到的数据是否是正确的数据。如果接收到了错误的数据,则需要重新接收。

单片机串口1602lcd显示程序(单片机串口协议)

实例

下面是一个实现单片机串口1602LCD显示的示例程序:

```
#include
#include
#include

#define LCD_RS P2_0
#define LCD_RW P2_1
#define LCD_E P2_2
#define LCD_DATA P2

sbit TX=P3^1;
sbit RX=P3^0;
sfr IAP_CONTR=0xC7;

unsigned char TxBuf[16];
unsigned char RxBuf[16];

unsigned char idata DisplayData[32];
bit bTXbSYN=0;

void InitUART(long int baud)
{
TMOD |= 0x20;
TH1 = 256 - (11059200/12/32)/baud;
TL1 = TH1;
TR1 = 1;
SM0 = 0;
SM1 = 1;
EA = 1;
ES = 1;
}

void SendData(char c)
{
SBUF = c;
while(TI == 0);
TI = 0;
}

void SendString(char *s)
{
while(*s) SendData(*s++);
}

void InitLCD()
{
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 0;
LCD_DATA = 0x38;
LCD_E = 1;
delay(10);
LCD_E = 0;
LCD_DATA = 0x0c;
LCD_E = 1;
delay(10);
LCD_E = 0;
LCD_DATA = 0x06;
LCD_E = 1;
delay(10);
LCD_E = 0;
}

void SetCursor(unsigned char x, unsigned char y)
{
unsigned char addr;
addr = (y == 0 ? 0x80 : 0xC0) + x;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 0;
LCD_DATA = addr;
LCD_E = 1;
delay(10);
LCD_E = 0;
}

void DisplayString(char *str)
{
unsigned char i, j, k;
k = 0;
for(i = 0; i < strlen(str); i++)
{
DisplayData[k++] = str[i];
if(k == 16)
{
SetCursor(0, 0);
for(j = 0; j < 16; j++)
{
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 0;
LCD_DATA = DisplayData[j];
LCD_E = 1;
delay(10);
LCD_E = 0;
}
k = 0;
}
}
SetCursor(0, 0);
for(j = 0; j < k; j++)
{
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 0;
LCD_DATA = DisplayData[j];
LCD_E = 1;
delay(10);
LCD_E = 0;
}
}

void main()
{
unsigned char i = 0;
InitUART(9600);
InitLCD();
DisplayString("Ready...n");
while(1)
{
if(RI == 1)
{
RI = 0;
RxBuf[i++] = SBUF;
if(i == 16)
{
DisplayString(RxBuf);
i = 0;
}
}
}
}
```

该示例程序中,我们定义了一个TxBuf数组和一个RxBuf数组,用于存储发送和接收的数据。然后初始化了串口和LCD屏幕,并在主函数中不断循环接收串口数据,并通过DisplayString函数将数据显示在LCD屏幕上。需要注意的是,最后要将接收到的数据用DisplayString函数显示出来。

通过学习单片机串口1602LCD显示的实现方法,我们可以更加方便地观察单片机与外部设备之间的数据传输情况,为单片机的开发提供了更加便利的条件。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/mcuayb.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月25日 下午10:21
下一篇 2023年4月25日 下午10:22

猜你喜欢