久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

PIC單片機(jī)內(nèi)部EEPROM讀寫程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年09月26日   【字體:
 #INCLUDE"P16F877.inc"
   W_TEMP  EQU 20H ; 實(shí)際上20H、A0H、120H和1A0H
   STATUS_TEMP EQU 21H ;在體0中建立保護(hù)單元 
   PCLATH_TEMP EQU 22H ;在體0中建立保護(hù)單元
   ORG  000H
   GOTO A1
   ORG  004H;定時(shí)中斷入口地址 
   GOTO ZD01;
   ORG  0CH
Q1   ADDWF   PCL,1  
    RETLW     00C0H        ;0
       RETLW     00F9H        ;1
        RETLW     00A4H        ;2
        RETLW     00B0H        ;3
      RETLW     0099H        ;4
      RETLW     0092H        ;5
      RETLW     0082H        ;6
      RETLW     00F8H        ;7
      RETLW     0080H        ;8
      RETLW     0090H        ;9
      RETLW     0088H        ;A
      RETLW     0083H        ;B
      RETLW     00C6H        ;C
      RETLW     00A1H        ;D
      RETLW     0086H        ;E
      RETLW     008EH        ;F
A1   MOVLW 1;位1顯示數(shù)
   MOVWF 50H; 
   MOVLW 2;位2顯示數(shù)
   MOVWF 51H;
   MOVLW 3;位3顯示數(shù)
   MOVWF 52H;
   MOVLW 4;位4顯示數(shù)
   MOVWF 53H;
   CLRF 60H
   MOVLW 4;顯示位數(shù)
   MOVWF 40H;
   MOVLW B'00000001';位碼
   MOVWF 41H;
   MOVLW 50H;
   MOVWF FSR ;間接尋址
   BSF  STATUS,RP0;選擇體1
   BCF  STATUS,RP1;
   MOVLW 00H;1:2TMRO比例
   MOVWF OPTION_REG;分頻1/2
   BCF  STATUS,RP0;體0
   BCF  STATUS,RP1;
   MOVLW 0FFH;
   MOVFW TMR0;初值
   BCF  INTCON,T0IF;清定時(shí)中斷標(biāo)志
   BSF  INTCON,T0IE;開定時(shí)中斷
   BSF  INTCON,GIE;開總中斷
;**********************************************************
;   按鍵修改數(shù)據(jù)程序
;**********************************************************
A2   BSF  STATUS,RP0
   BCF  STATUS,RP1;體1
   MOVLW 0FFH
   MOVWF TRISB;設(shè)置B口為輸入口
   
   BCF  STATUS,RP0
   BCF  STATUS,RP1;體0
   BTFSC PORTB,0;判斷B口第0位是否按下
   GOTO A3;位0則按下按鍵
   MOVLW 1;按下存1到EEPROM
   MOVWF 61H;數(shù)據(jù)寄存器
   CALL WR1;寫數(shù)據(jù)到EEPROM
A3   BCF  STATUS,RP0
   BCF  STATUS,RP1;體0
   BTFSC PORTB,1;判斷B口第1位是否按下
   GOTO A4;
   MOVLW 2;按下存2到EEPROM
   MOVWF 61H;數(shù)據(jù)寄存器
   CALL WR1;寫數(shù)據(jù)到寄存器
A4   BCF  STATUS,RP0;
   BCF  STATUS,RP1;體0
   BTFSC PORTB,2;判斷B口第2位是否按下
   GOTO A5;
   MOVLW 3;
   MOVWF 61H;
   CALL WR1;
A5   BCF  STATUS,RP0;
   BCF  STATUS,RP1;
   BTFSC PORTB,3;
   GOTO A6;
   MOVLW 4;
   MOVWF 61H;
   CALL WR1;
A6   BCF  STATUS,RP0;
   BCF  STATUS,RP1;
   BTFSC PORTB,4;
   GOTO A7;
   MOVLW 5;
   MOVWF 61H;
   CALL WR1;
A7   BCF  STATUS,RP0;
   BCF  STATUS,RP1;
   BTFSC PORTB,5;
   GOTO A8;
   MOVLW 6;
   MOVWF 61H;
   CALL WR1;
A8   BCF  STATUS,RP0;
   BCF  STATUS,RP1;
   BTFSC PORTB,6;
   GOTO A9;
   MOVLW 7;
   MOVWF 61H;
   CALL WR1;
A9   BCF  STATUS,RP0;
   BCF  STATUS,RP1;
   BTFSC PORTB,7;
   GOTO A10;
   MOVLW 8;
   MOVWF 61H;
   CALL WR1;
A10
   CALL RD01;調(diào)用讀數(shù)據(jù)程序
   GOTO A2;
;***********************************************
;   寫數(shù)據(jù)子程序
;***********************************************
WR1   BSF  STATUS,RP0;
   BSF  STATUS,RP1;體3
   BTFSC EECON1,WR;判斷是否在寫數(shù)據(jù)
   GOTO $-1;
   BCF  STATUS,RP0;
   BCF  STATUS,RP1;體0
   MOVFW 60H;EEPROM目標(biāo)地址
   BCF  STATUS,RP0
   BSF  STATUS,RP1;體2
   MOVWF EEADR;EEPROM目標(biāo)地址寄存器
   BCF  STATUS,RP0
   BCF  STATUS,RP1;體0
   MOVFW 61H;需寫入數(shù)據(jù)
   BCF  STATUS,RP0
   BSF  STATUS,RP1;體2
   MOVWF EEDATA;EEPROM數(shù)據(jù)寄存器
   BSF  STATUS,RP0
   BSF  STATUS,RP1;體3
   BCF  EECON1,EEPGD;選擇為EEPROM模式
   BSF  EECON1,WREN;允許使能
;***************************************************
; 寫數(shù)據(jù)5指令序列PIC特定沒有為什么不允許能改變
   MOVLW 55H ;  
   MOVWF EECON2  ;55H送EECON2
   MOVLW 0AAH;
   MOVWF EECON2  ;AAH送EECON2
   BSF  EECON1,WR ;啟動(dòng)寫操作
;   
;**************************************************
   BTFSC EECON1,WR;判斷是否學(xué)完成
   GOTO $-1;
   BCF  STATUS,RP0;恢復(fù)體0
   BCF  STATUS,RP1;
   RETURN;
;**************************************************
;   讀EEPROM數(shù)據(jù)子程序
;**************************************************   
RD01  BCF  STATUS,RP0;
   BSF  STATUS,RP1;體2
   MOVLW 0;目標(biāo)地址
   MOVWF EEADR;目標(biāo)地址寄存器
   BSF  STATUS,RP0;
   BSF  STATUS,RP0;體3
   BCF  EECON1,EEPGD;選擇EEPROM模式
   BSF  EECON1,RD;啟動(dòng)讀操作
   BTFSC EECON1,RD;判斷是否讀取完
   GOTO $-1;
   BCF  STATUS,RP0;
   BSF  STATUS,RP1;體2
   MOVFW EEDATA;將數(shù)據(jù)存到W中
   BCF  STATUS,RP0;
   BCF  STATUS,RP1;體0
   MOVWF 53H ;將讀取數(shù)存到55H   
   RETURN
;********************************************************
;   定時(shí)中斷程序
;********************************************************
ZD01  BCF  INTCON,GIE;關(guān)總中斷
   BTFSS INTCON,T0IF;判斷是否產(chǎn)生定時(shí)中斷
   GOTO ZD03;否跳出是繼續(xù)執(zhí)行
;***************************************************
;     保護(hù)現(xiàn)場(chǎng)
   MOVWF  W_TEMP;W備份到W_TEMP中
   SWAPF  STATUS,0;STATUS半字交換后送W
   CLRF  STATUS;選擇體0為當(dāng)前體備份
   MOVWF  STATUS_TEMP;將原來(lái)的STATUS送體0上的
   MOVF  PCLATH,0;PCLATH送W 
   MOVWF  PCLATH_TEMP;W送備份寄存器中
   CLRF  PCLATH ;設(shè)置為0頁(yè)
;***************************************************
   BCF  INTCON,T0IF
   BSF  STATUS,RP0;體1
   BCF  STATUS,RP1;
   MOVLW 0;
   MOVWF TRISC;RB口設(shè)為輸出口
   MOVWF TRISD;RD口設(shè)為輸出口
   BCF  STATUS,RP0;體0
   BCF  STATUS,RP1;
   MOVLW 0FFH;
   MOVWF PORTC;RB口輸出高電平
   MOVLW 0
   MOVWF PORTD;RD口輸出低電平起清屏作用
   
   MOVFW INDF;間接尋址顯示數(shù)據(jù)  
   CALL Q1;查數(shù)據(jù)表
   MOVWF PORTC;顯示斷碼輸出到RB口
   INCF FSR,1;間接尋址地址加1
   MOVFW 41H ;位碼
   MOVWF PORTD;位碼輸出到RD口
   RLF  41H,0;處理C
   RLF  41H,1;左移位碼
   DECFSZ 40H,1;判斷是否顯示完4位
   GOTO ZD02;否則繼續(xù)顯示
   MOVLW 4;顯示位數(shù)
   MOVWF 40H;
   MOVLW B'00000001';位碼
   MOVWF 41H;
   MOVLW 50H;
   MOVWF FSR ;間接尋址
ZD02  MOVLW 0FFH;
   MOVFW TMR0;重裝初值
;***************************************************
;     恢復(fù)現(xiàn)場(chǎng)
   CLRF STATUS;恢復(fù)到體0
   MOVF    PCLATH_TEMP,0;開始恢復(fù)數(shù)據(jù) 
   MOVWF PCLATH;恢復(fù)PCLATH
   SWAPF STATUS_TEMP,0
   MOVWF STATUS;恢復(fù)STATUS
   SWAPF W_TEMP,1;半字交換后放回
   SWAPF W_TEMP,0;再半字交換后送W
;***************************************************
ZD03  BSF  INTCON,GIE;開總中斷
   RETFIE ;中斷返回

;********************************************
;    數(shù)據(jù)表
;********************************************      
   END 
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲伊人久久综合 | 91直接看| 狠狠操狠狠操 | 久久人人网 | 9999精品视频 | 一级少妇女片 | www.成人.com | 91成人在线 | 久久精品91 | 久久久精品 | 欧美日韩综合精品 | 久久久男人的天堂 | 免费黄色的视频 | 中文字幕在线观看视频网站 | 国产精品成人在线 | 欧美αv | 国产精品成人一区 | 新疆少妇videos高潮 | 在线观看亚洲专区 | 亚州影院 | 免费国产精品久久久久久 | 天天干人人 | 综合久久av | 给我免费的视频在线观看 | 一区二区三区在线观看视频 | 欧美一区免费 | av黄在线观看| 日日夜夜精品视频 | 日本久久一区二区三区 | 91在线电影 | 99精品国产一区二区青青牛奶 | 人人九九精 | 成人性视频免费网站 | 国产一区二区电影 | 三级成人片| 欧美高清一区 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 久久久久久久久久影视 | 久久久综合久久 | 特黄特色大片免费视频观看 | 国产欧美一区二区三区在线看 |