单片机应用系统胡霆计.docVIP

  • 1
  • 0
  • 约1.12万字
  • 约 14页
  • 2019-03-08 发布于安徽
  • 举报
. .. 单片机应用及系统计 ——基于MSP430的简易乘法器 院系:自动化学院 指导老师:吴益飞 姓名:胡霆 学号:0610200120 同组成员:孙佳 聂敏华 时间:2009-4-25 基于MSP430的简易乘法器 胡霆0610200120 (南京理工大学自动化学 ) 引言:本次设计主要是利用实验箱的硬件资源实现简单的乘法器功能,由于显示的LED灯的限制,这里只能完成三位数的乘法运算。在程序运行的过程中,可以利用实验板的按键输入所需要运算的数和符号,在此之前这些数和符号已经在程序中定义了。然后MSP430经运算以后,最后按下等于号之后结果会从高到低显示到LED上。其中的键盘和LED已经集成在了实验板上,用到的时候只需要做相应的端口定义即可。 关键词:MSP430 乘法器 键盘 LED 问题描述:此功能主要由两大模块组成,一个是键盘输入模块,一个是个LED显示模块,必须要各个模块的功能定义程序中说明好每个键盘的功能,才能和对应的按键对应起来。此外在编程时应该注意硬件乘法器所需要的一些寄存器,比如MPY,MPYS,MAC,MACS,OP2,RESLO,RESHI,SUMEXT.然后在主程序中,集成两大模块的功能,使之协调工作,程序运行后,行列扫描键盘工作,有按键按下 时按键的键值显示到LED。最后在MSP430中进行运算以后,把运算结果也送给显示电路,则完成了整个运算过程主程序中要注意如下的定义:行列键盘的“#”对应键值为A,“*”对应键值为B。 可以用如下的系统框图表示硬件乘法器的逻辑组成: MSP430单片机 MSP430单片机 LED显示 键盘输入 问题解决: ●键盘输入模块: 本实验采用行列式键盘的设计。键盘的硬件接线图如下; 由于本次试验所需要的键盘按键不是很多,因此采用3*4的格局就可以了。列键分别由上拉电阻上拉到与VCC相连接。在行线与列线的每一个交界处都有一个按键,按键的A,B,端分别接再在行端和列端。键盘电路工作时,首先会扫描判断有没有兼按下,如果有,则与之相连的行键和列键被连通,在检测是否有键按下时,首先使三条行线输出低电平,读列线。列线输出非全1.按键抖动的消除可以使用硬件和软件办法,软件方法比较容易些。即采用软件延时,在检测到一个有效信号后,延时一段时间在进行检测,如果还有信号,则这个信号就是有效信号。对键盘的编程可参见下面的源程序。 ●LED显示模块 如下是本实验板上所用的LED硬件原理图: 由图可以看到,LED显示由74HC373锁存,然后用P3.0~P7..0分别控制LED和显示段码和位选。 显示代码的输出 P3.0~P3.7分别对应LED的e,d,dp,c,g,b,f,a.当P4.1为高时,U5选通,P3口的数据经过U5输出到LED,当P4.1为低电平时,U5处于数据锁存状态。此时不管P3口如何变化,1Q~8Q数据保持不变. 位选的输出 LED的现实代码编号如下: 0——7BH 1——12H 2——4FH 3——7FH 4——36H 5——3DH 6——7DH 7——1BH 8——7FH 9——3FH P3.0~P3.5为位选信号,分别对应D0~D5.其工作原理与显示代码的原理一样。具体编程可参见源程序。 ●系统程序 /键盘模块程序:/ #ifndef MSP430F449_H #include msp430x44x.h #endif #define KEY_BOARD 1 unsigned char key_Pressed; // 是否有键值按下 key_val; // 存放键值 key_Flag; // 是否一个按下的按键已经松开, // 即是按键的键值可以读取 unsigned char key_Map[12] ={ //设置键盘逻辑键值与程序计算键值的映射 1,2,3,10,4,5, 6,0,7,8,9,11 //10为= 0就是0 11为乘号

文档评论(0)

1亿VIP精品文档

相关文档