Bài giảng môn học Kiến trúc máy tính - Chương 9: EEPROM Module

Đọ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.

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

pdf17 trang | Chia sẻ: trungkhoi17 | Lượt xem: 473 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng môn học Kiến trúc máy tính - Chương 9: EEPROM Module, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 9 EEPROM Module 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 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. 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. 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. Bit 6, 5,4: chưa cấu hình dd CHS2 EECON1 WREN WR RDWRERREEPGD 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 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. 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. 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 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 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. 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 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 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 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 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 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

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_mon_hoc_kien_truc_may_tinh_chuong_9_eeprom_module.pdf
Tài liệu liên quan