基于msp430fg4618的电子秒表设计可研报告.docVIP

基于msp430fg4618的电子秒表设计可研报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子设计与制作课程之最小系统设计 实验报告 一、实验任务 1.LED阵列实现电子表时、分、?秒显示,并可以通过键盘设置时间 2.LED 整列实现电子表正计时?,倒计时功功能,可通过键盘进行控制,计时精度100ms。 优化要求: 设置记录 计时功能数据记录 可保存最近5组数据,并可通过数据接口上载到计算机上位机中。 二、实验具体实施方案(由各实验小组自行设计) 1. 按键功能和秒表功能结合的基本方法。 通过按键驱动得到键值后,运用switch语句,就可以基于不同的键值,设定相应的功能。 2. 程序中倒计时和正计时有什么联系和区别,你是分开设计的,还是利用了两个功能的联系。 两者本质相似,不用分开设计。 联系:两者都使用了以msp430的晶体振荡器为基础的时钟,寄存器设置相同。 区别:中断发生时,时间计数的变化不一样。具体为,设定一个全局变量,在中断设定中,根据全局变量的数值,让时间计数做自加/自减运算。 3. 简述基于MSP430的矩阵键盘驱动。 连接按键的引脚松开时为高电平,按下为低电平。程序通过循环读取IO口的输入值,并以此判断按键按下。在按键按下时,在中断当前的程序,执行中断处理函数 4. 如何通过矩阵键盘输入数字,从而设定倒计时秒表起始时间。 首先定义一个全局变量作为开启调时模式的开关,用两个按键负责开关的关闭。 再设置一个变量代表调整的位置,用两个按键负责位置的移动,并显示当前位置。 最后设置两个按键调整当前位置的数字,并设定单位转换。 5. 简述具有开始、暂定、停止等功能以及起始时间功能秒表的设计方案和框图。 首先初始化时钟使用了MSP430F149芯片的32768Hz低频晶体振荡器作为时钟;再设定比较寄存器的初始值为3277,相当于100ms;不打开计时器。??? 在中断中设定每发生一次中断时间计数+1,再加入单位转换设置,达到基本时钟效果。 设置如下无限循环即可。 连接键盘,加入设定key1:开启计时器;key2:关闭计时器;key4:msp430自带重制。 连接晶体管显示。 #includemsp430.h #define keyin (P9IN0xe0) int i,s,secc,sec,hour,min,day,f,flag,judge,ft,hao,fshe,xue,fx; char dad; int d[]={0,0,0,0,0,0,0,0}; char temp[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x02}; char wei[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; char keycode[16]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77}; void delay(int z) //延时 { int u; for(u=0;uz;u++); } void Time_A_init() //初始化时钟 { TACTL=TASSEL0+TACLR; CCR0=3277; TACTL|=MC0; _EINT(); } void Time_set() //设定时间 { if(d[0]=9){d[0]=0;d[1]++;} if(d[2]*10+d[1]=60){d[1]=0;d[2]=0;d[3]++;} if(d[4]*10+d[3]=60){d[3]=0;d[4]=0;d[5]++;} if(d[6]*10+d[5]=24){d[5]=0;d[6]=0;d[7]++;} if(d[7]=9){d[7]=9;} if(d[0]0){d[0]=9;d[1]--;} if(d[2]*10+d[1]0){d[1]=9;d[2]=5;d[3]--;} if(d[4]*10+d[3]0){d[3]=9;d[4]=5;d[5]--;} if(d[6]*10+d[5]0){d[5]=3;d[6]=2;d[7]--;} if(d[7]0){d[7]=0;} secc=d[0]; sec=d[2]*10+d[1]; min=d[4]*10+d[3]; hour=d[6]*10+d[5]; day=d[7]; } #pragma vector=TIMERA0_VECTOR

文档评论(0)

知识宝库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档