亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? section3.c

?? msp430應用系統開發典型實例 第4章程序代碼
?? C
字號:
#include <MSP430X14X.h>
#include "alarm.h"

#define AT_DATA1   0xef00
#define AT_DATA2   0xf000
#define AT_DATA3   0xf100
#define AT_DATA4   0xf200

// 全局變量
int FLAG_PORT;
int PORT_INPUT;
int PORT_count;
int nADC_Flag;
int nADC_Count;
int ADC_BUF_Temp[10];
int ADC_BUF[10;
int UP1;// 上門限整數部分
int UP2;// 上門限小數部分
int DOWN1; // 下門限整數部分
int DOWN2; // 下門限小數部分
void main(void)
{
    int nTemp;
    int *pFlash;
    int nRes;
    int nCount;
    char chrTemp[6];
    float fTemp;
    
    int m_up1;
    int m_up2;
    int m_down1;
    int m_down2;
    char nTemp1;
    char nTemp2;
    char nTemp3;
    
    WDTCTL = WDTPW + WDTHOLD;   // 關閉看門狗
    
    _DINT();			// 關閉中斷
    
    // 初始化變量
    FLAG_PORT = 0;
    PORT_INPUT = 0;
    PORT_count = 0;
    nADC_Flag = 0;
    nADC_Count = 0;
    nRes = 1;
    // 初始化
    Init_CLK();
    Init_ADC();
    Init_TimerA();
    Init_INPUTPort();
    Init_TimerB();

    Init_DispPort();
    Init_AlarmPort();

    _EINT(); 			// 打開中斷
    //讀取FLASH里面的內容
    pFlash= (int*)(AT_DATA1);
    UP1 = *pFlash;
    if(UP1 == 0X00FF)
    {
    	nRes = 0;
    }
	else
	{
		UP1 *= 8;
	}
    pFlash= (int*)(AT_DATA2);
    UP2 = *pFlash;
    if(UP2 == 0X00FF)
    {
    	nRes = 0;
    }
	else
	{
		UP1 += UP2;
	}

    pFlash= (int*)(AT_DATA3);
    DOWN1 = *pFlash;
    if(DOWN1 == 0X00FF)
    {
    	nRes = 0;
    }
	else
	{
        DOWN1 *= 8;
	}
    pFlash= (int*)(AT_DATA4);
    DOWN2 = *pFlash;
    if(DOWN2 == 0X00FF)
    {
    	nRes = 0;
    }
	else
	{
        DOWN1 += DOWN2;
	}
    
    if(nRes == 0)
    {
    	nCount = 0;
    	// 需要讀取4個數據
    	for(;;) // 等待配置數據
    	{
    	    
    	    if(FLAG_PORT == 1)
    	    {
				switch(nCount)
				{
				case 0:
					{
						FLASH_ww(AT_DATA1,PORT_INPUT)
						break;
					}
				case 1:
					{
						FLASH_ww(AT_DATA2,PORT_INPUT)
						break;
					}
				case 2:
					{
						FLASH_ww(AT_DATA3,PORT_INPUT)
						break;
					}
				case 3:
					{
						FLASH_ww(AT_DATA4,PORT_INPUT)
						break;
					}
				default:break;
				}
    	    	
    	    	FLAG_PORT = 0;
    	    	chrTemp[nCount] = PORT_INPUT;

				nCount += 1;
				if(nCount >= 4) 
				{
					UP1 = chrTemp[0] * 8 + chrTemp[1];
    
                    DOWN1 = chrTemp[2] * 8 + chrTemp[3];
					break;//數據配置完畢
				}
    	    }
    	    
    	}
    }
    
    
    for(;;)
    {
    	if(nADC_Flag == 1)
    	{
    	    nTemp = ADC_BUF_Temp[0];
    	    nADC_Flag = 0;
    	    // 這里只是簡單的化成整數處理,就是乘以100
    	    nTemp = 16434 - 29 * nTemp;
    	    
    	    nTemp = (int)((nTemp / 100);//將結果除以100
    	    nTemp1 = (int)(nTemp / 100);//最高位
    	    nTemp2 = (nTemp - nTemp1 * 100) / 10;// 十位
    	    nTemp3 = (nTemp - nTemp2 * 10 - nTemp1 * 100);//個位
    	    
    	    // 這里只是簡單的比較整數部分
    	    if((nTemp > UP1) || (nTemp < DOWN1))
    	    {
    	    	// 報警
    	    	Ring();
    	    }
    	    else
    	    {
    	    	// 顯示
    	    	Display(nTemp2,nTemp3,0);
    	    }
    	
    	}
    }

}

//////////////////////////////////////////////
// 定時器中斷,完成 ADC 轉換
interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
{
    int results;
    
    ADC12CTL0 &= ~ENC;		    // 關閉轉換
          	
    results = ADC12MEM0;	    // 讀出轉換結果                     
    ADC_BUF[nADC_Count] = results;
            
    nADC_Count += 1;     
    if(nADC_Count == 10)
    {
         nADC_Flag = 1;            //設置標志
         nADC_Count = 0; 
         for(int i = 0;i < 10;i++) ADC_BUF_Temp[i] = ADC_BUF[i];      
    }
                
    ADC12CTL0 |= ENC + ADC12SC;	   // 開啟轉換
}
///////////////////////////////////////
// 處理來自端口 1 的中斷
interrupt [PORT1_VECTOR] void PORT_ISR(void)
{
    Delay_us(100);//消除延時抖動
    if(P1IFG & BIT0) // P1.0列線上有按鍵輸入
    {
    	P1IFG &= ~(BIT4);	// 清除中斷標志位
    	Delay_ms(1);
    	for(;;)
    	{
    	    if((P1IFG & BIT4) == 0) break;
    	}
    	// 獲得輸入值
    	switch(PORT_count)
    	{
            case 0:
            {
            	PORT_INPUT = 9;
            	PORT_count = 1;
            	break;
            }
            case:1
            {
            	PORT_INPUT = 7;
            	PORT_count = 2;
            	break;
            }
            case 2:
            {
            	PORT_INPUT = 5;
            	PORT_count = 3;
            	break;
            }
            case 3:
            {
            	PORT_INPUT = 3;
            	PORT_count = 4;
            	break;
            }
            case 4:
            {
            	PORT_INPUT = 1;
            	PORT_count = 0;
            	break;
            }
            default:break;
    	}
    	FLAG_PORT = 1;
    }
    
    if(P1IFG & BIT1)//// P1.1列線上有按鍵輸入
    {
    	P1IFG &= ~(BIT5);	// 清除中斷標志位
    	Delay_ms(1);
    	for(;;)
    	{
    	    if((P1IFG & BIT5) == 0) break;
    	}
    	// 獲得輸入值
    	switch(PORT_count)
    	{
            case 0:
            {
            	PORT_INPUT = 0;
            	PORT_count = 1;
            	break;
            }
            case:1
            {
            	PORT_INPUT = 8;
            	PORT_count = 2;
            	break;
            }
            case 2:
            {
            	PORT_INPUT = 6;
            	PORT_count = 3;
            	break;
            }
            case 3:
            {
            	PORT_INPUT = 4;
            	PORT_count = 4;
            	break;
            }
            case 4:
            {
            	PORT_INPUT = 2;
            	PORT_count = 0;
            	break;
            }
            default:break;
    	}
    	FLAG_PORT = 1;
    }
}
interrupt [TIMERB0_VECTOR] void TimerB_ISR(void)
{
    // 設置相應的行線為低電平
    switch(PORT_count)
    {
        case 0:
        {
            // 設置為高電平
            P1OUT |= BIT3;
            P1OUT |= BIT4;
            P1OUT |= BIT5;
            P1OUT |= BIT6;
            // 設置為低電平
            P1OUT &= ~(BIT2);            
            break;
        }
        case:1
        {
            // 設置為高電平
            P1OUT |= BIT2;
            P1OUT |= BIT4;
            P1OUT |= BIT5;
            P1OUT |= BIT6;
            // 設置為低電平
            P1OUT &= ~(BIT3); 
            break;
        }
        case 2:
        {
            // 設置為高電平
            P1OUT |= BIT3;
            P1OUT |= BIT2;
            P1OUT |= BIT5;
            P1OUT |= BIT6;
            // 設置為低電平
            P1OUT &= ~(BIT4); 
            break;
        }
        case 3:
        {
            // 設置為高電平
            P1OUT |= BIT3;
            P1OUT |= BIT4;
            P1OUT |= BIT2;
            P1OUT |= BIT6;
            // 設置為低電平
            P1OUT &= ~(BIT5); 
            break;
        }
        case 4:
        {
            // 設置為高電平
            P1OUT |= BIT3;
            P1OUT |= BIT4;
            P1OUT |= BIT5;
            P1OUT |= BIT2;
            // 設置為低電平
            P1OUT &= ~(BIT6); 
            break;
        }
            default:break;
    }
          
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美一区二区三区久本道91 | 一区二区久久久久| 精品少妇一区二区三区在线播放| 欧美日韩国产首页| 色狠狠一区二区| 欧美三级中文字| 欧美日韩第一区日日骚| 欧美日韩一区二区三区四区| 欧美色国产精品| 欧美一区二区大片| 精品日本一线二线三线不卡| 日韩免费看的电影| 国产午夜精品一区二区三区视频| 91精品欧美久久久久久动漫 | 精品亚洲国产成人av制服丝袜 | 久久精品国产77777蜜臀| 日韩成人免费看| 麻豆91在线看| 成人在线视频一区二区| 成人91在线观看| 欧美在线免费播放| 欧美一区二区三区人| 久久精品欧美日韩| 亚洲女人****多毛耸耸8| 午夜精品福利一区二区三区av| 午夜视频在线观看一区二区| 麻豆一区二区在线| 国产成人免费视频一区| 91精品办公室少妇高潮对白| 欧美精品第1页| 久久久不卡网国产精品二区| 亚洲女人****多毛耸耸8| 日本不卡一区二区| 国产suv精品一区二区6| 欧洲一区在线观看| 久久综合九色综合97婷婷| 国产欧美日韩在线看| 一区二区三区精品视频在线| 精品在线免费视频| 97精品国产露脸对白| 欧美二区在线观看| 国产精品理伦片| 轻轻草成人在线| 99久久综合99久久综合网站| 91麻豆精品国产91久久久久久久久 | 日韩精品一区二区三区在线观看| 国产精品女人毛片| 日韩国产欧美一区二区三区| 成人黄色av电影| 欧美一卡二卡三卡| 亚洲欧美一区二区三区极速播放| 麻豆91精品视频| 欧洲中文字幕精品| 欧美韩日一区二区三区| 麻豆一区二区在线| 欧美日韩亚洲国产综合| 亚洲同性gay激情无套| 另类小说色综合网站| 成人国产精品视频| 国产亚洲欧洲997久久综合| 亚洲国产成人精品视频| 成人自拍视频在线观看| 久久久久久麻豆| 日本欧美一区二区在线观看| 在线亚洲精品福利网址导航| 综合分类小说区另类春色亚洲小说欧美 | 91国偷自产一区二区开放时间| 久久免费视频色| 麻豆91在线观看| 欧美一区二区三区视频在线| 樱桃国产成人精品视频| 99久久免费视频.com| 中文av一区特黄| 97久久久精品综合88久久| 久久久美女艺术照精彩视频福利播放| 日韩精品午夜视频| 欧美亚洲国产一区二区三区va| 一区二区三区加勒比av| 欧美影院精品一区| 一区二区在线观看视频在线观看| 91免费看`日韩一区二区| 国产精品日产欧美久久久久| 国产精品一二三四五| 久久久精品国产免费观看同学| 九九精品一区二区| 久久久精品欧美丰满| 风间由美中文字幕在线看视频国产欧美| 欧美成人猛片aaaaaaa| 国内外精品视频| 国产日产欧美一区| 91视频免费播放| 亚洲欧美经典视频| 7777精品伊人久久久大香线蕉最新版 | 欧美一区二区网站| 韩国精品在线观看| 久久免费偷拍视频| 播五月开心婷婷综合| 国产精品高潮呻吟| 欧美最猛黑人xxxxx猛交| 一级精品视频在线观看宜春院| 日本丶国产丶欧美色综合| 国产精品美女久久久久久久久| av资源站一区| 日韩精品久久理论片| 日韩欧美国产午夜精品| 成人免费视频一区二区| 一区二区三区欧美| 精品国产乱子伦一区| 成人av高清在线| 日韩精品色哟哟| 中文字幕亚洲一区二区av在线| 欧美性大战久久久久久久蜜臀| 日本亚洲三级在线| 最新国产の精品合集bt伙计| 欧美一区二区三区四区五区| 成人av在线资源网站| 日韩成人精品在线| 亚洲色欲色欲www| 91精品午夜视频| 久久99精品久久只有精品| 国产精品无人区| 91精品国产一区二区人妖| 国产成人av电影在线| 日韩国产高清影视| 亚洲日本一区二区三区| 日韩欧美中文一区| 色综合一个色综合| 国产精品自拍一区| 首页欧美精品中文字幕| 国产精品毛片久久久久久| 日韩午夜av一区| 精品视频一区 二区 三区| 成人毛片老司机大片| 麻豆精品视频在线观看| 亚洲国产乱码最新视频 | 国产精品免费视频观看| 欧美大片一区二区| 欧美高清视频一二三区 | 国产精品美女久久久久aⅴ| 欧美一区二区三区婷婷月色| 欧美亚洲国产一区二区三区va | 成人免费观看av| 黄一区二区三区| 蜜臀av一区二区在线观看| 丝袜美腿高跟呻吟高潮一区| 一区二区高清视频在线观看| 欧美激情综合在线| 国产精品久久久久久久久免费桃花| 欧美不卡视频一区| 精品美女在线播放| 日韩欧美一二区| 欧美videos大乳护士334| 精品美女一区二区| 精品久久久久久最新网址| 日韩女优视频免费观看| 精品国产一区二区三区忘忧草| 日韩三级在线观看| 欧美成人女星排行榜| 精品伦理精品一区| 精品精品欲导航| 久久久午夜精品理论片中文字幕| 久久久噜噜噜久久中文字幕色伊伊 | 成人一区二区视频| 在线区一区二视频| 在线欧美一区二区| 欧美电影在线免费观看| 7777精品伊人久久久大香线蕉完整版| 欧美日韩精品二区第二页| 欧美一区二区女人| 久久精品夜色噜噜亚洲aⅴ| 久久久另类综合| 国产精品欧美精品| 亚洲一卡二卡三卡四卡五卡| 日韩中文欧美在线| 美女一区二区视频| 福利一区二区在线| 色菇凉天天综合网| 91精品福利在线一区二区三区| 精品国产免费视频| 18欧美乱大交hd1984| 亚洲国产成人精品视频| 日韩成人伦理电影在线观看| 精品一区二区免费看| 国产真实精品久久二三区| 国产成a人无v码亚洲福利| 色美美综合视频| 91精品国产91久久久久久一区二区| 精品福利在线导航| 亚洲区小说区图片区qvod| 麻豆精品视频在线观看免费| 风间由美一区二区av101| 欧美日韩国产首页| 国产日韩精品一区二区浪潮av | 日韩欧美专区在线| 国产精品久久久久9999吃药| 天天做天天摸天天爽国产一区| 国产麻豆精品theporn| 欧美性猛交xxxxxxxx| 久久久高清一区二区三区| 婷婷亚洲久悠悠色悠在线播放|