您的位置: 嵌入式在线 > 技术中心 > 单片机 > NT5285芯片应用及DEMO板的使用技巧──贝能科技PIC微控制器系列专题之二

NT5285芯片应用及DEMO板的使用技巧──贝能科技PIC微控制器系列专题之二

2008-01-08      嵌入式在线      收藏 | 打印

        本文主要介绍了NT5285 键盘扫描与显示接口芯片的应用及NT5285DEMO 板的使用方法和技巧。

        相对于一般的显示接口方案,元器件多且复杂,成本加大,导致系统可靠性降低;而采用集成显示功能的驱动芯片NT5285 则使设计方案大大简化,更具经济性、可靠性。

         该键盘显示接口方案具有一定的使用参考价值, 同时NT5285DEMO 板为PIC R 单片机初学者快速入门提供很好的学习平台。

        1. 三种键盘显示方案比较

        利用单片机扩展数码管和键盘接口时,常因资源不足、I/O 口不够等原因,须扩展接口芯片以满足系统的需求,从而造成系统庞大,降低了系统的可靠性。在单片机应用系统中,键盘显示通常采用以下三种方案:

        a. 经典方案:8279 芯片

        采用并行接口的键盘显示专用芯片8279,该芯片是Intel 于20 世纪80 年代首先推出的,应用较成熟,但所需外围元件(显示驱动、译码器等) 多、PCB 板占用面积大、综合成本高,在中、小系统中常常大材小用。

        b. 自由方案:辅助单片机

        在系统的主控单片机基础上增加一个辅助单片机,用作显示驱动和键盘扫描的控制。为提高串行接口的速度,辅助单片机应使用尽可能高的系统时钟,但采用低成本的外部阻容振荡很难稳定地工作在10 MHz 以上。实际应用中,辅助单片机容易因阻容振荡频率太高而受到干扰,甚至程序跑飞或意外死锁,优点是使用灵活,缺点是元器件多、速度慢、易受干扰、成本高。

        c. 新方案:NT5285 芯片

        NT5285 芯片具有占空比可调的8 级亮度LED 控制驱动电路,12 段×6 位~11段×7 位可选的多种显示模式,10×3 的键盘矩阵,是一个高可靠性、低功耗的单片机外围LED 驱动电路,串行数据通过4 线串行接口输入到NT5285。芯片封装形式为SOP32,整机PCB 布局更易优化,节省成本,工作原理图如图1 所示。
 

图1

      2. NT5285 DEMO 板简介

       本文采用NT5285 DEMO板做系统分析。NT5285DEMO 板供用户对NT5285芯片进行全面的评估,可观察在8 级不同亮度下NT5285对数码管和LED 进行动态扫描的效果,以及对按键的响应等,同时提供NT5285 与PICR单片机接口的显示和键盘扫描子程序,可以很方便地调用子程序, 无须再开发与NT5285 接口的通讯程序,加快产品的研发周期。

       NT5285 DEMO 板还可以作为一个低成本的学习Microchip 单片机、调试软件和烧录芯片的平台,在MPLAB R ICD2 配合下,用户可以在演示板上对8/14/18/28/40 脚、拥有在线调试和编程功能的PIC RFLASH 单片机,进行在线调试和芯片烧录,完成诸如I/O口操作、A/D 转换、PWM 信号产生、数码管驱动、键盘输入等各种实验。

       DEMO 板实物图如图2所示,NT5285 的DO、DI、CLK、STB四条控制线分别与MCU 的RA3、RA1、RA2、RA4 相连,可调电位器VR1调节的电压输入到A/D 转换口RA0,RB3 输出蜂鸣器PWM的驱动信号。

图2

      3. NT5285 命令控制字

       在STB 端口的状态由高变低后,由DIN 端口输入到NT5285 的第一个字节(b0~b7)为命令字,之后输入的为数据位;当数据/ 命令在移动时由于某些原因使STB 端口设为高时,串行通讯被初始化,则正在发送的数据/ 命令视为无效。NT5285 的命令控制字如表1 所示,应用时序如图3,移动显示数据最大为14字节。

命令

MSB

 

LSB

命令功能

b7

b6

b5

b4

b3

b2

b1

b0

命令1

0

0

b1

b0

显示模式设置

命令2

0

1

b3

b2

b1

b0

数据设置

命令3

1

1

b3

b2

b1

b0

地址设置

命令4

1

0

b3

b2

b1

b0

显示控制

                                                                         图3
       4. NT5285 DEMO 板演

       DEMO 板样片PIC16F819 已存有源程序代码,重新烧写时,打开DEMO 程序项目,C 语言为DEMO_C,汇编为DEMO_ASM ,利用ICD2进行重新烧写,但要注意以下几点:
      

        a. 在MPLAB RIDE 开发环境中,选择:Configure>Select Device 命令,选择要烧录的芯片型号为PIC16F819。

       b. 配置位设定:建项目时,在Configure> Configuration Bits 设置芯片的配置字,NT5285 演示程序的源文件中已通过伪指令设定好了。

       c. 编译器选择:在Project>Select Language Toolsuite命令列表中,C 语言编译器选HI-TECH PICC Toolsuite,汇编语言编译器选择Microchip MPASM Toolsuite。

       d. 烧写时:在Programmer>Select Programmer 中选择MPLAB R ICD2 作为编程器, 此时ICD2 应与MPLAB R IDE 处于连通状态,否则,在Programmer>Settings>communication 中检查设置是否正确;然后再用Programmer> Connect 命令重新连接,用Programmer>Program 命令,将代码烧录到PIC16F819 芯片中。

       e. 程序烧录完成后,将ICD2 的水晶头拔除, 确保J1 ~J7 处于连通状态,NT5285 演示程序将自动运行。

       演示程序包括以下几个功能模块:

       ①DEMO1 ---8字循环显示模块;

       ②DEMO2--- A/D 转换电压值显示模块;

       ③NT5285 显示和键盘接口通讯模块。

       演示板各键功能定义如下:S1:系统复位;NEXT:演示程序DEMO1 和DEMO2 之间切换;BRIGHT+: 增加扫描亮度等级;BRIGHT-: 降低扫描亮度等级;K4-K30: 空,供用户自行定义。演示时,首先确保J1~J7 处于连通状态。上电时,蜂鸣器长鸣一声,所有LED 点亮;然后运行DEMO1 的程序,7 个数码管循环显示“8”字,21 只LED 灯不断闪烁,此时LED 亮度等级默认为4,NT5285 一共有8 个亮度扫描等级, 按“BRIGHT+"/“BRIGHT-”键可以增加/ 减少LED 的亮度等级;按键的同时,蜂鸣器发出“BI”的一声。

       按下“NEXT”键,DEMO板转入运行DEMO2 演示程序,此时5V 电压经VR1 调节和8bit 的A/D 转换后,通过DM1~DM3 数码管显示该电压值。旋转VR1,显示的电压值相应进行改变,此时DM6、DM7 数码管显示NT5285 的扫描亮度等级。

       用户在演示板上采用其他MCU 控制NT5285 时,必须检查NT5285 的四条控制线是否与MCU相应I/O 口连接好,否则将没有显示或按键没有响应。

       5.DEMO 板的学习方案

       在NT5285 演示板上可利用ICD2 上将自写程序烧录到芯片中,根据个人的喜好和实际情况选用不同的开发环境和编译器。本文使用MPLAB R IDE 开发环境,针对DEMO 板提供的样片对PIC16F819 进行编程、调试。对C 语言编程,首先确认已安装HI-TECH PICC 8.05 或以上版本,在Project> SelectLanguage Toolsuite 命令列表中选择HI-TECH PICC 编译器,具体编程语法可查看PICC 编译器的使用说明。

       对编程实现PIC16F819及NT5285 的各种功能时应注意以下几方面:

       a. PWM 输出脚可在配置字中设置成RB2 或RB3,本文设置成RB3 输出到蜂鸣器,pwm_init()初始后,在程序中只改变PR2、CCPR1L 即可奏出动听的音符。

       b. 系统上电时,RA 口默认为AD 模式, 通过ADCON1将不作为AD 转换的端口设为数字口。AD 初始化后,GODONE置位转换开始,可通过中断或查询(if(!GODONE))方法读取转换值,再进行显示或赋给PWM 输出等操作。

       c.NT5285 编程时,显示数据时先发送显示模式命令,接着发送数据模式命令、地址设置命令、显示数据,最后开显示。发送完一条命令接着发第二条命令时STB 置高,如果接下来发显示数据,则等数据发完后再将STB 置高,关于NT5285 的详细资料可查看NT5285 的数据手册。

       对DEMO 板的编程,用户可根据自已需要编写相应的功能程序,图4 功能程序框图为已编成功的C 语言DEMO程序,供读者参考。

图4

       6. DEMO 板实例分析

       为使读者更清楚地使用NT5285 芯片及PIC R 单片机, 本文最后分析如何在DEMO 板中实现七个数码管显示0~6 的数字实例。

       首先根据DEMO 板的硬件电路将NT5285 设为7×11 段的输出方式,数码管接线图如图5 所示,根据表2 的NT5285 14 字节地址对应的管脚分配表,只要先点亮第一个数码管,将00H 地址对应的值赋为0xff,再开显示即可。根据表3 所示的数码管译码表,将译码后的相应数据赋到相应的地址空间,确定数字0~6 的显示代码,显示流程图如图6 所示。

                                                                       图5

        表3 数码管译码表

 

                                                                  图6
      接下来建立新项目,选择单片机型号,main.c 主程序代码如下:
#include<pic.h>
/* 包含头文件,编译器会自动选择型号*/
#include "config.h"
/* 自定义头文件*/
__CONFIG (XT&UNPRO
TECT& PWRTEN& BOREN
& WDTDIS& LVPDIS & MC
LREN &CCPRB3);
/* 函数声明*/
void delay (unsigned int
n);
void port_init(void);
voidad_init(void);
voidpwm_init(void);
voidread_ad(void);
void send_b (unsigned
char dat);
unsigned char read_b
(void);
SG1⋯⋯SG4 SG5⋯⋯SG8 SG9⋯⋯SG11
00HL 00HU 01HL DIG1
⋯⋯ ⋯⋯ ⋯⋯ ⋯⋯
0CHL 0CHU 0DHL DIG7
a⋯⋯d e⋯⋯h Led1⋯⋯l3
/* 数码管数据表及变量定义*/
unsigned char num_buf
[10]=
{
0x3f,//display "0"
0x06,//display "1"
0x5b,//display "2"
0x4f,//display "3"
0x66,//display "4"
0x6d,//display "5"
0x7d,//display "6"
0x07,//display "7"
0x7f,//display "8"
0x6f //display "9"
};
/* 可把以上声明的函数体放在这个地方*/
voidmain(void)
/* 主程序*/
{unsignedchari;
TRISA=0XE9;
/* 端口初始化*/
PORTA=0XFF;
ADCON1=0X0E;
/*RA1 ~RA4 为数字口
*/
STB_H;
send_b(COM_MODE1);
/* 显示模式为11*7 段
*/
STB_H;
send_b(COM_DATA);
/* 发送数据模式*/
STB_H;
send_b(COM_ADDR);
/* 数据地址为0 开始*/
for(i=0;i<7;i++)
/* 发送数据*/
{
send_b(num_buf[i]);
/* 数码管显示*/
send_b(0x07);
/*LED 全亮b0~b3*/
}
STB_H;
send_b
(COM_BRIGH+5);
/* 开显示+ 亮度*/
STB_H;
While(1);
}
      程序编写完成后, 按F10或Project->Build All 进行编译,生成.hex 文件,再通过ICD2 烧录到NT5285DEMO板下的PIC16F819 单片机中,即可看到效果。其它具体操作可参考贝能科技公司出品的MPLAB R ICD2 在线调试器中附带的用户指南和相应的数据手册或文档。

      7.小结

      本文主要介绍了NT5285芯片及其DEMO 板的使用技巧,对C 语言程序编写做了详细的说明, 最后讲述了DEMO板及NT5285 具体应用实例,且程序实际运行稳定、可靠。

      运用该键盘显示驱动芯片可以大大简化外围器件、节省I/O 口、提高系统的可靠性,是一个很好的键盘显示接口的解决方案,同时NT5285DEMO 板也是一款低成本的PIC R 单片机学习与实验平台,对于PIC R 单片初学者或想在单片机领域快速入门的读者来说,无疑是一道捷径。

本文来源:贝能科技有限公司    作者:贝能科技有限公司
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张