HOẠT ĐỘNG NGẮT (INTERRUPT)

Một phần của tài liệu thiết kế hệ thống điều khiển nhệt độ bằng vi xử lý (Trang 47)

1.Giới thiệu:

Ngắt là hoạt động ngừng tạm thời một chương trình này để tji hành một chương trình khác. Các ngắt cĩ một vai trị quan trọng trong thiết kế và khả năng thực thi của vi điều khiển. Chúng cho phép hệ thốn đáp ứng khơng cùng lúc tới một cơng việc và giải quyết một cơng việc đĩ trong khi một chương trình khác đang thực thi.

Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng thời. Dĩ nhiên CPU mỗi lần khơng thể thực thi một chương trình để thực thi một chương trình khác, rồi quay về chương trình đầu. khi cĩ yêu cầu ngắt. Chương trình giải quyết ngắt được gọi lả chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine).

Ơû 8051 cĩ 5 nguồn ngắt:

- 2 ngắt ngồi

- 2 ngắt từ timer.

- 1 ngắt port nối tiếp.

Tất cả các ngắt sẽ khơng được đặt sau khi reset hệ thống và cho phép ngắt riêng rẽ bởi phần mềm.

a)Cho phép và khơng cho phép ngắt:

Mỗi nguồn ngắt được cho phép hoặc khơng cho phép từng ngắt một qua thanh ghi chức năng đặt biệt cố định địa chỉ bit IE (Interrupt Enable : cho phép ngắt) ở địa chỉ A8H. Cũng như các bit cho phép mỗi nguồn ngắt, cĩ một bit cho phép hoặc cấm tồn bộ được xĩa để cấm tất cả các ngắt hoặc được đặt lên 1 để cho phép tất cả các ngắt.

Bit Ký

hiệu Địa chỉbit Mơ tả (1=cho phép,0=cấm) IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA EA ET5 E5 ET1 EX1 ET0 EX0 AFH AEH ADH ACH ABH AAH A9H A8H Cho phép hoặc cấm tồn bộ Khơng được định nghĩa

Cho phép ngắt từ timer 2 (8052)

Cho phép ngắt Port nối tiếp Cho phép ngắt từ timer 1 Cho phép ngắt ngồi 1 Cho phép ngắt từ timer 0 Cho phép ngắt ngồi 0 b)Ưu tiên ngắt:

Mỗi nguồn ngắt đuợc lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức năng đặc biệt được địa chỉ bit Ip (Interrupt priority : ưu tiên ngắt) ở địa chỉ B8H.

Bit Ký

hiệu

Địa chỉ bit

Mơ tả (1=mức cao hơn,0=mức thấp) IP.7 IP.6 IP.5 IP.4 _ _ PT2 PS BFH BEH BDH BCH

Khơng được định nghĩa Khơng được định nghĩa

Ưu tiên cho ngắt từ timer 2 (8052)

IP.3 IP.2 IP.1 IP.0 PT1 PX1 PT0 PX0 BBH BAH B9H B8H

Ưu tiên cho ngắt Port nối tiếp Ưu tiên cho ngắt từ timer 1 Ưu tiên cho ngắt ngồi Ưu tiên cho ngắt từ timer 0 Ưu tiên cho ngắt ngồi 0

Các ngắt ưu tiên được xĩa sau khi reset hệ thống để đặ ttất cả các ngắt ở mức ưu tiên thấp hơn.

3. Xử lý ngắt:

Khi cĩ một ngắn xẩy ra và được CPU chấp nhận, chương trình chính bị ngắt quãng. Những hoạt động sau xẩy ra:

- Thi hành hồn chỉnh lệnh đang hiện hành.

- Các DC vào ngắt xếp.

- Trạng thái ngắt hiện hành được cất bên trong.

- Các ngắt được chặn tại mức của ngắt.

- Nap vàp DC địa chỉ Vector của ISR. (adsbygoogle = window.adsbygoogle || []).push({});

- ISR thực thi.

ISR thực thi và đáp ứng ngắt. ISR hồn tất bằng lệnh RET1. Điều này làm lấy lại giá trị cũ của PC từ ngăn xếp và lấy lại trạng thái ngắt cũ. Chương trình lại tiếp tục thi hành tại nơi mà nĩ dừng.

• Các Vector ngắt.

Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là Vector ngắt. Nĩ là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt. Các Vector ngắt được cho ở bảng sau:

Ngắt Cờ Địa chỉ Vector Reset hệ thống Bên ngồi 0 Timer 0 Bên ngồi 1 Timer 1 Port nối tiếp

RST IE0 TF0 IE1 TF1 TI hoặc RI 0000H 0003H 000BH 0013H 001BH 0023H

Vector reset hệ thống (RST ở địa chỉ 0000H) nĩ giống như một ngắt. Nĩ ngắt chương trình chính và tải vào PC một giá trị mới.

Khi chỉ đến một ngắt “cờ gây ngắt tự động bị xĩa bởi phần cứng, trừ ra R1, T1 cho các ngắt cổng nối tiếp. Vì cĩ hai nguồn cĩ thể cĩ cho ngắt này,khơng thực tế để CPU xĩa cờ ngắt này. Các bit phải được kiểm tra trong ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xĩa bằng phần mềm.

4. Các ngắt của 8051:

a)Các ngắt timer:

Các ngắt timer cĩ địa chỉ Vector ngắt là 000BH (timer 0) và 001BH (timer 1). Ngắt timer xẩy ra khi các thanh ghi timer (TLx ITHx) tràn và set cờ báo tràn (TFx) lên 1. Các cờ timer (TFx) khơng bị xĩa bằng phần mềm. Khi cho phép các ngắt, TFx tự động bị xĩa bằng phần cứng khi CPU chuyển đến ngắt.

b)Các ngắt cổng nối tiếp:

Ngắt cổng nối tiếp xẩy ra khi hoặc cờ phát (TI) hoặc cờ ngắt thu (RI) được đặt lên 1. Ngắt phát xẩy ra khi một ký tự đã được nhận xong và đang đợi trong SBUP để được đọc.

Các ngắt cổng nối tiếp khác với các ngắt timer. Cờ gây ra ngắt cổng nối tiếp khơng bị xĩa bằng phần cứng khi CPU chuyển tới ngắt. Do cĩ hai nguồn ngắt cổng nối tiếp TI và RI. Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được xĩa bằng phần mềm. Các ngắt timer cờ ngắt cờ ngắt được xĩa bằng phần cứng khi CPU hướng tới ISR.

c)Các ngắt ngồi:

Các ngắt ngồi xẩy ra khi cĩ một mức thấp hoặc cạnh xuống trên chân INT0 hoặc INT1 của vi điều khiển. Đây là chức năng chuyển đổi của các bit Port 3.(Port 3.2 và Port 3.3).

Các cờ tạo ngắt này là các bit IE0 vá IE1 trong TCON. Khi quyền điều khiển đã chuyển đến ISR, cờ tạo ra ngắt chỉ được xĩa nếu ngắt được tích cực bằng cạnh xuống. Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngồi sẽ điều khiển mức của cờ thay cho phần cứng.

Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua các bit IT0 và IT1 trong TCON. Nếu IT1 = 0, ngắt ngồi 1

được tác động bằng múc thấp ở chân IT1. Nếu IT1 = 1 ngắt ngồi 1 sẽ được tác động bằng cạnh xuống. trong chế độ này, nếu các mẫu liên tiếp trên chân INT1 chỉ mức cao trong một chu kỳ và chỉ mức thấp trong chu kỳ kế, cờ yêu cầu ngắt IE1 trong TCON được đặt lên 1, rồi bit IE1Ù yêu cầu ngắt.

Nếu ngắt ngồi được tác động bằng cạnh xuống thì nguồn bên ngồi phải giữ chân tác động ở mức cao tối thiểu một chu kỳ và giữ nĩ ở mức thấp thêm một chu kỳ nữa để đảm bảo phát hiện được cạnh xuống. Nếu ngắt ngồi được tác động theo mức thì nguồn bên ngồi phải giữ tín hiệu yêu cầu tác động cho đến khi ngắt được yêu cầu được thật sự tạo ra và khơng tác động yêu cầu ngắt trước khi ISR được hồn tất . Nếu khơng một ngắt khác sẽ được lặp lại.

CHƯƠNG IV :

GIỚI THIỆU IC AT8952

I.ĐẶC ĐIỂM VỀ PHẦN TỔ CHỨC BỘ NHỚ

+IC 8952 (cùng họ với 8052 )chức năng giống như 8031/8051 nhưng tăng cường thêm hai chức năng là:

+ Ram cĩ 128 byte từ địa chỉ 80H đến FFH vì thế nĩ khơng bị nhầm lẫn địa chỉ với thanh ghi SFR (khi cĩ cùng địa chỉ giống nhau ). Thêm 1/8 K ram chỉ để sử dụng cho địa chỉ trực tiếp ,ví dụ như câu lệnh

MOV A,0F0H

+Ơû IC 8031/8051 đây là lệnh chuyển nội dung của thanh ghi B vào thanh ghi A .

MOV R0,# 0F0H

MOV A,@R0

Nhưng ở 8952 việc đọc vào thanh ghi A nội dung của địa chỉ ram nội F0H nhưng khơng được định nghĩa ở 8031/8051 . Sự sắp xếp bộ nhớ trong của 8952 notice minh hoạ như hình vẽ (adsbygoogle = window.adsbygoogle || []).push({});

Ngồi ra 8952 cịn cĩ một cải tiến nữa là cĩ thêm một timer 16 bit đĩ là timer 2 .Timer 2 được lập trình với 5 thanh ghi chức năng đặc biệt

Vùng địa chỉ cĩ thể truy cập gián tiếp hay trực tiếp Chỉ dành riêmg cho việc truy cập địa chỉ trực tiếp Vùng thanh ghi chức năng đặc biệt 80H 00H 7FH 128 byte thấp Vùng địa chỉ chỉ dành riêng cho cho việc truy cập địa chỉ gián tiếp FFH 80H 128 byte cao FFH

+2 thanh ghi timer TL2 ,TH2

+1 thanh ghi timer điều khiển RCAP2L,RCAP2H +và 2 thanh ghi chế độ ghi chốt RXAP2L,RCAP2H

mode của timer 2 được đặt bởi thanh ghi điều khiển T2CON ,giống timer 0 và timer 1 ,timer 2 cĩ thể hoạt động như một timer nội hay là một bộ đếm .Nguồn xung nhịp là xung nội ,nếu xung ngoại thì kích port P1.0 .Ta cĩ thể chọn xung kích nội hay ngoại bằng cách tác động vào bit C/T2 trên T2CON cũng như tác động đến bit C/T trên TCON đối với timer 0 ,timer1 .Cĩ ba mode hoạt động : chế độ tự động nạp lại ,chế độ chốt và chế độ tốc độ baud

BIT KÝ

HIỆU ĐỊACHỈ GIẢI THÍCH

T2CON.

7 TF2 CFH Cờ báo tràn .khơng ảnh hưởng khi TCLK hayRCLK đang ở mức 1 T2CON.

6

EXF2 CEH Cờ ngồi ,được tác động khi chốt hay nạp lại giá trị cĩ chuyển từ mức 1 xuống mức 0 trên T2EX và EXEN2 ở mức 1 .khi cĩ ngắt EXF2 ở mức 1 để phục vụ chương trình con và xố bằng phần mềm

T2CON. 5

RCLK CDH Nhận xung clock , khi tác động timer 2 cho port nối tiếp nhận tốc độ baud ,timer 1 chuyển tĩc độ baud

T2CON. 4

TCLK CCH Chuyển xung clock .khi tác động timer 2 cho chuyển tốc độ baud ,timer 1 nhận tốc độ baud T2CON.

3

EXEN2 CBH Cho phép timer 2 ngồi ,khi tác động cho phép chốt hay nạp lại trên T2EX khi cĩ sự chuyển từ mức 1 đến mức 0

T2CON. 2

TR2 CAH Cho chạy timer 2 ,được đặt hay xố bằng phần mềm

T2CON.

1 C/T2 C9H Nếu bit=1 thì bộ đếm Nếu bit =0 thì timer nội T2CON.

0

CP/RL2 C

C8H cho phép hoạt động ở chế độ chốt hay chế độ nạp lại .

mức từ 1 xuống 0 trên T2EX thì chế độ chốt khi xố ,nếu EXEN2 =1 , chế độ nạp lại trên cờ báo tràn của timer

nếu RCLK hay TCLK =1 thì bit này khơng bị ảnh hưởng

II.CÁC MODE HOẠT ĐỘNG

1.Chế Độ Tự Động Nạp Lại

Chế độ tự đợng nạp lại/ chốt trên bit T2CON chọn lựa hai mode đầu tiên . Khi CP/RL2 =0 thì timer 2 đang ở chế độ tự động nạp lại với TL2/TH2 như là thanh ghi timer và hai thanh ghi RCAP2L ,RCAP2H đang giữ trạng thái nạp lại . Khơng giống như chế độ nạp lại đối với timer 0 hay timer 1 ,timer2 luơn ở chế độ 16 bit thậm chí khi ở mode tự động nạp lại

Sự nạp lại cĩ sự chuyển đổi FFFFH đến 0000H trên TL2 /TH2 khi cờ TF2 được đặt . Trạng thái này được xác định bởi phần mềm hay cĩ chương trình phục vụ ngắt ,nĩi cách khác TF2 phải được xĩa bằng phần mềm trước khi được đặt lên mức tích cực (adsbygoogle = window.adsbygoogle || []).push({});

On- chip osc : 12 TL2 TH2 TF2 RRCAP2 L RCAP2H EXF2 C/ T2 TR2 EXEN 2 T2EX P1.1 T2(P1.0) 112MHz 0=UP 1=DƠWN 0=UP 1=DƠWN

Ơû chế độ ưu tiên , khi đang đặt EXEN2 trong T2CON việc nạp lại

chỉ được xảy ra khi cĩ sự chuyển đổi từ mức 1 đến 0 của tín hiệu đến chân T2EX ,việc này được thực hiện bằng cách thay đổi chân P1.1của IC 8952 .Việc chuyển đổi từ mức 1 đến mức 0 trên T2EX cũng là xét bit cờ mới trên timer 2 .EXF2 được kiểm tra bằng phần mềm hay cĩ phục vụ ngắt , EXF2 .Như cờ báo tràn TF2,EXF2 được kiểm tra bằng phần mềm hay cĩ phục vụ ngắt. EXF2 phải được xố bằng phần mềm

chế độ tự động nạp lại ở timer2 được minh họa như hình trên:

2.Chế Độ Chốt

Khi CP/ RL2=1 ,chế độ chốt bị thay đổi .Timer 2 họat động như một timer 16 bit và cờ báo tràn TF2 lên mức tích cực khi cĩ sự chuyển đổi từ FFFFH xuống 0000H trên TL2/TH2, cờ TF2 được kiểm tra bằng phần mềm hay cĩ phục vụ ngắt

Khi muốn chế độ chốt ,thì EXEN2 phải được đặt .Nếu EXEN2 =1 , T2EX cĩ sự chuyển đổi từ mức 1 xuống 0 thì việc ghi giá trị vào trong TL2/TH2 bằng cách ghi tốc độ vào RCAP2L và RCAP2H.Cờ EXF2 được kiểm tra bằng phần mềm hay cĩ phục vụ ngắt

Chế độ chốt được minh hoạ như hình vẽ

On- chip osc : 12 TL2 TH2 TF2 RRCAP2L RCAP2H EXF2 C/T 2 TR 2 EXE T2EX T2(P1.0) 112MHz 0=UP 1=DƠWN 0=UP Capture

Chương V:

MỞ RỘNG PORT DÙNG PII 8255

I CẤU TRÚC PHẦN CỨNG 8255A:

8255A là IC ngoại vi được chế tạo theo cơng nghệ LSI dùng để giao tiếp song song giữa Microprocrssor và thiết bị điều khiển bên ngồi.

Tên các chân 8255A:

D7÷D0 : Data bus (Bi-Direction).

P A 3 P A 2 P A 1 R D \ C S \ G N D P A 4 P A 7 W R \ R E S E T P A 0 D O 1 2 4 5 6 7 3 7 3 6 3 3 3 8 2 5 5 A 8 A 1 4 0 3 5 3 9 3 4 D 1 P A 5 P A 6 1 6 9 2 4 2 3 2 2 2 5 2 6 2 7 2 9 3 0 3 1 1 7 1 0 1 1 1 2 1 3 1 4 1 5 2 1 1 8 1 9 2 0 3 2 2 8 3 8 A 0 P C 7 P C 6 P C 5 P C 4 P C 0 P C 1 P C 2 P C 3 P B 0 P B 1 P B 2 D 2 D 3 D 4 D 5 D 6 D 7 V C C P B 7 P C 6 P C 5 P C 4 P C 3 8 2 5 5 A ( P D IP ) T O P V IE W P IN O U T S P A 7 - P A 0 P C 7 - P C 4 P C 3 - P C 0 P B 7 - P B 0 D 0 - D 7 R D \ W R \ R E S E T A 0 A 1 C S \

RESET Reset input. CS\ Chip : select RD\ Read : input WR\ Write : input A0A1 : Prot Address PA7÷PA0 : Port A PB7÷PB0 : Port B PC7÷PC0 : Port C

8255A giao tiếp với Microprocrssor thơng qua 3 bus : bus dữ liệu bit D7÷D0 bus địa chỉ A1A0, bus điếu khiển RD\,WR\.SC\.Reset.

Mã lệnh, thơng tin trạng thái và dữ liệu đều đượ truyền trên 8 đường dữ liệu D7÷D0. Microprocrssor gởi dữ liệu đến 8255A hoặc Microprocrssor đọc dữ liệu từ 8255A tùy thuộc vào lệnh diều khiển. Các đường tín hiệu RD\,WR\ của 8255A được kết nối với các đường RD\, WR\ của Microprocrssor.

Tín hiệu Reset dùng để khởi động 8255A khi cấp điện, khi bị Reset các thanh ghi bên trong của 8255A đều bị xĩa và 8255A ở trạng thái sẵn sàng làm việc. Khi giao tiếp với Microprocrssor, ngõ vào tín hiệu Reset này được kết nối tín hiệu Reset Out của Microprocrssor.

Tín hiệu Chip select CS\ dùng để lựa chọn 8255A khi Microprocrssor, giao tiếp với nhiều 8255A.

8255A cĩ 3 Port xuất nhập (I/O) cĩ tên là Port A,Port B, Port C, mỗi Port 8255A bit. Port A gồm PA0-PA7, Port B gồm PB0-PB7, Port C gồm các bit PC0-PC7. Các Port này cĩ thể là các Port Input hay Output tùy thuộc vào lệnh điều khiển, lệnh điều khiển do Microprocrssor gởi đến chứa trong thanh ghi lệnh (cịn gọi là thanh ghi điều khiển) để điều khiển 8255A .

các đường địa chỉ A1A0 của 8255A dùng để lựa chọn các Port và thanh ghi A1A0=002 dùng để chọn Port A, A1A0=012 dùng để chọn Port B, A1A0=102 dùng để chọn Port C, A1A0=112 dùng để chọn thanh ghi điều khiển.

Trong sơ đồ khối của 8255A , các Port I/O của 8255A chia ra làm 2 nhĩm : nhĩm A gồm Port A và bit cao của Port C,nhĩm B gồm Port B và 4 bit thấp của Port C. Để sử dụng các Port của 8255A người lập trình phải gởi từ điều khiển ra thanh ghi điều khiển để 8255A định cấu hình cho các Port đúng theo yêu cầu mà người lập trình mong muốn.

NHĨM A NHĨM B D7 D6 D5 D4 D3 D2 D1 D0 MODE SELECTION 1:ACTIVE MODE SELECTION 00:MODE 0 01:MODE 1 1X:MODE2 Port A 1:INPUT 0:OUTPUT Port C 1:INPUT 0:OUTPU T MODE SELECTION 1:MODE1 0:MODE0 Port B 1:INPUT 0:OUTPUT Port C 1:INPUT 0:OUTPUT

Cấu trúc từ điều khiển của 8255A.

II. CẤU TRÚC PHẦN MỀM CỦA 8255.

Do các Port ra của 8255A được chia ra làm 2 nhĩm A và nhĩm B tách rời nên từ điều khiển của 8255A cũng được chia làm 2 nhĩm.

Các bit D2D1D0 dùng để định cấu hình cho nhĩm B:

♦ Bit D0 dùng để thiết lập 4 bit thấp của Port C, D0=0 Port C xuất dữ liệu (output), D0=1 – Port thấp là port nhập dữ liệu (Input). (adsbygoogle = window.adsbygoogle || []).push({});

♦ Bit D1 dùng để thiết lập Port B , D1=0- Port B là Port xuất dữ liệu (output), D1=1 –Port B là Port nhập dữ liệu (input).

♦ Bit D2 dùng để thiết lập Mode điều khiển của nhĩm B:

 D2=0: nhĩm B hoạt động ở modem 0.

 D2=1: nhĩm B hoạt động ở modem 1. Các bit D6D5D4D3 dùng để định cấu hình cho nhĩm A:

♦ Bit D3 dùng để thiết lập 4 bit cao của Port C, D3=0-Port C là Port xuất dữ liệu (output),D3=1 Port C là Port nhập dữ liệu (input).

♦ Bit D4 dùng để thiết lập Port A, D4=0- Port A là Port xuất

Một phần của tài liệu thiết kế hệ thống điều khiển nhệt độ bằng vi xử lý (Trang 47)