MSP430单片机实验报告(共25页).docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《MSP430单片机实验报告(共25页).docx》由会员分享,可在线阅读,更多相关《MSP430单片机实验报告(共25页).docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上MSP430单片机课程设计一 设计要求数字温度计(1)用数码管(或LCD)显示温度和提示信息;(2)通过内部温度传感器芯片测量环境温度;(3)有手动测量(按测量键单次测量)和自动测量(实时测量)两种工作模式;(4)通过按键设置工作模式和自动测量的采样时间(1秒1小时);(5) 具备温度报警功能,温度过高或过低报警。二 系统组成系统由G2Launch Pad及其拓展板构成,单片机为MSP430G2553。使用的通信方式对IO进行拓展,芯片为TCA6416A;使用HT1621控制LCD;三 系统流程拓展的四个按键key1、key2、key3、key4分别对应单次测量、定时
2、测量、定时时间的增、减。定时时间分别为1s,5s,15s,30s,60s。在自动测量模式下,当温度超过设定温度上限即报警,报警时在LCD屏幕显示ERROR同时LED2闪烁,在5s后显示0。此时可重新开始手动或自动测量温度。系统示意图:四. 演示a) 手动测量温度b)自动测量温度c)报警显示ERROR同时LED闪烁d)设置时间界面五 代码部分#include MSP430G2553.h#include TCA6416A.h#include LCD_128.h#include HT1621.h#include DAC8411.h#define CPU_F (double)#define delay
3、_us(x) _delay_cycles(long)(CPU_F*(double)x/.0)#define delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0)static int t=0;long temp;long IntDeg;void ADC10_ISR(void);void ADC10_init(void);void LCD_Init();void LCD_Display();void GPIO_init();void I2C_IODect();void Error_Display();void WDT_Ontime(void
4、);void LCD_Init_AUTO();void LCD1S_Display();void LCD5S_Display();void LCD15S_Display();void LCD30S_Display();void LCD60S_Display();void main(void) WDTCTL = WDTPW + WDTHOLD;/关狗 BCSCTL1 = CALBC1_8MHZ; /* 设定系统时钟频率,使程序定时精准 */ DCOCTL = CALDCO_8MHZ; /-提示初始化成功- GPIO_init(); LCD_Init(); ADC10_init(); LCD_Di
5、splay(); _enable_interrupt(); /使能总中断 while(1) PinIN(); _bis_SR_register(LPM3_bits);/休眠 /*/* * 名 称:GPIO_Init() * 功 能:设定按键和LED控制IO的方向 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 */void GPIO_init() /-设定P1.0和P1.6的输出初始值-P1DIR |= BIT0;/设定P1.0和P1.6为输出P1OUT |= BIT0;/设定P1.0初值/-启用内部上拉电阻-P2REN |= BIT3; /启用P2.3内部上下拉电阻P2O
6、UT |= BIT3; /将电阻设置为上拉 P1REN |= BIT3; /启用P1.3内部上下拉电阻P1OUT |= BIT3; /将电阻设置为上拉/-配置P2.3中断参数-P2DIR &= BIT3; / P2.3设为输入(可省略)P2IES |= BIT3; / P2.3设为下降沿中断P2IE |= BIT3 ; / 允许P1.3中断 P1DIR &= BIT3; / P1.3设为输入(可省略)P1IES |= BIT3; / P1.3设为下降沿中断P1IE |= BIT3 ; / 允许P1.3中断/* * 名 称:PORT2_ISR() * 功 能:响应P1口的外部中断服务 * 入口参
7、数:无 * 出口参数:无 * 说 明:P2.0P2.8共用了PORT1中断,所以在PORT2_ISR()中必须查询标志位P1IFG才能知道 * 具体是哪个IO引发了外部中断。P1IFG必须手动清除,否则将持续引发PORT1中断。 * 范 例:无 */#pragma vector = PORT2_VECTOR_interrupt void PORT2_ISR(void)/-启用Port2事件检测函数-I2C_IODect();/检测通过,则会调用事件处理函数 P2IFG=0; /退出中断前必须手动清除IO口中断标志 _bic_SR_register_on_exit(LPM0_bits );/*
8、* 名 称: I2C_IO10_Onclick() * 功 能:TCA6416A的扩展IO1.0的按下事件处理函数 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 */void I2C_IO10_Onclick() ADC10CTL0 |= ENC + ADC10SC; / Sampling and conversion start / _bis_SR_register(CPUOFF + GIE); / LPM0 with interrupts enabled _delay_cycles(1000); /-ADC转换完成中断唤醒CPU后才执行以下代码- temp = ADC
9、10MEM;/读取AD采样值 IntDeg= temp*4225/1024 - 2777;/转换为摄氏度,并10倍处理 LCD_Init(); LCD_Display(); return;/* * 名 称: I2C_IO11_Onclick() * 功 能:TCA6416A的扩展IO1.1的按下事件处理函数 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 */void I2C_IO11_Onclick() /_enable_interrupt(); /使能总中断 /PinIN(); /_bis_SR_register(LPM3_bits);/休眠 LCD_Init_AUTO
10、(); LCD_Display(); while(1) TCA6416A_InputBuffer=0; ADC10CTL0 |= ENC + ADC10SC; /Sampling and conversion start /-ADC转换完成中断唤醒CPU后才执行以下代码- temp = ADC10MEM;/读取AD采样值 IntDeg= temp*4225/1024 - 2777;/转换为摄氏度,并10倍处理 LCD_Display(); if(IntDeg380) while(1) for(int j=0;jSAMPLENUM) / i=0; / break; LCD_Display();
11、switch(t) case 0:delay_ms(1000);break;/1s case 1: delay_ms(5000);break;/5s case 2: delay_ms(15000);break;/15s case 3: delay_ms(30000);break;/30s case 4: delay_ms(60000);break;/60s /* * 名 称: I2C_IO12_Onclick() * 功 能:TCA6416A的扩展IO1.2的按下事件处理函数 * 入口参数:无 * 出口参数:无 * 说 明:无 * 范 例:无 */void I2C_IO12_Onclick()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSP430 单片机 实验 报告 25
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内