在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 讀寫24LCxx系列的EEPROM的實(shí)例程序

      讀寫24LCxx系列的EEPROM的實(shí)例程序

      作者: 時間:2011-05-17 來源:網(wǎng)絡(luò) 收藏

      本文引用地址:http://www.biyoush.com/article/172784.htm

      ;********************************************************
      ;* *
      ;* ? PIC16F877A ?I2C Master 家Α????Α ?dㄒ{Α *
      ;* *
      ;* Written by: Richard Yang *
      ;* Sr. Corporate Application Engineer *
      ;* Microchip Technology Inc. *
      ;* Date: Oct. 2nd '2002 *
      ;* Revision: 1.00 *
      ;********************************************************


      ;*************************************************
      ; This source code provides a demonstration of the MSSP peripheral
      ; on the PIC16F87x MCU.
      ;
      ;
      ;*********** The subroutines for *****************
      ;
      ; EE_Random_Read ; EEPROM Random address Read from EEPROM
      ; EE_SEQU_Read ; EEPROM Sequential Read form EEPROM
      ; EE_Ack_Check ; Polling current status of EEPROM
      ; EE_Page_Write ; Page Write function for EEPROM
      ; EE_Byte_Write ; Write a byte to EEPROM with address setting
      ;
      ;*********** The subroutines for I2C *****************
      ;
      ; Init_I2C_Master ; Initial I2C Module for Master Mode , 7-bit address
      ; StartI2C ; Send a START Condition !!
      ; StopI2C ; Send s STOP Condition
      ; RstartI2C ; Send a Repeat Start conditional to I2C
      ; Non_Ack ; Send a Non-acknowledge signal to I2C
      ; An_Ack ; Send a acknowledge signal to I2C
      ; Sebd_Byte ; Send a byte to I2C bus
      ; RecI2C ; Enable Read a byte form slave device
      ; I2C_Done : Wait the I2C completed the currect process
      ;
      ;***************************************************

      list p=16f877a
      #i nclude p16f877a.inc>

      ;
      ;***************************************
      ; wq跑計(jì)?RAM???
      ;
      CBLOCK 0x20

      I2C_Ctrl
      I2C_Addr
      I2C_Data
      I2C_Page_Length
      D_Count
      ENDC
      cblock 0x40
      I2C_Page_Buffer:8
      I2C_SEQU_Buffer:8
      endc
      ;
      ;***************************************
      ; wqい_?既?竟??

      w_temp EQU 0x72
      status_temp EQU 0x73
      pclath_temp EQU 0x74
      ;
      ;***************************************
      ; wq I2C ???の}?
      ;
      EEPROM_CMD equ 0xA0 ; Device adress of Slave Point
      EE_Read equ .1
      EE_Write equ .0

      ;
      #define SCL PORTC,3 ; I2C SCL pin
      #define SDA PORTC,4 ; I2C SDA pin

      ;

      ;********************************************
      ; Locates startup code @ the reset vector
      ;********************************************
      Reset_Addr
      org 0x00
      nop
      goto Main_Init
      ;
      org 0x04
      goto ISR
      ;
      ;*************************************************************
      ;**** The Start Address of ISR is 0x004
      ;**** PUSH POP ?ㄏノdㄒ : Aノ?鉤 PIC16F877 ΤSHARE BANK ?PIC
      ;**************************************************************
      ISR
      Push movwf w_temp ; save off current W register contents
      movf STATUS,w ; move status register into W register
      movwf status_temp ; save off contents of STATUS register
      movf PCLATH,W
      movwf pclath_temp
      ;
      ; Put your interrupt code here
      ;
      Pop movf pclath_temp,W
      movwf PCLATH
      movf status_temp,w ; retrieve copy of STATUS register
      movwf STATUS ; restore pre-isr STATUS register contents
      swapf w_temp,f
      swapf w_temp,w ; restore pre-isr W register contents
      ;
      retfie ; return from interrupt


      ;----------------------------------------------------------------------

      Main_Init
      pagesel Init_I2C_Master ; Set PAGE to PCLATH Register
      call Init_I2C_Master ; Init the MSSP for I2C Master
      ;
      banksel I2C_Ctrl
      movlw EEPROM_CMD ; Load EEPROM command address @ 0xA0
      movwf I2C_Ctrl
      ;
      ;
      Main
      ;
      ;----------------------------------------------------------------------
      ;
      ;* ???代剛{Α|?N?艙計(jì)?(0x40-0x47)g??RMA0x40-0x47??m
      ;* ?ノPage Write?よΑN8??じ艙?戈?g? EEPROM ?
      ;* i?A?盎代EEPROMO??ЧΘg??笆??程?N?g
      ;* ??戈??Sequential Read?よΑqEEPROM弄?ㄓ??I2C_SEQU_Bufferい
      ;

      Test_Page_RW
      movlw 0x08
      movwf I2C_Page_Length
      movlw I2C_Page_Buffer
      _Fill_RAM movwf FSR
      movwf INDF
      incf FSR,W
      decfsz I2C_Page_Length,F
      goto _Fill_RAM
      ;
      Test_Page_Write
      ; banksel I2C_Ctrl
      movlw EEPROM_CMD ; Load EEPROM command address @ 0xA0
      movwf I2C_Ctrl
      movlw 0x10 ; Select EEPROM location at 0x00
      movwf I2C_Addr
      movlw .8
      movwf I2C_Page_Length
      call EE_Page_Write
      ;
      call EE_Ack_Check
      ;
      banksel I2C_Ctrl
      movlw EEPROM_CMD ; Load EEPROM command address @ 0xA0
      movwf I2C_Ctrl
      movlw 0x10
      movwf I2C_Addr
      movlw .8
      movwf I2C_Page_Length
      call EE_SEQU_Read
      ;
      goto $
      ;
      ;---------------------------------------------------------
      ;
      ;* ???代剛{Α|?g????じ艙?戈?g? EEPROM い
      ;* ?i?A?盎代O??ЧΘg??笆??程?N?g
      ;* ??戈??qEEPROM弄?ㄓ??I2C_Data既?竟い
      ;
      Test_1byte_RW

      banksel I2C_Ctrl
      movlw EEPROM_CMD ; Load EEPROM command address @ 0xA0
      movwf I2C_Ctrl
      movlw 0x00 ; Select EEPROM location at 0x00
      movwf I2C_Addr
      movlw 0xAA ; Write data 0x5A to location 0x00 of EEPROM
      movwf I2C_Data
      call EE_Byte_Write
      ;
      Test2 call EE_Ack_Check ; Polling Acknowledge for next access
      ;
      banksel I2C_Data
      movlw 0x00 ; Clear I2C data buffer
      movwf I2C_Data
      ;
      Test3
      banksel I2C_Ctrl
      movlw EEPROM_CMD ; Load EEPROM command address @ 0xA0
      movwf I2C_Ctrl
      movlw 0x00
      movwf I2C_Addr
      call EE_Random_Read
      ;
      goto $
      ;


      上一頁 1 2 3 下一頁

      評論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉