Thông báo

Collapse
No announcement yet.

LCD 2x16

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

  • #16
    Nguyên văn bởi thehomeland Xem bài viết
    #asm
    .equ __lcd_port=0x15 ;PORTC
    #endasm
    Chỗ này là PORTC nhé!
    Còn chỗ này là PORTD:
    chân PORTD.6 và .7 thì ko có tín hiệu.bạn nào giúp mình với.
    Làm thử theo trong phần help cũng thấy thế.Chỉ giùm nhé
    Nỏ biết chữ mần răng ký được??!! Thôi nhé.

    Comment


    • #17
      Kết nối LCD với AVR thuộc loại quá dễ ( Vì chẳng cần thêm linh kiện gì đáng kể), nếu bác thehomeland biết thiết lập trong CodeWinzard rồi thì chỉ cần đánh thêm mấy chữ vào là nó chạy ngay thôi, không cần mô phỏng mô phiếc làm gì cho nó phức tạp ra, bác tham khảo đoạn code dưới đây:
      /************************************************** ***
      This program was produced by the
      CodeWizardAVR V1.24.6 Professional
      Automatic Program Generator
      © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
      http://www.hpinfotech.com
      e-mail:office@hpinfotech.com

      Project :
      Version :
      Date : 11/24/2007
      Author : thangktvta@gmail.com
      Company : Tu van xay dung Thang Long
      Comments:


      Chip type : ATmega8
      Program type : Application
      Clock frequency : 12.000000 MHz
      Memory model : Small
      External SRAM size : 0
      Data Stack size : 256
      ************************************************** ***/

      #include <mega8.h>

      // Alphanumeric LCD Module functions
      #asm
      .equ __lcd_port=0x12 ;PORTD
      #endasm
      #include <lcd.h>

      // Declare your global variables here

      void main(void)
      {
      // Declare your local variables here

      // Input/Output Ports initialization
      // Port B initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTB=0x00;
      DDRB=0x00;

      // Port C initialization
      // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTC=0x00;
      DDRC=0x00;

      // Port D initialization
      // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
      // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
      PORTD=0x00;
      DDRD=0x00;

      // Timer/Counter 0 initialization
      // Clock source: System Clock
      // Clock value: Timer 0 Stopped
      TCCR0=0x00;
      TCNT0=0x00;

      // Timer/Counter 1 initialization
      // Clock source: System Clock
      // Clock value: Timer 1 Stopped
      // Mode: Normal top=FFFFh
      // OC1A output: Discon.
      // OC1B output: Discon.
      // Noise Canceler: Off
      // Input Capture on Falling Edge
      // Timer 1 Overflow Interrupt: Off
      // Input Capture Interrupt: Off
      // Compare A Match Interrupt: Off
      // Compare B Match Interrupt: Off
      TCCR1A=0x00;
      TCCR1B=0x00;
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;

      // Timer/Counter 2 initialization
      // Clock source: System Clock
      // Clock value: Timer 2 Stopped
      // Mode: Normal top=FFh
      // OC2 output: Disconnected
      ASSR=0x00;
      TCCR2=0x00;
      TCNT2=0x00;
      OCR2=0x00;

      // External Interrupt(s) initialization
      // INT0: Off
      // INT1: Off
      MCUCR=0x00;

      // Timer(s)/Counter(s) Interrupt(s) initialization
      TIMSK=0x00;

      // Analog Comparator initialization
      // Analog Comparator: Off
      // Analog Comparator Input Capture by Timer/Counter 1: Off
      ACSR=0x80;
      SFIOR=0x00;

      // LCD module initialization
      lcd_init(16);

      while (1)
      {
      // Place your code here
      lcd_gotoxy(0,0);
      lcd_putsf("Banh Thi Noi");
      };
      }
      Nỏ biết chữ mần răng ký được??!! Thôi nhé.

      Comment


      • #18
        Nguyên văn bởi thangktvta Xem bài viết
        Kết nối LCD với AVR thuộc loại quá dễ ( Vì chẳng cần thêm linh kiện gì đáng kể), nếu bác thehomeland biết thiết lập trong CodeWinzard rồi thì chỉ cần đánh thêm mấy chữ vào là nó chạy ngay thôi, không cần mô phỏng mô phiếc làm gì cho nó phức tạp ra, bác tham khảo đoạn code dưới đây:
        /************************************************** ***
        This program was produced by the
        CodeWizardAVR V1.24.6 Professional
        Automatic Program Generator
        © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
        http://www.hpinfotech.com
        e-mail:office@hpinfotech.com

        Project :
        Version :
        Date : 11/24/2007
        Author : thangktvta@gmail.com
        Company : Tu van xay dung Thang Long
        Comments:


        Chip type : ATmega8
        Program type : Application
        Clock frequency : 12.000000 MHz
        Memory model : Small
        External SRAM size : 0
        Data Stack size : 256
        ************************************************** ***/

        #include <mega8.h>

        // Alphanumeric LCD Module functions
        #asm
        .equ __lcd_port=0x12 ;PORTD
        #endasm
        #include <lcd.h>

        // Declare your global variables here

        void main(void)
        {
        // Declare your local variables here

        // Input/Output Ports initialization
        // Port B initialization
        // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTB=0x00;
        DDRB=0x00;

        // Port C initialization
        // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTC=0x00;
        DDRC=0x00;

        // Port D initialization
        // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
        PORTD=0x00;
        DDRD=0x00;

        // Timer/Counter 0 initialization
        // Clock source: System Clock
        // Clock value: Timer 0 Stopped
        TCCR0=0x00;
        TCNT0=0x00;

        // Timer/Counter 1 initialization
        // Clock source: System Clock
        // Clock value: Timer 1 Stopped
        // Mode: Normal top=FFFFh
        // OC1A output: Discon.
        // OC1B output: Discon.
        // Noise Canceler: Off
        // Input Capture on Falling Edge
        // Timer 1 Overflow Interrupt: Off
        // Input Capture Interrupt: Off
        // Compare A Match Interrupt: Off
        // Compare B Match Interrupt: Off
        TCCR1A=0x00;
        TCCR1B=0x00;
        TCNT1H=0x00;
        TCNT1L=0x00;
        ICR1H=0x00;
        ICR1L=0x00;
        OCR1AH=0x00;
        OCR1AL=0x00;
        OCR1BH=0x00;
        OCR1BL=0x00;

        // Timer/Counter 2 initialization
        // Clock source: System Clock
        // Clock value: Timer 2 Stopped
        // Mode: Normal top=FFh
        // OC2 output: Disconnected
        ASSR=0x00;
        TCCR2=0x00;
        TCNT2=0x00;
        OCR2=0x00;

        // External Interrupt(s) initialization
        // INT0: Off
        // INT1: Off
        MCUCR=0x00;

        // Timer(s)/Counter(s) Interrupt(s) initialization
        TIMSK=0x00;

        // Analog Comparator initialization
        // Analog Comparator: Off
        // Analog Comparator Input Capture by Timer/Counter 1: Off
        ACSR=0x80;
        SFIOR=0x00;

        // LCD module initialization
        lcd_init(16);

        while (1)
        {
        // Place your code here
        lcd_gotoxy(0,0);
        lcd_putsf("Banh Thi Noi");
        };
        }
        Cám ơn bác nhé..Chắc tại tui phức tạp hóa vấn đề rùi.còn chỗ PORTD là tui đánh nhầm đó.

        Comment


        • #19
          xin lỗi vì hỏi ngoài luồng
          tôi có 1 bài toán thấy khó quá.xin mấy cao thủ chỉ rùm
          bài toán thế này:
          đây là bài toán về đo trở kháng.nếu là đo 1 con thì quá rễ.đằng này lại phải đo 40 con cùng 1 lúc. nhưng 40 con đó cùng trở kháng.mục đích ở đây là tìm ra con có trị số khác,hay nói cách khác là tìm con điện trở chết trong 40 con đấy.
          ai có cao kiến gì xin chỉ giáo rùm
          thank

          Comment


          • #20
            Nguyên văn bởi thehomeland Xem bài viết
            Ví dụ với ATmega16 nhé,mình có đoạn code sau:
            #include <mega16.h>
            #include <delay.h>
            // Alphanumeric LCD Module functions
            #asm
            .equ __lcd_port=0x15 ;PORTC
            #endasm
            #include <lcd.h>
            //hien thi dong chu "hello"
            void main(void)
            {
            lcd_init(16);
            lcd_clear();
            lcd_gotoxy(0,0);
            lcd_putsf("hello");
            while (1) ;
            }
            Có lỗi gì ở đây vậy?lúc mô phỏng trên proteus mình thấy chân E của lcd lúc nào cũng ở mức 0,tất nhiên là ko hiển thị đc gì rồi.mà chân PORTD.6 và .7 thì ko có tín hiệu.bạn nào giúp mình với.
            Làm thử theo trong phần help cũng thấy thế.Chỉ giùm nhé
            Check Fusebit ! -> Disable JTAG
            *** Thành viên không biết gì về điện ***

            Comment


            • #21
              Nếu dùng LCD cho chú AT8 mà sử dụng thư viện LCD.H thì đôi lúc cũng phức tạp. Ví dụ muốn dùng cả bộ UART và LCD, không muốn chạy thạch anh nội 8M mà cắm thạch anh ngoài 11.0592M hoặc 14.7456M thì gay go. Trong trường hợp này nên tự tạo cho mình một cái thư viện LCD riêng là hay nhất. copy cái của 89 sửa lại chân cẳng một chút là chạy.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              • mansion123
                Bật mí những điều ít ai biết về thi công gỗ óc chó
                bởi mansion123
                Thi công gỗ óc chó giúp không gian trở nên sang trọng, ấm cúng, gần gũi hơn. Sự kết hợp giữa thẩm mỹ và chất lượng cao của gỗ óc chó chắc chắn sẽ mang lại giá trị lâu dài và làm hài lòng ngay cả những khách hàng khó tính nhất. Vậy đằng
                ...
                hôm nay, 16:08
              • tuyennhan
                Trả lời cho Tiếng Anh cho người Việt
                bởi tuyennhan
                Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                hôm nay, 07:44
              • vi van pham
                Trả lời cho Tiếng Anh cho người Việt
                bởi vi van pham
                Cám ơn những lời chúc tốt đẹp của em.

                Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                hôm nay, 02:00
              • nhathung1101
                Trả lời cho Tiếng Anh cho người Việt
                bởi nhathung1101
                Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                Hôm qua, 22:18
              • dinhthuong80
                Trả lời cho Tiếng Anh cho người Việt
                bởi dinhthuong80
                Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                Hôm qua, 14:51
              • dinhthuong80
                Trả lời cho Tiếng Anh cho người Việt
                bởi dinhthuong80
                Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                Hôm qua, 14:39
              • dinhthuong80
                Trả lời cho Tiếng Anh cho người Việt
                bởi dinhthuong80
                Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                Hôm qua, 14:28
              • bqviet
                Trả lời cho Tiếng Anh cho người Việt
                bởi bqviet
                Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                21-02-2025, 20:26
              • mèomướp
                Trả lời cho Tiếng Anh cho người Việt
                bởi mèomướp
                Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                21-02-2025, 12:32
              • vi van pham
                Trả lời cho Tiếng Anh cho người Việt
                bởi vi van pham
                Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                20-02-2025, 21:31
              Đang tải...
              X