2.2.10 显示电路
采用液晶将装置的运行状态(正常工作,过流,欠压)、输入电压幅度和输出波形频率显示出来。DSP与液晶模块间使用SPI进行通信。
图形点阵液晶显示模块具有信息丰富(可显示汉字、字符、曲线、图形) 、功耗低、体积小、质量轻、寿命长、不产生电磁辐射污染等优点,因而是单片机系统理想的显示器件。目前,国内在单片机系统使用液晶显示模块时,主要存在以下几个方面的不足:第一,ROM空间大,尤其在显示汉字的时候,此点对内部Flash闪存数量较小的单片机影响尤为严重。第二,单片机硬件接口电路复杂。第三,接口时序复杂,软件编程繁复。而我们采用的OCM4X8C是128×64点阵的中文图文液晶显示器模块。该模块的内部由于含有国标一级简体字库,使得汉字的显示异常方便;同时,该模块的硬件接口与单片机的硬件接口电路教为简单。OCM4X8C主要特点及引脚定义如下。
OCM4X8C是具有串/并接口,具内部含有中文字库的图形点阵液晶显示模块。该模块的控制/驱动器采用台湾矽创电子公司的ST7920,因而具有较强的控制显示功能。OCM4X8C的液晶显示屏为128×64点阵,可显示4行、每行8个汉字。为了便于简单、方便地显示汉字,该模块具2Mb的中文字型CGROM,该字型ROM中含有8192个16×16点阵中文字库;同时,为便于英文和其它常用字符的显示,具有16Kb的16×8点阵的ASCII字符库;为便于构造用户图形,提供了一个64×256点阵的GDRAM绘图区域,且为了便于构造用户所需字型,提供了4组16×16点阵的造字空间。利用上述功能,OCM4X8C可实现汉字、ASCII码、点阵图形、自造字体的同屏显示。为便了和多种微处理器、单片机接口,模块提供4位并行、8位并行、2线串行、3线串行多种接口方式。
该模块具有2。7~5。5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。液晶模块显示负电压,也由模块提供,从而简化了系统电源设计。模块同时还提供LED背光显示功能。除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。
OCM4X8C具有串/并多种接口方式,方便了模块与各种单片机、微处理器的连接。
第一种,4/8位并行接口方式。当模块的PSB脚接高电平时,模块即进入并行接口模式。在并行模式下可由功能设定指令的“DL”位来选择8位或4接口方式,主控制系统将配合“RS”、“RW”、“E”DB0~DB7来完成指令/数据的传送,其操作时序与其它并行接口液晶显示模块相同。
第二种,2/3线串行接口方式。当模块的PSB脚接低电平时,模块即进入串行接口模式。串行模式使用串行数据线SID与串行时钟线SCLK来传送数据,即构成2线串行模式。OCM4X8C还允许同时接入多个液晶显示模块以完成多路信息显示功能。此时,要利用片选端“CS”构成3线串行接口方式,当“CS”接高电位时,模块可正常接收并显示数据,否则模块显示将被禁止。通常情况下,当系统仅使用一个液晶显示模块时,“CS”可连接固定的高电平。⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。
本系统主要利用OCM4X8C的3线串行接口方式工作。OCM4X8C与AT89C52的接口电路连线图如图所示。OCM4X8C模块的PSB脚接低电平,模块处于串行接口模式。串行模式使用串行数据线SID与串行时钟线SCLK来传送数据。单片机的P1。5口接液晶模块的SCLK 引脚。P1。6口接SID引脚。利用P1。7口控制片选端“RS”构成3线串行接口方式,此时OCM4X8C允许同时接入多个液晶显示模块以完成多路信息显示功能。当“RS”接高电位时,模块可正常接收并显示数据,否则模块显示将被禁止。通常情况下,当系统仅使用一个液晶显示模块时,“RS”可连接固定的高电平。
单片机与液晶模块之间传送1字节的数据共需24个时钟脉冲。首先,单片机要给出数据传输起始位,这里是以5个连续的“1”作数据起始位,如模块接收到连续的5个“1”,则内部传输被重置并且串行传输将被同步。紧接着,“RW”位用于选择数据的传输方向(读或写),“RS”位用于选择内部数据寄存器或指令寄存器,最后的第8位固定为“0”。在接收到起始位及“RW”和“RW”的第1个字节后,下一个字节的数据或指令,将被分为2个字节来串行传送或接收。数据或指令的高4位,被放在第2个字节串行数据的高4位,其低4位则置为“0”;数据或指令的低4位被放在第3个字节的高4位,其低4位也置为“0”,如此完成一个字节指令或数据的传送。需要注意的是,当有多个数据或指令要传送时,必须要等到一个指令完成执行完毕后再传送下一个指令或数据,否则,会造成指令或数据的丢失。这是因为液晶模块内部没有发送/接收缓冲区。
第3章 系统软件设计
该系统的主程序和中断服务程序流程见图
EPWMI INT中断响应 计算正弦指令值 相位计数 Count_ref++ 正向 过零? 否 EPWMI中断服务程 ADC INTI中断相位计数count++ 相位计数count_iL++ 是 是否完成一个周期Uref 是 正向过零? 否 否 count=0 否 否count=0是 计算和相位差Θ 否count_iL=0 计算和相位差Θ 是 调整超前的相位 计算一个工频周期绝对值的平均值 count_ref=0 >阙值? 否 否计算一个工频周期的平均值 MPPT PLL <阙值? 否 返回 ADCINTI中断服务是 欠压保护 是 是过流保护 是 count=0? 是 返回
本系统中软件设计主要是通过单片机的系统控制和单片机内部A/D。最重要的部分是采样电阻将电压值送入内部A/D后,内部A/D的精度问题最为重要。采用内部基准,并且利用12位的ADC0进行采样,这样基本上就可以满足系统的设计要求。在进行A/D数据采集时我们需要将采集到的电压值在数码管上显示出来,所以通过电压采样后,然后通过Matlab中的polyfit()函数进行拟合,获得函数中需要的系数进行显示。
在进行系统的软件调试的时候,为了系统调试方便选择了C8051F020的开发板,因为上面有数码管显示,可以将采集到的各个电压电流数值显示出来,省下利用看内部存储器来判断采集到的数值,方便调试。
3.1 ADC0的使用
3.1.1 ADC0使用出现的问题
(1)第一次使用时,忽略了单片机开发板与外界共地的问题,造成采集数据不准确的问题。
(2)在采集光照强度的时候,因为第一次电路不稳定,出现负电压,造成通道0的不可逆转性损坏。
(3)在测量采样电阻两端电压时,只考虑采样电阻两端的电压差值,忽视了每端的对地电压(每端的对地电压均超出ADC0的电压基准值),造成通道4和通道5的不可逆转性损坏。
3.1.2 ADC0使用注意事项
(1)在ADC0的使用中,关于软件方面最关键的就是寄存器的配置问题,最主要的寄存器主要有以下五个,分别为:AMX0CF(输入方式选择)、AMX0SL(通道选择)、ADC0CF(转换频率设定)、 ADC0CN(转换允许标志)、 REF0CN(电压基准选择)。寄存器配置完成后要注意对中断的操作。
(2)ADC0基准电压的选择:一般情况下,选择内部基准电压,因为选择内部基准电压可以是转换数据更加稳定和准确,最大程度的避免外界的干扰。当选择外部的基准电压时,一定要注意基准电压不能大于5V,并且一定要选择稳定的基准电压芯片,比如TLC431,REF5050等。
(3)对于ADC0的I/O输入,一定控制电压幅值,不能出现负电压,电压也不能超过ADC0的基准值,否则就会对通道造成不可恢复的损坏。尤其是在差
相关推荐: