Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

July 2, 2013

Bài 1: IO led đơn

Chào các bạn, như đã hẹn trước với các bạn về dự án "8051" hôm nay mình dành chút thời gian ôn lại một số kiến thức đã học. Cũng lâu lắm rồi từ ngày ra trường giờ mới đụng tới, có lẽ với nhiều người đã học qua lập trình cho 8051 nói chung và lập trình C cho 8051 nói riêng, thì các ví dụ về IO led đơn có lẽ là đơn giản nhất. Tuy vậy mình vẫn muốn giới thiệu lại  một lần nữa, hi vọng sẽ giúp các bạn đã học hệ thống lại, và các bạn chưa học có cơ hội tiếp cận gần hơn với 8051 qua các ví dụ.
Yêu cầu: Để nắm được nội dung trong box này các bạn cần làm quen trước với phần cứng 8051, tổ chức bộ nhớ,... và tìm hiểu qua về ngôn ngữ C (vì mình sẽ viết chủ yếu là C ). Phần này mình xin phép bỏ qua và bắt tay ngay vào phần bài tập.

Bài 1: Viết chương trình điều khiển 1 đèn led chớp tắt tại cổng P2.0 với thời gian chớp tắt tùy ý.

// Chương trình dùng phần mềm MCS51 biên dịch, Anot của Led qua điện trở 330R lên VCC , phần Katot nối trực tiếp với Post của VĐK.

#include<reg52.h>
sbit LED=P2^0;
void delay (void)
{
int i;
for (i=0;i<20000;i++);
}
     void main (void)
     {
     while (1)
        {
        LED=1;   // tắt led
        delay();
        LED=0;   // bật led
        delay();
        }
     }
// Kết thúc bài 1, bài 2 sẽ bắt đầu vào ngày hôm sau nhé!

3 comments:

Chip Kool said...
2/7/13

Bài viết rất cơ bản, các bạn nào muốn học C cồng cộng thường xuyên theo dõi bài của CTV Sĩ Luân nhé..Chuyên lập trình C.
Các bạn có thể định nghĩa chân led như sau #define Led P2_0; cũng tương đương với lệnh Sbit ^^
Còn đối với delay các bạn có thể viết là
void delay(unseigned char ms)
{
unsigned char i,j;
for(i=0;i<ms;i++)
for(j=0;j<125;j++){;}
}

rồi sau mỗi lệnh chỉ việc gọi là delay(100); chẳng hạn hehehe..chip chém tí..:) cho rôm rả

Luan nguyen si said...
2/7/13

uhm :) Chuẩn rồi, nhưng nếu viết theo kiểu định nghĩa: #define Led P2_0; thì thư viện của mình các bạn phải đổi là: "#include" nhé! (Chỉ với MCS thôi,chương trình khác mình không rõ)
Còn delay, mình khai báo theo kiểu trực tiếp,có nhiều cách viết mà, mình sẽ giới thiệu lần lượt nhé!
Cám ơn chip đã đóng góp!

Luan nguyen si said...
2/7/13

ý mình là thư viện regx52.h các bạn nhé!

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P