Theo nh sơ đồ hình vẽ ta thấy bộ vi xử lý 8031 ( 8032) có 4 cổng vào ra song song. Khi một cổng đợc sử dụng nh một cổng ra, dữ liệu đợc đa vào thanh ghi SFR tơng ứng, và giá trị của một cổng bị thay đổi khi một giá trị mới đợc chốt.
Khi một cổng đợc sử dụng nh một cổng vào, thì giá trị FFh phải đợc ghi vào cổng, sau đó bất cứ đầu nào mà đa điện áp của chân đó xuống mức thấp sẽ đ- ợc coi nh bằng 0, và sau đó cổng đó có thể đợc đọc dữ liệu ra từ các thanh ghi SFR tơng ứng.
Mặc dù tất cả các lệnh đọc giá trị từ các chân tơng ứng của cổng, nhng một số lệnh đọc thì đợc ngầm hiểu là đọc giá trị của các cổng chốt. Loại lệnh này đợc
gọi là read- modify- write tức là đọc dữ liệu từ cổng sau đó thực hiện theo yêu
Các cổng 0, 2, và 3 có những chức năng thay đổi, các chân riêng rẽ của những cổng này có thể đợc sử dụng nh các đầu vào/ ra số chung hoặc có thể đợc sử dụng chức năng thứ hai là:
- Các cổng 0 và 2 đợc sử dụng để giao tiếp với bộ nhớ ngoài.
- Khi bộ nhớ chơng trình hoặc dữ liệu đợc truy nhập, cổng 2 ( P2) sẽ đa ra
những byte cao của địa chỉ 16 bit cổng 0 ( P0) đa ra những byte thấp của 16 bit địa chỉ, sau đó thì gửi hoặc nhận byte dữ liệu. Những byte địa chỉ thấp phải đợc chốt khi truy nhập bộ nhớ ngoài. Bộ vi xử lý sẽ phát một địa chỉ giá trị bằng cách làm tích cực chân ALE, chân này đợc sử dụng để chốt địa chỉ byte thấp.
Chức năng của cổng 3 ( P3) gồm những chân đặt tín hiệu ngắt, đầu vào Timer,các cổng vào/ ra tuần tự, và tín hiệu điều khiển khi có giao diện với bộ nhớ ngoài, điều này sẽ đợc mô tả bằng bảng dới đây:
Bit Alternate Function Mnemonic/ Designation
0 Serial Input Port RxD
1 Serial Output Port TxD
2 External Interrupt 0 INT0#
3 External Interrupt 1 INT1#
4 Timer/ Counter 0 External Input T0
5 Timer/ Counter 1 External Input T1
6 External Memory Write Strobe WR#
7 External Memory Read Strobe RD#
Để thực hiện các chức năng thay đổi nh bảng trên trình bày thì các bit tơng ứng của thanh ghi SFR phải đợc đặt lên bằng 1.
Các ngắt của 80C31
Bộ vi xử lý 80C31 có năm nguồn ngắt: TF0, TF1, INT0, INT1, và ngắt cổng nối tiếp. TF0, TF1 của thanh ghi TCON tạo ra hai ngắt Timer/ Counter, chúng đợc phát ra khi bộ đếm đếm tràn. INT0, INT1 là hai nguồn ngắt ngoài. Các ngắt này xuất hiện khi có tín hiệu ngoài yêu cầu ngắt nối qua bit 2 và 3 của cổng 3 (P3). Vector ngắt điều khiển phần cứng có thể thực hiện để đáp ứng mỗi một s- ờn xuống của tín hiệu ngoài hoặc mức thấp của tín hiệu ngoài. Sự lựa chọn đó quyết định bởi bit điều khiển IT0 và IT1 của thanh ghi đặc biệt TCON.
Có hai thanh ghi đặc biệt kết hợp với ngắt điều khiển là thanh ghi cho phép ngắt IE và thanh ghi u tiên ngắt IP. Khi mà hai nguồn ngắt đợc thực hiện với hai mức u tiên nh nhau thì sự u tiên đợc quyết định bởi thứ tự từ trên xuống theo nh bảng dới đây:
Interrupt Service Routine Address Default Priority
IE0 3 H 1( Highest)
TF0 B H 2
IE1 13 H 3
TF1 1B H 4
RI- or- TI 23 H 5( Lowest)