一、作品介绍
1、利用1602显示被测信号的频率,并利用CPU内部的测温电路测试其
内部的温度。要求测试频率自动换档,测试范围0—1MHz;
当通过按键设置一个频率点,当所测试信号的频率为所设置的频率时,通过发光
二极管和蜂鸣器报警。
2、实现功能 :
A、 频率测试正确。
B、 数码显示正确。
C、 温度检测正确。
D、 频率报警正确
3、所用功能模块:
A、定时器。
B、外部中断。
C、AD模数转换。
D、1602。
E、流水灯,蜂鸣器。
F、FPGA单片机。
二、作品图片
测温、测频、分频显示
通过按键设定频率
暂无视频资料。
三、心得体会
1、遇到的困难、如何解决
在这次比赛中我们的确遇到了不少的困难,主要表现在对msp430单片机知识的掌握不全面,我们不知道怎样配合才能做到高效率的完成一件事。对于遇到的这些问题我们并没有感到慌张,因为我们知道在不断跌倒和爬起的过程中我们会收获到一些预想不到的精彩。对于知识掌握不全面,我们主要是通过查阅相关资料和向高年级同学请教来弥补的,对于配合不默契,我们主要是通过多次的交流,明确自己的角色也任务来提高。
2、 心得体会
参加此次“星云杯”嵌入式大赛,我感觉收获了许多,无论是在知识积累还是在其他能力的提高上。虽然感觉这次做出来的作品还有许多不足之处,但至少我们是尽到了自大努力的,领悟到了比赛的那种竞技精神,在比赛期间遇到了困难,有时还是特别无助的,正是这种竞技精神一直支撑着我们走到最后。在这期间我们也认识了不少高年级的技术牛人,他们给了我们不少帮助,在这里表示感谢。通过这次比赛,我更加全面的了解了msp430,这也激起了我对它的兴趣,我相信在以后我还会继续学习它,把它深邃的东西学到手。
四、核心代码
P2IE |=
BIT6;
#pragma vector
= PORT2_VECTOR
__interrupt
void zhongduan_(void)
{
num++;
P2IFG = 0;
}
//频率测量
void init_AD(void)
{
ADC12CTL0 = SHT0_8 + REFON + ADC12ON; //内部1.5V参考电压,打开ADC12模块,设置采样保持定时器
ADC12CTL1 = SHP;
//采使用采样定时器
ADC12MCTL0 = SREF_1 + INCH_10; //参考电压和通道选择
ADC12IE = BIT0;
//ADC12MEM0
ADC12CTL0 |= ENC;
//允许转换
/*while((ADC12IFG & BIT0)==0);
_NOP();*/
temp = ADC12MEM0;
_BIS_SR(GIE);
}
#pragma vector=ADC_VECTOR
__interrupt
void ADC12ISR(void)
{
temp = ADC12MEM0; //保存转换结果
ADC12IFG = 0;
}
//温度测量 |