Thông báo

Collapse
No announcement yet.

Vừa làm xong cái mạch đồng hồ thời gian thực hiện thị LCD, có hẹn giờ, có lịch âm

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

  • #76
    Nguyên văn bởi blackswandt Xem bài viết
    Mình ghi vào eeprom chi vậy bạn, mình chưa hiểu ý
    cái code của bạn sai phần kiểu khai báo dữ liệu ý
    Bạn sửa lại là: void numtochar1(int num,unsigned char x,unsigned char y)
    mình cũng thử kiểu int rồi mà vẫn sai , 1999 hiển thị lên LCD là 0207
    mình ghi vào eeprom avr là để khi bị mất nguồn lấy ra để hiển thị tiếp

    Comment


    • #77
      Nguyên văn bởi boylikegirls Xem bài viết
      mình cũng thử kiểu int rồi mà vẫn sai , 1999 hiển thị lên LCD là 0207
      mình ghi vào eeprom avr là để khi bị mất nguồn lấy ra để hiển thị tiếp
      void numtochar1(int num,unsigned char x,unsigned char y)
      {
      unsigned char temp;
      temp = num/1000;
      lcd_gotoxy(x,y);
      lcd_putchar(temp+48);
      temp = (num%1000)/100;
      lcd_gotoxy(x+1,y);
      lcd_putchar(temp+48);
      temp = ((num%1000)%100)/10;
      lcd_gotoxy(x+2,y);
      lcd_putchar(temp+48);
      temp = ((num%1000)%100)%10;
      lcd_gotoxy(x+3,y);
      lcd_putchar(temp+48);

      }
      Mình chạy rầm rầm mà

      Comment


      • #78
        Nguyên văn bởi blackswandt Xem bài viết
        Mình chạy rầm rầm mà
        sao vậy nhỉ, mình mô phỏng nó chỉ hiển thị đúng tới 255 thôi , lớn hơn nó hiển thị sai

        Comment


        • #79
          Nguyên văn bởi boylikegirls Xem bài viết
          sao vậy nhỉ, mình mô phỏng nó chỉ hiển thị đúng tới 255 thôi , lớn hơn nó hiển thị sai
          Vây bạn đưa file mô phỏng với code cho mình xem thử đi.

          Comment


          • #80
            Nguyên văn bởi blackswandt Xem bài viết
            Vây bạn đưa file mô phỏng với code cho mình xem thử đi.
            /************************************************** ***
            This program was produced by the
            CodeWizardAVR V2.05.3 Standard
            Automatic Program Generator
            © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
            HP InfoTech - CodeVisionAVR C Compiler

            Project : Test
            Version : 0.1
            Date : 02/08/2013
            Author : blackswandt
            Company :
            Comments:


            Chip type : ATmega8515
            Program type : Application
            AVR Core Clock frequency: 12.000000 MHz
            Memory model : Small
            External RAM size : 0
            Data Stack size : 128
            ************************************************** ***/

            #include <mega8515.h>

            // I2C Bus functions
            #include <i2c.h>

            // DS1307 Real Time Clock functions
            #include <ds1307.h>

            // Alphanumeric LCD functions
            #include <alcd.h>
            unsigned char h,s,m,w,d,mo,y;
            unsigned char m1,h1;
            //unsigned long int i=0;
            eeprom unsigned int i1 @0x01;
            eeprom unsigned int i2 @0x02;
            eeprom unsigned int i3 @0x03;
            void numtochar(unsigned char num,unsigned char x,unsigned char y)
            {
            unsigned char temp;
            temp = num/10;
            lcd_gotoxy(x,y);
            lcd_putchar(temp+48);
            temp = num %10;
            lcd_gotoxy(x+1,y);
            lcd_putchar(temp+48);
            }
            void numtochar1(int num,unsigned char x,unsigned char y)
            {
            unsigned char temp;
            temp = num/1000;
            lcd_gotoxy(x,y);
            lcd_putchar(temp+48);
            temp = (num%1000)/100;
            lcd_gotoxy(x+1,y);
            lcd_putchar(temp+48);
            temp = ((num%1000)%100)/10;
            lcd_gotoxy(x+2,y);
            lcd_putchar(temp+48);
            temp = ((num%1000)%100)%10;
            lcd_gotoxy(x+3,y);
            lcd_putchar(temp+48);

            }
            // Declare your global variables here

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

            // Input/Output Ports initialization
            // Port A 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
            PORTA=0x00;
            DDRA=0x00;

            // 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=0xFF;
            DDRB=0x00;

            // Port C 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
            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;

            // Port E initialization
            // Func2=In Func1=In Func0=In
            // State2=T State1=T State0=T
            PORTE=0x00;
            DDRE=0x00;

            // Timer/Counter 0 initialization
            // Clock source: System Clock
            // Clock value: Timer 0 Stopped
            // Mode: Normal top=0xFF
            // OC0 output: Disconnected
            TCCR0=0x00;
            TCNT0=0x00;
            OCR0=0x00;

            // Timer/Counter 1 initialization
            // Clock source: System Clock
            // Clock value: Timer1 Stopped
            // Mode: Normal top=0xFFFF
            // OC1A output: Discon.
            // OC1B output: Discon.
            // Noise Canceler: Off
            // Input Capture on Falling Edge
            // Timer1 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;

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

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

            // USART initialization
            // USART disabled
            UCSRB=0x00;

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

            // SPI initialization
            // SPI disabled
            SPCR=0x00;

            // I2C Bus initialization
            // I2C Port: PORTC
            // I2C SDA bit: 1
            // I2C SCL bit: 0
            // Bit Rate: 100 kHz
            // Note: I2C settings are specified in the
            // Project|Configure|C Compiler|Libraries|I2C menu.
            i2c_init();

            // DS1307 Real Time Clock initialization
            // Square wave output on pin SQW/OUT: Off
            // SQW/OUT pin state: 0
            rtc_init(0,0,0);

            // Alphanumeric LCD initialization
            // Connections are specified in the
            // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
            // RS - PORTA Bit 0
            // RD - PORTA Bit 1
            // EN - PORTA Bit 2
            // D4 - PORTA Bit 4
            // D5 - PORTA Bit 5
            // D6 - PORTA Bit 6
            // D7 - PORTA Bit 7
            // Characters/line: 16
            lcd_init(16);
            s = 0x00;
            m = 0x01;
            h = 0x02;
            w = 0x03;
            d = 0x04;
            mo= 0x05;
            y = 0x06;
            m1 = 59;
            h1 = 1999;
            rtc_set_time(5,59,0);
            while (1)
            {
            rtc_get_time(&h,&m,&s);

            numtochar(59 - s,10,0);
            lcd_gotoxy(9,0);
            lcd_puts(":");
            lcd_gotoxy(6,0);
            lcd_puts(":");
            if( (59-s) == 0)
            {
            while( (59-s)==0)
            {
            rtc_get_time(&h,&m,&s);
            }
            m1--;
            if(m1 <0)
            {
            m1 =59;
            h1--;
            if(h1 < 0)
            {
            h1=5;
            }
            }

            }
            numtochar(m1,7,0);
            numtochar1(h1,2,0);

            if(PINB.0==0)
            {
            i1=h1;
            i2=m1;
            i3=59-s;
            }


            numtochar1(i1,2,1);
            numtochar(i2,7,1);
            numtochar(i3,10,1);
            }
            }
            mô phỏng : 1999.rar

            Comment


            • #81
              Nguyên văn bởi boylikegirls Xem bài viết
              mô phỏng : 1999.rar
              Bạn xem thử: 5h-1.rar

              Comment


              • #82
                Nguyên văn bởi blackswandt Xem bài viết
                Bạn xem thử: 5h-1.rar
                đc rồi , cảm ơn nhiều . mà bạn sửa gì mà đc vậy ?

                Comment


                • #83
                  Nguyên văn bởi boylikegirls Xem bài viết
                  đc rồi , cảm ơn nhiều . mà bạn sửa gì mà đc vậy ?
                  Hihi. cho eeprom đó. bạn sai chỗ đó thui
                  Định làm gì vậy bạn

                  Comment


                  • #84
                    Nguyên văn bởi blackswandt Xem bài viết
                    Hihi. cho eeprom đó. bạn sai chỗ đó thui
                    Định làm gì vậy bạn
                    tại nhà máy mình làm việc nó dùng bóng đèn diệt khuẩn trong sản xuất thực phẩm ấy mà . dùng cái này để tính tuổi thọ của mấy cái bóng đó , hết 2000h thì thay cái mới (sếp muốn tính đc chính xác). mình kiếm trên thị trường mà ko thấy bán nên tự làm mạch .

                    Comment


                    • #85
                      bạn chủ thớt giúp mình cài đặt tần số nôi 8mhz cho atmega48 nha, vừa mới tèo 1 con vì set như thế này

                      Click image for larger version

Name:	fuse atmega48.bmp
Views:	1
Size:	345.8 KB
ID:	1383245

                      Comment


                      • #86
                        Nguyên văn bởi vungtau88 Xem bài viết
                        bạn chủ thớt giúp mình cài đặt tần số nôi 8mhz cho atmega48 nha, vừa mới tèo 1 con vì set như thế này

                        [ATTACH]71623[/ATTACH]
                        Mình ko dùng mạch nạp của bạn nên cũng ko rành lắm. Mình dùng AvrProg. Nếu chỉ chắc bạn tèo con nữa quá. hihi

                        Comment


                        • #87
                          Nguyên văn bởi blackswandt Xem bài viết
                          Mình ko dùng mạch nạp của bạn nên cũng ko rành lắm. Mình dùng AvrProg. Nếu chỉ chắc bạn tèo con nữa quá. hihi
                          minh dung mach nạp spi3.7. nạp băng công lpt. set 8mhz rồi mà vẫn tèo, mình ko có stk 500 nên ko sửa lai đc

                          Comment


                          • #88
                            Nguyên văn bởi vungtau88 Xem bài viết
                            minh dung mach nạp spi3.7. nạp băng công lpt. set 8mhz rồi mà vẫn tèo, mình ko có stk 500 nên ko sửa lai đc
                            Bạn hỏi mấy pro thử chứ cái dụ này mình pó tay

                            Comment


                            • #89
                              Nguyên văn bởi blackswandt Xem bài viết
                              Bạn hỏi mấy pro thử chứ cái dụ này mình pó tay
                              chương trình của bạn nạp thẳng vào atmega8 mà ko cần cài đặt fuse hả bạn ? mình thấy trên mang có nhiều project nhưng ít thấy đề cập tới cái fuse bit của cái chương trính đó .

                              vả lại mình cũng ko đụng chạm gì đăc biệt lắm mà lại bi khóa .??

                              Comment


                              • #90
                                Nguyên văn bởi vungtau88 Xem bài viết
                                chương trình của bạn nạp thẳng vào atmega8 mà ko cần cài đặt fuse hả bạn ? mình thấy trên mang có nhiều project nhưng ít thấy đề cập tới cái fuse bit của cái chương trính đó .

                                vả lại mình cũng ko đụng chạm gì đăc biệt lắm mà lại bi khóa .??
                                Có chứ, fai set fuse chứ. Nhưng mình dùng mạch nạp khác nên đơn gian hơn

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X