Thông báo

Collapse
No announcement yet.

vừa mới xong cái mạch đồng hồ số dùng led 7 đoạn ace góp ý nhé

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

  • vừa mới xong cái mạch đồng hồ số dùng led 7 đoạn ace góp ý nhé

    mong ace góp ý
    đi jump tùm lum quá
    đang hoàn thiện code
    sẽ post sớm

  • #2
    không có hình linh kiện và sch thì góp cái gì
    SĐt: 01238004961

    Comment


    • #3
      thì dùng ds1307 thôi

      Last edited by kidteam; 19-05-2012, 22:00.

      Comment


      • #4
        vật lộn mãi nó cũng chịu chạy
        đang update phần cài đặt giờ, đồng bộ thời gian với máy tính
        Code:
        #include <regx51.h>
        #define uchar unsigned char
        #define SCL P2_0
        #define SDA P2_1
        #define DSW 0xd0
        #define DSR 0xd1
        void delay(void);
        void i2cstart(void);
        void i2cstop(void);
        uchar i2cwrite(uchar c);
        uchar i2cread(void);
        uchar i2creadlast(void);
        uchar maled[10]={0x81,0xb7,0xc2,0x92,0xb4,0x98,0x88,0xb3,0x80,0x9  0};
        //uchar maled[10]={0x21,0x7d,0x13,0x15,0x4d,0x85,0x81,0x3d,0x1,0x5}  ;
        uchar uLed;
        void scl1(void);
        void main(void)
        {
        	//dau tien khoi tao i2c free
        	uchar c,phut,gio;
        	SDA=1;
        	SCL=1;
        	uLed=0;
        	//kiem tra xem boc tem chua
        	i2cstart();
        	i2cwrite(DSW);
        	i2cwrite(0);//ghi vao dia chi 0
        	i2cstart();
        	i2cwrite(DSR);
        	c=i2creadlast();
        	//phut=i2creadlast();
        	//P2=0;
        	P2_7=P2_6=P2_4=P2_3=0;
        	if(c&0x80)
        	{
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(0);
        		i2cwrite(0);
        	}
        	i2cstop();
        	while(1)
        	{
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(0);
        		i2cstart();
        		i2cwrite(DSR);
        		c=i2creadlast();
        		//da doc giay thanh cong
        		//tiep tuc doc thu phut
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(1);
        		i2cstart();
        		i2cwrite(DSR);
        		phut=i2creadlast();
        		/*
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(2);
        		i2cstart();
        		i2cwrite(DSR);
        		gio=i2creadlast();
        		*/
        		i2cstop();
        		P2_7=P2_6=P2_4=P2_3=0;
        		switch(uLed)
        		{
        			case 0:
        				P2_4=1;
        				c>>=4;
        				P0=maled[c];
        			break;
        			case 1:
        				P2_3=1;
        				c&=0xf;
        				P0=maled[c];
        			break;
        			case 2:
        				P2_7=1;
        				phut>>=4;
        				P0=maled[phut];
        			break;
        			case 3:
        				P2_6=1;
        				phut&=0xf;
        				P0=maled[phut];
        			break;
        		}
        		//c&=0xf;
        		//P2_6=1;
        		//P0=maled[c];
        		/*
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(1);
        		i2cstart();
        		i2cwrite(DSR);
        		phut=i2creadlast();
        		i2cstart();
        		i2cwrite(DSW);
        		i2cwrite(2);
        		i2cstart();
        		i2cwrite(DSR);
        		gio=i2creadlast();
        		i2cstop();
        		
        		//xuat du lieu ra led 7 seg
        		//c=8;
        		//P3=0xff;//cap nguon cho led
        		P2_7=P2_6=P2_4=P2_3=0;
        		switch(uLed)
        		{
        			case 0:
        				P2_7=1;
        				phut>>=4;
        				P0=maled[gio];
        			break;
        			case 1:
        				P2_6=1;
        				phut&=0xf;
        				P0=maled[gio];
        			break;
        			case 2:
        				P2_4=1;
        				c>>=4;
        				P0=maled[phut];
        			break;
        			case 3:
        				P2_3=1;
        				c&=0xf;
        				P0=maled[phut];
        			break;
        			/*
        			case 4:
        				P3_5=1;
        				c>>=4;
        				P2=maled[c];
        			break;
        			case 5:
        				P3_6=1;
        				c&=0xf;
        				P2=maled[c];
        			break;
        		}
        		*/
        		++uLed;
        		if(uLed==4)
        			uLed=0;
        	}
        }
        void delay(void)
        {
        	uchar i;
        	for(i=0;i<5;++i);
        }
        void i2cstart(void)
        {
        	SDA=1;
        	scl1();
        	SDA=0;
        	delay();
        	SCL=0;
        	delay();	
        }
        void scl1(void)
        {
        	SCL=1;
        	while(!SCL);
        }
        void i2cstop(void)
        {
        	SDA=0;
        	scl1();
        	SDA=1;
        	delay();
        }
        uchar i2cwrite(char c)
        {
        	uchar i,ret;
        	for(i=0;i<8;++i)
        	{
        		//lan luot gui tung bit 1 ra
        		SDA=0;
        		if(c&0x80)
        			SDA=1;
        		c<<=1;
        		scl1();
        		delay();
        		SCL=0;
        		delay();
        	}
        	ret=0;
        	//tao xung ack
        	SDA=1;
        	scl1();
        	delay();
        	if(!SDA)
        		ret=1;
        	SCL=0;
        	delay();
        	return ret;
        }
        uchar i2cread(void)
        {
        	uchar ret,i;
        	for(i=0;i<8;++i)
        	{
        		ret<<=1;
        		scl1();
        		delay();
        		ret|=SDA;
        		SCL=0;
        		delay();
        	}
        	//gui tra lai ack
        	SDA=0;
        	scl1();
        	delay();
        	SCL=0;
        	delay();
        	return ret;
        }
        uchar i2creadlast(void)
        {
        	uchar ret,i;
        	for(i=0;i<8;++i)
        	{
        		ret<<=1;
        		scl1();
        		delay();
        		ret|=SDA;
        		SCL=0;
        		delay();
        	}
        	//gui tra lai not ack
        	SDA=1;
        	scl1();
        	delay();
        	SCL=0;
        	delay();
        	return ret;	
        }

        Comment


        • #5
          bạn nên làm thêm đường viền chạy đuổi thì sẽ bắt mắt hơn cái cờ líp của bác chói tai kinh
          tại sao bạn không làm giờ luôn dùng kết hợp 40 hay 70 gì đó có chúc năng dịch bcd - bảy đoạn ấy cho vxl ra mã bcd tốn 4 đầu ra thôi
          em mới tự học cái này chưa được 10 ngày nên có sai thì các bác coi như bài của em tàng hình rồi nhé
          kiếm của kiếm khách , bút của văn nhân , chân của vũ giả , giọng ca của ca nữ , đấu chí của anh hùng , mỏ hàn của thợ điện . đều giống nhau ở 1 điểm là:
          đến chết mới buông tay

          Comment


          • #6
            uh
            đang thử nghiệm mà bạn
            cũng không cần dùng mấy con 40 hay 70 gì đó
            tốn tiền, mình nghĩ con 89 cũng đủ mà

            Comment


            • #7
              Nguyên văn bởi kidteam Xem bài viết
              mong ace góp ý
              đi jump tùm lum quá
              đang hoàn thiện code
              sẽ post sớm
              bạn cho mình sơ đò nguyên lý đc k .mình đang cần để làm sản phẩm nộp

              Comment


              • #8
                Góp ý đôi chút mạch của anh kidteam, không ai layout các net lại vuông 90 độ đâu anh, thuật toán setup time quá dài và nên chia các hàm thành cái lib riêng, ví dụ lib ds1307.c, display_led7seg.c, setup_time_led7seg.c vv...v quản lý code dễ hơn, cuối cùng là nên sài 595 và IC đệm or buff bằng Tran để giảm thiểu tối đa số pin cần sài của MCU( như vậy dù có sài bao nhiêu led cũng chỉ cần 6pins của em MCU) , nên làm mạch Display riêng trông đẹp mắt đóng hộp nó dễ.
                Hi
                Web:
                ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
                -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

                Comment


                • #9
                  e cũng muốn làm 1 cái hiển thị giờ phút( nếu co giây thi càng tốt) a có thể gửi cho e sơ đồ mạch in và các linh kiện k ạ. e cảm ơn
                  Mail của e là ncmanh.na@gmail.com. nhờ a gửi vào nhé!

                  Comment


                  • #10
                    a cho e chi tiết các linh kiện đi ạ. nhìn vào mạch in k rõ nak. e cũng muốn lam 1 cái.hi thank a

                    Comment


                    • #11
                      bạn cho mình xin sơ đồ nguyên lý được ko mail trunghau86vn@gmail.com

                      Comment


                      • #12
                        em vừa mới làm cái đông hồ mà nó không chạy anh em nào có thể giúp em dc không.e miêu tả sơ qua nhé.ạm chị xem sơ đò mạch có 1 chút chỉnh sưa nhé.mạch em dùng led đơn thay cho led 7 đoạn.mổi đoạn dùng 3 led màu xanh nối tiếp nhau chung anot.các chân chung 3 cấp nguồn 12v thông qua tran a1015.12v này e nối vào chân E.chân c thì nối vào led.chân b vào 98c52 thông qua trở 10k tù chân 21 đến chân 28.các doạn trong led em nối chung với nhau như đoạn a nối vói đoạn a,đoạn b nối với đoạn b và cứ như vậy đến đoạn g.sau đó từ chân 32 đến 39 thông qua trơ 220R nối vào các đoạn này.còn lại thì giống như mạch nguyên lý anh chị xem giúp em nhé...mạch này em không dù điện trở thanh
                        Attached Files

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...
                        X