Đọ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
17 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 473 | Lượt tải: 0
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:
- bai_giang_mon_hoc_kien_truc_may_tinh_chuong_9_eeprom_module.pdf