Giáo trình Vi xử lý: Giới thiệu vi xử lí – 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.

pdf25 trang | Chia sẻ: maiphuongtt | Lượt xem: 2307 | Lượt tải: 2download
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ạ
Tài liệu liên quan