Kỹ thuật lập trình chế độ 2 của bộ đếm thời gian và ứng dụng trong ngắt

MỤC LỤC

Lập trình chế độ 2

Để lặp lại quá trình chúng − ta đơn giản chỉ việc xoá cờ TF và để cho nó chạy mà không cần sự can thiệp của lập trình viên để nạp lại giả trị ban đầu. Chế độ n y có nhiều ứng dụng bao gồm việc thiết lập tần số baud trong truyền thông nối tiếp. Để tạo ra một thời gian trễ sử dụng chế độ 2 của bộ định thời cần thực hiện các b íc sau: −.

Nạp thanh ghi giá trị TMOD để báo bộ định thời gian nào (Timer0 hay Timer1).

BÝt C/T trong thanh ghi TMOD

Ch ơng trình sẽ tạo ra các đơn vị thời gian chuẩn theo giây, phút, giờ. Tr ớc khi kết thúc ch ơng n y ta cần nhắc lại hai vấn đề quan trọng. Chúng ta có thể nghĩ rằng công dụng của lệnh “JNB TFx, đích” để hiển thị mức cao của cờ TF là một sự lãng phí thời gian của BVĐK.

Điều đó đúng có một giải pháp cho vấn đề này là sử dụng các ngắt. Khi sử dụng các ngắt ta có thể đi thực hiện các công việc khác với. Khi cờ TF đ ợc bật thì nó báo cho ta biết đây l điểm quan trọng về thế mạnh của 8051.

Cấu trúc ngắt ngoài 8051

    INT phải đ ợc lâýu đi tr ớc khi thực hiện lệnh cuối cùng của trình phục vụ ngắt RETI, nếu không một ngắt khác sẽ lại đ ợc tạo ra. Sau khi các ngắt phần cứng trong thanh gi IE đ ợc kích hoạt thì bộ vi điều khiển duy trì trích mẫu trên chân INTn đối với tín hiệu mức thấp một lần trong một chu trình máy. “chân ngắt phải đ ợc giữ ở mức thấp cho đến khi bắt đầu thực hiện trình phục vụ ngắt ISR.

    Nếu chân INTn đ ợc đ a trở lại mức cao tr ớc khi bắt đầu thực hiện ISR thì sẽ chẳng có ngắt −. Do vậy, để bảo đảm việc kích hoạt ngắt phần − cứng tại các chân INTn phải khẳng định rằng thời gian tồn tại tín hiệu mức thấp là khoảng 4 chu trình máy v không đ ợc hơn. Chúng có thể đ ợc biểu diễn nh TCON.0 và TCON.2 vì thanh ghi TCON có thể đánh địa chỉ theo bít.

    Bằng việc chuyển các bít TCON.0 và TCON.2 lên cao qua các lệnh “SETB TCON.0” và “SETB TCON.2” thì các ngắt phần cứng ngoài INT0. Khi các trình phục vụ ngắt ISR kết thúc (nghĩa là trong thanh ghi thực hiện lệnh RETI). Để ngắt khác đ ợc nhận v thì tín hiệu trên chân đó phải trở lại mức cao và sau đó nhảy xuống thấp để đ ợc phát hiện nh một ngắt theo s ờn.

    Trong thực tế nó là một trong các chức năng của lệnh RETI để xoá bít t ơng ứng trong thanh ghi TCON (bít − TCON.1 và TCON.3). Nó báo cho ta rằng trình phục vụ ngắt xắp kết thúc. Vì lý do này mà. cao khi một s ờn xuống đ ợc phát hiện trên chân INT và dừng ở mức cao trong toàn bộ quá. trình thực hiện ISR. Nó chỉ bị xoá bởi lệnh RETI là lệnh cuối cùng của ISR. Do vậy, sẽ không. báo giờ cần đến các lệnh xoá bít n y nh “CLR TCON.1” hay “CLR TCON.3” tr ớc lệnh − RETI trong trình phục vụ ngắt đối với các ngắt cứng INT0 và INT1. Điều này không đúng với tr ờng hợp của ngắt nối tiếp. 5.7 Vài điều bổ xung về thanh ghi TCON. Bây giờ ta xét kỹ về các bít của thanh ghi TCON để hiểu vai trò của nó trong việc duy trì các ngắt. Đây l các bít xác định kiểu ngắt theo s ờn xung hay theo mức xung của các ngắt phần cứng trên chân −. Khi bật lại nguồn cả hai bít n y đều có mức 0 để biến chúng thành. ngắt theo tín hiệu mức thấp. Lập trình viên có thể điều khiển một trong số chúng lên cao để. chuyển ngắt phần cứng bên ngo i th nh ngắt theo ng ỡng. đã cho thì một khi ta đã đặt về 0 hoặc 1 thì các bít này sẽ không thay đổi vì ng ời thiết kế đã −. cố định kiểu ngắt l ngắt theo s ờn hay theo mức rỗi. lên cao) các bít IEx trên thanh ghi TCON nhảy đến bảng véc tơ ngắt và bắt đầu thực hiện trình. Trong khi 8051 thực hiện ISR thì không có một s ờn xung n o đ ợc ghi nhận trên chân INT0 (hay INT1) để ngăn mọi ngắt trong ngắt. Chỉ trong khi thực hiện lệnh RETI ở cuối trình phục vụ ngắt ISR thì các bít IEx mới bị báo rằng một s ờn xung cao xuống − thấp mới trên chân INT0 (hay INT1) sẽ kích hoạt ngắt trở lại.

    Nh đã nói ở ch ơng 10 thì cờ ngắt truyền TI (Transfer interrupt) đ ợc bật lên khi bít. Trong tr−ờng hợp cờ RI (Receive Interrupt) thì nó đ ợc bật lên khi to n bộ − à khung. Chúng ta có thể thay đổi trình tự trong bảng 11.3 bằng cách gán mức u tiên cao hơn −.

    Bảng véc tơ ngắt để phục vụ ngắt. Điều n y đ ợc gọi l  ngắt đ ợc kích hoạt theo mức hay  ngắt
    Bảng véc tơ ngắt để phục vụ ngắt. Điều n y đ ợc gọi l ngắt đ ợc kích hoạt theo mức hay ngắt

    Phần bài làm

    • Các sơ đồ mạch điện

      RAM mà không cần sử dụng những mạch nạp c huyên dụng, nh ng có khả − năng bảo vệ. Vi mạch 6264 đ ợc dùng làm bộ nhớ dữ liệu ngoài cho các vi điều khiển. Ta lấy số tròn 250, tương ứng ta phải chỉnh các biến trở của bộ chuẩn hoá sao cho thoả mãn bảng thông số trên.

      Bộ chuẩn hoá ta dùng khuếch đại thuật toán loại LM324, mắc thành mạch khuếch đại vi sai. Nhiệt độ cần đo là đại lượng thay đổi liên tục theo thời gian, nên cần phải liên tục cập nhập số liệu đo bằng cách tạo ra một chu kỳ để cập nhập hay còn gọi là chu kỳ lấy mẫu. Kênh nào lớn hơn giá trị trung bình thì báo led đỏ còn nhỏ hơn giá trị trung bình thì báo led xanh, nếu bằng thì không báo gì cả, cả hai led đều tắt (Sosanh).

      Các mạch nguồn, mạch chuẩn hoá tín hiệu điện áp đầu vào (tín hiệu từ cảm biến nhiệt độ đưa vào ADC), các mạch chốt, ngắt cổng, hiển thị giá trị nhiệt. Không có phần mềm lập trình hợp ngữ Prog-Studio Batronic full version nên không thể mô phỏng toàn bộ chương trình một lúc, mà phải lập trình từng phần một rồi để mô phỏng và kiểm tra.

      Sơ đồ chân của 6264:
      Sơ đồ chân của 6264: