HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051

Một phần của tài liệu đồ án cơ điện tử thiết kế mô hình cấp phôi tự động (Trang 32 - 138)

1.Gíơi thiệu

Port nối tiếp của 8051 có thể hoạt động trong các mode riêng biệt trên phạm vi cho phép của tần số. Chức năng chủ yếu của Port nối tiếp là thực hiện sự chuyển đổi song song thành nối tiếp cho dữ liệu ra và chuyển đổi nối tiếp thành song song của dữ liệu đầu vào.

Phần cứng truy xuất tới Port nối tiếp qua các chân TXD (P3.1) và RXD (P3.0).

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Port nối tiếp tham dự hoạt động đầy đủ (sự phát và sự thu cùng lúc), và thu vào bộ đếm mà nó cho phép 1 ký tự được nhận vào và cất vào bộ đệm trong khi ký tự thứ 2 được nhận vào . Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ 2 được nhận vào hoàn toàn thì dữ liệu không bị mất.

Hai thanh ghi chức năng đặc biệt cung cấp cho phần mềm truy

xuất đến Port nối tiếp là SBUF và SCON. Sự đệm Port nối tiếp SBUF ở

địa chỉ (99H) là 2 sự đệm thật sự: Ghi lên SBUF LOAD dữ liệu phát và đọc SBUF truy xuất dữ liệu đã nhận. Đây là 2 thanh ghi riêng biệt và rõ rệt, mà thanh ghi phát chỉ ghi còn thanh ghi thu chỉ đọc.

Thanh ghi điều khiển Pport nối tiếp SCON (98H) là thanh ghi được định vị bit bao gồm các trạng thái và các bit điều khiển. Các bit điều khiển set mode của Port nối tiếp, còn các bit trạng thái cho biết sự kết thúc việc thu phát 1 ký tự. Các bit trạng thái có thể được kiểm tra trong phần mềm hoặc lập trình sinh ra ngắt.

Tần số hoạt động của Port nối tiếp hoặc tốc độ BAUD có thể được lấy từ

dao động trên chip 8051 hoặc thay đổi. Nếu một tốc độ BAUD thay đổi được

dùng, thì Timer cung cấp một tốc độ Baud ghi giờ và phải được lập trình phù

hợp.

Mode hoạt động của Port nối tiếp của 8051 được set bởi việc ghi lên thanh

ghi mode của Port nối tiếp SCON ở địa chỉ 99H. Bảng tóm tắt thanh ghi điều

khiển Port nối tiếp SCON như sau:

SCON.7 SM0 9FH Bit 0 của chế độ port nối tiếp

SCON.6 SM1 9EH Bit 1 của chế độ port nối tiếp

SCON.5 SM2 9DH Cho phép chế độ nhiều vi xử lý

SCON.4 REN 9CH Cho phép nhận. Lập/xoá mềm

SCON.3 TB8 9BH Bit thứ 9 trong mode 2và 3. Lập/xoá mềm

SCON.2 RB8 9AH Bit thứ 9 nhận vào ( tuỳ mode)

SCON.1 TI 99H Cờ ngắt truyền

SCON.0 RI 98H Cờ ngắt nhận

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Bảng các chế độ hoạt động của Port nối tiếp

SMOD SM1 MODE Mô tả Tốc độ

0 0 0 Thanh ghi dịch fOCS/12

0 1 1 UART 8bit Thay đổi

1 0 2 ỦART 9bit fOCS/64 hoặc / 32

1 1 3 ART 9bit Thay đổi

Cờ ngắt thu RI và phát TI trong thanh ghi SCON vận hành 1 rơle quan

trọng sự truyền nối tiếp 8051. Cả 2 bit đều được set bởi phần cứng nhưng phải

được xoá bằng phần mềm .

Điển hình là RI được set ở cuối sự thu ký tự và cho biết: “thanh ghi đệm thu đã đầy”. Điều kiện này có thể kiểm tra trong phần mềm hoặc có thể lập trình sinh ra sự ngắt. Nếu phần mềm muốn nhập một ký tự từ một thiết bị đã được kết nối tới Port nối tiếp, thì nó phải chờ đến khi RI được set,sau khi xoá RI và đọc ký tự từ SBUF.

TI được set ở cuối sự phát ký tự và cho biết “thanh ghi đệm của sự phát đã

rỗng”. Nếu phần mềm múò gửi 1 ký tự đến một thiết bị được nối đến Port nối

tiếp, trước tiên nó phải kiểm tra xem Port nối tiếp đã sẵn sàng chưa.

Nếu ký tự trước đã được gửi đi, thì nó phải chờ cho đến khi sự phát đi hoàn

thành.Một việc quan trọng truyền thông nối tiếp là ta phải tạo tốc độ Baud.

Thường thì chúng ta dùng Timer 1 để tạo tốc độ Baud.

Bảng sau sẽ cho chúng ta các giá trị Baud thường dùng:

Tốc độ Baud Tần số thạch anh SMOD TH1 Tốc độ thực tế Sai số 9600 12.000MHz 1 -7(F9H) 8923 7% 2400 12.000MHz 0 -13(F3H) 2404 0.16% 1200 12.000MHz 0 -26(E6H) 1202 0.16% 19200 11.059MHz 1 -3(FDH) 19200 9600 11.059MHz 0 -3(FDH) 9600

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

2400 11.059MHz 0 -12(F4H) 2400 0 1200 11.059MHz 0 -12(E8H) 1200 0

VII. HOẠT ĐỘNG NGẮT CỦA (INTERRUPT) CỦA 8051

Trong nhiều ứng dụng đòi hỏi ta phải dùng phải ngắt mà không dùng Timer

bởi vì nếu dùng Timer thì ta mất thời gian để cờ tràn Timer TFx được set mới xử

lý tiếp chương trình. Do đó ta không có thời gian để làm các việc quan trọng khác mà ứng dụng đòi hỏi. Đây là chương trình rất quan trọng của 8051.

1. Gíơi thiệu

Interrupt là một sự cố điều kiện mà nó gây ra sự ngưng lại tạm thời của

chương trình để phục vụ một chương trình khác. Các Interrupt vận hành một

Relay rất quan trọng trong thiết bị và cung cấp đầy đủ các ứng dụng vi điều

khiển. Chúng cho phép 1 hệ thống đáp ứng bộ đến sự kiện quan trọng và giải

quyết sự kiện đó trong khi chương trình khác đang thực thi. Một hệ thống được

lái bởi Interrupt cho một kỹ xảo làm nhiều công việc cùng một lúc. Tất nhiên CPU không thể thực hiện nhiều lệnh cùng một lúc, nhưng nó có thể tạm treo việc thực thi của chương trình để thực thi chương trình khác và sau đó quay trở lại chương trình chính.

Khi chương trình chính đang thực thi mà có một sự ngắt xảy ra thì chương trình chính ngưng thực thi và rẽ nhánh đến thủ tục phục vụ ngắt ISR. ISR thực thi để thực hiện hoạt động và kết thúc với lệnh “trở lại từ sự ngắt”: Chương trình tiếp tục nơi mà nó dừng lại.

2.Tổ chức Interrupt của 8051

8051 cung cấp 5 nguồn ngắt, 2 ngắt ngoài, 2 sự ngắt Timer, 1 ngắt Port nối tiếp. Tất cả các Interrupt bị mất tác dụng bởi sự mặc định sau khi reset hệ thống và được cho phép cá biệt bởi phần mềm.

Trong trường hợp có 2 hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một

sự ngắt đang được phục vụ mà xuất hiện một ngắt khác, thì sẽ có 2 cách thực

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

2.1. Sự cho phép ngắt và sự cấm ngắt

Mỗi nguồn Interrupt được cho phép riêng biệt hoặc sự cấm riêng biệt qua

thanh ghi chức năng đặc biệt có bit định vị IE (Interrupt Enable) tại địa chỉ

0A8H. Cũng như sự cá biệt cho các bit của mỗi nguồn ngắt có 1 bit cho phép (hoặc cấm ) chung mà nó được xoá để cấm tất cả các Interrupt hoặc được để cho phép chung các Interrupt.

Hoạt động của từng bit trong thanh ghi cho phép ngắt IE được tóm tắt trong bảng sau:

Program excution with interrupt

Trong đó ký hiệu * cho biết ngắt chương trình chính để thực thi chương

trình con trong trình phục vụ ngắt ISR. Còn ký hiệu ** cho biết quay trở lại chương trình chính thực thi tiếp kết thúc chương trình con trong ISR

Bit Symbol Bit Address Sự mô tả (Enable= 1; Dissble)

IE7 EA AFH Cho phép toàn bộ hoặc cấm toàn bộ

IE6 -- AEH Không định nghĩa

IE5 ET2 ADH Cho phép ngắt Timer 2 (8052)

IE4 ES ACH Cho phép ngắt Port nối tiếp

IE3 ET1 ABH Cho phép ngắt Timer 1

IE2 EX1 AAH Cho phép ngắt ngoài External 1

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

IE0 EX0 A8H Cho phép ngắt ngoài Exxternal 0

Hai bit phải set cho một sự ngắt nào đó : Là bit cho phép riêng và bit cho phép chung. Ví dụ để cho phép ngắt Timer 1 ta có thể thực hiện trên bit: SETB ET1 và SETB EA hoặc sự thực hiện trên byte: MOV IE, #10001000B. Cả 2 phương pháp này đều có kết quả chính xác sau khi reset hệ thống, nhưng kết quả khác nhau nếu thanh ghi IE được ghi trên tuyến ở giữa chương trình.

Giải pháp thứ nhất không có tác dụng trên các bit còn lại trong thanh ghi IE, còn giải pháp thứ 2 xoá các bit còn lại trong thanh ghi IE. Ở đầu chương trình ta nên khởi gán IE với lệnh MOV BYTE, nhưng sự cho phép ngắt và sự cấm ngắt trên tuyến trong 1 chương trình, dùng các lệnh SET BIT và CLR BIT để tránh kết quả phụ với các bit khác trong thanh ghi IE.

2.2. Sựưu tiên ngắt (Interrupt Priority)

Mỗi nguồn ngắt được lập trình cá biệt đến một trong 2 mức ưư tiên qua

thanh ghi chức năng đặc biệt có định vị IP (Interrupt Priority) tại địa chỉ 0B8H.

Hoạt động của từng bit trong thanh ghi IP được tóm tắt trong bảng sau:

Bit Sy

mbol

Bit Address Sự mô tả (Enable= 1; Dissble)

IP 7 -- ---- Không định nghĩa IP 6 -- ---- Không định nghĩa IP 5 PT 2 BDH Cho phép ngắt Timer 2 (8052) IP 4

PS BCH Ưu tiên cho phép ngắt Port nối tiếp

IP 3

PT 1

BBH Ưu tiên cho phép ngắt Timer 1

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương 2 1 External 1 IP 1 PT 0

B9H Ưu tiên cho phép ngắt Timer 0 IP

0

PX 0

B8H Ưu tiên cho phép ngắt ngoài

Exxternal 0

Thanh ghi ưu tiên ngắt IP được xoá sau khi reset hệ thống để đặt tất cả các sự ngắt ở mức ưu tiên thấp hơn sự mặc định.Ý tưởng “các sự ưu tiên” cho phép 1 thủ tục phục vụ ngắt ISR mới được ngắt nếu sự ngắt mới này ưu tiên cao hơn sự ngắt hiện hành đang phục vụ.

Trên 8051 có 2 mức ưu tiên cao và 2 mức ưu tiên thấp. Nếu một thủ tục

phục vụ ngắt có mức ưu tiên thấp đang thực thi mà có một ngắt có mức ưu tiên

cao hơn xuất hiện, thì thủ tục phục vụ ngắt đó bị ngắt để thực thi thủ tục ngắt

mới. Ngược lại thủ tục phục vụ ngắt có mức ưu tiên cao hơn đang thực thi mà có

một ngắt ưu tiên thấp hơn xuất hiện, thì nó không bị ngắt mà phải chờ thực thi

xong thủ tục phục vụ cao hơn mới nhảy tới thủ tục phục vụ ngắt thấp.

Chương trình thực thi ở mức cơ bản và không kết hợp với sự ngắt nào, nó

có thể luôn luôn bị ngắt bất chấp sự ưu tiên ngắt ở mức cao hay thấp. Nếu 2 sự

ngắt của các ưu tiên khác nhau xuất hiện đồng thời, sự ngắt ưu tiên cao hơn sẽ

đựơc phục đầu tiên.

2.3. Sự kiểm tra vòng quét liên tiếp

Nếu 2 sự ngắt có cùng mức ưu tiên cùng xuất hiện đồng thời, thì sự kiểm tra vòng quét sẽ ấn định sự ngắt nào được thực thi trước. Sự kiểm tra vòng quét liên tiếp ưu tiên từ trên xuống dưới theo thứ tự là: External 0, Timer 0, External 1, Timer1, SERIAL Port, Timer 2

Hình trên minh hoạ 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt riêng và chung, kiểm tra vòng quát liên tiếp và mức ưu tiên. Trạng thái của tất cả các nguồn ngắt có hiệu lực thông qua các bit cờ tương ứng trong các thanh ghi đặc biệt. Nếu có sự ngắt nào bị cấm thì sự ngắt đó không xuất hiện nhưng phần mềm vẫn kiểm tra cờ ngắt.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

Sự ngắt của Port nối tiếp đưa đến cổng OR logic của sự ngắt thu RI

(Receive Interrupt) hoặc sự ngắt phát TI (Transmit Interrupt). Tương tự sự ngắt

của Port nối tiếp, các sự ngắt của Timer 2 có thể được sinh ra bởi cờ tràn TF2

hoặc cờ nhập ngoài EXF2 (External Input Flag).

Interrupt Fl

ag

SFR Register and Bit Position

Exxternal 0 IE 0 TCON 1 Exxternal 1 IE 1 TCON 3 Timer 1 TF 1 TCON 7 Timer 0 TF 0 TCON 5

Serial Port TI SCON 1

Serial Port RI SCON 0

Timer 2 TF 2 T2CON7(8052) Timer 2 E XF2 T2CON6(8052) 2.4. Việc xử lý các sự ngắt (processing Interrupt)

Khi một sự ngắt xuất hiện và được chấp nhận bởi CPU thì chương trình chính bị ngắt. Các hoạt động sau đây xuất hiện.

• Lệnh hiện hành và kết thúc thực thi .

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

• Trạng thái ngắt hiện hành được cất giữ vào bên trong.

• Những sự ngắt bị ngăn lại tại mức ngắt .

Bộ đếm chương trình PC được LOAD với địa chỉ vectơ của thủ tục phục vụ ngắt ISR.

Thủ tục phục vụ ngắt ISR được thực thi.

Thủ tục phục vụ ngắt ISR thực thi và đưa hạt động vào đáp ứng ngắt, thủ

tục phục vụ ngắt ISR kết thúc với lệnh RETTI (quay trở về chương trình chính từ

Stack). Điều này khôi phục lại giá trị cũ của bộ đếm chương trình từ Stack và

hoàn toàn dừng lại ở trạng thái cũ. Sự thực thi chương trình chính tiếp tục ở nơi

mà nó ngừng lại.

2.5. Các vectơ ngắt (Interrupt vectors)

Khi có một sự ngắt được nhận giá trị được LOAD vào PC được gọi bởi

vectơ ngắt. Nó là địa chỉ của sự khởi động thủ tục phục vụngắt ISR của nguồn

ngắt. Các vectơ được cho trong bảng sau:

Interrupt Flag Vectors Address

System Reset RST 0000H External 0 IE0 0003H Timer 0 TF0 000BH External 1 IE1 0013H Timer 1 TF1 001BH Serial Port RI or TI 0023H Timer 2 TF2 or EXF2 002BH

Vectơ reset hệ thống RST tại địa chỉ 0000H được tính trong bảng này, bởi

vì trong ý nghĩa này nó giống như 1 Interupt: nó ngắt chương trình và LOAD vào PC với giá trị mới.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

động bị xoá bởi phần cứng, ngoại trừ RI và TI của Port nối tiếp và TF2, EXF2 của Timer2 được xoá bởi phần mềm. Nguyên nhân trên là có 2 nguồn ngắt có thể chịu đựng được cho mỗi sự ngắt mà nó không ứng dụng cho CPU để xoá cờ ngắt.Vì các vectơ ngắt nằm ở dưới cùng cùng mã nhớ, nên lệnh đầu tiên

của chương trình chính là lệnh nhảy đến vị trí cao hơn vị trí này như LJMP

0030H. CHƯƠNG III MCH CHUYN ĐỔI ADC I. Gíơi thiệu ADC 0809

Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi tương tự sang số 8 bit, bộ chọn 8 kênh và bộ logic điều khiển tương thích. Bộ chuyển đổi AD 8 bit nà dùng phương pháp chuyển đổi xấp xỉ tiếp. Bộ chọn kênh có thể truy xuất bất kỳ kênh nào trong các ngõ vào tương tự độc lập.

Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểm 0 bên ngoài và khả năng điều chỉnh làm tròn ADC 0809 dễ dàng giao tiếp với các bộ xử lý.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

* Ý nghĩa các chân:

- IN0 đến IN7 : 8 ngõ vào tương tự.

- A, B,C : giải mã chọn một trong ngõ vào. - Z-1 đến Z-8 : ngõ ra song song 8 bit.

- ALE : cho phép chốt địa chỉ. -START : xung bắt đầu chuyển đổi. - CLK : xung đồng hồ.

- REF : điện thế tham chiếu (+). - REF (-) : điện thế tham chiếu (-). - VCC : nguồn cung cấp.

* Các đặc điểm của ADC 0809: - Độ phân giả 8 bit.

- Tổng sai số chưa chỉnh định ± 12 LSB; ±1 LSB. - Thời gian chuyển đổi: 100μsở tần số 640 KHz. - Nguồn cung cấp 5 V

- Điện áp ngõ vào 0 – 5V

- Tần số xung clock 10 Khz -1280 kHz. - Nhiệt độ hoạt động -400 C đến 850 C

- Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng. - Không cần điều chỉnh zero hoặc đầy thang.

SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương

* Nguyên lý hoạt động:

ADC 0809 có 8 ngõ vào tương tự, 8 ngõ ra 8 bit có thể chọn 1 trong 8 ngõ vào tương tự để chuyển đổi sang 8 bit.

Các ngõ vào được chọn bằng cách giải mã. Chọn 1 trong 8 ngõ vào tương tự được thực hiện nhờ 3 chân A, B, C như bảng trạng thái sau:

A B C Ngõ vào được chọn

Một phần của tài liệu đồ án cơ điện tử thiết kế mô hình cấp phôi tự động (Trang 32 - 138)

Tải bản đầy đủ (PDF)

(138 trang)