欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于MSP430的多路抢答器设计.doc

    • 资源ID:17533053       资源大小:135.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于MSP430的多路抢答器设计.doc

    【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于MSP430的多路抢答器设计.精品文档.课程设计报告多路抢答器的设计November, 2011 学号: 姓名: 组员目录1 概述 1.1 简介.3 1.2 硬件简介.32 MSP部分模块原理图 2.1 主芯片电路.4 2.2 4*4矩阵键盘.4 2.3 复位电路.5 2.4 数码管电路.5 2.5 液晶显示控制电路.6 2.6 蜂鸣器.73 软件设计 3.1 实验程序.74 调试 4.1 程序设计.13 4.2 调试中出现的问题.135 实验总结与展望.131 概述1.1 简介本作品以MSP430为主要模块、数码管和液晶作为显示模块。本抢答器主要是通过16个按键开关来十六路选手的抢答,开始键按下,则进入到十六个按键的扫描中,同时显示倒计时时间.同时该抢答器还有时间的递减、清零、超时报警功能;通过液晶来显示抢答选手的号数。本作品造价便宜,硬件比较简单。关键字:MSP430,抢答器,显示1.2 硬件简介MSP430系列单片机是一种16位超低 功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片”解决方案。MSP430单片机的特点:1、 运算速度快2、 超低功耗3、 片内资源丰富4、 方便高效的开发环境2 MSP430部分模块原理图2.1 主芯片电路2.2 4*4矩阵键盘2.3 复位电路2.4 数码管电路2.5 液晶显示控制电路2.6 蜂鸣器3 软件设计/数码管7位段码:0-funsigned char scandata16 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/显示缓存unsigned char Dispbuf2;/引用外部变量的声明extern unsigned char key_Pressed; extern unsigned char key_val; extern unsigned char key_Flag;#include <msp430x14x.h>typedef unsigned char uchar;typedef unsigned int uint;/*全局变量*/uchar key_Pressed; /按键是否被按下:1-是,0-否uchar key_val; /存放键值uchar key_Flag; /按键是否已放开:1-是,0-否/设置键盘逻辑键值与程序计算键值的映射uchar key_Map = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;函数名称:Init_Keypad功 能:初始化扫描键盘的IO端口参 数:无返回值 :无void Init_Keypad(void) P1DIR = 0xf0; /P1.0P1.3设置为输入状态, P1.4P1.7设置为输出状态 P1OUT |= 0xf0; / P1.4P1.7输出高电平 key_Flag = 0; key_Pressed = 0; key_val = 0;* Check_Key(),检查按键,确认键值函数名称:Check_Key功 能:扫描键盘的IO端口,获得键值参 数:无返回值 :无void Check_Key(void) uchar row ,col,tmp1,tmp2; tmp1 = 0x80; for(row = 0;row < 4;row+) /行扫描 P1OUT = 0xf0; /P1.4P1.7输出全1 P1OUT -= tmp1; /P1.4p1.7输出四位中有一个为0 tmp1 >>=1; if (P1IN & 0x0f) < 0x0f) /是否P1IN的P1.0P1.3中有一位为0 tmp2 = 0x01; / tmp2用于检测出那一位为0 for(col = 0;col < 4;col+) / 列检测 if(P1IN & tmp2) = 0x00) / 是否是该列,等于0为是 key_val = key_Maprow * 4 + col; / 获取键值 return; / 退出循环 tmp2 <<= 1; / tmp2右移1位 函数名称:delay功 能:延时约15ms,完成消抖功能参 数:无返回值 :无void delay() uint tmp; for(tmp = 12000;tmp > 0;tmp-);void DELAY() double tmp; for(tmp=2800;tmp>0;tmp-);函数名称:Key_Event功 能:检测按键,并获取键值参 数:无返回值 :无void Key_Event(void) uchar tmp; P1OUT &= 0x00; / 设置P1OUT全为0,等待按键输入 tmp = P1IN; / 获取 p1IN if (key_Pressed = 0x00)&&(tmp & 0x0f) < 0x0f) /如果有键按下 key_Pressed = 1; / 如果有按键按下,设置key_Pressed标识 delay(); /消除抖动 Check_Key(); / 调用check_Key(),获取键值 else if (key_Pressed = 1)&&(tmp & 0x0f) = 0x0f) /如果按键已经释放 key_Pressed = 0; / 清除key_Pressed标识 key_Flag = 1; / 设置key_Flag标识 else _NOP();#include <msp430x14x.h>#include "cry1602.h"typedef unsigned char uchar;typedef unsigned int uint;/*宏定义*/#define DataDir P4DIR#define DataPort P4OUT#define Busy 0x80#define CtrlDir P3DIR#define CLR_RS P3OUT&=BIT0; /RS = P3.0#define SET_RS P3OUT|=BIT0;#define CLR_RW P3OUT&=BIT1;/RW = P3.1#define SET_RW P3OUT|=BIT1;#define CLR_EN P3OUT&=BIT2;/EN = P3.2#define SET_EN P3OUT|=BIT2;函数名称:DispStr功 能:让液晶从某个位置起连续显示一个字符串参 数:x-位置的列坐标 y-位置的行坐标 ptr-指向字符串存放位置的指针返回值 :无void DispStr(uchar x,uchar y,uchar *ptr) uchar *temp; uchar i,n = 0; temp = ptr; while(*ptr+ != '0') n+; /计算字符串有效字符的个数 for (i=0;i<n;i+) Disp1Char(x+,y,tempi); if (x = 0x0f) x = 0; y = 1;函数名称:DispNchar功 能:让液晶从某个位置起连续显示N个字符参 数:x-位置的列坐标 y-位置的行坐标 n-字符个数 ptr-指向字符存放位置的指针返回值 :无void DispNChar(uchar x,uchar y, uchar n,uchar *ptr) uchar i;4 调试4.1 程序设计 对于MSP430我们并不是很熟悉,在编程时对于MSP430的各功能模块、寄存器的使用不了解,要先查找相应资料,在编程中遇到了很多问题。4.2 调试中出现的问题(1) 数码管不能正常倒计时 在程序调试时发现,数码管倒计时不正常,数字显示的位置也经常移位,对于这个问题我们再次检查了数据线的连接,后发现是数据线的输入端、输出端的连接错误。(2) 抢答者号码显示不稳定 开始选用中断方式,当两个选手按键时间间隔很短时,不能正常显示,后选用查询方式,可避免此类问题。5 实验总结与展望 本次课程设计将理论与实践有机地结合,锻炼了我们对知识的综合运用以及创新设计思维能力。对于课程题目多路抢答器,一开始还没有头绪,我们这组都没参加过电子设计大赛的培训,不会运用所学知识进行有效设计,但通过上网查阅各种类似的设计,查阅芯片的功能模块,确定基本设计方案,又通过仿真验证试验方案的可实行性。通过这次实验让我们认识到:1、 设计思路是整个设计的灵魂 拿到每个课题能有一个非常清晰的设计思路是至关重要的。只有对课题的充分理解,各芯片的熟练掌握,才能为后续的设计工作提供扎实的基础。翻阅各种资料,上网查询填补知识的空缺是必要的。2、 调试 调试是个精细的工作,在调试过程中,线路连接错误、芯片本身损坏、程序的缺陷等问题的排查需要耐心。3、 不足 我们的作品只是大概的展示了一下抢答器的工作形式,对于细节方面并没有做得很完善,例如如何为主持人单独设置一个控制键,数码管上显示倒计时的位置要更精确等。有时对于不算很复杂的程序,我们要研究很久,有时三节课下来也没有头绪,实验效率不是很高。4、 展望 这学期课程设计只是让我们对电子设计有初步的了解,并通过自身的实践 ,把理论知识运用到实践,培养了设计思维能力,增强了动手能力,在让我体会程序设计艰辛的同时,更让我体会到了成功的喜悦和快乐。同时也发现自己的很多不足之处,在设计过程中我发现自己考虑问题不全面,自己的专业知识掌握得很不牢固,希望自己的这些的不足之处能在今后的工作和学习中得到改善。而且,也懂得了学习的重要性,我将会在以后的生活和工作中继续学习。

    注意事项

    本文(基于MSP430的多路抢答器设计.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开