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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? section8.c

?? 430學習書籍,好東西,希望大家下載
?? C
字號:
#include <MSP430X14X.h>
#include "SPI.h"
#include "ISD4004.h"

//定義全局變量
static char nPlay;//PLAY按鍵
static char nRec;//REC按鍵
static char nPlay_count;//PLAY按鍵次數(shù)
static char nRec_count;//REC按鍵次數(shù)
static char nVOF;//ISD4004 INT中斷標志

//定義串口操作變量
char nRev_UART0;//串口 0 的接收標志
unsigned char UART0_TX_BUF[20];// 串口 0 的發(fā)送緩沖區(qū)
unsigned char UART0_RX_BUF[20];// 串口 0 的接收緩沖區(qū)
static int nTX0_Len;//發(fā)送數(shù)據(jù)長度
static int nRX0_Len;//接收數(shù)據(jù)長度
int nRX0_Len_temp;
static char nTX0_Flag;//發(fā)送完成標志
int nSend_TX0;//發(fā)送記數(shù)器


void main()
{
    int nRec_Row;
    int nPlay_Row;
    WDTCTL = WDTPW + WDTHOLD;   // 關(guān)閉看門狗
    _DINT();//關(guān)閉中斷
    // 初始化
    Init_CLK();
    PORT_Init();
    SPI_Init();
    
    nPlay = 0;
    nRec = 0;
    nPlay_count = 0;
    nRec_count = 0;
    nRec_Row = 0;
    nPlay_Row = 0;
    
    _EINT();//打開中斷
    
    for(;;)
    {
    	// 放音的處理
        if((nPlay == 1) && (nPlay_count == 1))
        {
            // 放音
            Play(nPlay_Row);
            nPlay_Row += 1;
            if(nPlay_Row >= 2400) nPlay_Row = 0;
        }
        // 錄音的處理
        if((nRec == 1) && (nRec_count == 1))
        {
            // 錄音
            Record(nRec_Row);
            nRec_Row += 1;
            if(nRec_Row >= 2400) nRec_Row = 0;
        }
   
        Delay_us(10);
    }

}
// 字節(jié)的比特順序高低交換
unsigned char ByteSwap(unsigned char chrIn)
{
    unsigned char chrTemp;
    unsigned char chrOut;
    int i;

    chrOut = 0;
    for(i = 0;i < 8;i++)
    {
	    chrTemp = (chrIn & 0x80) >> 7;
	    chrIn <<= 1;
	    if(chrTemp == 1)
	    {
	        chrOut |= (chrTemp << i);
	    }	
    }
    return chrOut;
}
//片選信號置低
void SS_Enable(void)
{
    // 置低電平
    P3OUT &= ~(BIT0);
    _NOP();
    _NOP();
    return;
}
//片選信號置高
void SS_Disable(void)
{
    // 置高電平
    P3OUT |= BIT0;
    _NOP();
    _NOP();
    return;
}
// 發(fā)送上電指令
void PowerUp(void)
{
    unsigned char code;
    
    //上電命令
    code = 0x04;
    // 發(fā)送命令碼
    SendOpCode(code);
    
    return;
}
// 發(fā)送掉電指令
int PowerDown(void)
{
    unsigned char code;
    
    //掉電命令
    code = 0x08;
    // 發(fā)送命令碼
    SendOpCode(code);
    
    return;
}
// 發(fā)送停止命令
void Stop(void)
{
    unsigned char code;
    
    //停止命令
    code = 0x0C;
    // 發(fā)送命令碼
    SendOpCode(code);
    
    return;
}
// 放音操作
void Play(int nAddr)
{
    int i;
    unsigned char code;
    
    // 發(fā)送加電指令
    PowerUp();
    // 延時25ms以上
    Delay_ms(30);
    
    // 發(fā)送地址信息
    SendAddr(nAddr);
    
    // 發(fā)送SETPLAY命令
    code = 0x07;
    SendOpCode(code);
    
    // 發(fā)送PLAY命令
    code = 0x0F;
    SendOpCode(code);
    
    // 處理結(jié)束
    for(;;)
    {
        // 如果發(fā)生溢出的時候則結(jié)束錄音
        if(nOVF == 1)
    	{
    	    nOVF = 0;//清除中斷標志變量
    	    // 發(fā)送停止命令            
            Stop();
            // 延遲一點時間
            for(i = 0;i < 100;i++) ;
            
            break;
    	}
    	// 如果第2次按下放音鍵,則結(jié)束錄音
        if((nPlay == 0) && (nPlay_count == 2))
    	{
    	    nPlay_count = 0;//清除按鍵次數(shù)記錄變量
    	    // 發(fā)送停止命令            
            Stop();
            // 延遲一點時間
            for(i = 0;i < 100;i++) ;
            
            break;
    	}
    	
    }
    
    // 發(fā)送掉電指令
    PowerDown();
    // 延遲一段時間
    Delay_ms(30);
    nPlay_count = 0;//清除按鍵次數(shù)記錄變量
    return;
}
// 錄音操作
void Record(int nAddr)
{
    int i;
    unsigned char code;
    
    // 發(fā)送加電指令
    PowerUp();
    // 延時25ms以上
    Delay_ms(30);
    // 再次發(fā)送加電指令
    PowerUp();
    // 延時25ms以上
    Delay_ms(30);
    // 延時25ms以上
    Delay_ms(30);
    
    // 發(fā)送地址信息
    SendAddr(nAddr);
    
    // 發(fā)送SETREC命令
    code = 0x05;
    SendOpCode(code);
    
    // 發(fā)送REC命令
    code = 0x0D;
    SendOpCode(code);
    
    // 處理結(jié)束
    for(;;)
    {
        // 如果發(fā)生溢出的時候則結(jié)束錄音
        if(nOVF == 1)
    	{
    	    nOVF = 0;//清除中斷標志變量
    	    // 發(fā)送停止命令            
            Stop();
            // 延遲一點時間
            for(i = 0;i < 100;i++) ;
            
            break;
    	}
    	// 如果第2次按下錄音鍵,則結(jié)束錄音
        if((nRec == 0) && (nRec_count == 2))
    	{
    	    nRec_count = 0;//清除按鍵次數(shù)記錄變量
    	    // 發(fā)送停止命令            
            Stop();
            // 延遲一點時間
            for(i = 0;i < 100;i++) ;
            
            break;
    	}
    	
    }
    
    // 發(fā)送掉電指令
    PowerDown();
    // 延遲一段時間
    Delay_ms(30);
    nRec_count = 0;//清除按鍵次數(shù)記錄變量
    return;
}
// 發(fā)送地址信息
void SendAddr(int nAddr)
{
    int i;
    unsigned char chrHi;
    unsigned char chrLow;
    // 片選使能
    SS_Enable();
    // 分別取出高、低字節(jié)
    chrHi = (unsigned char)((nAddr & 0xff00) >> 8);
    chrLow = (unsigned char)(nAddr & 0x00ff);
    for(i = 100;i > 0;i--) ; //延遲一點時間
    //字節(jié)的高低順序變換
    chrHi = ByteSwap(chrHi);
    //字節(jié)的高低順序變換
    chrLow = ByteSwap(chrLow);
    
    UART0_TX_BUF[0] = chrLow;//低地址字節(jié)
    UART0_TX_BUF[1] = chrHi;//高地址字節(jié)
    nTX0_Len = 2;
    IFG1 |= UTXIFG0; // 設(shè)置中斷標志,進入發(fā)送中斷程序
    
    for(i = 100;i > 0;i--) ; //延遲一點時間
    while(1)// 等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢
    {
        if(nTX0_Flag == 1) break;
    }
    // 片選禁止
    SS_Disable();
    
    return;
}
// 發(fā)送命令碼
void SendOpCode(unsigned char code)
{
    // 片選使能
    SS_Enable();
    for(i = 100;i > 0;i--) ; //延遲一點時間
    UART0_TX_BUF[0] = code;//發(fā)送命令
    nTX0_Len = 1;
    IFG1 |= UTXIFG0; // 設(shè)置中斷標志,進入發(fā)送中斷程序
    
    for(i = 100;i > 0;i--) ; //延遲一點時間
    while(1)// 等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢
    {
        if(nTX0_Flag == 1) break;
    }
    // 片選禁止
    SS_Disable();
}

////////////////////////////////////////
// 處理來自串口 0 的接收中斷
interrupt [UART0RX_VECTOR] void SPI0_RX_ISR(void)
{
    UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;//接收來自的數(shù)據(jù)
    
    nRX0_Len_temp += 1;
    //接收滿10個設(shè)置標志
    if(nRX0_Len_temp >= 10)
    {
        nRX0_Len = nRX0_Len_temp;
        nRev_UART0 = 1;
        nRX0_Len_temp = 0;
    }  
}
////////////////////////////////////////
// 處理來自串口 0 的發(fā)送中斷
interrupt [UART0TX_VECTOR] void SPI0_TX_ISR(void)
{
    if(nTX0_Len != 0)
    {
    	nTX0_Flag = 0;	// 表示緩沖區(qū)里的數(shù)據(jù)沒有發(fā)送完
    	
    	TXBUF0 = UART0_TX_BUF[nSend_TX0];
    	nSend_TX0 += 1;
    	Delay_us(5);
    	if(nSend_TX0 >= nTX0_Len)
    	{
    	    nSend_TX0 = 0;
    	    nTX0_Len = 0;
    	    nTX0_Flag = 1;
    	}
    }
}
///////////////////////////////////////
// 處理來自端口 1 的中斷
interrupt [PORT1_VECTOR] void R_B_ISR(void)
{
    // 處理INT中斷
    if(P1IFG & BIT0)
    {
    	nVOF = 1;//設(shè)置標志
    	P1IFG &= ~(BIT0);//清除中斷標志
    	Delay_us(100);
    }

    // 處理錄音按鈕
    if(P1IFG & BIT5)
    {
        if(nRec == 1)
    	{
    	    nRec = 0;
    	    nRec_count += 1;
    	}
    	else if(nRec == 0)
    	{
    	    nRec = 1;
    	    nRec_count += 1;
    	}
    
    	P1IFG &= ~(BIT5);	// 清除中斷標志位
    	Delay_us(100);
    
    }

    // 處理放音按鈕
    if(P1IFG & BIT4)
    {
        if(nPlay == 1)
    	{
    	    nPlay = 0;
    	    nPlay_count += 1;
    	}
    	else if(nPlay == 0)
    	{
    	    nPlay = 1;
    	    nPlay_count += 1;
    	}
    	P1IFG &= ~(BIT4);	// 清除中斷標志位
    	Delay_us(100);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品综合在线观看| 精品欧美乱码久久久久久| 制服丝袜在线91| 国产精品国产三级国产aⅴ中文| 天天综合日日夜夜精品| 色偷偷88欧美精品久久久| 国产视频一区在线播放| 天堂av在线一区| 色婷婷av一区二区三区软件| 国产女人水真多18毛片18精品视频| 日韩和欧美一区二区三区| 色噜噜狠狠色综合中国| 国产精品理论在线观看| 国产麻豆成人精品| 日韩三级在线观看| 水蜜桃久久夜色精品一区的特点 | 亚洲欧洲www| 国产精华液一区二区三区| 欧美久久一区二区| 亚洲福利电影网| 色综合久久综合网97色综合| 国产精品福利一区| jlzzjlzz欧美大全| **欧美大码日韩| 91一区二区三区在线播放| 国产精品久久国产精麻豆99网站| 国产精品主播直播| 国产日韩欧美一区二区三区乱码| 久久99精品国产91久久来源| 日韩一区二区在线看片| 蜜臀av性久久久久蜜臀av麻豆| 69成人精品免费视频| 日韩在线一区二区三区| 日韩一区二区在线观看视频播放 | 亚洲精品亚洲人成人网在线播放| 粉嫩av一区二区三区在线播放| 久久精品视频网| 丁香激情综合国产| 136国产福利精品导航| 99国产欧美另类久久久精品| 亚洲品质自拍视频| 欧美日韩精品福利| 美女国产一区二区| 久久精品在这里| 91亚洲资源网| 亚洲成人激情综合网| 91精品在线免费| 国产一区二区导航在线播放| 亚洲欧洲av一区二区三区久久| 色先锋资源久久综合| 午夜精品视频在线观看| 日韩久久久久久| 不卡的看片网站| 午夜久久久久久| 久久亚洲精精品中文字幕早川悠里| 国产精品18久久久久久久久久久久 | 蜜桃视频免费观看一区| 久久久午夜精品理论片中文字幕| 99riav久久精品riav| 亚洲国产一区二区三区 | 欧美色偷偷大香| 国产中文字幕一区| 中文字幕一区二区5566日韩| 欧美日韩午夜在线视频| 国产传媒久久文化传媒| 亚洲欧洲无码一区二区三区| 欧美肥胖老妇做爰| yourporn久久国产精品| 天天av天天翘天天综合网色鬼国产| 精品av综合导航| 精品视频在线看| 高清av一区二区| 日产国产高清一区二区三区| 国产精品高清亚洲| 精品国产一区二区精华| 欧美亚洲国产一卡| 成人免费的视频| 麻豆精品新av中文字幕| 一区二区免费在线播放| 日本一区二区视频在线观看| 91.麻豆视频| 91久久精品一区二区二区| 国产成人综合精品三级| 日日夜夜一区二区| 亚洲欧美视频一区| 欧美激情中文字幕| 精品少妇一区二区三区免费观看| 在线中文字幕一区| 成人在线视频一区| 精品夜夜嗨av一区二区三区| 视频一区在线视频| 亚洲自拍偷拍综合| 亚洲天堂福利av| 欧美激情一区二区三区不卡| 欧美mv日韩mv国产网站app| 欧美久久久久免费| 欧美日韩高清在线| 在线观看www91| 在线精品国精品国产尤物884a| 成人免费视频视频在线观看免费| 国精产品一区一区三区mba桃花| 天天做天天摸天天爽国产一区 | 日本一区二区三区免费乱视频 | 国产宾馆实践打屁股91| 国产乱人伦偷精品视频不卡| 另类综合日韩欧美亚洲| 日韩精品久久理论片| 香蕉乱码成人久久天堂爱免费| 一区二区三区日韩欧美| 亚洲免费观看在线视频| 亚洲女人小视频在线观看| 亚洲欧美在线高清| 亚洲免费观看在线视频| 一区二区三区高清| 午夜视黄欧洲亚洲| 日韩国产成人精品| 蜜臀99久久精品久久久久久软件 | 亚洲福利电影网| 亚洲国产另类av| 日日骚欧美日韩| 日韩电影在线观看一区| 日本在线不卡视频一二三区| 麻豆视频一区二区| 大胆亚洲人体视频| 91麻豆产精品久久久久久| 91玉足脚交白嫩脚丫在线播放| 色久优优欧美色久优优| 欧美日韩国产高清一区二区| 欧美一区二区三区四区五区 | 樱花草国产18久久久久| 亚洲一区二区精品久久av| 亚洲va欧美va人人爽| 人人精品人人爱| 国产精品资源在线观看| 91在线国产观看| 欧美日韩国产综合草草| 26uuuu精品一区二区| 最近日韩中文字幕| 日本中文字幕一区二区有限公司| 国产伦精一区二区三区| 色综合一个色综合| 91精品国产一区二区三区蜜臀| 久久久久青草大香线综合精品| 国产精品福利在线播放| 天使萌一区二区三区免费观看| 国产原创一区二区| 91理论电影在线观看| 欧美一区二区三区视频在线观看| 久久品道一品道久久精品| 亚洲日本一区二区三区| 久久成人久久爱| 色婷婷综合中文久久一本| 26uuu久久天堂性欧美| 一区二区三区中文免费| 国产成人精品一区二区三区四区 | 亚洲三级理论片| 久草中文综合在线| 日本久久电影网| 精品国产人成亚洲区| 一区二区三区国产| 成人一区二区三区视频| 666欧美在线视频| 1024亚洲合集| 国产精品911| 日韩三级视频中文字幕| 一区二区免费看| 成人av网址在线观看| 日韩视频国产视频| 亚洲1区2区3区4区| 91老师国产黑色丝袜在线| 欧美tk—视频vk| 日韩精品1区2区3区| 色欧美片视频在线观看| 国产欧美一区二区在线| 久久99国产精品成人| 欧美精品日韩综合在线| 亚洲精品国产品国语在线app| 国产不卡一区视频| www激情久久| 麻豆精品在线观看| 欧美一区三区二区| 亚洲成人激情社区| 在线观看不卡一区| 亚洲欧美韩国综合色| 91农村精品一区二区在线| 国产精品美女久久久久av爽李琼| 久久精品国产精品青草| 日韩一级视频免费观看在线| 亚洲成人在线网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 中文字幕亚洲综合久久菠萝蜜| 成人手机电影网| 国产精品久久网站| 不卡一区中文字幕| 亚洲免费在线视频| 在线亚洲一区二区| 亚洲成人免费在线观看| 欧美午夜不卡在线观看免费| 五月天网站亚洲| 91精品国产综合久久精品app|