使用11.0592MHz晶振实现串口到LCD1602数据显示

需积分: 50 35 下载量 158 浏览量 更新于2024-09-12 3 收藏 159KB DOC 举报
"该文主要介绍了一个通过串口通信接收数据并在LCD1602显示屏上显示的实验程序。程序使用11.0592MHz的晶振,设置波特率为9600,以确保数据传输的准确性。" 本文涉及的知识点包括: 1. **串口通信**: - 串口通信是一种常见的设备间数据传输方式,通常使用TTL电平或RS-232标准。在这个实例中,系统从串口接收数据,并将其显示在LCD1602屏幕上。 - 波特率是衡量串口通信速度的参数,表示每秒传输的位数。此处设置为9600bps,意味着每秒可以传输9600位。 2. **晶振**: - 晶振是微控制器中的时钟源,用于提供精确的时间基准。在这个程序中,使用了11.0592MHz的晶振,因为这个频率与9600波特率配合时,能提供更准确的定时,避免因误差导致的通信问题。如果使用12MHz晶振,由于计算出的波特率会有8%的误差,可能导致串口接收不正常。 3. **LCD1602显示屏**: - LCD1602是一款常见的字符型液晶显示器,具有两行16个字符的显示能力。在这个程序中,通过控制E、RW和RS三个引脚来与LCD进行交互。 - `sbitE=P2^7`、`sbitRW=P2^6`和`sbitRS=P2^5`定义了与LCD1602连接的P2口的特定位,分别代表使能引脚、读写引脚和数据/命令选择引脚。 4. **数据处理**: - 接收到的数据存储在`uchar LED_Buffer[16]`数组中,变量`com_dat`记录了接收到的数据个数。当数据超过16个字符时,LCD的第一行会被新数据覆盖。 5. **延时函数**: - `Delay(uint del)`函数实现了约10ms的延时,通过两个嵌套循环实现。这在串口通信和LCD显示操作中经常用到,以确保足够的信号稳定时间。 - 另一个`delay()`函数提供了约140US的短延时,可能用于LCD的控制信号间隔。 6. **C语言编程**: - 在C语言程序中,`#include`指令用于引入头文件,如`<reg52.h>`和`<intrins.h>`,它们包含了特定微控制器寄存器的定义和其他内联函数。 - 使用`uchar`和`uint`定义无符号字符和无符号整数类型,以节省内存并优化处理速度。 这个程序是一个基础的嵌入式系统应用,演示了如何利用串口通信和LCD1602显示器进行数据交互。对于初学者,这是一个很好的实践项目,可以了解串口通信协议、LCD显示原理以及微控制器的编程基础知识。