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

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

?? spi.c

?? Bitek 公司 bit1611b模擬屏驅(qū)動芯片外接MCU驅(qū)動DEMO源碼
?? C
字號:
/* **********************************************************************

         Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd

        All rights are reserved. Reproduction in whole or in parts is
    prohibited without the prior written consent of the copyright owner.
   ----------------------------------------------------------------------

    Module: SPI.C

    Purpose: Implementation of SPI module.

    Version: 0.01                                   02:23PM  2005/08/22

    Compiler: Keil 8051 C Compiler v8.01

    Reference:

   ----------------------------------------------------------------------
    Modification:

    R0.01 02:23PM  2005/08/22 Jeffrey Chang
    Reason:
        1. Original.
    Solution:

   ********************************************************************** */

#define _SPI_C_


/* ------------------------------------
    Header Files
   ------------------------------------ */
#include <intrins.h>

#include "common.h"
#include "spi.h"

/* ------------------------------------
    Macro Definitions
   ------------------------------------ */

#define NOP_24  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}
#define NOP_20  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }
#define NOP_18  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }
#define NOP_15  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  }
#define NOP_12  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();   }
#define NOP_10  { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();                     }
#define NOP_3   { _nop_(); _nop_(); _nop_(); }
#define NOP_2   { _nop_(); _nop_(); }
#define NOP_1   { _nop_(); }
#define NOP_0   {  }

/*
    1) 12-clock mode
        12 / 14.318MHz = 838 ns !

    2) 6-clock mode
        6 / 14.318MHz = 419 ns !
*/

#define SPI_T_S0    NOP_1           /* Min. 150 ns                          */
#define SPI_T_H0    NOP_1           /* Min. 150 ns                          */
#define SPI_T_S1    NOP_1           /* Min. 150 ns                          */
#define SPI_T_H1    NOP_1           /* Min. 150 ns                          */
#define SPI_T_W1L   NOP_1           /* Min. 210 ns                          */
#define SPI_T_W1H   NOP_1           /* Min. 210 ns                          */
#define SPI_T_W2    NOP_1           /* Min. 1   us                          */

#define SPI_REG_MASK        0x20
#define SPI_DATA_MASK       0x80


#define     SPI_SET_SDA(HiLo)       {   SPI_MOSI = (HiLo) ? HIGH : LOW;     }
#define     SPI_SET_SCL(HiLo)       {   SPI_SPICLK = (HiLo) ? HIGH : LOW;   }
#define     SPI_SET_CS(HiLo)        {   SPI_SS = (HiLo) ? HIGH : LOW;       }


/* ------------------------------------
    Type Definitions
   ------------------------------------ */


/* ------------------------------------
    Variables Definitions
   ------------------------------------ */
sbit SPI_MOSI       = P1 ^ 4;       /* Master Out Slave In  (SDA)       */
sbit SPI_SPICLK     = P1 ^ 3;       /* SPI clock            (SCL)       */
sbit SPI_SS         = P1 ^ 2;       /* Slave Select         (CS)        */


/* ------------------------------------
    Function Prototypes
   ------------------------------------ */


/* -------------------------------------------------------------------
    Name: SPI_Init -
    Purpose: .
    Passed: None.
    Returns: None.
    Notes:
  ------------------------------------------------------------------- */
void SPI_Init (void)
{
    SPI_SET_CS(HIGH);
    SPI_SET_SDA(LOW);
    SPI_SET_SCL(LOW);

    #ifdef NOT_JUNK
    SPI_TxByte(0x00, 0x03);
    SPI_TxByte(0x01, 0x18);

    SPI_TxByte(0x03, 0x40);
    SPI_TxByte(0x04, 0x0B);
    SPI_TxByte(0x05, 0x76);
    SPI_TxByte(0x06, 0x15);
    SPI_TxByte(0x07, 0x1E);
    SPI_TxByte(0x08, 0x00);

    SPI_TxByte(0x0C, 0x26);
    SPI_TxByte(0x0D, 0x40);
    SPI_TxByte(0x0E, 0x40);
    SPI_TxByte(0x0F, 0x40);
    SPI_TxByte(0x10, 0x40);
    SPI_TxByte(0x11, 0x40);
    SPI_TxByte(0x12, 0x88);
    SPI_TxByte(0x13, 0x88);
    #endif
} /* SPI_Init */


/* -------------------------------------------------------------------
    Name: SPI_PowerOff -
    Purpose: .
    Passed: None.
    Returns: None.
    Notes:
  ------------------------------------------------------------------- */
void SPI_PowerOff (void)
{
    SPI_TxByte(0x05, 0x5E);
} /* SPI_PowerOff */


/* -------------------------------------------------------------------
    Name: SPI_PowerOn -
    Purpose: .
    Passed: None.
    Returns: None.
    Notes:
  ------------------------------------------------------------------- */
void SPI_PowerOn (void)
{
    SPI_TxByte(0x02, 0x42);
} /* SPI_PowerOn */


/* -------------------------------------------------------------------
    Name: SPI_TxByte -
    Purpose: To transmit a 16-bit command to SPI slave device.
    Passed:
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void SPI_TxByte (
UB8  bReg,
UB8  bData
)
{
    UB8 bMask;


    SPI_SET_CS(LOW);

    for (bMask = SPI_REG_MASK; bMask; bMask >>= 1)
    {
        SPI_SET_SDA(bReg & bMask);

        // SDA is loaded one bit a time at the rising edge of SCL
        SPI_SET_SCL(HIGH);
        SPI_T_H1;
        SPI_SET_SCL(LOW);
    }

    SPI_SET_SDA(LOW);
    
    SPI_SET_SCL(HIGH);
    SPI_T_H1;
    SPI_SET_SCL(LOW);
    SPI_T_H1;

    SPI_SET_SDA(HIGH);
    
    SPI_SET_SCL(HIGH);
    SPI_T_H1;
    SPI_SET_SCL(LOW);
    SPI_T_H1;

    for (bMask = SPI_DATA_MASK; bMask; bMask >>= 1)
    {
        SPI_SET_SDA(bData & bMask);

        // SDA is loaded one bit a time at the rising edge of SCL
        SPI_SET_SCL(HIGH);
        SPI_T_H1;
        SPI_SET_SCL(LOW);
    }

    SPI_T_H0;
    SPI_SET_CS(HIGH);
    SPI_SET_SDA(LOW);
        
} /* SPI_TxByte */



/* -------------------------------------------------------------------
    Name:  -
    Purpose: .
    Passed: None.
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */


/* **********************************************************************

    Description:


   ********************************************************************** */

/* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清一区在线| 中文一区在线播放| 日韩—二三区免费观看av| 欧美中文字幕亚洲一区二区va在线 | 亚洲第一福利视频在线| 日本道在线观看一区二区| 亚洲最大色网站| 在线综合+亚洲+欧美中文字幕| 日本欧美久久久久免费播放网| 亚洲精品在线电影| 处破女av一区二区| 亚洲影视在线观看| 91精品国产欧美一区二区| 精品一区二区三区影院在线午夜 | 国产老肥熟一区二区三区| 国产偷国产偷精品高清尤物| 成人免费看的视频| 亚洲综合色区另类av| 正在播放亚洲一区| 国产成人精品一区二| 亚洲另类春色国产| 日韩欧美综合一区| 成人福利视频在线| 五月天激情综合| 欧美激情一区二区三区四区| 91精品福利视频| 精品一区二区三区av| 国产精品第13页| 在线成人免费视频| 成人ar影院免费观看视频| 亚洲h在线观看| 久久久五月婷婷| 欧美色图12p| 高清在线观看日韩| 日韩和欧美的一区| 中文字幕日韩精品一区| 欧美一卡二卡在线| 一道本成人在线| 黄网站免费久久| 亚洲成人av一区二区| 国产欧美日韩久久| 日韩一区二区三区四区| 91色综合久久久久婷婷| 国产在线不卡一区| 午夜视黄欧洲亚洲| 亚洲色图色小说| 久久一二三国产| 欧美精品乱码久久久久久 | 丁香婷婷深情五月亚洲| 日韩成人伦理电影在线观看| 亚洲人亚洲人成电影网站色| 2021国产精品久久精品| 91精品午夜视频| 欧美在线一区二区| 床上的激情91.| 国产精品原创巨作av| 视频一区在线视频| 亚洲国产精品一区二区久久| 国产精品久久久久aaaa樱花 | 国产调教视频一区| 欧美一二三区在线| 欧美日韩和欧美的一区二区| 色综合天天天天做夜夜夜夜做| 国产成人亚洲综合色影视 | 国产乱淫av一区二区三区| 日韩激情视频在线观看| 五月综合激情婷婷六月色窝| 亚洲在线视频一区| 亚洲免费高清视频在线| 中文字幕五月欧美| 亚洲品质自拍视频| 国产精品福利电影一区二区三区四区| 国产丝袜美腿一区二区三区| 欧美精品一区二区三区很污很色的| 这里只有精品免费| 在线91免费看| 日韩一区二区三区免费看 | 91精品国产免费| 5858s免费视频成人| 欧美日韩国产电影| 91精品国产91久久久久久一区二区 | 亚洲国产精华液网站w| 国产亚洲综合av| 国产人成一区二区三区影院| 亚洲精品你懂的| 亚洲激情中文1区| 亚洲一区二区三区在线看| 亚洲影院在线观看| 日韩影院免费视频| 久久国产综合精品| 国产精品主播直播| www.成人在线| 精品视频一区二区三区免费| 欧美高清性hdvideosex| 欧美不卡一二三| 久久精品视频在线免费观看 | 中文字幕一区二区三区在线播放| 1024成人网色www| 亚洲一区二区五区| 美女一区二区三区在线观看| 国产一区二区久久| 91亚洲精品一区二区乱码| 欧美亚洲一区三区| 欧美成人性福生活免费看| 欧美激情综合五月色丁香| 亚洲精品视频免费观看| 日本不卡的三区四区五区| 国产精品一区二区不卡| 色诱亚洲精品久久久久久| 777欧美精品| 国产欧美一区二区三区在线老狼| 亚洲精选免费视频| 麻豆一区二区三| 成人亚洲精品久久久久软件| 欧美性xxxxx极品少妇| 欧美成人三级在线| 中文字幕一区二区三| 三级欧美在线一区| 成人看片黄a免费看在线| 欧美日韩aaa| 中文字幕在线视频一区| 午夜精品福利视频网站| 成人午夜视频在线观看| 欧美日韩情趣电影| 国产精品第一页第二页第三页| 午夜私人影院久久久久| 久久综合九色综合欧美亚洲| 亚洲特黄一级片| 精品亚洲aⅴ乱码一区二区三区| 91片黄在线观看| 久久久久久夜精品精品免费| 亚洲午夜久久久久久久久电影网| 国产剧情一区二区三区| 欧美日韩国产综合一区二区三区 | 日韩欧美成人激情| 亚洲欧美一区二区三区国产精品 | 成人晚上爱看视频| 日韩片之四级片| 亚洲在线免费播放| 9i在线看片成人免费| 久久只精品国产| 日韩精品视频网| 欧洲一区二区三区在线| 国产精品剧情在线亚洲| 精品一区二区三区在线播放视频| 欧美写真视频网站| 亚洲欧美怡红院| 高清不卡一区二区在线| 欧美大片日本大片免费观看| 图片区小说区区亚洲影院| 色综合天天综合网天天看片| 国产精品久久久久影视| 国产夫妻精品视频| 久久亚洲一级片| 麻豆精品久久精品色综合| 在线不卡的av| 亚洲成人动漫在线免费观看| 在线看国产一区| 亚洲黄色av一区| 色一区在线观看| 亚洲精品国产无天堂网2021| 99久久夜色精品国产网站| 国产精品色哟哟| 国产a级毛片一区| 久久久久久99久久久精品网站| 日本成人在线不卡视频| 日韩一区国产二区欧美三区| 免费在线观看视频一区| 日韩美一区二区三区| 六月婷婷色综合| 欧美精品一区二区三区高清aⅴ| 免费在线欧美视频| 精品欧美一区二区久久 | 久久综合久久鬼色中文字| 激情综合色综合久久综合| 日本亚洲视频在线| 欧美巨大另类极品videosbest| 亚洲电影激情视频网站| 7777精品久久久大香线蕉| 美女视频免费一区| xnxx国产精品| 成+人+亚洲+综合天堂| 亚洲欧美另类小说视频| 欧美性一区二区| 欧美a级一区二区| www成人在线观看| 成人a区在线观看| 一区二区三区色| 6080国产精品一区二区| 国内精品免费在线观看| 国产精品区一区二区三区| 色婷婷久久99综合精品jk白丝| 亚洲第一成人在线| 精品99999| 91丨porny丨国产| 免费成人你懂的| 国产免费久久精品| 欧美亚洲国产怡红院影院| 另类小说欧美激情| 国产精品嫩草影院com|