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

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

?? spi_drive.c

?? 一個基于LPC214X的SPI 總線驅動程序
?? C
字號:
/*******************************************************************************************************
* 文件名:Spi_Drive.c
* 功  能:SPI 總線配置 驅動HC595工作實現SPI串行數據傳輸
* 作  者:Windows
* 日  期:2006年10月12號
* 說明: 顯示函數void SUMLED_Show(uint8 *disp_buf,uint16 dly)的入口參數為disp_buf在應用程序中給出

********************************************************************************************************/
#define Spi_H
#include "config.h"

#define HC595_CS        ((uint32)0x01<<29)
#define HC595_CS_H()    IO0SET=HC595_CS
#define HC595_CS_L()    IO0CLR=HC595_CS                        //HC595片選

#define      SMG_1          ((uint32)0x01<<24)                 // P1.24引腳作為數碼管1的位選
#define      SMG_2          ((uint32)0x01<<23)                 // P1.23引腳作為數碼管2的位選
#define      SMG_3          ((uint32)0x01<<22)                 // P1.22引腳作為數碼管3的位選
#define      SMG_4          ((uint32)0x01<<21)                 // P1.21引腳作為數碼管4的位選
#define      SMG_5          ((uint32)0x01<<19)                 // P1.19引腳作為數碼管5的位選
#define      SMG_6          ((uint32)0x01<<18)                 // P1.18引腳作為數碼管6的位選
#define      SMG_7          ((uint32)0x01<<17)                 // P1.17引腳作為數碼管7的位選
#define      SMG_8          ((uint32)0x01<<16)                 // P1.16引腳作為數碼管8的位選
#define      H_SMG_1()      IO1SET=SMG_1                       // 數碼管1的位選置高
#define      L_SMG_1()      IO1CLR=SMG_1                       // 數碼管1的位選置低
#define      H_SMG_2()      IO1SET=SMG_2                       // 數碼管2的位選置高
#define      L_SMG_2()      IO1CLR=SMG_2                       // 數碼管2的位選置低
#define      H_SMG_3()      IO1SET=SMG_3                       // 數碼管3的位選置高
#define      L_SMG_3()      IO1CLR=SMG_3                       // 數碼管3的位選置低
#define      H_SMG_4()      IO1SET=SMG_4                       // 數碼管4的位選置高
#define      L_SMG_4()      IO1CLR=SMG_4                       // 數碼管4的位選置低
#define      H_SMG_5()      IO1SET=SMG_5                       // 數碼管5的位選置高
#define      L_SMG_5()      IO1CLR=SMG_5                       // 數碼管5的位選置低
#define      H_SMG_6()      IO1SET=SMG_6                       // 數碼管6的位選置高
#define      L_SMG_6()      IO1CLR=SMG_6                       // 數碼管6的位選置低
#define      H_SMG_7()      IO1SET=SMG_7                       // 數碼管7的位選置高
#define      L_SMG_7()      IO1CLR=SMG_7                       // 數碼管7的位選置低
#define      H_SMG_8()      IO1SET=SMG_8                       // 數碼管8的位選置高
#define      L_SMG_8()      IO1CLR=SMG_8                       // 數碼管8的位選置低



uint8 Spi_SendData(uint8 Data);          //函數聲明

/********************************************************************************************
* 函數名稱:Delay()
* 功    能:軟件延時
* 入口參數:count    延時參數,值越大,延時越長
* 出口參數:無
*********************************************************************************************/
/*void Delay(uint32 count)
{
  uint32 i;
  
  for(;count>0;count--)
     for(i=0;i<5000;i++);
}*/		                                       // 8位數碼管顯示緩沖區

/********************************************************************************************
* 函數名稱:SUMLED_ALLON()
* 功    能:選中全部8位數碼管
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void SUMLED_ALLON(void)
{
  L_SMG_1();
  L_SMG_2();
  L_SMG_3();
  L_SMG_4();
  L_SMG_5();
  L_SMG_6();
  L_SMG_7();
  L_SMG_8();


}

/********************************************************************************************
* 函數名稱:SUMLED_ALLOFF()
* 功    能:禁用全部8位數碼管
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void  SUMLED_ALLOFF(void)
{
  H_SMG_1();
  H_SMG_2();
  H_SMG_3();
  H_SMG_4();
  H_SMG_5();
  H_SMG_6();
  H_SMG_7();
  H_SMG_8();
 
}

/********************************************************************************************
* 函數名稱:SUMLED_PINInit()
* 功    能:8位數碼管位選引腳初始化
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void SUMLED_PINInit(void)
{
  PINSEL2&=~((uint32)0x01<<3);                 // P1.16~P1.25作為GPIO
  
  /* 設置數碼管的8個位選線連接的GPIO方向為輸出 */
  IO1DIR|=(SMG_1 | SMG_2 | SMG_3 | SMG_4 | SMG_5 | SMG_6 | SMG_7 | SMG_8);
  
  SUMLED_ALLOFF();                             // 8個數碼管全都不選中
 
}

/********************************************************************************************
* 函數名稱:SUMLED_Show()
* 功    能:8位數碼管動態掃描顯示
* 入口參數:disp_buf,8位數碼管顯示緩沖區
*           dly,延時參數
* 出口參數:無
*********************************************************************************************/
void SUMLED_Show(uint8 *disp_buf,uint16 dly)
{
  uint8 i;
  
  for(i=0;i<dly;i++)
    {
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[0]);
      L_SMG_1();
     // Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[1]);
      L_SMG_2();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[2]);
      L_SMG_3();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[3]);
      L_SMG_4();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
  
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[4]);
      L_SMG_5();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[5]);
      L_SMG_6();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[6]);
      L_SMG_7();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
 
      SUMLED_ALLOFF();
      Spi_SendData(disp_buf[7]);
      L_SMG_8();
      //Delay(4);
      OSTimeDlyHMSM(0 , 0 , 0 , 4);
 
  
      SUMLED_ALLOFF();
    }
 
}


       
/*****************************************************************************
 **函數名稱:Spi_Init
 **函數功能:對SPI總線進行初始化
 **函數入口參數:無
 **函數出口參數:無
*****************************************************************************/
       
void Spi_Init(void)
{
  PINSEL1=0x00000000;
  PINSEL0&=~((uint32)0x3f<<8);
  PINSEL0|=((uint32)0x15<<8); //設置為SPI
  IO0DIR=HC595_CS;//HC595_CS為輸出

  SPCCR = 0x52;
  SPCR=(0x00<<3)|      //CPHA=0
       (0x01<<4)|      //CPOL=1
       (0x01<<5)|      //MSTR=1
       (0x00<<6)|      //LSBF=0  SPI數據傳輸MSB(BIT7? 在先
        (0x00<<7);      //SPIE=0 spi中斷被禁止
 
  }
  
/*****************************************************************************
 **函數名稱:Spi_SendData()
 **函數功能:向SPI總線發送數據 
 **函數入口參數:DATA
 **函數出口參數:返回值為發送讀取的數據
*****************************************************************************/
  
 uint8 Spi_SendData(uint8 Data)
 {
  HC595_CS_L();
   SPI_SPDR=Data;
   while((SPI_SPSR&0x80)==0);//等待SPIF位置位(發送數據完畢?  
     HC595_CS_H();
      return(SPI_SPDR); 
      }
       
















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男同1069视频| 亚洲欧美日韩一区二区三区在线观看| 国产精品狼人久久影院观看方式| 一区2区3区在线看| 丁香五精品蜜臀久久久久99网站| 欧美大片日本大片免费观看| 中文字幕在线一区二区三区| 九九视频精品免费| 在线电影一区二区三区| 亚洲图片欧美色图| 精品亚洲免费视频| 99精品视频中文字幕| 欧美tickling挠脚心丨vk| 一二三四区精品视频| 国产精品久久久久一区| 99久久99久久精品免费观看| 国产精品国产三级国产aⅴ原创| 欧美一区二区在线视频| 91黄色免费版| 肉色丝袜一区二区| 久久一二三国产| 制服丝袜av成人在线看| 欧美在线短视频| 日韩av电影一区| 精品国产凹凸成av人网站| 精东粉嫩av免费一区二区三区| 欧美mv和日韩mv的网站| 成人黄页毛片网站| 欧美日韩视频第一区| 蜜桃一区二区三区在线观看| 日韩一区二区电影在线| 亚洲国产精品久久人人爱蜜臀| 亚洲日本va午夜在线影院| 中文字幕亚洲成人| 一区二区三区蜜桃| 国产麻豆9l精品三级站| 亚洲最大色网站| 一区二区三区小说| 亚洲亚洲人成综合网络| 视频一区二区欧美| 国产一区二区精品久久91| 久久99精品国产91久久来源| 日韩av午夜在线观看| 免费不卡在线观看| 国产成人av电影在线播放| 一本到三区不卡视频| 欧美日韩国产综合久久| 国产午夜精品理论片a级大结局 | 精品日产卡一卡二卡麻豆| 精品久久久久久久久久久院品网| 国产午夜久久久久| 亚洲丝袜美腿综合| 精品国产一区二区三区久久久蜜月 | 国产精品久久看| 91麻豆精品国产91久久久使用方法| 欧美色倩网站大全免费| 国产91精品免费| 国产精品成人网| 国产精品污www在线观看| 在线观看视频91| 欧美影视一区在线| 成人免费视频caoporn| 一区二区三区国产| 日韩理论片中文av| 亚洲成a人v欧美综合天堂下载| 91亚洲午夜精品久久久久久| 亚洲宅男天堂在线观看无病毒| 99综合影院在线| 欧美一区二区三区四区视频| 久久久噜噜噜久久中文字幕色伊伊| 91精品国产综合久久福利软件| 日韩你懂的电影在线观看| 天天综合天天综合色| 99久久国产综合色|国产精品| 日韩女优电影在线观看| 久久无码av三级| 国产欧美日本一区二区三区| 国产精品午夜在线| 91国产视频在线观看| 99re66热这里只有精品3直播 | 这里只有精品免费| 国产精品免费久久| 视频一区视频二区中文| 成人91在线观看| 国产精品久久久久7777按摩| 蜜桃视频一区二区三区在线观看 | 欧美私模裸体表演在线观看| 色国产综合视频| 亚洲毛片av在线| 国产乱码一区二区三区| 欧美成人伊人久久综合网| 久久久久久久久久久久电影| 精品一区二区三区视频| 色综合久久久网| 久久午夜国产精品| 亚洲成人一区二区在线观看| 亚洲va韩国va欧美va精品| 国产乱人伦偷精品视频免下载| 国产精品一级片在线观看| 91网站最新地址| 日韩欧美在线观看一区二区三区| 91精品国产综合久久久蜜臀图片| 日韩精品一区二区三区四区| 日本一区二区视频在线| 亚洲丝袜另类动漫二区| 国产一区二区在线观看免费| 一区二区三区四区乱视频| 国产69精品久久777的优势| 制服丝袜成人动漫| 亚洲综合在线电影| aaa国产一区| 欧美视频在线不卡| 青青草视频一区| 亚洲国产精品成人综合| 91视频www| 最新中文字幕一区二区三区| 精品欧美一区二区在线观看| 夜夜夜精品看看| 成人久久视频在线观看| 精品电影一区二区| 日韩精品电影在线| 在线免费亚洲电影| 自拍偷拍亚洲激情| 成人午夜精品在线| 精品第一国产综合精品aⅴ| 天堂av在线一区| 欧美丝袜自拍制服另类| 亚洲日本中文字幕区| 成人午夜视频在线观看| 欧美www视频| 日韩精品成人一区二区在线| 欧美色网站导航| 亚洲自拍偷拍图区| 色婷婷亚洲综合| 国产精品青草综合久久久久99| 国产精品一级片在线观看| 男女男精品视频| 亚洲综合一二三区| 亚洲一区二区欧美激情| 精品国产一区二区亚洲人成毛片 | 国产精品乱码一区二区三区软件 | 色噜噜狠狠色综合中国| 国产麻豆9l精品三级站| 婷婷久久综合九色综合伊人色| 1区2区3区国产精品| 久久精品亚洲乱码伦伦中文| 日韩一本二本av| 91黄色免费看| 成人中文字幕合集| 久久99久久精品| 日本亚洲视频在线| 亚洲成a人v欧美综合天堂| 亚洲欧洲av在线| 亚洲欧洲精品一区二区三区| 中文字幕不卡的av| 国产精品久久一级| 一区二区三区欧美久久| 天天综合网天天综合色| 日本不卡123| 国产精品69久久久久水密桃 | 欧美久久久久久久久中文字幕| 色综合天天综合网天天狠天天 | 亚洲卡通动漫在线| 亚洲国产人成综合网站| 亚洲精品视频自拍| 麻豆精品在线播放| 国产一区二区在线影院| 97久久精品人人做人人爽50路| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日韩欧美一二三区| 国产精品亲子伦对白| 国产精品国产三级国产aⅴ原创 | 亚洲免费在线观看| 国产在线不卡视频| 欧美在线色视频| 欧美刺激脚交jootjob| 国产人成一区二区三区影院| 国产精品另类一区| 韩日精品视频一区| 欧美午夜理伦三级在线观看| 精品国产一区二区亚洲人成毛片 | 亚洲伦理在线免费看| 久久超碰97中文字幕| 91福利国产精品| 久久久久国产精品麻豆| 夜夜嗨av一区二区三区| jizzjizzjizz欧美| 日韩一级大片在线| 亚洲美女视频一区| 成人黄色综合网站| 久久色视频免费观看| 亚洲一区二区高清| 92国产精品观看| 国产日本亚洲高清| 久久99久久99精品免视看婷婷 | 国内精品嫩模私拍在线| 91精品国产一区二区三区蜜臀| 亚洲综合在线免费观看| 99精品一区二区三区| 国产亚洲精品超碰|