• Điều khiển 8 led sáng Từ led 1 đến Led 8 VXL 8051

QC

Điều khiển 8 led sáng Từ led 1 đến Led 8 VXL 8051

 YÊU CẦU BÀI TOÁN :

- Em Hãy Viết Chương trình 8 led Sáng chạy qua chạy lại ( Led 1- Led 8 rồi từ Led 8->Led 1 ). với Chu kì 1 giây.

HƯỚNG DẪN GIẢI QUYẾT VẤN ĐỀ :

PHẦN I : PHẦN CỨNG

BƯỚC 1  :  Vẽ Mạch Protues.


BƯỚC 2 :  Chuẩn bị phần cứng như sau.

Các bạn Làm y chan như  3.2  Điều khiển 8 led Chớp tắt  
Các bạn nhớ dùng P2 nhé !

DOWNLOAD PROTUES Tại Đây:

PHẦN II : PHẦN MỀN.

   BƯỚC 1: CÁC BẠN TẠO PROJECT KEIL C V.4 TƯƠNG TỰ. 

     ( Xem lại 3.1 Blink led )

   BƯỚC 2:  CODE NHƯ SAU.

Code chương trình
#include<reg51.h> 
unsigned char x,y;
int i;
 void delay_ms(unsigned int t) // khi ban su dung thach anh 12 mhz
{
unsigned int x,y;
for(x=0;x<t;x++)
{
for(y=0;y<=120;y++);
}
}
// chuong trinh chính
void main()
{
  while(1) //never ending loop    
  {
  x=00000001;
  for(i=0;i<8;i++)
    {
  P0=x;
  delay_ms(200);
  x=x<<1;  
    }
  P0=0x00;
  y=10000000; // ví dụ bạn muốn sáng kiểu 01000000 thì y=01000000; nó không hiểu nha vì số 0 dđứng đầu nên nó hiểu là y=1000 000 chỉ có 7 số là sai, bạn chỉnh lại là y=0x80 ( 0b0100 000 )
    for(i=0;i<8;i++)
    {
  P0=y;
  delay_ms(200);
  y=y>>1;  
    }
  P0=0x00;

  }
}


GIẢI THÍCH CHƯƠNG TRÌNH:

Hàm delay_ms();

void delay_ms(unsigned int t) // khi ban su dung thach anh 12 mhz
{
unsigned int x,y;
for(x=0;x<t;x++)
   {
for(y=0;y<=120;y++);
   }

}

Đây là  1 chương trình con. Cách sử dụng ta chỉ cần gọi delay_ms(1000); có nghĩa là delay 1 s.
delay_ms(200); có nghĩa là delay 0.2 s.
delay_ms(3000); có nghĩa là delay 0.3 s.
PHẦN III : VIẾT CHƯƠNG TRÌNH KEILC V.4 và Biên dịch.


DOWNLOAD FILE KEILC TẠI ĐÂY: 

Kết quả mô phỏng Protues :




Kết quả mô phỏng Thực tế :




Nap Code vào PY32F003 dùng Stlink

 Nap Code vào PY32F003 dùng Stlink Bước 1: Cài đặt  KeilC v5.39 theo link sau ( chú ý 5.39 keil c mới nạp ok). https://edge07.111.ir.cdn.ir/...