📄 main.c
字号:
/**************************************************************************
* MCU MSP430F149
*
* (c) Copyright 2006.03.17 zrh
* All Rights Reserved
*
***************************************************************************/
#include <msp430x14x.h>
#include "define.h"
#include "Global.h"
unsigned int Value;
main(void)
{
MCU_Init(); // 初始化MCU
Led_Init();
Display_All(0xFF); // 全显示以检查LED是否有缺段
Delayms(1000);
Display_All(0x00);
O2_Column_Pre = O2_Column_Cur + 1;
Display_O2_Column(O2_Column_Cur);
N2O_Air_Column_Pre = N2O_Air_Column_Cur + 1;
Display_N2O_Air_Column(N2O_Air_Column_Cur);
while(1)
{
Read_Key(); // 读取按键
Status_Check(); // 状态查询
Value_Change(); // 数值转换
Display_LED(); // 数码管显示
Display_Column(); // 光柱显示
Send_Uart(Buffer); // 串口通讯
}
}
/**************************************************************************
* 软件延时
* 输入参数: n即为n(ms) 最长延时 65535ms
***************************************************************************/
void Delayms(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<150;j++); // 按一指令1us来计算
}
}
// TIMERA0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0(void)
{
AD_Sampling_Counter ++;
if(AD_Sampling_Counter > 20) // 采样周期200ms
{
AD_Sampling_Counter = 0;
ADC12CTL0 &= ~ENC;
Value_O2_Cur1[Array_No] = ADC12MEM0 & 0x0fff;
Value_N2O_Air_Cur1[Array_No] = ADC12MEM1 & 0x0fff;
Value = ADC12MEM2 & 0x0fff;
Array_No ++;
if(Array_No >= 24) Array_No = 0;
Value_Change_En = 0x01;
Send_Uart_En = 0x01;
ADC12CTL0 |= ENC+ADC12SC; // 开始新一轮转换
}
Display_Counter++;
if(Display_Counter > 100) // 显示周期1000ms
{
Display_Counter = 0x0;
Display_LED_En = 0x01;
Status_Check_En = 0x01;
}
Display_Column_En = 0x01;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -