G2一体化实验板:矩阵键盘和数码管显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

G2一体化实验板:矩阵键盘和数码管显示
一、实验目的
(1)掌握如何用数码管显示数值或者某些字符;
(2)掌握矩阵键盘的使用方法。

二、实验设备
G2一体化实验板。

三、实验内容及步骤
1、基础实验—检测程序
功能:按下某个按键,则数码管会显示对应的数值,即若按下按键Ki(i取值为0~15),在数码管上显示数值i,如若K0按下,则在数码管上显示数字0,若K15按下,则在数码管上显示数字15等。

各个按键的具体定义见下图1:

步骤:
(1)将msp430LaunchPad(芯片型号为G2433)插到实验板主板上;
(2)将矩阵键盘和数码管部分的四个跳线帽连上,这四个跳线帽对应的IO口分别是P2.3、P2.5、P2.6和P2.7;
(3)确保P2.3、P2.5、P2.6和P2.7这4个IO口不被其他部分的电路使用,即是断开这几个IO口与其他部分电路连接的跳线帽;
(4)按下主板上的电源开关;
(5)用USB线连接msp430LaunchPad和电脑;
(6)打开下载软件并添加所给例程,并下载该程序(在下载之前先进行相关设置);
(7)下载完毕后,退出软件下载模式,即可在矩阵键盘和数码管模块上实现上述功能(注意:在此之前一定先按几下msp430LaunchPad上的复位键RESET)。

2、拓展实验——简易计算器
功能:实现4位(由于数码管只有4位)非负整数的四则运算,即加、减、乘和除法。

各个按键的具体定义见下图2:
图2 计算器键盘盘面
说明:(1)由于数码管的显示能力有限,所以当按下加号键“+”时,在数码管上并非显示
“+”,而是在第0位的数码管上显示“”以表示加号;当按下乘号键“×”时,
在数码管上并非显示“×”,而是在第0位数码管上显示以“”表示乘号;当按
下除号键“÷”时,在数码管上并非显示“÷”,而是在第0位数码管上显示以“”
表示除号;按下减号键“-”时,在第0位数码管上显示“-”以表示减号。

(2)若除数为0,则数码管显示E1;若被减数小于减数,则数码管显示E2;若计算结果超出显示范围(由于是4位数码管,故可显示的最大数值为9999),数码管显
示E3。

(3)除法运算为取整除法,不显示小数部分,即1÷2显示结果为0,4÷3显示结果为1等。

步骤:
(1)按照前面实验的7个步骤将程序下载到板子上,退出下载模式,按几下msp430LaunchPad 上的复位键RESET;
(2)输入第一个操作数,即任意按下代表数字0~9的按键(不能超过4位,因为只有4位数码管);
(3)输入操作符,即按下代表加、减、乘和除法4个按键中的任一个;
(4)输入第二个操作数,即任意按下代表数字0~9的按键(不能超过4位,因为只有4位数码管);
(5)按下代表等号“=”的按键,则计算结果将显示在数码管上;
(7)若要进行下一次运算,则先按下清零键,再重复步骤(2)~(5)即可。

四、实验原理
核心芯片CH452A是数码管显示驱动和键盘扫描控制芯片。

CH452A采用4线串行连接方式与单片机进行通信。

矩阵键盘原理:
单片机从CH452获取按键代码的过程如下图3所示:
图3 获取按键代码的过程
①输出一位数据,即向DIN输出读取按键代码命令的最低位数据B0,并向DCLK输出低电平脉
冲;
②以同样的方式,输出读取按键代码命令的位数据B1~B11;
③向LOAD 输出低电平脉冲,其中包括一个上升沿使CH452 加载串行数据,CH452 分析出是
读取按键代码命令,立即在DOUT 输出按键代码的最高位数据K6;
④读取一位数据,即从DOUT 输入按键代码的最高位数据K6,并向DCLK 输出低电平冲;
⑤以同样的方式,输入按键代码的位数据K5~K0。

上述获取按键代码的过程转化为软件程序如下:
//输入按键代码子程序,从CH452读取
unsigned char Key_Read( void )
{
unsigned char i;
unsigned char keycode; //定义命令字,和数据存储器
Send_Command(CH452_GET_KEY);
keycode=0; //清除keycode
for(i=0;i!=7;i++)
{
keycode<<=1; //数据移入keycode,高位在前,低位在后
if (P2IN&BIT0) keycode++; //从高到低读入452的数据
DCLK_0; //产生时钟上升沿通知CH452输出下一位
DCLK_1;
}
return(keycode); //返回键值
}
下面举例说明:
(1)由于硬件连接方式如下所示:
DCLK <--- P2.3
DIN <--- P2.2
LOAD <--- P2.1
DOUT ---> P2.0
所以按键中断用到的是P2口的中断且为下降沿中断,当按下某一按键(如K0)执行任务TASK 时,则只需将上述接收按键代码的函数Key_Read( void );放置在P2口中断,当接收到的代码为40H时,则说明按键K0被按下,此时执行任务TASK,可参见基础程序——检测程序。

(2)当某一按键按下,具体返回的代码值是多少,取决于该按键的硬件连接,即看该按键与CH452A的哪两个引脚相连接,对应值参见下表1:
表1 按键对应编码表
说明:,CH452 所提供的实际按键代码是表中的按键编码加上40H。

数码管显示原理:
单片机通过4线串行接口向CH452发送12位数据的过程如下图4所示:
图4 单片机向CH452发送数据
①输出一位数据,即向DIN 输出最低位数据B0,并向DCLK输出低电平脉冲(从高电平变为
低电平再恢复为高电平),其中包括一个上升沿使CH452 输入位数据;
②以同样的方式,输出位数据B1~B11;
③向LOAD 输出低电平脉冲,其中包括一个上升沿使CH452 加载串行数据。

上述发送数据的过程转化为软件程序如下:
//发送命令
void Send_Command(unsigned cmd)//MSP430单片机向CH452发送命令,Command为12位数据
{
unsigned char i;
LOAD_0;
for(i=0;i!=12;i++) //送入12位数据,低位在前
{
if (cmd&1) {DIN_1;}
else {DIN_0;} // 输出位数据
DCLK_0 ;
cmd>>=1;
DCLK_1 ; //上升沿有效
}
LOAD_1;
Delay(1000);
}
数码管的显示方式可分为两种:
(1)指定某位数码管显示某一具体数字,如让第0位数码管显示数字0,对应程序为Send_Command(Dis00);可参见基础程序——检测程序。

(2)让数码管显示某一不确定的多位数,可参见拓展程序——简易计算器中的函数void Display(unsigned int data);
五、实验注意事项
(1)在退出下载环境,对该模块进行操作时,一定要先按一下复位键;
(2)在将矩阵键盘和数码管模块及msp430LaunchPad插到主板上时,一定要确保主板电源断开;
(3)在将模块旁边的拨码开关打开时确保主板电源处于断开状态。

六、思考题
(1)由于本模块只是实验板的一个组成部分,并非用作专门的计算器,所以只进行4位非负整数的四则运算,旨在说明数码管和矩阵键盘的用法,如果想要进行更复杂的小数或正余弦运算,大家可以自己动手尝试。

(2)由于实验板的其他模块用到了液晶,但均未用到数码管,所以在应用实例计算器中用
数码管进行显示,使大家进一步了解数码管的用法,大家可以自己尝试用液晶对计算器进行显示。

图5 矩阵键盘和数码管模块原理图。

相关文档
最新文档