找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6586|回复: 15
收起左侧

MSP430单片机测频率、电压 2016北京市电子设计竞赛题目及代码

  [复制链接]
ID:158798 发表于 2016-12-30 08:44 | 显示全部楼层 |阅读模式
2016年北京市电子设计竞赛试题
一、任务:在给定的MSP平台上设计制作一数字表;
二、具体任务:数字表有下列功能:
1. 测量直流电压(30分)
(1)范围:5mV-100mV;
(2)误差不大于1%;
(3)有显示功能;
(4)具有自动换量程功能,显示有效位3位;
2. 测量直流电流(20分)
(1)范围:5mA-40mA;
(2)具有自动换量程功能,显示有效位3位;
(3)误差不大于1%;
3. 测量交流电压有效值(20分)
(1)电压范围(有效值):5mV-80mV;
(2)频率范围:100Hz-5KHz;
(3)具有自动换量程功能,显示有效位3位;
(4)误差不大于5%;
4. 测量交流电压的频率(30分)
(1)频率范围:100Hz-5KHz;输入信号电压(有效值)为20mV;
(2)具有自动换量程功能,显示有效位3位;
(3)误差不大于1%;
(4)有显示单位功能;[用第4个数码管显示,如“1”代表Hz,“2”代表KHz];

竞赛采用“FPGA最小系统单元+MSP-EXP430G2开发板单元+万用板单元”的架构模式,FPGA最小系统和MSP-EXP430G2开发模块均可以独立使用,也可以相互配合组合设计使用。万用板单元采用标准的2.54mm间距焊接孔组成,用于搭建焊接比赛时所设计的应用电路。
MSP430代码见附件!
  1. #include "msp430g2553.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. /****************************************第四题***********************/
  5. unsigned long TimeBase=0;
  6. //8M时钟,如果数据不准微调这里
  7. #define SYSTEMCLOCK 1000000
  8. //                        看门狗分频的时钟中断
  9. #pragma vector = WDT_VECTOR
  10. __interrupt void watchdog_timer(void)        //
  11. {
  12.         TimeBase++;
  13. }
  14. unsigned long TA0_Frequency=0;                //TA0计数方式测量的频率值(HZ单位)
  15. unsigned long TA0_Flowover_Time=0;                //上次溢出时的时间点
  16. #pragma vector = TIMER0_A1_VECTOR
  17. __interrupt void Timer_A0C1 (void)
  18. {
  19.         TA0CTL &= ~TAIFG;//清除中断标志
  20.         TA0R=0xffff-4096;//累计8192个
  21.         TA0_Frequency=(TimeBase-TA0_Flowover_Time);//时间差值
  22.         TA0_Frequency=(unsigned long)(SYSTEMCLOCK)/TA0_Frequency/2;//累计速度乘在这里SYSTEMCLOCK*X
  23.         TA0_Flowover_Time=TimeBase;                                //当前时间更新为上次溢出时间
  24. }
  25. /*****串口发送数据函数*****/
  26. void Send_Byte4(unsigned char data)
  27. {
  28.   while(!(IFG2 & UCA0TXIFG));//发送寄存器空的时候发送数据
  29.   UCA0TXBUF = data;
  30. }

  31. /*****串口发送,数码管显示******/
  32. void displayHZ(unsigned int dis)
  33. {
  34.   unsigned char shi,ge,bai,qian;
  35.   ge = dis % 10;
  36.   shi = (dis / 10) % 10;
  37.   bai = (dis / 100) % 10;
  38.   qian = (dis / 1000) % 10;
  39.   if (dis>=5500) return;
  40.   if (dis>=1000) {
  41.     Send_Byte4(2|0x10);//第四位数码管显示1
  42.     Send_Byte4(qian|0x20);//第三位数码管显示qian位  
  43.     Send_Byte4(0x2b);//第二位数码管显示小数点
  44.     Send_Byte4(bai|0x40);//第二位数码管显示百位      
  45.     Send_Byte4(shi|0x80);//第一位数码管显示十位


  46.   } else {
  47.     Send_Byte4(1|0x10);//第四位数码管显示1  
  48.     Send_Byte4(bai|0x20);//第三位数码管显示bai位  
  49.     Send_Byte4(shi|0x40);//第二位数码管显示位      
  50.     Send_Byte4(ge |0x80);//第一位数码管显示位        
  51.    
  52.   }
  53. }
  54. /****************************************第四题end***********************/

  55. /****************************************第一题 main外部分***********************/
  56. uint a[4];
  57. /*****串口发送,数码管显示******/
  58. void display(uint dis)
  59. {
  60.   uchar shi,ge,bai,qian;
  61.   ge = dis % 10;
  62.   shi = (dis / 10) % 10;
  63.   bai = (dis / 100) % 10;
  64.   qian = (dis / 1000) % 10;

复制代码

评分

参与人数 3黑币 +15 收起 理由
酌繁 + 5 很给力!
neumann + 5 赞一个!
qwer雷克 + 5 赞一个!

查看全部评分

回复

使用道具 举报

ID:228344 发表于 2018-3-27 19:35 | 显示全部楼层
感谢您!!正需要!!学习一个!!
回复

使用道具 举报

ID:286541 发表于 2018-3-29 15:50 | 显示全部楼层
非常感谢
回复

使用道具 举报

ID:302639 发表于 2018-4-6 10:17 | 显示全部楼层
非常感谢您的分享,现在正需要!
回复

使用道具 举报

ID:302753 发表于 2018-4-6 14:54 | 显示全部楼层
哇,感谢楼主,太关键了
回复

使用道具 举报

ID:294185 发表于 2018-4-7 20:50 | 显示全部楼层
感谢!急需
回复

使用道具 举报

ID:303699 发表于 2018-4-8 14:57 | 显示全部楼层
需要,赞一个
回复

使用道具 举报

ID:305099 发表于 2018-4-10 13:30 | 显示全部楼层
赞一个,正急用,谢谢楼主
回复

使用道具 举报

ID:305099 发表于 2018-4-10 14:13 | 显示全部楼层
太感谢了,我正需要这个
回复

使用道具 举报

ID:305309 发表于 2018-4-10 17:30 | 显示全部楼层
太感谢了!
回复

使用道具 举报

ID:305380 发表于 2018-4-10 19:35 | 显示全部楼层
很好,谢谢
回复

使用道具 举报

ID:305389 发表于 2018-4-10 19:42 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:305534 发表于 2018-4-10 22:30 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:474344 发表于 2019-3-25 09:42 来自触屏版 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:501501 发表于 2019-3-31 00:29 | 显示全部楼层
请问有完整的代码吗
全部四道题的
回复

使用道具 举报

ID:423051 发表于 2019-3-31 15:20 | 显示全部楼层
方便给出你的430的原理图吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表