Chào mừng đến với Câu Lạc Bộ Sáng Tạo
Chia sẻ kinh nghiệm
Kết nối đam mê
Đang cập nhật thời gian...
BÀI VIẾT NỔI BẬT
Xin chào! Tôi là Ếch Sáng Tạo :-)
Chia sẻ trang




Chuyên mục
Bài mới
Xem nhiều
Thống kê
  • Bài viết: 334/334
  • Thành viên: 10.085
  • Đang online: 4
  • Khách hôm nay: 793
  • Khách hôm qua: 2.352
  • Tổng khách: 16.195.396
Bài viết
BÀI 13 : EEPROM PIC16F877A XC8 - SangTaoClub.Net
BÀI 13 : EEPROM PIC16F877A XC8
Đăng bởi: lam3ngon - Thời gian: 17-05-2016, 10:56
Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 4.619

Tổng quan về EEPROM !

Có thể nói EEPROM là công nghệ mới nhất của ROM mà điều khác biệt cơ bản là chúng có khả năng xoá được bằng phương pháp lập trình mà chúng không cần đến các thiết bị chuyên dụng như các thế hệ trước của nó. Bằng cách sử dụng EEPROM (hoặc flash ROM) người ta có thể dễ dàng xoá bỏ các chương trình được nạp trên nó của các bo mạch chủ trong máy tính cá nhân mà không cần thêm một thao tác cơ học nào khác kể cả tháo vỏ máy tính. EEPROM còn giúp các thiết bị khác (bo mạch mạng, bo mạch đồ hoạ, wireless access points, bộ định tuyến...hoặc trong điện thoại, thiết bị giải trí số cá nhân...) có thể nâng cấp firmware mà không cần thay đổi chip nhớ, việc mà trước kia người ta thường thực hiện gắn chip trên các đế để có thể thay thế sau này bằng cách gỡ bỏ chúng và thay bằng chip khác.

  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
    - 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ưu14 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à ghi1Byte.
    - Bộn hớEEPROM sẽ tự động xóa trước khi Ghi.
    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 256 Byte 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.
    b. Thanh ghi EECON1 và EECON2
    - Thanh gh iEECON1chứa các bit điều khiển.
    - Thanh ghiEECON2chỉlà thanh ghiảo, chỉ được dùng riêng cho hoạt động Ghi vào EEPROM.

Mình chỉ nói sơ về EEPROM trong bài đăng này thôi nha các bạn download tài liệu về EEPROM tại đây nha !

- Đây là ảnh mô phỏng protues.

eeprom pic16f877a

- Đây là code chương trình.

#include

#include

#include

#include

#define _XTAL_FREQ 20000000

void EEPROM_Write();

void EEPROM_Write_String(unsigned char [],unsigned char address);

unsigned char EEPROM_Read();

unsigned int len,i;

void main()

{

    unsigned char x;

    TRISB = 0x00;

    //Writing Operation

    EEPROM_Write_String("Programming XC8",0);    //Message String and Starting Address

    EECON1bits.WREN = 0;    //EEPROM Write Disable

    //Reading the Data at 0x0 EEPROM Address

    EEADR = 0x0;

    x = EEPROM_Read();

    PORTB = x;

    while(1)

    {

        

    }

}

 

void EEPROM_Write()

{

    EECON1bits.EEPGD = 0;    //Point to EEPROM

    EECON1bits.WREN = 1;    //EEPROM Write Enable Bit

    INTCONbits.GIE = 0;        //Disable all Interrupts

    EECON2 = 0x55;

    EECON2 = 0xAA;

    EECON1bits.WR = 1;

    INTCONbits.GIE = 1;

    while(!PIR2bits.EEIF);

    PIR2bits.EEIF = 0;

}

 

void EEPROM_Write_String(unsigned char msg[],unsigned char address)

{

    len = strlen(msg);

    for(i=0;i

    {

        EEADR = address + i;

        EEDATA = msg[i];

        EEPROM_Write(msg[i]);

    }

}

 

unsigned char EEPROM_Read()

{

    EECON1bits.EEPGD = 0;    //Point to EEPROM

    EECON1bits.RD = 1;        //EEPROM Read Enable Bit

    return(EEDATA);

}

- Link download project Click here hoặc tải ở file đính kèm bên dưới !


Tải về đính kèm:
eeprom_877a_1463457365.rar
Kích thước: 67.34 KB
Nguồn: Programming PIC
  • Bạn chưa đăng nhập, không thể viết bình luận!
    Bấm vào đây để Đăng nhập hoặc Đăng ký!

  • Bài viết cùng chuyên mục
    Cần giúp nút ấn với hiệu ứng 8051 Cần giúp nút ấn với hiệu ứng 8051
    Đăng bởi: phan_anh_17371 - Thời gian: 06-09-2018, 10:53
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 2.341
    [SHARE] Thư viện chơi nhạc bằng module DFPLayer Mini Library [SHARE] Thư viện chơi nhạc bằng module DFPLayer Mini Library
    Đăng bởi: Vũ Văn Thái - Thời gian: 05-04-2018, 15:15
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 5.172
    có bạn nào tìm hiểu về stm8 ko có bạn nào tìm hiểu về stm8 ko
    Đăng bởi: ngocsi - Thời gian: 13-03-2017, 12:16
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3.144
    Mạch đo tốc độ và quãng đường xe đạp sử dụng cảm biến hall hiển thị lcd Mạch đo tốc độ và quãng đường xe đạp sử dụng cảm biến hall hiển thị lcd
    Đăng bởi: leacebach - Thời gian: 04-03-2017, 20:57
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3.355
    ỨNG DỤNG LM35 PIC16F877A CODE CCS ỨNG DỤNG LM35 PIC16F877A CODE CCS
    Đăng bởi: lam3ngon - Thời gian: 05-06-2016, 21:35
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 5.691
    giao tiếp eeprom với pc qua 89s52 giao tiếp eeprom với pc qua 89s52
    Đăng bởi: quangmanhvk - Thời gian: 04-05-2016, 10:04
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3.106
    Tạo delay dùng timer 8051 Tạo delay dùng timer 8051
    Đăng bởi: andipanda - Thời gian: 18-04-2016, 11:09
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3.786
    Mạch Đếm lùi sử dụng ic AT89C52 hoậc AT89C51 Mạch Đếm lùi sử dụng ic AT89C52 hoậc AT89C51
    Đăng bởi: vanthang - Thời gian: 14-04-2016, 00:52
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 3.227
    Chia sẽ code đèn giao thông ngã tư PIC16F877A CCS ! Chia sẽ code đèn giao thông ngã tư PIC16F877A CCS !
    Đăng bởi: lam3ngon - Thời gian: 11-03-2016, 23:25
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 8.729
    BÀI 11 : TIMER 1 PIC16F877A XC8 BÀI 11 : TIMER 1 PIC16F877A XC8
    Đăng bởi: lam3ngon - Thời gian: 19-02-2016, 20:47
    Chuyên mục: MCU 8051, AVR, PIC - Lượt xem: 4.345
    
    Chào mừng hieutrang đã tham gia câu lạc bộ sáng tạo!
    Vũ Văn Thái - vuthai
    Hôm nay là sinh nhật của nguyenvanminh1993, sangsinh, kingkong94, 123anh, TieuDao, Kingkong1994, vodoii, walleneve0123, nguyenvanminhhd1993, thinhprozz200, buiquangquy, hoangthanh2423147, quanghoa, hoangdiep, thaoloan, hoangkiquy, longpro24, vantung01, maitu2404, thelastknight95tb, micalminh, haopll97, 1141050274, ← Gửi tin nhắn chúc mừng
    Múi giờ: UTC+07:00 - Asia/Ho Chi Minh ***** IP của bạn: 18.222.163.31 ***** Thời gian xử lý trang: 0.085 giây - Cache: Sẵn sàng!