Thông báo

Collapse
No announcement yet.

Điều khiển 10 led sáng đuổi nhau?

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

  • Điều khiển 10 led sáng đuổi nhau?

    Em mới học về 8051 nên không bít làm sao để điều khiển 10 led sáng đuổi nhau nhờ 8051? ???( Nếu có chương trình thì viết bằng C nha! Mình học Keil C mà ! ) Các bác giúp em nha !

  • #2
    Để cho code đơn giản hơn, bạn có thể ghép nối thêm một con 74L154.
    Một ví dụ ở đây:
    Kiểu nháy
    1234567890
    -----------
    1000000000
    0100000000
    ................
    0000000001
    74L154 được lắp các chân A,B,C,D lần lượt là P1.0, P1.1 , P1.2, P1.3
    Code:
    //user 11.0592MHz crystal.
    #include <at89x51.h>
    
    unsigned char status;
    void delay(unsigned char giay)
    {
       while(giay--)
          {
               //day la chuong trinh tao tre 1/10s
               unsigned int temp;             
                  temp=10;
                   while(temp--)
                     {
                        //day la doan chuong trinh tao tre 10 ms
                          TH1=0xdc;
                          TL1=0x00 ;
                          TR0=1;
                          while(!TF0);
                          TR0=0;
                          TF0=0;
                     }
             }
    }
    
    void main()
    {
    TMOD=0x01;   //su dung timer,che do 16 bit
    EA=1;
    EX0=1;
    status=0;
    while(1)
    	{
    	P1=status;
    	delay(5);//1/2s
    	status++;
    	if(status>15) status=0;//Thay đổi  giá trị 15 thành 10 thì sẽ nháy 10
    	}
    }

    Comment


    • #3
      Các bác ơi cho em hỏi cái. Em dùng AT89s51 để thử chương trình ngắt ngoài INT0, đầu ra em nối với 1 LED ở chân 39 (P0.0), khi có ngắt thì đèn tắt, bình thường thì đèn sáng. Em lắp xong thì gặp phải vấn đề là: có lúc thì nó chạy đúng, nhưng có lúc thì đèn cứ sáng (hoặc tối) mãi không chịu thay đổi trạng thái. Rút nguồn ra lắp lại lần 1 thì lại chạy đúng (nhận không sai 1 ngắt nào cả), rút ra lắp nguồn lại lần nữa thì lại chạy sai (mặc dù không hề động gì đến mạch cả), có lúc rút nguồn ra lắp vào mấy lần mới chạy đúng được. Em bực mình tháo ra chạy bài nháy đèn LED thì cũng gặp phải tình trạng tương tự, có lúc đèn còn chỉ sáng mờ mờ so với lúc chạy đúng. Hay là tại nguồn?

      Comment


      • #4
        À quên, nguồn em lấy qua cổng USB của máy tính.

        Comment


        • #5
          Nguyên văn bởi funnyCat Xem bài viết
          À quên, nguồn em lấy qua cổng USB của máy tính.
          Nguồn USB thì làm ăn gì được, yếu lắm!
          Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

          Comment


          • #6
            kô sao đâu, với nguồn máy tính 500mA cũng đủ làm khối chuyện rồi, huống chi mấy con led. post mạch của bạn lên đi!

            Comment


            • #7
              Nguyên văn bởi funnyCat Xem bài viết
              Các bác ơi cho em hỏi cái. Em dùng AT89s51 để thử chương trình ngắt ngoài INT0, đầu ra em nối với 1 LED ở chân 39 (P0.0), khi có ngắt thì đèn tắt, bình thường thì đèn sáng. Em lắp xong thì gặp phải vấn đề là: có lúc thì nó chạy đúng, nhưng có lúc thì đèn cứ sáng (hoặc tối) mãi không chịu thay đổi trạng thái. Rút nguồn ra lắp lại lần 1 thì lại chạy đúng (nhận không sai 1 ngắt nào cả), rút ra lắp nguồn lại lần nữa thì lại chạy sai (mặc dù không hề động gì đến mạch cả), có lúc rút nguồn ra lắp vào mấy lần mới chạy đúng được. Em bực mình tháo ra chạy bài nháy đèn LED thì cũng gặp phải tình trạng tương tự, có lúc đèn còn chỉ sáng mờ mờ so với lúc chạy đúng. Hay là tại nguồn?
              Thông thường do mạch power on reset, mạch dao động thạch anh.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X