欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
SPI接口應(yīng)用之看門(mén)狗芯片X25045
SPI接口應(yīng)用之看門(mén)狗芯片X25045
 更新時(shí)間:2009-10-20 14:03:47  點(diǎn)擊數(shù):0
【字體: 字體顏色

一、引腳定義及通信協(xié)議

SO:串行數(shù)據(jù)輸出腳,在一個(gè)讀操作的過(guò)程中,數(shù)據(jù)從SO腳移位輸出。在時(shí)鐘的下降沿時(shí)數(shù)據(jù)改變。

SI: 串行數(shù)據(jù)輸入腳,所有的操作碼、字節(jié)地址和數(shù)據(jù)從SI腳寫(xiě)入,在時(shí)鐘的上升沿時(shí)數(shù)據(jù)被鎖定。

SCK:串行時(shí)鐘,控制總線上數(shù)據(jù)輸入和輸出的時(shí)序。

/CS :芯片使能信號(hào),當(dāng)其為高電平時(shí),芯片不被選擇,SO腳為高阻態(tài),除非一個(gè)內(nèi)部的寫(xiě)操作正在進(jìn)行,否則芯片處于待機(jī)模式;當(dāng)引腳為低電平時(shí),芯片處于活動(dòng)模式,在上電后,在任何操作之前需要CS引腳的一個(gè)從高電平到低電平的跳變。

/WP:當(dāng)WP引腳為低時(shí),芯片禁止寫(xiě)入,但是其他的功能正常。當(dāng)WP引腳為高電平時(shí),所有的功能都正常。當(dāng)CS為低時(shí),WP變?yōu)榈涂梢灾袛鄬?duì)芯片的寫(xiě)操作。但是如果內(nèi)部的寫(xiě)周期已經(jīng)被初始化后,WP變?yōu)榈筒粫?huì)對(duì)寫(xiě)操作造成影響。

二、硬件連接


三、程序設(shè)計(jì)

狀態(tài)寄存器:

 7 6 5  4 3  2  1  0
 X  X  WD1  WD0  BL1 BL0   WEL WIP 

WIP: 寫(xiě)操作標(biāo)志位, 為1表示內(nèi)部有一個(gè)寫(xiě)操作正在進(jìn)行,為0則表示空閑,該位為只讀。
WEL:  寫(xiě)操作允許標(biāo)志位,為1表示允許寫(xiě)操作,為0表示禁止寫(xiě),該位為只讀。
BL0,BL1: 內(nèi)部保護(hù)區(qū)間的地址選擇。被保護(hù)的區(qū)間不能進(jìn)行看門(mén)狗的定時(shí)編程。
WD0,WD1:可設(shè)定看門(mén)狗溢出的時(shí)間。有四種可選擇:1.4s,600ms,200ms,無(wú)效。

操作碼:
WREN    0x06           設(shè)置寫(xiě)允許位
WRDI     0x04           復(fù)位寫(xiě)允許位
RDSR    0x05           讀狀態(tài)寄存器
WRSR   0x01            寫(xiě)狀態(tài)寄存器
READ    0x03/0x0b   讀操作時(shí)內(nèi)部EEPROM頁(yè)地址
WRITE   0x02/0x0a   寫(xiě)操作時(shí)內(nèi)部EEPROM頁(yè)地址

程序代碼:
#i nclude <reg51.h>
      sbit CS= P2^7;
      sbit SO= P2^6;
      sbit SCK= P2^5;
      sbit SI= P2^4;

      #define WREN 0x06     //
      #define WRDI 0x04     //
      #define RDSR 0x05       //
      #define WRSR 0x01        //

      #define READ0 0x03      //
      #define READ1 0x0b      //
      #define WRITE0 0x02      //
      #define WRITE1 0x0a      //
      #define uchar unsigned char

      uchar ReadByte() //read a byte from device
      {
      bit bData;
      uchar ucLoop;
      uchar ucData;
      for(ucLoop=0;ucLoop<8;ucLoop++)
      {
      SCK=1;
      SCK=0;
      bData=SO;
      ucData<<=1;
      if(bData)
      { ucData =0x01; }
      }
      return ucData;
      }

      void WriteByte(uchar ucData)//write a byte to device
      {
      uchar ucLoop;
      for(ucLoop=0;ucLoop<8;ucLoop++)
      {
      if((ucData&0x80)==0)    //the MSB send first
      {SI=0;}
      else
      {SI=1;}
      SCK=0;
      SCK=1;
      ucData<<=1;
      }
      }

      uchar ReadReg()   //read register
      {
      uchar ucData;
      CS=0;
      WriteByte(RDSR);
      ucData=ReadByte();
      CS=1;
      return ucData;
      }

      uchar WriteReg(uchar ucData)  //write register
      {
      uchar ucTemp;
      ucTemp=ReadReg();
      if((ucTemp&0x01)==1) //the device is busy
      return 0;
      CS=0;
      WriteByte(WREN);//when write the WREN, the cs must have a high level
      CS=1;
      CS=0;
      WriteByte(WRSR);
      WriteByte(ucData);
      CS=1;
      return 1;
      }


      void WriteEpm(uchar cData,uchar cAddress,bit bRegion)
      /* 寫(xiě)入一個(gè)字節(jié),cData為寫(xiě)入的數(shù),cAddress為寫(xiě)入地址,bRegion為頁(yè) */
      {
      while((ReadReg()&0x01)==1);  //the device is busy
      CS=0;
      WriteByte(WREN); //when write the wren , the cs must have a high level
      CS=1;
      CS=0;
      if(bRegion==0)
        { WriteByte(WRITE0);} //write the page addr
      else
        {WriteByte(WRITE1);}
      WriteByte(cAddress);
      WriteByte(cData);
      SCK=0;  //
      CS=1;
      }

      uchar ReadEpm(uchar cAddress,bit bRegion)
      /* 讀入一個(gè)字節(jié),cAddress為讀入地址,bRegion為頁(yè) */
      {
      uchar cData;
      while((ReadReg()&0x01)==1);//the device is busy
      CS=0;
      if(bRegion==0)
         {WriteByte(READ0); }
      else
         {WriteByte(READ1);}
      WriteByte(cAddress);
      cData=ReadByte();
      CS=1;
      return cData;
      }

main()
{
WriteReg(0x00);//set the watchdog time as 1.4s

CS=1;
CS=0;       //reset the watchdog

}

  • 上一篇: 單片機(jī)應(yīng)用產(chǎn)品的PROTEUS設(shè)計(jì)與仿真
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1