View Single Post
Old 26-05-2005, 10:57 PM   #8
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Hàm DELAY (tt và hết)

Tổng kết: Các bạn đã học được gì ngày hôm nay?

- Các bạn đã hiểu được khái niệm chu kỳ máy, dao động thạch anh tạo ra, PIC sẽ thực hiện 1 lệnh trong vòng 4 dao động của thạch anh. Như vậy, chu kỳ máy của PIC sẽ là chu kỳ dao động của thạch anh nhân với 4, hay tần số PIC sẽ bằng tần số thạch anh chia 4.

- Các bạn đã học được cách đặt biến trong một chương trình viết bằng MPASM, các bạn đã có thể đặt biến ở bất kỳ băng nào các bạn muốn

- Sau đó, các bạn bổ sung phần đặt biến này vào trong sườn chương trình lần trước đã học, các bạn hoàn thiện hơn sườn một chương trình viết bằng MPASM

- Các bạn lại thêm vào sườn chương trình đó phần các chương trình con, vậy tôi thông báo với các bạn rằng các bạn chỉ còn thiếu 2 phần nữa là ngắt (Interrupt) và bảng (Table) nữa, là các bạn đã có thể có một sườn chương trình viết bằng MPASM hoàn chỉnh. Các bạn sẽ không phải đợi lâu để hoàn tất sườn chương trình này.

- Các bạn học được cách dùng hàm CALL và RETURN, nó luôn luôn đi kèm từng cặp với nhau.

- Các bạn học thêm các lệnh: BCF, CALL, RETURN, DECFSZ

Tài liệu tham khảo:

Các bạn tham khảo datasheet PIC16F84A, PIC16F628A và PIC16F88 để biết thêm chi tiết về cấu trúc bộ nhớ dữ liệu, vì có cái thì có băng 2, có cái không có, có cái lại có băng 3, băng 4.... Nhớ chú ý phần tập lệnh để đọc hiểu thêm về các lệnh vừa học (Instruction Set)

Các bạn có thể dùng keyword: DELAY để tìm trong trang www.piclist.com những đoạn chương trình con viết về hàm DELAY, làm thế nào để viết hàm DELAY dài hơn?...

Lưu ý cuối cùng, đó là các bạn đang chuẩn bị trở thành một người viết PIC chuyên nghiệp, do đó, các bạn cần phải nhớ các chân nào của PIC để thiết kế mạch và điều khiển, các bạn nên in hình sơ đồ chân của PIC ra để dán lên trước bàn làm việc. Các bạn có thể download bản in tại đây (có trong datasheet, nhưng tôi muốn gửi trực tiếp cho các bạn để các bạn đỡ mất công).

Bài tập làm thêm:

1) Các bạn thấy rằng, nếu thời gian DELAY quá ngắn, trên thực tế các bạn sẽ khó thấy đèn LED nhấp nháy. Vì vậy, thay vì viết một hàm CALL DELAY, các bạn viết một dọc 20 dòng CALL DELAY liên tiếp nhau, các bạn sẽ thấy sự khác biệt

2) Nhưng nếu viết 20 dòng CALL DELAY thì cũng như viết 20 dòng lệnh NOP, vậy có nghĩa là các bạn vẫn có thể thực hiện một vòng lặp, trong đó lặp lại 20 lần, và trong vòng lặp các bạn thực hiện hàm DELAY. Như vậy, các bạn phải viết một hàm DELAY_NGOAI để bên trong thực hiện hàm DELAY_TRONG. Chính vì vậy, tôi gợi ý cho các bạn tìm trong trang web www.piclist.com để tìm các source code hàm DELAY, và các bạn sẽ biết phải làm sao để viết hàm DELAY chờ lâu hơn. Quan trọng nhất là các bạn phải chỉ ra được công thức tính toán thời gian của hàm DELAY mà các bạn viết. (bài tập tính điểm)

3) Bây giờ các bạn có thể điều khiển một đèn LED, vậy nếu muốn 8 đèn LED nháy theo thứ tự nào đó chẳng hạn, các bạn sẽ làm thế nào? (bài tập tính điểm)

Ghi chú: (bài tập tính điểm) là những bài tập mà chúng tôi sẽ cộng đồn vào để tặng PIC cho các bạn nào tham gia giải bài như thông báo về việc bán PIC.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn