Chat
Danh mục
Bài 4: Thực hành cơ bản với led đơn

Bài 4: Thực hành cơ bản với led đơn

Số lượng:
Thêm vào giỏ
Bài 4: Thực hành cơ bản với led đơn đã được thêm vào giỏ hàng


 4.1.Một số qui định:
        a. Chú thích: dùng dấu chấm phẩy ";"để bắt đầu các đoạn chú thích, các chú thích chỉ có tác dụng trên dòng chứa nó và được đặt tuỳ ý tại bất kì vị trí nào trên dòng.
            Chú thích giúp chương trình thể hiện rõ ràng trong sáng hơn, người lập trình dễ dàng hiểu và chỉnh sửa chương trình được viết ra, các đoạn chú thích phù hợp sẽ giúp cho việc tìm kiếm các đoạn chương trình dễ dàng hơn.
             Sau đây là ví dụ cho phần chú thích bắt đầu một chương trình :
;*************************************************************************************************
;**************/////--- TÊN CHƯƠNG TRÌNH ---\\\\\\ ****************************************
;**----------------------------------------------------------------------------------------------------------------------
;**////////////////___ Các yêu cầu của bài toán_________________\\\\\\\\\\\\\\\\\\\\\\\\\\\
;**///////////////___ ghi chú trên các dòng này__________________\\\\\\\\\\\\\\\\\\\\\\\\\
;**//////////////____ Kết cấu phần cứng và các linh kiện kèm theo___\\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<----------------------------------------------------->>>>>>>>>>>>>>
;**\\\\\\\\\\\\\\\\\\----- Mô tả các biến, các hàm cần sử dụng ------------///////////////////////
;**\\\\\\\\\\\\\\\\\\\\-----cách giải quyết chương trình                ------------////////////////////
;**\\\\\\\\\\\\\\\\\\\\\-----các dòng ghi chú khác                        ------------/////////////////////
;*****************************************************************************************************
;************************************************************* ***************************************
      
             Ví dụ về phân cách các đoạn chương trình phức tạp với nhau bằng chú thích:

;**<<<<<<<<<================= tên lệnh hoặc chức năng =======>>>>>>**
        Câu lệnh 1                  ;===>>>ghi chú cho câu lệnh 1
        Câu lệnh 2              
        Câu lệnh 3                  ;===>>>ghi chú cho câu lệnh 3
        Câu lệnh cuối
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


        b.Thụt dòng, Chữ hoa- chữ thường
       Khi soạn thảo chương trình để chương trình đễ đọc và dễ gỡ lỗi có một số đề nghị sau:
  • Các nhãn được đặt cạnh lề trái, một số phần mềm soạn và biên dịch không phân biệt chữ hoa chữ thường của nhãn, tuy nhiên một số phần mềm khác lại phân biệt chữ hoa chữ thường, vì vậy để thuận tiện về sau, tên nhãn không nên đặt trùng nhau và thống nhất một kiểu viết nhãn duy nhất trong chương trình. Ví dụ: không đặt 2 nhãn trong cùng một chương trình như sau: "Doan1" và "doan1".
  • Các câu lệnh nên đặt lùi với lề trái một hoặc hai khoảng gõ tab
  • Phần sau của câu lệnh cách phần đầu câu lệnh một hoặc hai khoảng gõ tab (Phần trước và sau của câu lệnh bắt buộc phải cách nhau ít nhất một khoảng trắng).
    Ví dụ:     Mov (gõ phím Tab)  P1,#0FFH
  • Các chú thích nên cách sau câu lệnh một hoặc hai khoảng gõ tab
        Các câu lệnh trong chương trình không phân biệt chữ hoa và chữ thường, do đó khi soạn thảo có thể dùng kiểu chữ sao cho phù hợp và dễ nhận dạng
 Ví dụ:
;**<<<<<<==================== đoạn chương trình 1 =====================>>>>**
Di_chuyen:
                     Mov        A,35H           ;===>>>> di chuyen du lieu tu 35H vao A
                     Mov        B,20H           ;===>>>> di chuyen du lieu tu 20H vao B
Xuat:
                     Mov        P0,A             ;===>>>> xuat du lieu tu A ra Port 0
                     Mov        P1,B             ;===>>>> xuat du lieu tu A ra Port 1
Cong:
                     Add        A,#20H          ;===>>>> cong A voi gia tri 20H
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        c.Kết thúc chương trình.
       Sau khi chương trình hoàn tất phải kết thúc bằng câu lệnh END .Các câu lệnh này báo cho trình biên dịch biết phần kết thúc của chương trình, trình biên dịch bỏ qua tất cả các câu lệnh sau lệnh END.
      d. Qui định về số
          Xem qui định này trong bài 2: một số qui ước khi viết số trong chương trình

        4.2 BÀI THỰC HÀNH:
      Tên gọi cho các bit: mỗi ô nhớ đều có 8 bit, để thuận tiện cho quá trình hướng dẫn, mỗi bit trong một ô nhớ sẽ được đánh số từ 0 đến 7 sau tên gọi của ô nhớ đó và được ngăn cách bằng dấu chấm.
Ví dụ:
       -Thanh ghi A gồm 8 bit: A.7  A.6  A.5  A.4  A.3  A.2  A.1  A.0 với bit nhỏ nhất là bit A0
       -thanh ghi R1 gồm các bit R1.7  R1.6  R1.5  R1.4  R1.3  R1.2  R1.1  R1.0
        Để bắt đầu bài thực hành, bạn nên xem lại phần kết nối vi điều khiển với led trong bài 1
          Bài 1Viết chương trình xuất tín hiệu ở Port 0 và Port 2 để 8 đèn led sáng với  các led được kết nối với Port 0 và Port 2 như sơ đồ dưới
       Phân tích: Ở sơ đồ kết nối phần cứng như hình trên, đèn led sáng khi tín hiệu xuất ra ở mức 1(+5V). Như vậy cần viết chương trình để xuất mức logic 1 ra Port 0 và Port 2. Sau đây là chương trình
;*************************************************************************************************
;**************/////--- 8 LED SANG ---\\\\\\ ****************************************************
;**----------------------------------------------------------------------------------------------------------------------
;**////////////////___ lam 8 led o Port 0 va Port 1 sang_________________\\\\\\\\\\\\\\\\\\\\\\\\\\\
;**///////////////___ led sang khi tin hieu xuat o muc 1__________________\\\\\\\\\\\\\\\\\\\\\\\\\
;**//////////////____ phan cung su dung dien tro treo____________________\\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<----------------------------------------------------->>>>>>>>>>>>>>
;*****************************************************************************************************
;************************************************************* ***************************************
                     ORG        000H                ; khai bao dia chi de bat dau chuong trinh tren Rom

                     Mov        P0,#0FFH           ;===>>>> lam cac chan Port 0 xuat ra muc 1
                     Mov        P2,#11111111B   ;===>>>> lam cac chan Port 2 xuat ra muc 1
                     End
      + Khai báo ORG        : dùng để khai báo địa chỉ để bắt đầu lưu chương trình trên ROM
           Ví dụ:  ORG      0020H 
                      khi có khai báo này, chương trình sẽ được lưu từ ô nhớ ROM có địa chỉ 0020H trở đi. Trong chương trình không giới hạn số lượng khai báo ORG.
             Khi bắt đầu chương trình, Vi điều khiển bắt đầu đọc mã lệnh từ vị trí đầu tiên của bộ nhớ ROM: 000H, sau mỗi lần thực hiện lệnh Vi điều khiển sẽ tìm đến để lấy lệnh ở vị trí ROM kế tiếp. Nếu có nhiều khai báo ORG, Vi điều khiển sẽ thực hiện các câu lệnh ở vị trí có địa chỉ thấp trước, nếu muốn chuyển sang thực hiện chương trình ở vị trí bất kì thì dùng các lệnh nhảy.
       + Hai câu lệnh Mov        P0,#0FFH    và  Mov        P2,#11111111B   làm 8 bit của Port 1 và 8 bit của Port 2 lên mức 1, hai câu lệnh này truyền cùng một giá trị như nhau, giá trị này có thể viết bằng số hex (số thập lục phân-câu lệnh trên) hoặc bằng số nhị phân(câu lệnh dưới) đều được. Trong trường hợp này, ngõ ra quan tâm là giá trị của từng bit, do đó sử dụng số nhị phân sẽ thuận lợi hơn.
         Bài 2: Cho các dãy đèn led có kết nối như trong sơ đồ dưới, các dãy led này được kết nối với Port 1 và Port 2. Viết chương trình để các led nối mỗi Port sáng xen kẽ: led 1,3,5,7 sáng; led 2,4,6,8 tắt, các led được đánh số như sau led 1 nối với Px.0, led 2 nối với Px.1, lần lượt với các led khác.
        Phân tích: Ở sơ đồ kết nối phần cứng như hình trên, đèn led sáng khi tín hiệu ở ngõ ra ở mức 0(+0V). Như vậy cần viết chương trình để các bit P1.0, P1.2, P1.4, P1.6 và P2.0, P2.2, P2.4, P2.6 xuất tín hiệu ở mức 0 , các bit còn lại xuất ra mức 1. Sau đây là chương trình:
;*************************************************************************************************
;**************/////--- 8 LED SANG XEN KE ---\\\\\\ ****************************************
;**----------------------------------------------------------------------------------------------------------------------
;**////////////////___ lam 8 led noi  Port 1 va Port 2_________________\\\\\\\\\\\\\\\\\\\\\\\\\\\
;**///////////////___ led sang khi tin hieu xuat o muc 0__________________\\\\\\\\\\\\\\\\\\\\\\\\\
;**//////////////____ led sang xen ke o vi tri le____________________\\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<----------------------------------------------------->>>>>>>>>>>>>>
;** \\\\\\\\\\\\------- can xuat voi gia tri tren 1 Port la: 01010101b ---------////////////////
;**\\\\\\\\\\\\\--------Duoc viet gon thanh 55H ---------------------------------------////////////////
;*****************************************************************************************************
;*****************************************************************************************************
                     ORG        000H                ; khai bao dia chi de bat dau chuong trinh tren Rom

                     Mov        P1,#55H              ;===>>>> lam tin hieu xuat xen ke tren P1
                     Mov        P2,#01010101B   ;===>>>> lam tin hieu xuat xen ke tren P2
                     End


Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download
Nguồn huongnghiepviet.com