×
单片机 > 单片机程序设计 > 详情

基于PIC单片机的24c02调试完成

发布时间:2020-06-18 发布时间:
|

适用于PIC系列,汇编、内存紧张的朋友用

SDA      EQU    5       ;'OC'

SCL      EQU    4

ACKF     EQU    0

EE_VCC  EQU   2

EE_WP   EQU   1       ;'H' DISABLE 'L'ENABLE

DO    EQU 7

TX_BUF    EQU 0X30

BUF_IN    EQU 0X31

EEPROM    EQU 0X32

BIT_COUNT  EQU 0X33

byte_count equ 0x34 

ACK     EQU 0X35

rom_buf1  equ 0x36

rom_buf2  equ 0x37

rom_buf3  equ 0x38

rom_buf4  equ 0x39

rom_buf5  equ 0x3a

;**********************启动信号***************************************

BSTART: 

       BSF    PORTA,SDA

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BSF    PORTA,SCL 

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BCF    PORTA,SDA

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BCF    PORTA,SCL

       NOP

       NOP

       RETLW  0

;***********************停止信号********************************

BSTOP:

        

       BCF    PORTA,SDA

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BSF    PORTA,SCL

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BSF    PORTA,SDA

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BCF    PORTA,SCL

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       RETLW  0  

       

;**********************发送N_ACK**************************

SEND_ACK:     

     NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP 

     BCF     PORTA,SDA

     NOP

       NOP

       NOP

       NOP

     NOP

       NOP

       NOP

       NOP

     BSF     PORTA,SCL

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BCF     PORTA,SCL

       NOP

       NOP

       NOP 

       NOP

       NOP

       NOP

       RETLW   0  

;**********************发送N_ACK**************************

READ_ACK:         

     BSF    TRISA,SDA    ;SET SDA IN

     CLRF   ACK

     NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

     BSF     PORTA,SCL

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BTFSS  PORTA,SDA 

       INCF    ACK,F

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       BCF     PORTA,SCL

       BCF   TRISA,SDA    ;SET SDA OUT

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       RETLW   ACK;0                   

                  

;**********************发送一个字节**************************

BYTEOUT:     

       MOVLW  D'8'

       MOVWF  BIT_COUNT

TXLP   

       nop

       nop

       CALL   BITOUT

       RLF    TX_BUF,F

       DECFSZ BIT_COUNT,F

       GOTO   TXLP

       CALL  READ_ACK

       ;CALL   BITIN   ;ACK

       ;BTFSC  EEPROM,DI

      ; BSF    PORTC,ACKF

       RETLW  0     

       

;************************接收一个字节*****************************

BYTEIN:

       BSF    TRISA,SDA    ;SET SDA IN

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

       NOP

NOP


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会