Sựra đời và phát triển nhanh chóng của kỹthuật vi điện tửmà đặc trưng là kỹthuật vi
xửlí đã tạo ra một bước ngoặt quan trọng trong sựphát triển của khoa học tính toán, điều
khiển và xửlí thông tin. Kỹthuật vi xửlí đóng một vai trò rất quan trọng trong tất cảcác
lĩnh vực của cuộc sống và khoa học kỹthuật, đặc biệt là lĩnh vực Tin học và Tự động hóa.
Năm 1971, hãng Intel đã cho ra đời bộvi xửlí (microprocessor) đầu tiên trên thếgiới tên
gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty kinh doanh là hãng
truyền thông BUSICOM. Intel-4004 là kết quảcủa một ý tưởng quan trọng trong kỹthuật vi
xửlí số. Đó là một kết cấu logic mà có thểthay đổi được chức năng của nó bằng chương
trình ngoài chứkhông phát triển theo hướng tạo ra một cấu trúc cứng chỉthực hiện một số
chức năng nhất định nhưtrước đây.
25 trang |
Chia sẻ: maiphuongtt | Lượt xem: 2342 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Giáo trình Vi xử lý: Giới thiệu vi xử lí – vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 1: Giới thiệu 1 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Chương 1
GIỚI THIỆU VI XỬ LÍ – VI ĐIỀU KHIỂN
1.1. GIỚI THIỆU VỀ CÁC HỌ VI XỬ LÝ VÀ THÔNG DỤNG
1.1.1. Lịch sử phát triển của bộ vi xử lí và bộ vi điều khiển
Sự ra đời và phát triển nhanh chóng của kỹ thuật vi điện tử mà đặc trưng là kỹ thuật vi
xử lí đã tạo ra một bước ngoặt quan trọng trong sự phát triển của khoa học tính toán, điều
khiển và xử lí thông tin. Kỹ thuật vi xử lí đóng một vai trò rất quan trọng trong tất cả các
lĩnh vực của cuộc sống và khoa học kỹ thuật, đặc biệt là lĩnh vực Tin học và Tự động hóa.
Năm 1971, hãng Intel đã cho ra đời bộ vi xử lí (microprocessor) đầu tiên trên thế giới tên
gọi là Intel-4004/4bit , nhằm đáp ứng nhu cầu cấp thiết của một công ty kinh doanh là hãng
truyền thông BUSICOM. Intel-4004 là kết quả của một ý tưởng quan trọng trong kỹ thuật vi
xử lí số. Đó là một kết cấu logic mà có thể thay đổi được chức năng của nó bằng chương
trình ngoài chứ không phát triển theo hướng tạo ra một cấu trúc cứng chỉ thực hiện một số
chức năng nhất định như trước đây.
Sau đó, các bộ vi xử lí mới liên tục được đưa ra thị trường và ngày càng được phát triển,
hoàn thiện hơn trong các thế hệ sau :
Vào năm 1972, hãng Intel đưa ra bộ vi xử lí 8-bit đầu tiên với tên Intel-8008/8bit. Từ
1974 đến 1975 , Intel chế tạo các bộ vi xử lí 8-bit 8080 v 8085A. Cũng vào khoảng thời gian
này, một loạt các hãng khác trên thế giới cũng đã cho ra đời các bộ vi xử lí tương tự như :
6800 của Motorola với 5000 tranzitor, Signetics 6520, 1801 của RCA, kế đến là 6502 của
hãng MOS Technology và Z80 của hãng Zilog.
Năm 1978 xuất hiện Intel 8086 là loại bộ xi xử lý 16 bit với 29.000 tranzitor, Motorola
68000 tích hợp 70.000 tranzitor, APX 432 chứa 120.000 tranzitor. Bộ vi xử lý của Hewlet
Pakard có khoảng 450.000 tranzitor. Từ năm 1974 đến 1984 số tranzitor tích hợp trong một
chip tăng khoảng 100 lần.
Năm 1983, Intel đưa ra bộ vi xử lý 80286 dung trong các máy vi tinh họ AT (Advanced
Technology). 80286 sử dụng I/O 16 bit, 24 đường địa chỉ và không gian nhớ địa chỉ thực
16MB. Năm 1987, Intel đưa ra bộ vi xử lý 80386 32-bit. Năm 1989 xuất hiện xuất hiện bộ
vi xử lý Intel 80486 là cải tiến của Intel 80386 với bộ nhớ ẩn và mạch tính phép toán đại số
dấu phẩy động. Năm 1992, xuất hiện Intel 80586 còn gọi là Pentium 64 bit chứa 4 triệu
tranzitor.
Chương 1: Giới thiệu 2 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Độ phức tạp, sự gọn nhẹ về kích thước và khả năng của các bộ vi điều khiển được tăng
thêm một bậc quan trọng 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. So với 8048, chip 8051 chứa trên 60.000 transistor bao
gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời
16-bit – một số lượng mạch đáng chú ý trong một IC đơn.
Từ các bộ vi xử lý ban đầu chỉ là các bộ xử lý trung tâm trong một hệ thống, không thể
hoạt động nếu thiếu các bộ phận như RAM, ROM, bo mạch chủ... các hãng đã phát triển các
bộ vi xử lý này lên thành các bộ vi điều khiển để phục vụ các mục đích riêng biệt, khác
nhau trong công nghiệp. Một bộ vi điều khiển là một hệ vi xử lí thật sự được tổ chức trong
một chip (trong một vỏ IC) bao gồm một bộ vi xử lí (microprocessor), bộ nhớ chương trình
(ROM), bộ nhớ dữ liệu (RAM), tuy không bằng dung lượng RAM ở các máy vi tính nhưng
đây không phải là một hạn chế vì các bộ vi điều khiển được thiết kế cho một mục đích hoàn
toàn khác, ngoài ra trên chip còn có bộ xử lý số học-logic (ALU) cùng với các thanh ghi
chức năng, các cổng vào/ra, cơ chế điều khiển ngắt, truyền tin nối tiếp, các bộ định thời...
Hiện nay, các bộ vi điều khiển được sử dụng rất rộng rãi và ngày càng được chuẩn hóa để
có thể sử dụng rộng rãi trong các ngành công nghiệp, có mặt trong nhiều máy móc, trong
các hàng tiêu dùng.
1.1.2. Ưu và khuyết điểm của các bộ vi điều khiển
Các công việc được thực hiện bởi các bộ vi điều khiển thì không mới. Điều mới là các
thiết kế hiện thực với ít thành phần hơn so với các thiết kế trước đó. Các thiết kế trước đó
đòi hỏi phải vài chục hoặc vài trăm IC để hiện thực nay chỉ cần một ít thành phần trong đó
bao gồm bộ vi điều khiển. Số thành phần được giảm bớt, hiệu quả trực tiếp của tính khả lập
trình của các bộ vi điều khiển và độ tích hợp cao trong công nghệ chế tạo vi mạch, thường
chuyển thành thời gian phát triển ngắn hơn, giá thành khi sản xuất thấp hơn, công suất tiêu
thụ thấp hơn và độ tin cậy cao hơn. Vấn đề ở đây là tốc độ. Các giải pháp dựa trên bộ vi
điều khiển không bao giờ nhanh bằng giải pháp dựa trên các thành phần rời rạc. Những tình
huống đòi hỏi phải đáp ứng thật nhanh (cỡ nsec) đối với các sự kiện (thường chiếm thiểu số
trong các ứng dụng) sẽ được quản lý tồi khi dựa vào các bộ vi điều khiển.
Tuy nhiên trong vài ứng dụng, đặc biệt là các ứng dụng liên quan đến con người, các
khoảng thời gian trễ tính bằng nsec, μsec hoặc thậm chí msec là không quan trọng. Việc
giảm bớt các thành phần là một điều lợi như đã đề cập, các thao tác trong chương trình điều
khiển làm cho thiết kế có thể thay đổi bằng cách thay đổi phần mềm. Điều này có ảnh
Chương 1: Giới thiệu 3 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
hưởng tối thiểu đến chu kỳ sản xuất. Do đó các bộ vi điều khiển có thể được ứng dụng rộng
rãi trong các ứng dụng phục vụ con người.
Để có thể hiểu rõ hơn về các bộ vi điều khiển, chúng ta sẽ tìm hiểu về một số các họ vi
điều khiển của một số hãng điện tử điển hình đang được sử dụng rộng rãi trong khoa học kỹ
thuật và đời sống.
1.2. KHÁI QUÁT HỌ 8051
1.2.1. Họ MCS-51™
MCS-51™ là một họ IC vi điều khiển do Intel phát triển và sản xuất. Một số nhà sản
xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-51™ của Intel là
Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel…
Các IC của họ MCS-51™ có các đặc trưng chung như sau:
4 port I/O 8 bit
Giao tiếp nối tiếp
64K không gian bộ nhớ chương trình mở rộng
64K không gian bộ nhớ dữ liệu mở rộng
Một bộ xử lý luận lý (thao tác trên các bit đơn)
210 bit được địa chỉ hóa
Bộ nhân/chia 4 μs.
Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về bộ nhớ và bộ định
thời/bộ đếm như trong bảng so sánh dưới đây:
Số hiệu sản
xuất
Bộ nhớ chương
trình trên chip
Bộ nhớ dữ liệu
trên chip
Số bộ định thời
(bộ đếm)
8031
8051
8751
8951
0K
4K ROM
4K EPROM
4K FLASH
128 byte
128 byte
128 byte
128 byte
2
2
2
2
8032
8052
8752
8952
0K
8K ROM
8K EPROM
8K FLASH
256 byte
256 byte
256 byte
256 byte
3
3
3
3
Chương 1: Giới thiệu 4 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
1.2.2. Giới thiệu AT89C51
AT89C51 là một Microcomputer 8 bit, loại CMOS, có tốc độ cao và công suất thấp với
bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ nhớ không bay hơi
mật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của 80C51 và 80C52 về
chân ra và bộ lệnh. Vì lý do đó, kể từ đây về sau ta sẽ dùng thuật ngữ “80C51” (hoặc
"8051").
Hình 1.2: Sơ đồ khối của AT89C51
Những đặc trưng của AT89C51
Chương 1: Giới thiệu 5 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
+ Tương thích với các sản phẩm MCS-51
+ 4KByte bộ nhớ Flash có thể lập trình lại với 1000 chu kỳ đọc/xoá
+ Hoạt động tĩnh đầy đủ: 0Hz đến 24MHz
+ Khoá bộ nhớ chương trình ba cấp
+ 128 x 8 bit RAM nội
+ 32 đường xuất-nhập lập trình được (tương ứng 4 port)
+ Hai timer/counter 16 bit
+ Một port nối tiếp song công lập trình được
+ Mạch đồng hồ và bộ dao động trên chip
Cấu hình chân của AT89C51 như sau:
Hình 1.3: Sơ đồ chân của AT89C51
Như vậy AT89C51 có tất cả 40 chân. Mỗi chân có chức năng như các đường I/O
(xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như một
đường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus đữ
liệu.
1.2.3. Mô tả xuất nhập
VCC (chân 40)
Chân cấp nguồn.
GND (chân 20)
Chân nối đất.
Port 0
Chương 1: Giới thiệu 6 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được sử dụng như là
một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi mức 1 được viết vào các chân của
port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao.
Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu (phần byte
thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngoài. Ở chế độ này, P0 có
các điện trở pullup bên trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra các
byte code khi kiểm tra chương trình. Cần có các điện trở pullup bên ngoài khi thực hiện việc
kiểm tra chương trình.
Port 1
Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong. Các bộ
đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào
các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng
như là các ngõ nhập. Nếu đóng vai trò là các ngõ nhập, các chân của port 1 (được kéo xuống
thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên trong.
Port 2
Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong.
Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1
được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và
có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 2
(được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên
trong.
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi truy cập
bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR). Trong ứng dụng này, nó
dùng các điện trở pullup nội "mạnh" khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu
ngoài dùng các địa chỉ 8 bit (MOVX @RI), port 2 phát ra các nội dung của thanh ghi chức
năng đặc biệt P2.
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển khi lập trình và
kiểm tra Flash.
Port 3
Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên trong.
Chương 1: Giới thiệu 7 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TTL. Khi các mức 1
được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở pullup nội và
có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 3
(được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên
trong.
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới
đây:
Bảng :Các chức năng chuyển đổi trên Port 3
Chân Tên Các chức năng chuyển đổi
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT1
T0
T1
WR
RD
Port nhập nối tiếp
Port xuất nối tiếp
Ngắt 0 bên ngoài
Ngắt 1 bên ngoài
Ngõ vào Timer/Counter 0
Ngõ vào Timer/Counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
RST (chân 9)
Ngõ vào reset. Một mức cao trên chân này khoảng hai chu kỳ máy trong khi bộ dao động
đang chạy sẽ reset thiết bị.
ALE/ PROG
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngoài.
Chân này cũng là ngõ nhập xung lập trình ( PROG ) khi lập trình Flash.
Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là 1/6 tần số bộ dao
động và có thể được dùng cho các mụch đích timing và clocking bên ngoài. Tuy nhiên, lưu
ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài.
Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0 của SFR tại địa chỉ 8Eh.
Nếu bit này được set, ALE chỉ dược hoạt động khi có một lệnh MOVX hoặc MOVC.
Ngược lại, chân này được kéo lên cao bởi các điện trở pullup "nhẹ". Việc set bit cấm-ALE
không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài.
PSEN
Chương 1: Giới thiệu 8 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
PSEN (Program Store Enable) là xung đọc bộ nhớ chương trình ngoài. Khi AT89C52
đang thi hành mã (code) từ bộ nhớ chương trình ngoài, PSENđược kích hoạt hai lần mỗi
chu kỳ máy, nhưng hai hoạt động PSEN sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu
ngoài.
EA /Vpp
EA (External Access Enable) phải được nối với GND để cho phép thiết bị đọc code từ
bộ nhớ chương trình ngoài có địa chỉ từ 0000H đến FFFFH. Tuy nhiên, lưu ý rằng nếu bit
khoá 1 (lock-bit 1) được lập trình, EA sẽ được chốt bên trong khi reset.
EA phải được nối với Vcc khi thi hành chương trình bên trong. Chân này cũng nhận
điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó áp lập trình 12V được
chọn).
XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động nghịch được
cấu hình để dùng như một bộ dao động trên chip.
Hình 1.4: Các kết nối của bộ dao động
Không có yêu cầu nào về duty cycle của tín hiệu xung ngoài,vì ngõ nhập nối với mạch
tạo xung nội là một flip-flop chia đôi, nhưng các chỉ định về thời gian high và low, các mức
áp tối đa và tối thiểu phải được tuân theo. Các đặc trưng khác sẽ được trình bày một cách
chi tiết hơn ở những phần sau.
1.3. HỆ VI XỬ LÝ Z-80
1.3.1. Cấu trúc CPU
- Bộ nhớ chính gồm ROM & RAM.
- Các bộ giao tiếp (Input / Output Adapter)
- Các Thiết bị ngoại vi ( Peripheral).
Chương 1: Giới thiệu 9 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Bus : Data Addr Ctrl
Hình 1.5: Sơ đồ khối của vi xử lý Z-80
CPU Là khối liên kết trung tâm, thực hiện các phép toán và điều khiển các liên kết còn lại
thông qua việc thi hành Lệnh: Lệnh là một giá trị nhị phân tượng trưng (mã hóa) cho 1 phép
tính mà CPU thực hiện được, giá trị này do nhà sản xuất qui định. Dựa vào số bit của Data
Bus để phân loại CPU:
- CPU 8 bit: 8080, 8085 của Intel
6800, 6802 của Intel
Z80 của Zilog
- CPU có Data Bus lớn hơn 8 bit:
16 bit: 8088, 8086, 80286 của Intel
32 bit: 80386, 80486 của Intel
64 bit: Pentium
Ngoài ra theo xu thế hiện nay, người ta có thể phân loại CPU theo 2 hướng: CISC (
Complete Instruction Set Computer) và RISC ( Reduced Instruction Set Computer)
Gồm 3 phần chính:
- Tập thanh ghi ( Register Set).
- Bộ số học và Logic ( Arithmetic & Logic Unit).
- Khối điều khiển và giải mã lệnh.
Bộ nhớ chính : Chứa số liệu và Lệnh của CPU
Chương 1: Giới thiệu 10 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Các bộ giao tiếp : Là những phần tử mạch trung gian cho phép CPU điều khiển các thiết
bị ngoại vi (bàn phím, máy in, đèn chỉ thị, … ).
a. Tập thanh ghi:
• Chức năng: Đóng vai trò là những ô nhớ nằm bên trong CPU. Mỗi thanh ghi được
nhà sản xuất qui định cho người sử dụng bằng 1 tên gọi (A, B, C, …). Các thanh ghi là cơ
sở (nơi chứa số liệu) cho đa số các phép toán mà CPU thực hiện.
• Phân loại:
+ Các thanh ghi địa chỉ: liên quan đến Addr Bus.
+ Các thanh ghi dữ liệu: liên quan đến Data Bus.
• Các thanh ghi thường gặp trong CPU 8 bit:
a1. Thanh ghi PC ( Program Counter)
+ Số bit của PC = Số bit của Addr Bus.
+ PC chứa địa chỉ của Lệnh mà CPU đang thực hiện.
+ PC tự động tăng ghi lên 1 sau mỗi byte thực hiện.
Thường khi mới Reset CPU giá trị thanh ghi PC = Hằng số.
*** Nhận xét:
- Các lệnh mà người sử dụng muốn CPU thực hiện tuần tự theo thời gian phải được đặt
theo thứ tự tăng dần của địa chỉ trong bộ nhớ.
- Sự thay đổi giá trị của thanh ghi PC bởi một nguyên nhân nào đó chúng sẽ làm
chuyển hướng việc thi hành Lệnh của CPU.
a2. Các thanh ghi đa năng ( General Purpose):
- Số bit bằng độ rộng của Data Bus.
- Các thanh ghi này thường được dùng trong các lệnh của CPU (tính toán, chuyển dời
dữ liệu, …).
- Trong số các thanh ghi đa năng, có 1 thanh ghi đặc biệt gọi là bộ tích lũy (gọi là
thanh ghi A) – Accumulator. Đặc biệt ở chỗ là những phép toán chỉ tiến hành được trên
thanh ghi A mà không thực hiện được trên các thanh ghi khác.
a3. Thanh ghi Cờ ( Flag – Condition):
- Thanh ghi này thường không tham gia vào các phép toán nhưng nó phản ánh một giá
trị đặc biệt của kết quả thu được sau phép toán đó.
- Mỗi bit trong thanh ghi có ý nghĩa độc lập và thường được gọi là 1 cờ.
+ Các Cờ thường gặp:
Chương 1: Giới thiệu 11 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
*Cờ Z (Zero): 1 0
Z = nếu kết quả =
0 1 số khác 0
*Cờ C (Carry):
1
Z = nếu
Có bit nhớ (phép +) hoặc có bit mượn (-)
Ngược lại 0
Các bit nhớ hoặc mượn được xét tại vị trí MSB.
*Cờ H (Halt):
Giống như Cờ C nhưng vị trí mà nó phản ánh (xét đến) là bit thứ 4 (bit 3)
của kết quả.
Cờ này ảnh hưởng đến các phép tính cho số BCD.
*Cờ S (Sign):
Quan điểm về số (+) và (-) trong hệ μP:
Định nghĩa: Nếu xem các số đang thao tác là 1 số có dấu và nếu xét trong một độ dài
hữu hạn bit thì 2 số đối nhau được định nghĩa như sau: X + Y = 0.
Ví dụ : Nếu xét theo quan điểm trên thì FF = - 1
vì FF + 01 = 00
Người ta chứng minh được : - X = X + 1
Nhận xét:
MSB = 0 Tầm số (+)
Nếu Thì số đó
MSB = 1 Tầm số (-)
Với một số nhị phân n bit mà nhìn như số có dấu, người ta chia thành 2 tầm số như
nhận xét trên.
Ví dụ: 00 Æ 7F: biểu diễn số +0 Æ +127
80 Æ FF: biểu diễn số -128 Æ -1
Giá trị của Cờ S thực chất là giá trị MSB của kết quả, do đó nếu trong trường hợp tính
toán với số có dấu thì Cờ S được dùng để xác định xem số đó thuộc tầm (+) hay (-).
*Cờ O (OverFlow):
Cờ O chỉ sử dụng trong các phương trình tính toán với số có dấu.
Chương 1: Giới thiệu 12 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
1 : Phản ánh hiện tượng tràn (quá tầm vực của số đó)
O =
0 : Nếu ngược lại
Ví dụ : 0100 0000 (64)
0100 0001 (65)
1000 0001 (129 > 127 thuộc tầm số (+) ).
Æ Cờ O = 1.
a4. Thanh ghi chỉ số:
- Nó được dùng trong phép định vị chỉ số.
a5. Nhà hầm và thanh ghi con trỏ nhà hầm Stack Pointer (SP):
• Khái niệm : Nhà hầm là một vùng nhớ RAM được CPU chọn làm nơi chứa tạm các
giá trị của các thanh ghi khi cần thiết (Khi thi hành lệnh cất thanh ghi) và khi phục hồi lại
chúng.
• Cơ chế hoạt động :
+ Nhà hầm được quản lý theo cơ chế địa chỉ: Địa chỉ của vùng nhớ RAM được dùng làm
nhà hầm phải được nạp vào thanh ghi SP. Do đó 1 lệnh nào đó có liên quan đến nhà hầm sẽ
được thực hiện theo địa chỉ này.
Ví dụ: lệnh cất thanh ghi A thì CPU sẽ đem nội dung của thanh ghi A vào ô nhớ có địa
chỉ nằm trong SP (ký hiệu là [SP] ).
+ Nhà hầm hoạt động theo nguyên tắc giảm, nghĩa là sau lệnh cất nội dung của một
thanh ghi 8 bit giá trị của thanh ghi SP sẽ giảm 1.
+ Phục hồi lại giá trị của thanh ghi đem cất trước đó bằng cách đem nội dung ô nhớ có
địa chỉ chứa trong SP +1 về lại thanh ghi A sau đó tăng SP lên 1.
+ Nhà hầm hoạt động theo nguyên tắc LIFO ( Last In First Out), nghĩa là thanh ghi
nào cất vào trước sẽ được lấy ra sau.
1.3.2. Hệ thống Bus :
Address Bus: Là Bus 1 chiều do CPU gởi ra. Số bit của Addr sẽ qui định số ô nhớ mà
CPU truy xuất được hay còn gọi là khả năng định vị (mapping) của CPU.
Data Bus: Là Bus 2 chiều, là nơi chuyển lệnh hoặc số liệu trong quá trình hoạt động của
CPU.
Control Bus: Mỗi đường là 1 chiều (nhưng quan điểm theo kiểu tổng quát là 2 chiều), nó
chứa các tín hiệu của CPU để điều khiển các linh kiện xung quanh.
Chương 1: Giới thiệu 13 Giáo trình vi xử lý
Canquynhon.blogtiengviet.net Đại học Quy Nhơn
Hình 1.6: Sơ đồ cấu trúc chân Z -80 hãng NEC
A0 ÷ A15 : 16 bit của Addr Bus (3 trạng thái) Æ Có 216B = 64 KB ô nhớ.
• D0 ÷ D7 : 8 bit của Data Bus (2 chiều – 3 trạ