Cỏc thanh ghi port xuất nhập:

Một phần của tài liệu đồ án kỹ thuật điện điện tử Thiết kế hệ thống đo và điều khiển nhiệt độ từ xa qua mạng RS485 dùng vi điều khiển 89C51 (Trang 38)

C ỏỏ cc t th ha an nh h g gh hi iP Po or rt t( (P Po or rt tR Re eg gi is st te err )) :

e.Cỏc thanh ghi port xuất nhập:

Cỏc port của 8051/8031 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2 ở địa chỉ A0H và Port 3 ở địa chỉ B0H. Tất cả cỏc port đều được địa chỉ húa từng bit. Điều đú cung cấp một khả năng giao tiếp thuận lợi. Vớ dụ nếu một motor được nối qua một cuộn dõy cú transistor lỏi đến bit 7 của Port 1, nú cú thể được bật và tắt bằng một lệnh đơn :

SETB P1.7 ; bật motor CLR P1.7 ; tắt motor

Cỏc lệnh trờn dựng dấu chấm để xỏc định một bit trong một byte. Trỡnh hợp dịch sẽ thi hành sự chuyển đổi cần thiết, vỡ vậy hai lệnh sau đõy là như nhau :

CLR P1.7

CLR 97H

1.5 Hoạt động của timer:

Bộ định thời của Timer là một chuỗi cỏc Flip Flop được chia làm 2, nú nhận tớn hiệu vào là một nguồn xung clock, xung clock được đưa vào Flip Flop thứ nhất là xung clock của Flip Flop thứ hai mà nú cũng chia tần số clock này cho 2 và cứ tiếp tục.

Vỡ mỗi tầng kế tiếp chia cho 2, nờn Timer n tầng phải chia tần số clock ngừ vào cho 2n. Ngừ ra của tầng cuối cựng là clock của Flip Flop tràn Timer hoặc cờ mà nú kiểm tra bởi phần mềm hoặc sinh ra ngắt. Giỏ trị nhị phõn trong cỏc FF của bộ Timer cú thể được nghĩ như đếm xung clock hoặc cỏc sự kiện quan trọng bởi vỡ Timer được khởi động. Vớ dụ Timer 16 bit cú thể đếm đến từ FFFFH sang 0000H.

Cỏc Timer được ứng dụng thực tế cho cỏc hoạt động định hướng. 8951 cú 2 bộ Timer 16 bit, mỗi Timer cú 4 mode hoạt động. Cỏc Timer dựng để đếm giờ, đếm cỏc sự kiện cần thiết và sự sinh ra tốc độ của tốc độ Baud bởi sự gắn liền Port nối tiếp.

Mỗi sự định thời là một Timer 16 bit, do đú tầng cuối cựng là tầng thứ 16 sẽ chia tần số clock vào cho 216 = 65.536.

Trong cỏc ứng dụng định thời, 1 Timer được lập trỡnh để tràn ở một khoảng thời gian đều đặn và được set cờ tràn Timer. Cờ được dựng để đồng bộ chương trỡnh để thực hiện một hoạt động như việc đưa tới 1 tầng cỏc ngừ vào hoặc gởi dữ liệu đếm ngừ ra. Cỏc ứng dụng khỏc cú sử dụng việc ghi giờ đều đều của Timer để đo thời gian đó trụi qua hai trạng thỏi (vớ dụ đo độ rộng xung).Việc đếm một sự kiện được dựng để xỏc định số lần xuất hiện của sự kiện đú, tức thời gian trụi qua giữa cỏc sự kiện.

Cỏc Timer của 8951 được truy xuất bởi việc dựng 6 thanh ghi chức năng đặc biệt như sau :

Khung đề nghị cho một chương trỡnh phục vụ ngắt như sau: ORG 0000H ; điểm vào Reset.

Ljmp main; cỏc điểm vào ISR.

ORG 0030H; điểm vào chương trỡnh chớnh. Main: chương trỡnh chớnh bắt đầu.

Lệnh thứ nhất nhảy tới địa chỉ 0030H, vừa trờn cỏc vị trớ mà cỏc ISR bắt đầu. Như được vẽ hỡnh sau, chương trỡnh chớnh bắt đầu ở địa chỉ 0030H.

Timer SFR Purpose Address Bit- Addressable

TCON Control 88H YES

TMOD Mode 89H NO

TL0 Timer 0 low-byte 8AH NO

TL1 Timer 1 low-byte 8BH NO TH0 Timer 0 high- byte 8CH NO TH1 Timer 1 high- byte 8DH NO

Một phần của tài liệu đồ án kỹ thuật điện điện tử Thiết kế hệ thống đo và điều khiển nhiệt độ từ xa qua mạng RS485 dùng vi điều khiển 89C51 (Trang 38)