intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương 9: EEPROM Module

Chia sẻ: Nguyễn Nguyễn | Ngày: | Loại File: PDF | Số trang:17

124
lượt xem
18
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

EEPROM là bộ nhớ có khả năng ghi đọc trong quá trình PIC hoạt động bình thường, EEPROM không được thiết lập trực tiếp từ không gian bộ nhớ mà thông qua các thanh ghi có chức năng đặc biệt. Để hiểu rõ hơn về điều này mời các bạn tham khảo bài giảng Chương 9: EEPROM Module sau đây.

 

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 9: EEPROM Module

  1. CHƯƠNG 9 EEPROM Module
  2. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 1. Giới thiệu - EEPROM là bộ nhớ có khả năng ghi đọc trong quá trình PIC hoạt động bình thường. - EEPROM không được thiết lập trực tiếp từ không gian bộ nhớ mà thông qua các thanh ghi có chức năng đặc biệt: + EECON1 + EECON2 + EEDATA + EEADR + EEDATH + EEADRH
  3. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM - EEDATA sẽ lưu giá trị 8bit được Ghi - Đọc. - EEADR sẽ chứa địa chỉ của ô nhớ cần truy xuất. - Khi giao tiếp với bộ nhớ chương trình: 2 thanh ghi EEDATA : EEDATH được kết hợp để lưu 14 bit mã lệnh ghi và đọc. Và 2 thanh ghi EEADR : EEADRH kết hợp để lưu địa chỉ 13bit của ô nhớ đang truy xuất. - Bộ nhớ EEPROM chỉ cho phép đọc và ghi 1Byte. - Bộ nhớ EEPROM sẽ tự động xóa trước khi Ghi.
  4. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 2. Các thanh ghi a. Thanh ghi EEADR và EEADRH - Cặp thanh ghi này có thể định địa chỉ tối đa 256Byte hay tối đa 8K word của bộ nhớ EEPROM. - Khi truy xuất bộ nhớ dữ liệu: chỉ dùng EEADR để lưu Byte địa chỉ thấp. - Khi truy xuất bộ nhớ chương trình: dùng EEADR để lưu byte địa chỉ thấp và EEADRH lưu Byte địa chỉ cao.
  5. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM b. Thanh ghi EECON1 và EECON2 - Thanh ghi EECON1 chứa các bit điều khiển. - Thanh ghi EECON2 chỉ là thanh ghi ảo, chỉ được dùng riêng cho hoạt động Ghi vào EEPROM. EECON1 EEPGD dd CHS2 WRERR WREN WR RD Bit 6, 5,4: chưa cấu hình
  6. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM Bit Chöùc naêng EEPGD Bit choïn boä nhôù Döõ lieäu / Chöông trình EEPROM 1= choïn boä nhôù chöông trình 0= choïn boä nhôù döõ lieäu WRERR Côø baùo quaù trình Ghi EEPROM bò loãi 1= quaù trình Ghi keát thuùc sôùm hôn yeâu caàu ( loãi ) 0= quaù trình Ghi hoaøn chænh. WREN Bit cho pheùp hoaït ñoäng Ghi vaøo EEPROM 1= Cho pheùp Ghi. 0= khoâng cho pheùp Ghi. WR Bit ñieàu khieån quaù trình Ghi Set 1= baét ñaàu Ghi EEPROM ( ñöôïc xoùa baèng phaàn cöùng) 0= Khi quaù trình ghi hoaøn taát. RD Bit ñieàu khieån quaù trình Ñoïc Set 1= baét ñaàu Ñoïc EEPROM ( ñöôïc xoùa baèng phaàn cöùng) 0 = Quaù trình ñoïc chöa baét ñaàu
  7. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 3. Đọc dữ liệu từ EEPROM - Để đọc dữ liệu từ EEPROM: +Trước tiên phải ghi địa chỉ vào thanh ghi EEADR. + Clear bit EEPGD = 0. + Set bit RD lên 1. - Kết quả đọc được sẽ lưu vào thanh ghi EEDATA và ta có thể đọc giá trị này ở chu kỳ tiếp theo. - Kết quả trong EEDATA sẽ không đổi cho đến khi 1 chu kỳ đọc kế tiếp được thực hiện.
  8. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM Chương trình Đọc dữ liệu từ EEPROM BSF STATUS, RP1 BCF STATUS, RP0 ; Choïn Bank2 MOVLW CONFIG_ADDRESS MOVWF EEADR ;Ghi ñòa chæ caàn đñọc vaøo BSF STATUS, RP0 ; Choïn Bank3 BCF EECON1, EEPGD; Choïn Boä nhôù döõ lieäu BSF EECON1, RD ;Baét ñaàu quaù trình ñoïc BCF STATUS, RP0 ; Choïn Bank0 MOVF EEDATA, W ; Löu keát quaû ñoïc ñöôïc vaøo W.
  9. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 4. Ghi dữ liệu vào EEPROM - Để ghi dữ liệu vào EEPROM: + Trước tiên phải ghi địa chỉ vào thanh ghi EEADR và đặt dữ liệu cần ghi vào EEDATA. + EEPGD = 0: Data EEPROM ( và Cấm các Ngắt). + WREN = 1 : cho phép Ghi + Sau đó lần lượt ghi 2 giá trị 55H và AAH theo trình tự vào thanh ghi EECON2. + WR = 1 : bắt đầu hoạt động Ghi
  10. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM Chương trình Ghi dữ liệu vào EEPROM BSF STATUS, RP0 ; Bank1 BCF INTCON, GIE ; Disable INTs. BSF STATUS, RP1 ; Bank3 BSF EECON1, WREN ; Enable Write ;Ñaây laø ñoaïn chöông trình baét buoäc. MOVLW 55h MOVWF EECON2 MOVLW AAh MOVWF EECON2 ; Bit WR ñöôïc baät leân ñeå baét ñaàu quaù trình ghi BSF EECON1,WR ;Quá trình ghi hoàn tất thì cờ EEIF = 1 BSF INTCON, GIE ;Cho phép các Ngắt
  11. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 5. Đọc dữ liệu từ bộ nhớ chương trình +Trước tiên phải ghi địa chỉ vào 2 thanh ghi EEADR : EEADRH. + Clear bit EEPGD = 1. + Set bit RD lên 1. - Kết quả đọc được sẽ lưu vào 2 thanh ghi EEDATA: EEDATAH , giá trị này sẽ được đọc sau 2 chu kỳ tiếp theo khi Set bit RD=1.
  12. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM Chương trình Đọc dữ liệu từ Bộ nhớ chương trình BSF STATUS, RP1 BCF STATUS, RP0 ; Choïn Bank2 MOVLW CONFIG_ADDRESS_L MOVWF EEADR ;Ghi ñòa chæ caàn ñọc vaøo MOVLW CONFIG_ADDRESS_H MOVWF EEADRH ;Ghi ñòa chæ Byte caàn đñọc BSF STATUS, RP0 ;Choïn Bank3 BSF EECON1, EEPGD ;Boä nhôù chương trình
  13. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM BSF EECON1, RD ;Baét ñaàu quaù trình ñoïc NOP NOP BCF STATUS, RP0 ; Choïn Bank2 MOVF EEDATA, W ; Löu keát quaû ñoïc vaøo W. MOVWF DATA_L MOVF EEDATAH, W ; Löu keát quaû ñoïc vaøo W. MOVWF DATA_H
  14. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM 6. Ghi dữ liệu vào Bộ nhớ chương trình + Trước tiên phải ghi địa chỉ vào 2 thanh ghi EEADR: EEADR và đặt dữ liệu vào EEDATA:EEDATAH. + EEPGD = 1. ( và Cấm các Ngắt). + WREN = 1 : cho phép Ghi +Ghi 2 giá trị 55H và AAH thanh ghi EECON2. + WR = 1 : bắt đầu hoạt động Ghi. Sau lệnh này CPU cần 2Tcy để thực thi việc Ghi/Xóa . Lưu ý: Cứ mỗi lần Ghi là một khối = 4 Word
  15. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM Chương trình Ghi dữ liệu vào Bộ nhớ chương trình ADDRH, ADDRL và DATADDR thuộc Ram chung 70h-7Fh BSF STATUS, RP1 ; BCF STATUS, RP0 ; Bank2 MOVF ADDRH, W ; khởi tạo địa chỉ MOVWF EEADRH MOVF ADDRL, W MOVWF EEADR MOVF DATAADDR, W ; khởi tạo địa chỉ dữ liệu MOVWF FSR LOOP MOVF INDF, W ; đưa byte đầu tiên vào phần thấp MOVWF EEDATA
  16. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM INCF FSR, F ;lấy byte kế tiếp MOVF INDF, W MOVWF EEDATH ; đưa byte 2 vào phần cao INCF FSR, F BSF STATUS, RP0 ; Bank 3 BSF EECON1, EEPGD; chọn bộ nhớ chương tr BSF EECON1, WREN; cho phép Ghi BCF INTCON, GIE ;cấm ngắt MOVLW 55H MOVWF EECON2
  17. CHƯƠNG 9: BỘ NHỚ GHI ĐỌC EEPROM MOVLW AAH MOVWF EECON2 BSF EECON1, WR ; bắt đầu ghi NOP NOP BCF EECON1, WREND BCF INTCON, GIE BCF STATUS, RP0 ;chọn Bank 2 INCF EEADR, F ; tăng địa chỉ kế MOVF EEADR, W ANDLW 03H ;kiểm tra 2 bit thấp của địa chỉ=‘00’ XORLW 03H ; thì 4 words đã được ghi xong BTFSC STATUS, Z ; nếu chưa đủ 4 words thì quay lại .. GOTO LOOP
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2