基于DSP和单片机通信的液晶显示设计

发布者:hylh2008最新更新时间:2011-10-11 关键字:单片机通信  液晶显示 手机看文章 扫描二维码
随时随地手机看文章

  引言

  随着计算机和信息技术的飞速发展, 数字信号处理技术得到了迅速的发展。数字控制使得电力电子变换控制更为灵活, 在CPU 计算速度允许的情况下, 可实现模拟控制难以做到的复杂控制算法, 设计者可以根据自己的系统需求, 方便地更改控制器参数, 即便是在控制对象改变的情况下, 也无需对控制器硬件做修改, 只要改变某些软件参数即可, 从而大大增强了系统的兼容性。随着DSP 的应用逐渐普及, 用DSP 取代模拟电路中的专用PWM 集成电路, 已广泛应用于UPS 和逆变器控制中。
 

  作为智能化设备, 液晶屏和键盘等人机交互装置是数字化电源系统所必不可少的。而DSP 的工作频率较高, 读写周期很短, 主要用于处理实时性要求苛刻、算法复杂的关键性任务, 例如对功率开关管的控制, 数据采集、分析、处理等, 而液晶显示和键盘扫描的任务可由普通的51 系列单片机来完成, 而DSP 和51 单片机间的数据交流可采用异步通信方式, 即系统采用双CPU结构。

  1   系统的结构原理

  本文中所采用的DSP 和单片机型号分别是T I 公司的T MS320F2812 和MCS51 系列。在系统中, DSP实现与单片机的串口异步通信, 单片机将用户的原始设置数据传输到DSP, 而DSP 将采集到的实时数据信息返回给单片机, 单片机不断刷新液晶的显示。系统的基本结构如图1 所示。

 

图1  系统基本结构框图

  1. 1   串口介绍

  本文中DSP 是基于串行通信接口模块SCI 实现通信的。SCI 支持CPU 与其他使用标准格式的异步外设之间的数据通信。SCI 仅需要2 根数据线进行数据传输, 虽然传输速度不快, 但已经能满足一般的通信要求,而且外围接口电路非常简单。传输的数据长度在一定范围内也是可变的。

  MCS51 系列单片机内部具有一个全双工串行口,该串行口有4 种工作方式, 可以通过软件进行设置, 由片内定时/ 计数器产生波特率。串行口的接收和发送数据均可以触发中断, 并含有接收、发送缓冲器SBUF, 二者共用一个地址。

  1. 2   单片机与DSP 的通信接口电路

  SCI 接口分为RXD 和TXD 两个管脚, 传统的2 个设备异步通信采用RS 232 或RS 485 的形式, 须另配置对应的RS 232 和RS 485 驱动芯片。而本文所提及的采用双CPU 结构的数字化电源设备, DSP 和51 单片机位于同一设备内, 距离较短, 可省去RS 232 和RS 485驱动芯片, 采用2 个CPU 的RXD 和TXD 直接交叉连接即可。但需注意的是, 由于DSP 的工作电压为3. 3 V, 而MCS51 单片机的工作电压为5 V, 因此二者之间的通信电路需要进行电平转换, 如图2 所示。

 

图2   电平转换电路

  在该电路中, 单片机的TXD 端电压高于DSP 的RXD 端, 故仅需要使用分压电路, 计算出合适的阻值即可满足要求, 而从DSP 向单片机传送数据时, 需要提升电平, 因而采用了光耦电路, 将电平提升到单片机的工作电平。这样就能以简单的电路实现电平的转换。需要注意的是, 所采用的光耦速率要高于数据传输速率,这样才能保证数据准确高效的传输, 以免出现数据丢失。[page]

1. 3   单片机与DSP通信的软件实现

  在异步通信中必须先规定3 件事: 一是字符格式,即传输的每一帧数据的格式; 二是通信双方要设置为相同的波特率, 且该波特率能适应双方的时钟频率; 三是通信双方要有约定的通信协议, 也就是双方要互相确认后才能传输数据。

  在本设计中, DSP 和单片机采用的数据帧格式是1 位起始位, 8 位数据位和1 位停止位。由于数据包采用校验和的方式进行校验, 因而在数据帧格式中没有设置奇偶校验位。因而MCS51 单片机应设置工作在串口方式1 状态下, 此时串行口为8 位异步通信接口。为了保证数据传输具有较高的速率, 同时又有比较低的传输误码率, 因而选择波特率为9600 b/ s。通过相应的波特率设置计算公式计算出DSP 和单片机的初始化时寄存器的初值, 即可完成设置。这样就保证了通信双方帧格式的统一和波特率的统一, 从而使数据通信正确、可靠[。

  DSP 的串口初始化设置程序如下:

  EALLOW;

  GpioMuxReg s. GPGMUX. bit. SCIRXDB_GPIOG5 = 1;/ / 设置SCI??RX 引脚外设功能

  GpioMuxReg s. GPGMUX. bit. SCIT XDB_GPIOG4 = 1;/ / 设置SCI??TX 引脚外设功能EDIS;

  ScibRegs. SCICCR. all = 0x07; / / 1 位停止位, 无奇偶校验,8 位字符长度, 使用空闲线模式协议

  ScibRegs. SCICTL1. all = 0x 03;/ / 使能发送和接收缓冲

  ScibRegs. SCICTL2. all= 0x 02;/ / 使能RXRDY 中断, 禁止T XRDY 中断

  ScibRegs. SCIPRI. all = 0x0000;/ / 禁止接收错误中断和休眠模式

  ScibRegs. SCIH BAUD= 0x01;/ / LSPCLK = 37. 5 MH z, 波特率设为9 600 b/ s

  ScibRegs. SCILBAUD = 0xE1; ??

  ScibRegs. SCICTL1. all = 0x 0023;/ / 重新使能SCI

  51 单片机串口初始化程序如下:

  TMOD= 0x 21;/ / 定时器1 工作在方式2, 用于产生0 串口的波特率

  SCON= 0x 50;/ / 串行口0 工作在方式1, 允许接收, 清标志位

  TH 0= 0xfd; / / 晶振12 MH z, 设置波特率为9 600 b/ s

  TH 1= 0xfd; PS= 1; / / 串口中断优先

  PCON| = 0x 00; / / 波特率不加倍

  TR1= 1;

  在本设计中, 采用自己规定的通信协议, 首先DSP发送出握手信号, C51 收到握手信号后, 进入中断子程序, 判断握手信号是否正确, 若正确才握手成功, 开始接收数据包, 接收完成后对数据进行和校验, 正确后刷新液晶的显示数据存储区; 若错误则放弃本次数据, 并将接收数据存储区清零, 等待下一次通信。其程序流程图如图3 所示。

 

图3   DSP 和单片机的通信程序流程图

 

DSP 向单片机的定时发送程序如下:

  ScibRegs. SCITXBUF = Sci_VarRx [ i] ;/ / 将数据包写入发送缓冲区

  i+ + ; / / 依次发送数据包

  if( i= = 12) i= 0; / / 重新计数

  IER | = M_INT1; / / 清除中断标志位

  EINT;

  PieCtr lReg s. PIEACK. all = PIEACK_GROUP1;

  51 单片机串口中断服务程序如下:

  Rx0_Buffer[ Rx0_Ptr] = SBUF; / / 读取数据到接收数组

  RI= 0; / / 清除接收标志位

  Rx0_Ptr+ + ; / / 计数加1

  Rx_flag= 1;

 

 

关键字:单片机通信  液晶显示 引用地址:基于DSP和单片机通信的液晶显示设计

上一篇:基于单片机的智能救援机器人小车设计
下一篇:基于单片机的轴类零件温度测量系统设计

推荐阅读最新更新时间:2024-03-16 12:43

PIC16F877A单片机PPM调制的激光通信Proteus仿真及源程序
软件: MPLAB X IDE v4.15编译 proteus 8.6仿真. 1、仿真电路图; 2、发送和接收源程序加注释。 请看注释。 原理: 1)ADC读取并用led显示ADC读数,并通过usart进行输出。 2)通过PPM原理进行通讯传输到另外一个单片机,LED显示接收的值。 具体请看附件 希望大家顶一下。 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 1、发送模块:读取ADC数值,LED显示10位ADC值。并通过PPM发送。 2、接收模块:PPM接收到的数据。LED显示接收的ADC值(10bits) 基于PIC单片机的PPM调制激光通信收发器 PPM (pulse position modulati
[单片机]
PIC16F877A<font color='red'>单片机</font>PPM调制的激光<font color='red'>通信</font>Proteus仿真及源程序
Proteus7.5的小故事(2)单片机多机通信汇编实现
近日学习测控网络技术,一时无趣想起以前学51时后面的串行通信的多机通信部分还未尝试过,虽然技术可能已经过时,但是对于理解网络协议的基本原理还是有些裨益的。单片机的多机通信最重要的就是SM2位的使用,主从式通信方式中,主机以广播形式发送地址帧,程序控制主机SM2为1,此时TB8位置1,从机初始时SM2=1,当接收到RB8为1时,引起接受中断,这时主、从机通过约定的应答机制进行校验,即从机收到地址后与自身上电就得到的本机地址比较,如确定是在找自己,就发送应答,清零SM2开始接收数据,仿真原理图如下所示: 主要实现代码如下: 多机通信主机: DATA_ACK EQU 2AH ;本例中未使用 ADD
[单片机]
使用51单片机驱动YM12232B型液晶显示
这是一个使用51单片机驱动YM12232B 液晶显示器的例子,本人水平有限,仅供参考。 本实例中将使用51单片机控制YM12232B LCD分别在主窗口和副窗口中显示 科 和 学 字。 YM12232B 一共有18个引脚,各个引脚的作用如下图所示: YM12232B 的显示屏格式如下所示,它分主窗口(左边窗口)和副窗口(右边窗口),每个窗口分为4页,每一页有64列。每次扫描一页时只需要将addr设置到0,然后输入64次数据就可以了(每输入一次,地址自动加1,直到64为止),并且扫描下一页时不要忘了将addr重新设置为0,否则它会一直是64,导致扫描出错。 本次实例的原理图如下: 本次实例的单片机代
[单片机]
使用51<font color='red'>单片机</font>驱动YM12232B型<font color='red'>液晶显示</font>屏
基于单片机应用系统的串行通信设计
  1 引 言   在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪。该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低。而且通用性好。   2 串行通信的硬件设计   串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外
[单片机]
基于<font color='red'>单片机</font>应用系统的串行<font color='red'>通信</font>设计
如何使用51单片机实现串口通信
STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信。串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口。 51单片机的串口引脚为P3.0引脚与P3.1引脚,分别是RXD和TXD引脚。串口通信可以用于单片机和其它芯片通信或者单片机之间通信或者单片机与电脑通信。串口通信一般都是交叉连接。标准的串口有9个引脚,我们一般情况下,只用RXD TXD GND,剩下的引脚都是通信控制引脚,在以前用于控制电话机,现在已经基本上不用了。所以我们的51单片机上只保留了RXD和TXD。 串口通信的协议非常简单。如果单片机上的串口不够用,还可以用任意两个引脚模拟串口通信。 一般情况,我们用带有起始位的8
[单片机]
如何使用51<font color='red'>单片机</font>实现串口<font color='red'>通信</font>
51单片机GPIO口模拟串口通信
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采集会需要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,但我们知道一般的51系列只提供一个串口,那么另一个串口只能靠程序模拟。 本文所说的模拟串口, 就是利用51的两个输入输出引脚P1.0和P1.1,置1或0分别代表高低电平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置1,各种数据位和校验位则根据情况置1或置0。 以11.0592MHz的晶振为例,通过定时计数器0产生中断信号来模拟串口电平,下面附上具体源
[单片机]
c8051F040液晶显示程序
c8051F040液晶显示程序 #include c8051F040.h #define uchar unsigned char #define uint unsigned int void os_init(); void adc_init(); uchar l; uchar h; uint temp; uchar xdata virt_port; bit SPI_BUSY; unsigned char xdata tab1 ={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x56}; sbit LCD Cs=P2^5; void os_init(); void
[单片机]
内置SED1335控制器的液晶显示模块与单片机接口应用
1 引言 液晶显示(Liquid Crystal Display)简称LCD,以其独特的低压、微功耗特性广泛应用于便携式电子产品如移动通信和笔记本电脑中。Truly(信利)公司的点阵型液晶显示模块MSP-G320240DBCW是一种内置SED1335控制器的大屏幕带背光液晶显示模块,SED1335是日本Seiko Epson公司生产的液晶显示控制器,是同类产品中功能较强的一款产品。MSP-G320240DBCW模块以其优良的品质广泛应用于各类高级仪器仪表、POS机、彩屏手机、车载产品、军工产品等,本文以此模块为例,介绍SED1335的编程控制。 2 液晶显示模块 2.1模块结构和外部接口信号 MSP-G320240DBCW
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved