Thông báo

Collapse
No announcement yet.

lập trình 8 led đơn và mô phỏng bằng ATmega16??

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • lập trình 8 led đơn và mô phỏng bằng ATmega16??

    mình có đề tài là:"Viết chương trình hai LED ở giữa sáng bung ra, mỗi trạng thái chỉ có 2 LED sáng, lặp lại". mình viết code mà không biết viết thế nào, các bạn giúp mình viết code và mô phỏng nó bằng con ATmega 16 nhé, cảm ơn các bạn nhiều

  • #2
    Phần cứng kết nối thế nào rồi?
    Lập trình bằng ngôn ngữ nào đây ?
    Viết trên CodeVision hay AVRStudio ?

    Comment


    • #3
      chương trình gồm 8 led đơn 2 con ở giữa sáng rồi chạy sáng dần về 2 bên, viết bằng ngôn ngữ assembly, và viết trên phần mềm fastAVR rồi mô phỏng mạch chạy trên proteus. bạn giúp mình nhé thứ 3 mình phải nộp báo cáo rồi, thanks

      Comment


      • #4
        Hic !
        Dùng ngôn ngữ "chữ in hoa" thì bó tay rồi.
        Tiện đây viết cho bạn đoạn ngôn ngữ C để tham khảo.
        Chương trình được viết trên AVRStudio, bạn dịch sang file Hex rồi nạp vào xem có đúng ý đồ không.
        8 Led được nối vào PORTC:
        PHP Code:
        #include <avr/io.h>
        #include <util/delay.h>

        unsigned char font[4] = {0xE7,0xDB,0xBD,0x7E};

        int main(void)
        {
          
        unsigned char i 0;
          
        DDRC 0xFF;
          
        PORTC 0xFF;
          while(
        1)
          {
            for(
        i=0;i<4;i++)
            {
               
        PORTC font[i];
               
        _delay_ms(500);
              
        PORTC 0xFF;
            }
          }

        Thế thôi!

        Comment


        • #5
          bạn không viết code bằng ngôn ngư assembly dc à

          Comment


          • #6
            Tớ cũng muốn biết viết bằng ngôn ngữ ASM lắm mà học mãi mà nó có vào đâu.

            Comment


            • #7
              bạn ơi sao mình vào AVR đổi sang đuôi hex mà đổi mãi không thấy file HEx chổ nào nhỉ, bạn chỉ giùm mình với

              Comment


              • #8
                Project => Configuration Options (Hoặc là biểu tưởng hình cái bánh răng nằm trên Bar AVRGCC PLUGIN)
                Trong mục này bạn cấu hính cho Chip, Chọn tần số thạch anh, tạo File Hex. Sau đó nhấn OK để lưu cấu hình.
                Nhấn F7 để biên dịch để tạo file Hex.

                Comment


                • #9
                  có bạn nào viết chương trình này bằng ASSEMBLY dc không giúp mình với

                  Comment


                  • #10
                    các bạn xem giùm cái code này có đúng không:



                    ;============================================
                    ; Ten chuong trinh: dk led
                    ; Mo ta phan cung :
                    ; - VDK: ATmega16
                    ; - dk 8 led gan tai Port B
                    ; - Led sang khi Port B = 1
                    ; - Led tat khi Port B = 0
                    ; Mo ta phan mem:
                    ; - Ngon ngu : AVR Assembler
                    ; - Trinh bien dich : ATmel AVR Assembler
                    ; - Trinh mo phong :
                    ; + AVR Studio 4.13 Sp2
                    ; + Protues 7.4
                    ;============================================

                    .include "m16def.inc"
                    main:

                    ldi r16,$ff ;DDRB la port xuat
                    out DDRB,r16

                    ldi r16,$00 ;tat tat ca cac led
                    out PORTB,r16


                    pre_loop:

                    ldi r31,0b00001000
                    ldi r30,0b00010000


                    loop:

                    ldi r29,$00
                    add r29,r31
                    add r29,r30

                    out PORTB,r29
                    rcall delay ;khong nen dung khi

                    ;mo phong voi AVR Studio


                    cpi r29,$00 ;if (r29==0)
                    breq pre_loop ; pre_loop

                    lsr r31 ;r31>>1
                    lsl r30 ;r30<<1
                    rjmp loop


                    delay:

                    ldi r16,250
                    loop0:

                    ldi r17,250

                    loop1:

                    dec r17
                    cpi r17,$00
                    brne loop1

                    dec r16
                    cpi r16,$00
                    brne loop0

                    ret

                    Comment


                    • #11
                      bạn sửa thành thế này
                      Tần số thạch anh khi mô phỏng trong proteus đặt 1MHz thì nhìn rõ.
                      Nếu cần kéo dài thêm thời gian delay.
                      ;===============================
                      .include "m16def.inc"
                      main:

                      ldi r16,$ff ;DDRB la port xuat
                      out DDRB,r16

                      ldi r16,$00 ;tat tat ca cac led
                      out PORTB,r16


                      pre_loop:

                      ldi r30,0b00001000 ;high
                      ldi r31,0b00010000 ;low
                      ldi r28,0
                      loop:
                      lsl r30
                      lsr r31
                      mov r29,r30
                      or r29,r31

                      cpi r29,$00 ;if (r29==0)
                      breq pre_loop ;pre_loop

                      out PORTB,r29
                      jmp delay
                      rjmp loop

                      delay:
                      ldi r16,250
                      loop0:

                      ldi r17,250

                      loop1:

                      dec r17
                      cpi r17,$00
                      brne loop1

                      dec r16
                      cpi r16,$00
                      brne loop0
                      jmp loop
                      ret
                      Last edited by hungnp; 03-11-2009, 07:03.

                      Comment


                      • #12
                        sao mà khi test code này trên codevisionAVR nó báo lỗi chỗ hàm thư viện là sao vậy bạn??

                        Comment


                        • #13
                          code dùng cho AVRstudio

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X