Thông báo

Collapse
No announcement yet.

Ghi/đọc vào eeprom của Pic 16f877a với CCS

Collapse
This topic is closed.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Ghi/đọc vào eeprom của Pic 16f877a với CCS

    Chào mọi người,

    Em ghi/đọc giá trị một biến ( volume) vào eeprom của pic 16F877A.Khi mô phỏng chạy oki, nhưng khi tắt đi/bật lên ( giả vờ mất điện ) thì chương trình ko nhớ gì tới số đã lưu trước đó mà luôn trả về giá trị là 0000. ( view 0000 )

    Em nghĩ nó phải nhớ cái số lưu cuối cùng chứ?

    thanks all,
    Trình dịch: PIC C Compiler
    Mô phỏng: ISIS 7 Professional ( bản 7.5 )
    //========================================

    Code:

    #define LAST_VOLUME 0 // Location in EEPROM
    int16 volume;

    Ghi đọc vào eeprom
    write_eeprom(LAST_VOLUME,volume);
    volume = read_EEPROM (LAST_VOLUME);
    Biến volume tăng lên khi ta ấn nút
    if((!input(Pin_A1)))volume++;
    while((!input(Pin_A1))) ;
    Rồi hiển thị lên LCD
    lcd_putcmd(0x80);
    lcd_putchar("view");
    lcd_putcmd(0x88);
    hienthi(volume);
    Last edited by luongthitu; 30-10-2012, 11:20.

  • #2
    hi ..Em chỉnh được rồi
    Trong hàm main ( trước lệnh đọc/ghi ) ta lấy giá trị volume ra trước

    volume = read_EEPROM (LAST_VOLUME);

    Rồi trong hàm while hãy ghi/đọc.

    Tiện đây cho em hỏi:

    - Tại sao trình mô phỏng ISIS 7 Professional ( 7.5) khi em thu nhỏ xuống thanh tabar thì khi click bật lên là nó out lun nhỉ?
    - Em chạy trên win7
    Last edited by luongthitu; 30-10-2012, 12:03.

    Comment


    • #3
      Bạn read_EEPROM ở vị trí ô nhớ nào?(mình nói ô nhớ cho dể hiểu..)
      Như vd của bạn: volume = read_EEPROM (LAST_VOLUME); nó hiểu bạn đọc giá trị volume ở ô nhớ LAST_VOLUME
      Bạn sửa lại như sau:volume=READ_EEPROM(1); // nó đọc giá trị bạn lưu ở ô nhớ "1"
      tương tự bạn ghi vào eeprom như sau: WRITE_EEPROM(1,volume);// ghi giá trị volume vào ô nhớ "1"
      Cả thế giới đều nằm trong cuốn "Tự điển" do đó tôi rất thích điện tử

      Comment


      • #4
        Cám ơn bác dtbinhtomay2 .

        trong hàm em đã định nghĩa ô nhớ rồi: #define LAST_VOLUME 0 // Location in EEPROM ( dòng trên cùng đó )

        Comment


        • #5
          Uh, mắt mũi tèm nhem

          Cò về proteus của bạn thu nhỏ xuống, bật lên nó out luôn có thể bị lỗi ct do lỗi *****. bạn cài bản 7.9 đi, mình cũng đang xài bản 7.9 trên win 7 không thấy lỗi gì.
          Cả thế giới đều nằm trong cuốn "Tự điển" do đó tôi rất thích điện tử

          Comment


          • #6
            mô phỏng khi bật tắt bằng hình tam giác và hình vuông ở góc dưới bên trái thì nó ko nhớ là phải rồi, đó là khởi động và tắt mô phỏng chứ ko phải tắt nguồn.

            Comment


            • #7
              Nguyên văn bởi dtbinhtomay2 Xem bài viết
              Uh, mắt mũi tèm nhem

              Cò về proteus của bạn thu nhỏ xuống, bật lên nó out luôn có thể bị lỗi ct do lỗi *****. bạn cài bản 7.9 đi, mình cũng đang xài bản 7.9 trên win 7 không thấy lỗi gì.
              Bác cho em xin link down và "thuốc" ?

              Comment


              • #8
                Code:
                .....
                #define LAST_VOLUME 10 
                
                void main()
                {
                     // Ghi vao o nho 0x00 cua EEPROM gia tri 100
                     Write_EEPROM(0x00,100);
                
                     // Doc gia tri o nho 0x00 cua EEPROM
                     int value;
                     value = Read_EEPROM(0x00);
                }

                Comment


                • #9
                  Mấy người thích mô phỏng thì các bạn thành viên trả lời làm gì cho tốn thời gian, mô phỏng đẻ ra hàng tỷ vấn đề không liên quan. Luồng đóng tại đây.
                  Phần mềm tự do hoặc không dùng máy tính nữa !.

                  Comment

                  Về tác giả

                  Collapse

                  luongthitu Tìm hiểu thêm về luongthitu

                  Bài viết mới nhất

                  Collapse

                  • bqviet
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi bqviet
                    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                    06-12-2025, 17:17
                  • nguyendinhvan
                    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                    bởi nguyendinhvan
                    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                    05-12-2025, 19:59
                  • afrendly
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi afrendly
                    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                    04-12-2025, 01:27
                  • nick22
                    Trả lời cho Máy điện châm ?
                    bởi nick22
                    Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                    01-12-2025, 13:23
                  Đang tải...
                  X