+ Khối T/C được thiết kế với mục đích đồng bộnguồn dữ liệu vào và ra khỏi CPU, nó phối hợp sựdi chuyểncủa dữ liệu vào và ra của bộ vi điềukhiển + Tập hợp các thanh ghi là phần duy nhất c
Trang 1
1 Giới thiệu vi xử lý 8051
Vào năm 1980 khi Intel công bố chip 8051, bộ vi điều khiển
đầu tiên của họ vi điều khiển MCS –51 Chip 8051chứa trên 60000 transistor bao gồm 4k byteRom,128byte Ram, 32 đường xuất nhập,1 port nốitiếp và hai bộ định thời 16 bit.Tập đoàn Siemens,nguồn sản xuất thứ hai các bộ vi điều khiển thuộc
họ MCS-51 cung cấp chip SAB 80515, một cảitiến của 8051chứa trong 1vỏ có 68 chân, 6 portxuất nhập 8 bit, 13 nguồn tạo ra ngắt và một bộbiến đổi A/D 8 bit với 8 kênh ngõ vào Họ 8051 làmột trong những bộ vi điều khiển 8 bit mạnh linhhoạt nhất và đã trở thành bộ vi điều khiển hàng đầutrong những năm gần đây
Bộ vi điều khiển 8051 cũng có một CPU giốngnhư hầu hết các CPU khác, CPU của họ 8051 làmột bổ xử lý 8 bit, bao gồm ba phần:
Trang 2+ Khối T/C được thiết kế với mục đích đồng bộnguồn dữ liệu vào và ra khỏi CPU, nó phối hợp sự
di chuyểncủa dữ liệu vào và ra của bộ vi điềukhiển
+ Tập hợp các thanh ghi là phần duy nhất của CPU
mà chụi sự can thiệp của người lập trình Cácthanh ghi là các byte được dùng để lưu trữ và thaotác dữ liệu Tập các thanh ghi của hâù hết các họ vi
xử lý đều bao gồm các thanh ghi tích luỹ
Trang 3
A(Accumulator), con trỏ dữ liệu và các thanh ghikhác Với 8051, các thanh ghi được tạo ra từ hainhóm, nhóm các thanh ghi có chức năng đặc biệtSFR và nhóm của băng các thanh ghi
Ba phần trên làm nên CPU của họ 8051, CPUmới chỉ là một phần của bộ vi điều khiển, bên cạnh
đó là các khối Ram và một số lượng các ngoạicũng nằm trong 8051 Tất cả đều được tích hợptrên cùng một chip
Bộ vi điều khiển 8051 là sản phẩm đầu tiênđược giới thiệu bởi hãng Intel trong họ vi điềukhiển của nó Họ vi điều khiển này dùng 8 bit điềukhiển có khả năng địa chỉ hoá 64K bộ nhớ dữ liệuđộc lập Họ vi điều khiển 8051 có 128 bytes bộnhớ truy cập ngẫu nhiên trong (internal Ram ), vớihai bộ đếm / định thời, một cổng truyền thông nốitiếp, bốn cổng truyền thông nối tiếp, bốn cổng vào
ra song song và cổng điều khiển ngắt với 5 nguồn
Trang 4
ngắt Bên cạnh RAM trong, 8051 có nhiều thanhghi chức năng đặc biệt SFR (Special FunctionRegisters) là các thanh ghi điều khiển và các thanhghi điều khiển và thanh ghi dữ liệu trên cùng mộtchip Các SFR này cũng bao gồm thanh ghi tíchluỹ (A), thanh ghi B, và từ trạng thái chương trìnhPSW (Program status Word), trong PSW có chứacác cờ của CPU Công việc lập trình với các phầncứng có bên trong của 8051 đạt được bằng cách đặtcác từ điều khiển thích hợp vào các SFR tươngứng Các SFR mới chính là các điểm then chốttrong kiến trúc của họ 8051 Tất cả các thanh ghi
xử lý thông thường và các thanh ghi chức năng đặcbiệt đều là các SFR Hiểu theo một nghĩa khác,thanh ghi A là SFR, các ngoại vi được điều khiểnthông qua các SFR, con trỏ dữ liệu là SFR cáccổng là các SFR và hơn nữa Điều khiển tất cả cácphần bên trong của 8051 đều thông qua các SFR
Trang 5
Con trỏ dữ liệu DPTR được dùng cho các phần bênngoài 8051 cũng có thể địa chỉ hoá 64K bộ nhớ dữliệu ngoài và 64K bộ nhớ chương trình ngoài.Chúng có thể được chia ra thành các khối nhớ, vàcác khối nhớ làm việc với bộ vi điều khiển có thểlên đến 128K Các khối nhớ tách biệt của dữ liệu
và chương trình được gọi là các cấu trúc cứng(Hardware architecture)
Họ 8051 còn có hai tín hiệu đọc độc lập, RD#
và PSEN# RD được kích hoạt khi một byte đượcđọc từ bộ nhớ chương trình ngoài Cả hai tín hiệuđều được kích hoạt ở mức thấp Tất cả mã củachương trình ngoài đều được thực hiện bởi bộ nhớchương trình ngoài đã vạch sẵn Các byte từ bộnhớ chương trình ngoài có thể được đọc bởi cácchỉ thị đọc đặc biệt, ví dụ như chỉ thị MOVE Cũng
có một số chỉ thị độc lập phục vụ cho côngviệc đọc
dữ liệu từ bộ nhớ dữ liệu ngoài, như chỉ thị Movx
Trang 6
Khi xác định khối nào được địa chỉ hoá, và kíchhoạt tương ứng tín hiệu nào, thì cả PSEN# và RD#đều được sử dụng trong một chu kỳ đọc Một khốinhớ đơn giản có thể được sử dụng như một khốinhớ dữ liệu và cũng có thể là khối nhớ chươngtrình Để tiến hành đọc từ một khối nhớ như vậy,thì RD# và PSEN# đều được sử dụng trong mộtchu kỳ đọc Một khối nhớ đơn giản có thể sử dụngnhư là khối nhớ dữ liệu và cũng có thể là khối nhớchương trình Để tiến hành đọc từ một khối nhớnhư vậy, thì RD# và PSEN# sẽ được tổ hợp vàomột cổng AND và cổng AND sẽ thấp khi một tronghai đầu vào thấp Sự thuận lợi của kiến trúcHavard không chỉ đơn giản là khả năng hai khốinhớ được tích hợp vào cùng một chíp Dữ liệuvàchương trình độc lập làm tăng độ tin cậy của bộ viđiều khiển bởi vì không cần đến tín hiệu ghi vào
Trang 7
chương trình ngoài, một khối Rom là lý tưởng khiđược dùng như một bộ nhớ chương trình ngoài
1.1 Kiến trúc BUS của 8051
Các I/O trong 8051 là các cổng vào ra songsong với 8bít, đó là các cổng vào ra từ P0 tới P3.Tuy nhiên, các chức năng đã được phân định sẵncho các cổng sẽ làm giảm đi số lượng các cổngđược sử dụng như là các cổng vào ra Ví dụ, cổng
số 3 của P3 đã có các chức năng khác nhau đượcphân định sẵn cho các bit của nó
Sử dụng bộ nhớ dữ liệu và bộ nhớ chương trìnhngoài cũng có thể làm giảm đi số lượng các cổngI/O Ví dụ như các cổng PO và P2 được sử dụngnhư là các cổng dữ liệu và địa chỉ Các đường địachỉ bao gồm 16 bit địa chỉ, 8 bit dữ liệu và với ítnhất 4 bit điều khiển 8 bit thấp của bus địa chỉđược phép kênh với 8 bit dữ liệu trên cùng một
Trang 8Các Bus T/C (Time/counter) được dùng để điềukhiển luồng dữ liệu bên trong hệ thống Cácchân /RD và /WR điều khiển đọc ghi tới từ bộ nhớ
dữ liệu ngoài một cách tương tự /PSEN được dùng
để điều khiển luồng dữ liệu từ bộ nhớ chương trìnhngoài
Trang 9Đ iều khiển ngắt Các thanh ghi khác 128 byte RAM ROM
4k - 8051
Timer1 Timer0
Port nối tiếp Các Port xuất/nhập
Đ iều khiển Bus Mạch dao động
CPU
Timer1 Timer2 Port nối tiếp
INT1 INT0
P0 P2 P1 P3 TXD RXD
EA RST
ALE PSEN
Đ ịa chỉ/dữ liệu
T1
T0
1.2 Cấu tạo của vi điều khiển
1.2.1 Cấu trỳc của MCS51 và chức năng của nú
Hỡnh 1 : Sơ đồ khối của chip 8051
Trang 10
4 cổng xuất nhập P0 - P3 (I/O port)8 bit
Mạch giao tiếp nối tiếp
Không gian nhớ chương trình ngoàI 64K
210 vị trí nhớ được định địa chỉ , mỗi vị trí 1bit
Bộ xử lý bit (thao tác trên các bit riêng lẻ ) Một bộ điều khiển ngắt:Interruptcontrol
Một mạch dao động bên trong và một bộ điềukhiển Bus
Trang 11
Hình 2 : Sơ đồ chân của chip 8051
Các cổng P0-P3 là các cổng vào ra hai chiều.Ngoài ra P0 và P2 còn được xử dụng để truy cập
P1.78
P3.4 13 T0
RXD TXD
INT1 INT0
10 P3.0P3.1
P3.2
P3.3 12 11
9 RST
T1
RD WR
17 P3.7 P3.5
P3.6 15 14 16
30 ALE
31 EA
29 PSEN
A12 P2.4 24
VSS 20
A10 A11 A9 P2.1 21 P2.0 A8
P2.2
P2.3 23 22
P1.1 1
A13 A14
A15 P2.7 P2.5
P2.6 26 25 27
P1.0 28
P1.4 P1.2
P1.3 3 2 4
P1.6 P1.5657
XTAL2
18 30pF
30pF 12MHz
19 XTAL1
8051
VCC 40
AD4 P0.435
AD0 AD1 AD2 AD3
P0.1 P0.039
P0.3 P0.2373836 AD5 AD6 AD7 32 P0.6 P0.5
P0.7 34 33
Trang 12
bộ nhớ ngoài với các chương trình ứng dụng nàycổng P0 sẽ đưa ra địa chỉ Byte thấp và P2 đưa rađịa chỉ cao
Cổng port 3 có hai công dụng :
Khi hoạt động ở chế độ xuất nhập mỗi mộtcổng của P3 có một chức năng riêng
RxD : chân nhập dữ liệu cổng nối tiếp
TxD : phát dữ liệu cổng nối tiếp
Trong thời gian lấy lệnh tín hiệu PSEN=0
Trong thời gian thực hiện lệnh PSEN=1
ALE (address lacht Enable): là tín hiệu đểchốt địa chỉ
EA : truy xuất bên ngoài
Trang 13
8051 thực hiện chương trình trong Rom nội.Ngoài ra EA được dùng chân nhận điện áp21V cho việc lập trình Eprom
RST : (reset) là chân dùng thiết lập trạngthái ban đầu cho hệ thống
WR : tín hiệu đIều khiển ghi nhớ ngoài
RD : tín hiệu đIều khiển đọc bộ nhớ ngoài PSEN : (Program store Enable) là tín hiệuđiều khiển cho phép truy xuất bộ nhớ ngoài , tínhiệu này được nối với OE
Trang 14vị giao tiếp với các thiết bị song song như máy in,
bộ biến đổi D-A v.v hoặc mỗi đường có thể hoạtđộng độc lập giao tiếp với một thiết bị đơn bit nhưchuyển mạch, LED, BJT, FET, cuộn dây, động cơ,loa,
Port 0 : Port 0 ( các chân từ 32 đến 39 trên 8051 )
có hai công dụng Trong các thiết kế có tối thiểuthành phần, port 0 được sử dụng làm nhiệm vụxuất/nhập Trong các thiết kế lớn hơn có bộ nhớ
Trang 15
ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đahợp ( byte thấp của bus địa chỉ)
Port 1 : Port1 chỉ có một công dụng là xuất/nhập
( các chân từ 1 đến 8 trên 8051 ) Các chân củaport 1 được ký hiệu là P1.0, P1.1, , P1.7 và đượcdùng để giao tiếp với thiết bị bên ngoài khi có yêucầu Không có chức năng nào nữa gán cho cácchân của port 1, nghĩa là chúng chỉ được sử dụng
để giao tiếp với các thiết bị ngoại vi
Port 2 : Port 2 ( các chân từ 21 đến 28 trên 8051 )
có 2 công dụng, hoặc làm nhiệm vụ xuất/nhập hoặc
là byte địa chỉ cao của bus địa chỉ 16 bit cho cácthiết kế có bộ nhớ chương trình ngoài hoặc cácthiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệungoài
Trang 16
Port 3 : Port 3 ( các chân từ 10 đến 17 trên 8051 )
có 2 công dụng Khi không hoạt động xuất/nhập,các chân của port 3 có nhiều chức năng riêng ( mỗichân có chức năng riêng liên quan đến các đặctrưng cụ thể của 8051 )
Bảng sau đây cho ta chức năng của các chân củaport 3 :
Trang 17Chân cho phép bộ nhớ chương trình PSEN :
8051 cung cấp cho ta 4 tín hiệu điều khiển bus.Tín hiệu cho phép bộ nhớ chương trình PSEN( program store enable) là tín hiệu xuất trên chân
29 Đây là tín hiệu điều khiển cho phép ta truy xuất
bộ nhớ chương trình ngoài Chân này thường nốivới chân cho phép xuất OE ( output enable ) củaEPROM ( hoặc ROM ) để cho phép đọc các filelệnh
Trang 18
Tín hiệu PSEN ở logic 0 trong suốt thời giantìm nạp lệnh Các mã nhị phân của chương trinhhay opcode ( mã thao tác ) được đọc từ EPROM,qua bus dữ liệu và chốt vào thanh ghi lệnh IR của
8051 để được giải mã
Khi thực thi một chương trình chứa trongROM nội , PSEN được duy trì ở logic không tíchcực ( logic 1 )
Chân cho phép chốt địa chỉ ALE :
8051 sử dụng chân 30, chân xuất tín hiệu chophép chốt địa chỉ ALE ( address latchenable ) để giải đa hợp ( demultiplexing ) bus dữliệu và bus địa chỉ Khi port 0 được sử dụng làmbus địa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu
để chốt địa chỉ ( byte thấp của địa chỉ 16 bit) vàomột thanh ghi ngoài trong suốt nửa đầu của chu kỳ
bộ nhớ ( memory cycle ) Sau khi điều này đã được
Trang 19Chân truy xuất ngoài EA
Ngõ vào này ( chân 31 ) có thể được nối với 5
V ( logic 1 ) hoặc với GND ( logic 0 ) Nếuchân này nối lên 5 V, 8051 thực thi chương trìnhtrong ROM nội ( chương trình nhỏ hơn 4K ) Nếuchân này nối với GND ( và chân PSEN cũng ở
Trang 20
logic 0 ), chương trình cần thực thi chứa ở bộ nhớngoài Nếu chân EA ở logic 0 , ROM nội bên trongchip được vô hiệu hoá và chương trình cần thực thichứa ở EPROM bên ngoài
Chân RESET ( RST )
Ngõ vào RST ( chân 9 ) là ngõ vào xoá chính( master reset ) của 8051 dùng để thiết lập lại trạngthái ban đầu cho hệ thống hay gọi tắt là reset hệthống Khi ngõ vào này được treo ở logic 1 tốithiểu 2 chu kỳ máy, các thanh ghi bên trong của
8051 được nạp các giá trị thích hợp cho việc khởiđộng lại hệ thống
Các chân XTAL1 và XTAL2
Mạch dao động bên trong chip 8051 được ghépvới thạch anh bên ngoài ở hai chân XTAL1 và
Trang 21
XTAL2 ( chân 18 và 19 ) Tần số danh định củathạch anh là 12 MHz cho hầu hết các chip của họMCS-51
XTAL1 : Ngõ vào đến mạch khuếch đại đảo củamạch dao động
XTAL2 : Ngõ ra từ mạch khuếch đại đảo của mạchdao động
1.2.2 Cấu trúc của các cổng vào - ra
Trang 22
trường và transitor này nối với chân của port Khảnăng fanout của port 1,2,3 là 4 tải vi mạch TTLloại schottky công suất thấp còn của port 0 là 8 tảiloại LS
Lưu ý: khi điện trở kéo lên sẽ không có ở port 0( trừ khi port làm nhiêm vụ của bus địa chỉ /dữ liệu
đa hợp ) Do vậy một điên trở kéo lên bên ngoàiphải được cần đến Gía trị của địên trở này phụthuộc vào đặc tính ngõ vào của thành phần ghépnối với chân của port
1.3 Tổ chức bộ nhớ
Hầu hết các bộ vi xử lý (CPU) đều có không giannhớ chung cho dữ liệu và chương trình Điều nàycũng hợp lý vì các chương trình thường được lưutrên đĩa và được nạp vào RAM để thực thi : vậy thì
cả hai dữ liệu và chương trình đều được lưu trútrong RAM
Trang 23
Các chip vi điều khiển hiếm khi được sử dụnggiống như các CPU trong các hệ máy tính, thayvào đó chúng được dùng làm thành phần trung tâmtrong các thiết kế hướng điều khiển, trong đó bộnhớ có dung lượng giới hạn, không có ổ đĩa và hệđiều hành Chương trình điều khiển phải thườngtrú trong ROM
Do lý do trên, 8051 có không gian bộ nhớriêng cho chương trình và dữ liệu Như ta đã thấy ởhình 1 bộ nhớ chương trình và dữ liệu đều đặt bêntrong chip, tuy nhiên ta có thể mở rộng bộ nhớchương trình và bộ nhớ dữ liệu bằng cách sử dụngcác chip nhớ bên ngoài với dung lượng tối đa là64K cho bộ nhớ chương trình (hay bộ nhớ mã) và64K cho bộ nhớ dữ liệu
Bộ nhớ nội trong chip bao gồm ROM và Ramtrên chip bao gồm vùng RAM đa chức năng, vùngRAM với từng bit được định địa chỉ (gọi tắt là
Trang 24
vùng RAM định địa chỉ bit), các dãy (bank) thanhghi và các thanh ghi chức năng đặc biệt SFR(special function register) Hai đặc tính đáng lưu ý
là :
(a) các thanh ghi và các port xuất/nhậpđược định địa chỉ theo kiểu ánh xạ bộnhớ (memory mapped) và được truy xuấtnhư một vị trí nhớ trong bộ nhớ
(b) vùng stack thường trú trong RAM trênchip (RAM nội) thay vì ở trong RAMngoài như các bộ vi xử lý
1.3.1 Vùng RAM đa mục đích
Vùng RAM đa mục đích có 80 byte đặt ở địachỉ từ 30H đến 7FH, bên dưới vùng này từ địa chỉ00H đến 2FH là vùng nhớ có thể được sử dụngtương tự Bất kỳ vị trí nhớ nào trong vùng Ram đamục đích đều có thể được truy xuất tự do bằng
Trang 25
cách sử dụng các kiểu định địa chhỉ trực tiếp hoặcgián tiếp Ví dụ để đọc nội dung tại địa chỉ 5FHcủa RAM nội vào thanh chứa A, ta dùng lệnh sau :
MOV A, 5FHLệnh trên di chuyển 1 byte dữ liệu bằng cách dùngkiểu định địa chỉ trực tiếp để xác định vị trí nguồn(nghĩa là địa chỉ 5FH) Dích của dữ liệu được xácđịnh rõ ràng trong opcode của lệnh là thanh chứa A
Vùng RAM đa mục đích còn có thể dược truyxuất bằng cách dùng kiểu định địa chỉ gián tiếp quacác thanh ghi R0, R1 Ví dụ 2 lệnh sau thực hiệncùng công việc như lệnh ở ví dụ trên :
MOV R0, #5FHMOV A, @R0Lệnh đầu tiên sử dụng kiểu định địa chỉ tức thời dichuyển giá trị 5FH vào thanh ghi R0, lệnh tiếp theo
sử dụng kiểu định địa chỉ gián tiếp di chuyển dữliệu trỏ bởi R0 vào thanh chứa A
Trang 26
1.3.2 Vùng RAM định địa chỉ bit
8051 chứa 210 vị trí bit được định địa chỉtrong đó 128 bit chứa trong các byte ở địa chỉ từ20H đến 2FH (16 byte x 8 bit = 128 bit) và phầncòn lại chứa trong các thanh ghi đặc biệt Ngoài ra
8051 còn có các port xuất/nhập có thể định địa chỉtừng bit, đIều này làm đơn giản việc giao tiếp bằngphần mềm với các thiết bị xuất/nhập đơn bit
1.3.3 Các dãy thanh ghi
32 vị trí thấp nhất của bộ nhớ nội chứa các dãythanh ghi Các lệnh của 8051 hỗ trợ 8 thanh ghi từR0 đến R7 thuộc dãy 0 (bank 0) Đây là dãy mặcđịnh sau khi reset hệ thống Các thanh ghi này ởcác địa chỉ từ 00H đến 07H Lệnh sau đây đọc nộidung tại địa chỉ 05H vào thanh chứa :
Trang 27
MOV A, R5Lệnh này là lệnh 1 byte dùng kiểu định địa chỉthanh ghi Dĩ nhiên thao tác tương tự có thể đượcthực hiện bằng 1 lẹnh 2 byte bằng cách dùng kiểuđịnh địa chỉ trực tiếp :
MOV A, 05HLệnh sử dụng các thanh ghi từ R0 đến R7 là cáclệnh ngắn và thực hiện nhanh hơn so với các lệnhtương đương sử dụng kiểu định địa chỉ trực tiếp.Các giá trị dữ liệu thường được sử dụng nên chứatrong các thanh ghi này Dãy thanh ghi đang được
sử dụng gọi là dãy thanh ghi tích cực
1.3.4 Các thanh ghi chức năng đặc biệt (SFR)
Cũng như các thanh ghi từ R0 đến R7, ta có 21thanh ghi chức năng đặc biệt SFR chiếm phần trêncủa Ram nội từ địa chỉ 80H đến FFH Ta cần lưu ý
là không phải tất cả 128 địa chỉ từ 80H đến FFH
Trang 30
hoặc có số mượn mang đến 7 bit Ví dụ thanh chứa
A có nội dung là FFH, lệnh :
MOV A, #1
Sẽ làm cho thanh chứa A có nội dung là 00H và cờ
CY trong PSW được set bằng 1 Cờ nhớ CY còn làthanh chứa logicđược dùng như 1 thanh ghi 1bitđối với các lệnh logic thao tác trên các bit Lấy ví
dụ lệnh sau đây sẽ AND bit 25H với cờ nhớ CY vàđặt kết quả trở về cờ nhớ :
ANL C, 25H ; AND bit ở địa chỉ 25H với cờ nhớ
Cờ nhớ phụ
Khi cộng các giá trị BCD, cờ nhớ phụ AC(auxiliary carry flag) được set bằng 1 nếu có một
số nhớ được tạo ra từ bit 3 chuyển sang bit 4 hoặcnếu kết quả trong đề-cát thấp nằm trong tầm từ0AH đến 0FH Nếu các giá trị được cộng là giá trị
Trang 31
BCD, lệnh cộng phải được tiếp theo bởi lệnh DA A(hiệu chỉnh thập phân thanh chứa A) để đưa các kếtquả lớn hơn 9 về đúng giá trị
Cờ 0
Đây là cờ có nhiều mục đích dành cho các ứngdụng của người lập trình
Các bit chọn dãy thanh ghi
Các bit chọn dãy thanh ghi RS0, RS1 dùng để xácđịnh dãy thanh ghi tích cực Các bit này được xóasau khi có thao tác reset hệ thống và đổi mức logicbởi phần mềm khi cần Ví dụ ba lệnh sau cho phépdãy thanh ghi 3 (bank 3) tích cực, sau đó di chuyểnnội dung của R7 (dịa chỉ byte 1FH) vào thanh chứa
A :
SETB RS1SETB RS0MOV A, R7
Trang 32
Khi đoạn chương trình trên được dịch, các địa chỉbit sẽ thay thế cho các ký hiệu RS0 và RS1, vậy thìlệnh SETB RS1 tương đương với lệnh SETB .0D4H
Cờ tràn
Cờ tràn OV (overflow flag) được set bằng 1sau phép toán cộng hoặc trừ nếu có xuất hiện mộttràn số học Khi các số có dấu được cộng hoặcđược trừ, phần mềm có thể kiểm tra bit tràn OV đểxác định xem kết quả có nằm trong tầm hay không.Với phép cộng các số không dấu, cờ tràn OVđược
bỏ qua Kết quả lớn hơn +128 hoặc nhỏ hơn -127
sẽ set cờ OV bằng 1
Cờ chẵn lẻ
Bit chẵn lẻ P tự động được set bằng1 hay xóabằng 0 ở mỗi chu kỳ máy để thiết lập kiểm tra chẵn
Trang 33
cho thanh chứa A Số các bit 1 trong thanh chứacộng với bit P luôn luôn là số chẵn Ví dụ nếuthanh chứa có nội dung 10101101B, bit P sẽ là 1 để
có số bit 1 là 6 Bit chẵn lẻ được sử dụng nhiều đểkết hợp với các chương trình xuất/nhập nối tiếptrước khi truyền dữ liệu hoặc để kiểm tra chẵn lẻsau khi nhận dữ liệu
1.3.4.2 Thanh ghi B
Thanh ghi B ở địa chỉ F0H được dùng chungvới thanh chứa A trong các phép toán nhân, chia.Lệnh MUL AB nhân 2 số 8 bit không dấu chứatrong A và B và chứa kết quả 16 bit vào cặp thanhghi BA (thanh chứa A cất byte thấp và thanh ghi Bcất byte cao)
Lệnh chia DIV AB chia A bởi B, thương số cấttrong thanh chứa A và dư số cất trong thanh ghi B
Trang 34
Thanh ghi B còn được xử lý như một thanh ghinháp Các bit được định địa chỉ của thanh ghi B cóđịa chỉ từ F0H đến F7H
1.3.4.3 Con trỏ stack
Con trỏ stack SP (stack pointer) là 1 thanh ghi
8 bit ở địa chỉ 81H SP chứa địa chỉ của dữ liệuhiện đang ở đỉnh của stack Các lệnh liên quan đếnsatck bao gồm lệnh cất dữ liệu vào stack và lệnhlấy dữ liệu ra khỏi stack Việc cất vào stack làmtăng SP trước khi ghi dữ liệu và việc lấy dữ liệu rakhỏi stack sẽ giảm SP Vùng stack của 8051 đượcgiữ trong RAM nội và được giới hạn đến các địachỉ truy xuất được bởi kiểu định địa chỉ gián tiếp.Các lệnh PUSH và POP sẽ cất dữ liệu vào stack vàlấy dữ liệu từ stack, các lệnh gọi chương trình con(ACALL, LCALL) và lệnh trở về (RET, RETI)
Trang 351.3.4.5 Các thanh ghi port
Các port xuất/nhập của 8051 bao gồm port 0tại địa chỉ 80H, port 1 tại địa chỉ 90H, port 2 tại địachỉ A0H và port 3 tại địa chỉ B0H Các port 0,2,3không được dùng để xuất/nhập nếu ta sử dụngthêm bộ nhớ ngoài hoặc nếu có một số đặc tính đặcbiệt của 8051 được sử dụng (như là ngắt, port nối
Trang 36SETB P1.7làm động cơ chạy và
CLR P1.7làm động cơ ngừng
Các lệnh trên dùng toán tử (dot) để định địa chỉ 1bit trong 1 byte, cho phép định địa chỉ từng bit
1.3.4.6 Các thanh ghi định thời
8051 có 2 bộ đếm/định thời (counter/timer) 16bit để định các khoảng thời gian hoặc để đếm các
Trang 37
sự kiện Bộ định thời 0 có địa chỉ 8AH (TL0, bytethấp) và 8CH (TH0, byte cao), bộ định thời 1 cóđịa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, bytecao)
Hoạt động của bộ định thời được thiết lập bởithanh ghi chế độ định thời TMOD (timer moderegister) ở địa chỉ 88H Chỉ có TCON được địnhđịa chỉ từng bit
1.3.4.7 Các thanh ghi của port nối tiếp
Bên trong 8051 có một port nối tiếp để truyềnthông với các thiết bị nối tiếp như các thiết bị đầucuối hoặc modem, hoặc để giao tiếp với các ICkhác có mạch giao tiếp nối tiếp (như các thanh ghidịch chẳng hạn)
Trang 38
1.3.4.8 Các thanh ghi ngắt
8051 có cấu trúc ngắt với 2 mức ưu tiên và 5nguyên nhân ngắt (5 source, 2 priority levelinterrupt structure) Các ngắt bị vô hiệu hóa sau khireset hệ thống và sau đó được cho phép bằng cáchghi vào thanh ghi cho phép ngắt IE (interruptenable register) ở địa chỉ A8H Mức ưu tiên ngắtđược thiết lập qua thanh ghi ưu tiên ngắt IP(interrupt priority register) ở địa chỉ B8H Cả 2thanh ghi này đều được định địa chỉ từng bit
1.3.4.9 Thanh ghi điều khiển nguồn
Thanh ghi điều khiển nguồn PCON (powercontrol register) có địa chỉ 87H chứa các bit đIềukhiển được tom tắt trong bảng 3 sau đây
này khi set làm cho
Trang 39
tốc độ baud tăng 2 lần ởcác chế độ 1,2 và 3 của
port nối tiếp
Bảng 3 : Thanh ghi PCON Chế độ nguồn giảm
Trang 40
Lệnh thiết lập bit PD bằng 1 sẽ là lệnh saucùng được thực thi trước khi đI vào chế độ nguồngiảm ở chế độ nguồn giảm :
(1)mạch dao động trên chip ngừng hoạt động (2)mọi chức năng ngừng hoạt động
(3)nội dung của RAM trên chip được duy trì(4)các chân port duy trì mức logic của chúng(5)ALE và PSEN được giữ ở mức thấp Chỉ rakhỏi chế độ này bằng cách reset hệ thống.Trong suốt thời gian ở chế độ nguồm giảm, Vcc cóđIửn áp là 2V Cần phải giữ cho Vcc không thấphơn sau khi đạt được chế độ nguồn giảm và cầnphục hồi Vcc = 5V tối thiểu 10 chu kỳ dao độngtrước khi chân RST đạt mức thấp lần nữa
Chế độ nghỉ
Lệnh thiết lập bit IDL bằng 1 sẽ là lệnh saucùng được thực thi trước khi đi vào chế độ nghỉ ở