Thông báo

Collapse
No announcement yet.

Cho mình hỏi về mạch hẹn giờ tắt mỡ động cơ điện

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

  • #16
    Đã làm để bơm bể lọc nước (bơm liên tục thì bị tràn nên lại nghỉ chút xíu, rồi lại bơm tiếp). Hiên tại là 20 phút on, 20 phút off. Bạn có thể thay đổi tùy ý. Viết cho chip 89C2051
    Code:
    /*
    Tu dong on/off theo chu ky thoi gian thuc
    11.059MHz
    */
    #include <at89x51.h>
    
    sbit device = P1^1;
    sbit LEDblink = P3^7;
    
    unsigned  char sec100,sec,sec5,min,flag1,temp;
    //char cputick;
    bit status;
    
    void blink()
    {
        if((flag1 & 0x04) != 0) /* check bit 2 if set decrement temp until zero */
    		{
    		temp--;
            if (temp != 0)
                    LEDblink=0;
             else( flag1 &= ~0x04);
             }
         else
    		LEDblink=1;
    }
    void time ()
    {
    sec100++;
    if (sec100 >= 100)       /* 100 * 10 ms = 1 s */
    	{
    	sec100 = 0;
    	sec++;
        flag1 |= 0x04;   /* set bit 0, bit 2 */
        temp = 20;
    	if (sec >= 60)
    		{
    		sec = 0;
    		min++;
    		if(status)
    			{
    			if (min >= 20)// time to stop
    				{
    				min = 0;
    				status=0;
    				device=~status;
    				}
    			}
    		else
    			{
    			if (min >= 20)// time to start
    				{
    				min = 0;
    				status=1;
    				device=~status;
    				}
    			}
    		}
    	}
    }
    void timer0int (void)  interrupt 1  using 1  
    	{
    	TH0 |= 0xdc;  // reload timer 0 with 0DC00H
    	time();       // update realtime clock          
    	blink();
    	}
    void main()
    {
    	EA = 1;
    	ET0 = 1;  // or IE |= 0x82;   /* set bit EA and Timer0 enable */ 
    	TMOD |= 0x01; /* timer 0 run 16 bit counter */
    	TR0 = 1; //or TCON |= 0x10; /* run timer 0 */
    	min = 0;
    	sec = 0;
    	flag1 = 0;
    	status = 1;
    	device=0;
    	while(1);
    	
    }
    Chúc thành công!

    Comment


    • #17
      Tại sao không dùng 555 làm timer luôn? nghe nói nó set được đến mấy tiếng đồng hồ cơ mà.

      Comment


      • #18
        đúng đề tài này đơn giản mà các pác tranh luận dữ vậy
        dùng timer 555 và role cho môtr công suất lớn
        còn quạt thì dùng diac là dc
        làm thì dưới 70k rất kinh tế
        còn mún rộng hơn thì mới động vdk (89c2051)đa dụng hơn tí
        giá cũng ko cao hơn bao nhiu
        pác cần mạch em giửi sau nha :d giờ em chưa có ở đây
        hi vọng pác sẽ có sự lựa chọn đúng đắn
        8051 là con em viết thành thạo. em sẵn sàng giúp đỡ các pác nếu em có thể
        liên lạc với em qua địa chi email: Mob: 01882.076.989

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X