Thông báo

Collapse
No announcement yet.

help!!!mạch đếm sản phẩm

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

  • #16
    thanks tallht nhé!
    Mình đâu muốn nhờ mọi người viết hộ đâu, à mà nếu đếm hiển thị tren LCD thì mình phải dùng mã ASCII nhỉ? bạn nào có thể viết 1 đoạn ví dụ về nó được ko?
    Mình mới search được:

    Nhị phân Tphân Tlục Đồ hoạ

    011 0000 48 30 0
    011 0001 49 31 1
    011 0010 50 32 2
    011 0011 51 33 3
    011 0100 52 34 4
    011 0101 53 35 5
    011 0110 54 36 6
    011 0111 55 37 7
    011 1000 56 38 8
    011 1001 57 39 9

    Comment


    • #17
      hiển thị cho LCD!

      Nguyên văn bởi diecthu Xem bài viết
      thanks tallht nhé!
      Mình đâu muốn nhờ mọi người viết hộ đâu, à mà nếu đếm hiển thị tren LCD thì mình phải dùng mã ASCII nhỉ? bạn nào có thể viết 1 đoạn ví dụ về nó được ko?
      Mình mới search được:

      Nhị phân Tphân Tlục Đồ hoạ

      011 0000 48 30 0
      011 0001 49 31 1
      011 0010 50 32 2
      011 0011 51 33 3
      011 0100 52 34 4
      011 0101 53 35 5
      011 0110 54 36 6
      011 0111 55 37 7
      011 1000 56 38 8
      011 1001 57 39 9
      bạn cần khởi tạo cho LCD và đọc thêm cách gửi dữ liệu và gửi lệnh lên LCD
      là ok rùi
      nghiên cứu sâu chút nữa thì đọc phần CGRAM
      bạn tham khảo một số lệnh cơ bản của LCD
      Attached Files
      0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
      ||
      PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

      Comment


      • #18
        Test_lcd

        còn đây là chương trình test LCD, DUNG TRINH DICH PROSTUDIO5.36
        INCLUDE 8051.mc
        MAIN:
        ACALL LCD_INIT
        GUI_DATA:
        MOV A,#85H
        ACALL COMMAND1 ' DUA CON TRO TOI VI TRI THU 5 HANG 1
        MOV A,#"L" ' LAY MA ASCII CUA CHU L DUA VAO THANH GHI A
        ACALL SEND_DATA ' GUI MA ASCII LEN LCD
        ACALL DELAY1000MS ' TAO TRE
        '/////////////////////////////////////////
        MOV A,#"C"
        ACALL SEND_DATA
        ACALL DELAY1000MS
        '////////////////////////////////////////
        MOV A,#"D"
        ACALL SEND_DATA
        ACALL DELAY1000MS
        '//////////////////////////////////////////
        MOV A,#C1H
        ACALL COMMAND1 'DUA CON TRO XUONG DONG THU 2 VI TRI THU2
        '////////////////////////////////////////
        MOV DPTR,#DTVN ' NAP DIA CHI 500H CHO DPTR
        ACALL XUAT_CHUOI_ACK
        ACALL DELAY1000MS
        ACALL DELAY1000MS
        MOV A,#01H ' XOA MAN HINH HIEN THI
        ACALL COMMAND1
        SJMP GUI_DATA
        '+_++++++++++++++++++++++_++_+_+_+_+_+_+_+
        'THU VIEN CHUAN , FUNCTION TO DRIVER LCD 8 BIT
        ' CONG DATA CUA LCD LA P2
        'P3.0 - > RS
        ' P3.1- > RW
        ' P3.2 - > EN
        LCD_INIT:
        MOV A,#38H ; KHOI TAO LCD MA TRAN 5X7
        LCALL COMMAND1 ; SEND COMMAND
        MOV A,#0CH ; BAT CON TRO , BAT HIEN THI
        LCALL COMMAND1
        MOV A,#01H ; XOA MAN HINH HIEN THI
        LCALL COMMAND1
        MOV A,#80H ' DUA CON TRO VE VI TRI 1 DONG 1
        LCALL COMMAND1
        RET
        COMMAND:

        LCALL DELAY1000MS
        COMMAND1:
        ACALL READY ;KIEM TRA LCD CO BAN KHONG
        NOP
        NOP
        MOV P2,A ; XUAT MA LENH RA CONG P2
        CLR P0.5 ;CHO PHEP GUI LENH
        CLR P0.6 ;CHON CHUC NANG GHI RA LCD
        SETB P0.7 ;EN = 1 - > TAO CANH XUONG
        CLR P0.7 ;EN = 0 ,CHOT
        NOP
        NOP
        RET
        ;GUI DU LIEU HIEN THI TREN LCD
        SEND_DATA:
        LCALL DELAY1000MS
        SEND_DATA1:
        ACALL READY ;KIEM TRA LCD CO BAN KHONG
        NOP
        NOP
        MOV P2,A ;XUAT DU LIEU RA CONG P2
        SETB P0.5 ;CHO PHEP GUI DU LIEU
        CLR P0.6 ;CHON CHUC NANG GHI RA LCD
        SETB P0.7 ;EN = 1 - > TAO CANG XUONG
        CLR P0.7 ;EN = 0, CHOT
        RET
        READY: SETB P2.7 ;P1.7: CHON LAM BIT KIEM TRA CO BUSY
        CLR P0.5 ;RS = 0: LENH
        SETB P0.6 ;R/W = 1:CHON CHUC NANG DOC TU LCD
        BACK: CLR P0.7 ;EN = 0 - > TAO CANH LEN
        SETB P0.7 ;EN = 1
        JB P2.7,BACK
        NOP;CHO DEN KHI CO BUSY = 0,KHONG BUSY
        RET

        '::::::::::::::::::::::::+++++++++++++++|||||||||| ||||

        XUAT_CHUOI:
        CLR A
        MOVC A,@A+DPTR
        JZ EXIT
        ACALL SEND_DATA1
        INC DPTR
        SJMP XUAT_CHUOI
        EXIT:
        RET

        '____________+++++++________________________+++___ _______________
        XUAT_CHUOI_ACK:
        CLR A
        MOVC A,@A+DPTR
        JZ EXIT
        ACALL SEND_DATA
        INC DPTR
        SJMP XUAT_CHUOI_ACK
        EXIT_ACK:
        RET

        DELAY100MS:
        MOV R2,#1
        LOOPDELAY100_1:
        MOV R0,#100
        LOOPDELAY100:
        MOV R1,#120
        DJNZ R1,$
        DJNZ R0,LOOPDELAY100
        DJNZ R2,LOOPDELAY100_1
        RET
        ;--------"""""""""""""""""""""""""""""""""""""""""""+)++_+_ +)++_+_
        DELAY1000MS:
        MOV R2,#5
        LOOP1:
        MOV R0,#100
        LOOP2:
        MOV R1,#150
        DJNZ R1,$
        DJNZ R0,LOOP2
        DJNZ R2,LOOP1
        RET
        '////////////////////////////////////////////////////////////
        ORG 500H
        DTVN:
        DB "DIENTUVIETNAM !",0
        Attached Files
        0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
        ||
        PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

        Comment


        • #19
          tui gửi cho phần code nè
          #include<stdio.h>
          #include<reg52.h>
          #define CLRSCR 0x01
          #define HOME1 0X80
          #define HOME2 0XC0
          sbit RS_LCD= P1^0;
          sbit RW_LCD= P1^1;
          sbit E_LCD= P1^2;
          sbit busy_bit= P0^7;
          int x,y,i,j,k;
          int n1,n2,n3,n4,dem;
          unsigned char m1,m2,m3,m4;
          void busy_flag(void)
          {
          P2=0xff;
          RS_LCD=0;
          RW_LCD=1;
          do
          {
          E_LCD=1;
          for(j=1;j<=3;j++)
          E_LCD=0;
          x=P2;
          x=x&0x80;
          }
          while(x!=0x80);
          }
          void tre(unsigned int t)
          {
          for(i=1;i<=t;i++);

          }

          void write_command(unsigned char LCD_command)
          {
          busy_flag();
          tre(10);
          P2=LCD_command;
          RS_LCD=0;
          RW_LCD=0;
          E_LCD=1;
          for(j=1;j<=3;j++)
          E_LCD=0;
          }
          void write_data(unsigned char LCD_data)
          {
          busy_flag();
          tre(10);
          P2=LCD_data;
          RS_LCD=1;
          RW_LCD=0;
          E_LCD=1;
          for(j=1;j<=3;j++)
          E_LCD=0;
          }
          void main(void)
          {
          write_command(0x38);
          write_command(0x0e);
          {
          IE=0X85;
          IT0=IT1=1;
          dem=0;
          write_command(HOME1);
          write_data('N');
          tre(10000);
          write_data('.');
          tre(10000);
          write_data('P');
          tre(10000);
          write_data('H');
          tre(10000);
          write_data('U');
          tre(10000);
          write_data('N');
          tre(10000);
          write_data('O');
          tre(10000);
          write_data('N');
          tre(10000);
          write_data('G');
          tre(10000);
          write_data('&');
          tre(10000);
          write_data('M');
          tre(10000);
          write_data('.');
          tre(10000);
          write_data('T');
          tre(10000);
          write_data('H');
          tre(10000);
          write_data('A');
          tre(10000);
          write_data('N');
          tre(10000);
          write_data('G');
          tre(10000);
          tre(60000);
          write_command(HOME2);
          write_data('L');
          tre(10000);
          write_data('0');
          tre(10000);
          write_data('P');
          tre(10000);
          write_data(':');
          tre(10000);
          write_data('C');
          tre(10000);
          write_data('D');
          tre(10000);
          write_data('L');
          tre(10000);
          write_data('T');
          tre(10000);
          write_data('D');
          tre(10000);
          write_data('T');
          tre(10000);
          write_data('1');
          tre(10000);
          write_data('_');
          tre(10000);
          write_data('K');
          tre(10000);
          write_data('4');
          tre(10000);
          while(1);
          }
          }
          void ngat(void)interrupt 2
          {
          EA=0;
          dem++;
          n1=dem/1000;
          n2=(dem%1000)/100;
          n3dem%1000)%100)/10;
          n4dem%1000)%100)%10;
          m1=n1+0x30;
          m2=n2+0x30;
          m3=n3+0x30;
          m4=n4+0x30;
          write_command(CLRSCR);
          write_data(HOME1);
          write_data(' ');
          tre(200);
          write_data('D');
          tre(200);
          write_data('E');
          tre(200);
          write_data('M');
          tre(200);
          write_data('_');
          tre(200);
          write_data('S');
          tre(200);
          write_data('A');
          tre(200);
          write_data('N');
          tre(200);
          write_data('_');
          tre(200);
          write_data('D');
          tre(200);
          write_data('P');
          tre(200);
          write_data('H');
          tre(200);
          write_data('A');
          tre(200);
          write_data('M');
          write_command(HOME2);
          write_data('*');
          tre(200);
          write_data('K');
          tre(200);
          write_data('e');
          tre(200);
          write_data('t');
          tre(200);
          write_data('_');
          tre(200);
          write_data('q');
          tre(200);
          write_data('u');
          tre(200);
          write_data('a');
          tre(200);
          write_data(':');
          tre(1000);
          write_data('*');
          tre(200);
          write_data(m1);
          write_data(m2);
          write_data(m3);
          write_data(m4);
          EA=1;
          }

          Comment


          • #20
            Nếu bạn muốn nghiên cứu thêm thì coái này nhé.đaylà mạchđếm hiển thị LCD
            #include <reg52.h>
            #include <stdio.h>

            void Init_LCD(void); // Initialize the LCD
            void W_ctr_8bit(char); // 8-bit Control word for LCD
            void W_data_8bit(char); // 8-bit Text Data for LCD
            void Delay_1kcyc(void); // 1000 cycles delay, 1ms
            void delay(unsigned long int d);

            sbit LCD_RS = P1^0; // RS signal for LCD
            sbit LCD_E = P1^2; // E signal for LCD
            sbit LCD_RW = P1^1; // RW signal for LCD

            unsigned char LCD_TEMP, i,j; //,k,m,LEN;
            unsigned long int n;
            char MESS[11] = "WELCOME TO";
            char MESS2[10] =" WSC 2007";
            char MESS3[14] ="1. By Keypad ";
            char MESS4[14] ="2. By Pot ";
            char xyz;

            void main()
            {
            LCD_RW = 0;
            P0 = 0x0f;
            xyz = 0x00;
            Init_LCD(); // Init LCD 8-bit interface,multiple line
            W_ctr_8bit(0x83); // position LCD cursor to line 1, column 4
            for (i=0; i<10; i++) // Output message "WELCOME TO" to LCD
            {
            W_data_8bit(MESS[i]); // Write individual character to LCD
            delay(10);
            }

            delay(10);

            W_ctr_8bit(0xC3); // position LCD cursor to line 2, column 4
            for (i=0; i<9; i++) // Output message "WSC 2007" to LCD
            {
            W_data_8bit(MESS2[i]); // Write individual character to LCD
            }

            delay(20000);
            while (1)
            {
            W_ctr_8bit(0x01); // clear screen
            W_ctr_8bit(0x82);
            for (i=0; i<13; i++) // Output message "1. By Keypad”
            {
            W_data_8bit(MESS3[i]); // Write individual character to LCD
            }
            delay(100);
            W_ctr_8bit(0xC0); // position LCD cursor to line 2, column 1
            /*for (i=0; i<13; i++) // Output message "2. By Pot" to LCD
            {
            W_data_8bit(MESS4[i]); // Write individual character to LCD
            //delay(800);
            W_data_8bit(xyz);
            } */
            xyz ++;
            W_data_8bit(xyz);
            delay(1000);
            }
            }

            /* LCD display initialization */
            void Init_LCD(){
            W_ctr_8bit(0X03); // Function Set - 8-bit, 2 lines, 5X7
            W_ctr_8bit(0X38); // Display on, cursor on
            W_ctr_8bit(0X06); // Entry mode - inc addr, no shift
            W_ctr_8bit(0X0e); // Clear display & home position
            //W_ctr_8bit(0x02);
            }

            /* Write control word to LCD */
            void W_ctr_8bit(char bien){
            LCD_RS = 0; // Logic ‘0’
            LCD_E = 1; // Logic ‘1’
            P0 = bien;
            LCD_E = 0; // Logic 0’
            Delay_1kcyc(); // 1ms delay
            }

            /* Write text data to LCD */
            void W_data_8bit(char bien){
            LCD_RS = 1; // Logic ‘1’
            LCD_E = 1; // Logic ‘1’
            P0 = bien;
            LCD_E = 0; // Logic ‘0’
            Delay_1kcyc(); // 1ms delay
            }

            /* 1,000 cycles delay routine. For 1 2MHz crystal, it is 1ms delay */
            void Delay_1kcyc(){
            unsigned int j;
            for(j=0; j<1000; j++);
            }

            void delay(unsigned long int d)
            {
            for (n=0;n<d;n++);
            }

            Comment


            • #21
              xin lỗi các pác nhé em ý kiến thế này.Các pác pot các đoạn code lên (chue yếu là dùng C) cái này bọn em cảm ơn nhiều.Nhưng mà các pác pot ko toàn code>>như là copy ý thì lên vô dụng vì bọn em cần hiểu mới làm dc.Vì vậy khi pot lên nên có thêm chú thích vào 1 số đoạn code chính cho bọn em dễ hiểu.Khi đó việc pot bài của các pác mới hiệu quả.thanhks các pác

              Comment


              • #22
                à quên nên cho tiếng việt mới hiểu ,chứ tiếng anh để mà bọn em mò đến tết à.

                Comment


                • #23
                  Vi điều khiển

                  Tại hạ có sơ đồ mạch kết nối với máy tính theo cổng song song ko biết có đúng ko mà tại hạ kết nối với máy tính thì máy tính nó ko nhận. Xin các các hạ cho ý kiến nhé. Đa tạ.
                  Attached Files

                  Comment


                  • #24
                    Bạn ko nói rõ lấy từ nguồn nào ? Trên trang nào vậy?
                    SỰ HỌC LÀ MÃI MÃI......!!!!

                    Comment


                    • #25
                      Sao lại ko nói rõ. Tại hạ có hết trên sơ đồ đó.

                      Comment


                      • #26
                        ý mình là cậu lấy mạch này từ trang web nào đó mừ?
                        SỰ HỌC LÀ MÃI MÃI......!!!!

                        Comment


                        • #27
                          em cũng làm đồ án môn học về mạch đếm sản phẩm, nhưng có thêm 1 con efrom làm bộ nhớ ngoài, có ai biết cách chỉ em với

                          Comment


                          • #28
                            Mạch đó là mạch nạp ISP cho con AT89S52, mạch thì đúng rồi.Banj xem lại các mối hàn xem nó đúng chân chưa,và xem lại các dây nối với cổng máy tính xem đúng chân chưa là được<Nhớ kiểm tra kĩ nhé, khó lắm đấy, cả lớp tôi làm cái này cuối cùng phải nhờ thầy mới làm song hic>

                            Comment


                            • #29
                              gửi treetrees

                              Bạn cần kết nối với eprom hay ram ngoài ý gì. Tôi có 1 mạch có dùng ram ngoài đó ,bạn xem qua đi.Muốn kết nối với ram ngoài bạn cần có con 74HC573 <như trong hình> để kết nối .He he chúc bạn thành công.Hiểu phần nào pot phần đấy tuy đồ án vẫn chưa làm được
                              Attached Files

                              Comment


                              • #30
                                tui can ket noi voi cong LPT1.ban co phan lap trinh hok gui cho tui voi???

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X