bai giang vi xu ly va lthn 2013

165
ĐẠI HC CÔNG NGHTHÔNG TIN VÀ TRUYN THÔNG THÁI NGUYÊN KHOA CÔNG NGHTĐỘNG HÓA ph¹m ®øc long Bμi gi¶ng kü thuËt vi xö lý vμ lËp tr×nh hîp ng÷ (Tài liu này có thti vdng file .PDF trong trang http://www.tnu.edu.vn/sites/longpd/Ti liu v Bi ging/Forms/AllItems.aspx ) Th¸i Nguyªn 7-2013

Upload: dong-hung-manh

Post on 28-Oct-2015

39 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bai Giang Vi Xu Ly Va LTHN 2013

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG THÁI NGUYÊN

KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA

ph¹m ®øc long

Bµi gi¶ng

kü thuËt vi xö lý vµ lËp tr×nh hîp ng÷

(Tài liệu này có thể tải về ở dạng file .PDF trong trang

http://www.tnu.edu.vn/sites/longpd/Ti liu v Bi ging/Forms/AllItems.aspx)

Th¸i Nguyªn 7-2013

Page 2: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

MỤC LỤC

Trang

Ch−¬ng 1. Giíi thiÖu chung

1.1 Sù ra ®êi vµ ph¸t triÓn cña c¸c bé vi xö lý 4 1.2 S¬ ®å khèi cÊu tróc vµ ho¹t ®éng cña hÖ vi xö lý 4

Ch−¬ng 2. Bé nhí b¸n dÉn

2.1 Ph©n lo¹i bé nhí 7

2.1.1 Bé nhí cè ®Þnh (ROM, PROM) 7

2.1.2 Bé nhí b¸n cè ®Þnh (EPROM, EEPROM, FLASH) 8

2.1.3 Bé nhí ®äc ghi (SRAM, DRAM) 10

2.1.4 Bé nhí ngoµi 10

2.2 Ph©n cÊp bé nhí 10

2.3 CÊu tróc cña m¹ch nhí tÜnh SRAM

2.3.1 Giíi thiÖu c«ng nghÖ 12

2.3.2 CÊu tróc m¹ch nhí SRAM 12

2.3.2.1 Bit nhí 12 2.3.2.2 Thanh ghi 14 2.3.2.3 Bé gi¶i m· 15 2.3.2.4 M¹ch nhí SRAM (C¸c thµnh phÇn, quy tr×nh ®äc ghi, biÓu ®å thêi gian) 18

2.3.3 ThiÕt kÕ thÎ nhí SRAM 18

2.4 CÊu tróc cña m¹ch nhí DRAM 18

Ch−¬ng 3. C¸c bé vi xö lý và vi điều khiển 3.1 Giíi thiÖu bé vi xö lý 8 bit tæng qu¸t 22

3.2 Bé vi xö lý 8 bit (8086/8088)

3.2.1 S¬ ®å khèi bé vi xö lý 8 bit 22 3.2.2 C¸c thanh ghi của 8086/88 23 3.2.3 BiÓu ®å thêi gian cña chu kú ®äc ghi sè liÖu 26 3.2.5 GhÐp nèi c¸c ch©n tÝn hiÖu 8088 28 3.2.6 HÖ lÖnh cña bé vi xö lý 8 bit 30

3.3 Giíi thiÖu c¸c bé vi xö lý tiªn tiÕn dòng 80x86 77

3.4 Vi ®iÒu khiÓn 8x51/52 77

3.5 Vi ®iÒu khiÓn thÕ hÖ míi AVR

Thái Nguyên 7-2013 1

Page 3: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

3.5.1. Giíi thiÖu chung vÒ AVR 92 3.5.2. Bus I2C vµ SPI 98 3.5.3. AVR 90S8535 101

3.6 C¸c hÖ thèng trªn mét chip cã kh¶ n¨ng t¸i cÊu h×nh (SoC) 3.6.1. SoC lµ g×? 101 3.6.2. Giíi thiÖu PSoC 103 3.6.3. PSoC CY8C29446 103

Ch−¬ng 4. C¸c bé ®iÒu khiÓn vµ ghÐp nèi d÷ liÖu

4.1. Vµo/ ra sè liÖu ®iÒu khiÓn b»ng ng¾t

4.1.1 Nguyªn lý vµo/ra ®iÒu khiÓn b»ng ng¾t 111

4.1.2 Bé ®iÒu khiÓn ng¾t PIC (8259) 113

4.1.3 Ng¾t trong m¸y tÝnh IBM/PC 119

4.2. Vµo/ra sè liÖu ®iÒu khiÓn b»ng th©m nhËp bé nhí trùc tiÕp DMA

4.2.1 Nguyªn lý vµo/ ra b»ng DMA 121

4.2.2 Bé th©m nhËp bé nhí trùc tiÕp DMAC (8237) 123

4.2.3 Sö dông bé ®iÒu khiÓn DMAC trong hÖ vi xö lý 126

4.3. Bé ®Õm lËp tr×nh ®−îc

4.3.1 S¬ ®å khèi bé ®Õm lËp tr×nh ®−îc (8254) 127

4.3.2 C¸c chÕ ®é lµm viÖc cña bé ®Õm lËp tr×nh 128

4.3.3 Sö dông bé ®Õm trong hÖ vi xö lý 130

4.4. Phèi ghÐp vµo ra nèi tiÕp

4.4.1 Nguyªn lý vµo/ ra nèi tiÕp 130

4.4.2 M¹ch thu ph¸t th«ng tin nèi tiÕp UART 133

4.5. Phèi ghÐp víi thiÕt bÞ vµo/ra qua cæng song song

4.5.1 GhÐp nèi song song ®¬n gi¶n 142

4.5.2 M¹ch phèi ghÐp vµo/ra song song lËp tr×nh ®−îc PPI 8255A 142

4.5.2.1 C¸c khèi cña PPI 4.5.2.2 C¸c tÝn hiÖu cña PPI 4.5.2.3 C¸c chÕ ®é lµm viÖc cña PPI 4.5.2.5 GhÐp nèi PPI trong hÖ vi xö lý

Ch−¬ng 5 ThiÕt kÕ hÖ thèng vi xö lý 5.1 ThiÕt kÕ phÇn cøng 145 5.2 ThiÕt kÕ phÇn mÒm 146

Thái Nguyên 7-2013 2

Page 4: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

5.2.1 ROM Mapping 146 5.2.2 RAM Mapping 149 5.2.3 ThiÕt kÕ c¸c ch−¬ng tr×nh hÖ thèng 151 5.2.4 ThiÕt kÕ c¸c ch−¬ng tr×nh øng dông 154

CÂU HỎI VÀ BÀI TẬP 159 Phụ lục CÁC HỆ SỐ ĐẾM 160 TÀI LIỆU THAM KHẢO 164

Thái Nguyên 7-2013 3

Page 5: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ch−¬ng 1. GIỚI THIỆU CHUNG

1.1 Sù ra ®êi vµ ph¸t triÓn cña c¸c bé vi xö lý

• Bé vi xö lý lµ 1 thµnh phÇn kh«ng thÓ thiÕu ®−îc trong c¸c hÖ thèng tÝnh to¸n và m¸y vi tÝnh.

• Sù ph¸t triÓn:

− ThÕ hÖ 1 (1971 - 1973): Bé vi xö lý ®Çu tiªn ra ®êi 1971 lµ 4004 s¶n phÈm cña h·ng Intel 4 bit sè liÖu, 12 bit ®Þa chØ. TiÕp theo lµ 4040, 8008... §Æc ®iÓm chung:

+ Sö dông c«ng nghÖ PMOS (lç trèng)

+ Tèc ®é thùc hiÖn lÖnh 10-60µs. Tèc ®é xung nhịp ®ång hå 0.1 ®Õn 0.8 MHz

+ Có tËp lÖnh ®¬n gi¶n

− ThÕ hÖ 2 (1974-1977): ThÕ hÖ c¸c vi xö lý 8 bit nh− 6800, 8080, 8085...cã thÓ qu¶n lý 64KB bé nhí. §Æc ®iÓm:

+ Sö dông c«ng nghÖ NMOS (Cã mËt ®é phÇn tö trªn mét ®¬n vÞ diÖn tÝch lín h¬n PMOS)

+ Tèc ®é thùc hiÖn lÖnh 1-8µs. Tèc ®é xung nhịp ®ång hå 1-5MHz

− ThÕ hÖ 3 (1978-1982): Thêi kú c¸c vi xö lý 16 bit 8086/80186/80286 hoÆc 68000.

+ Cã tËp lÖnh ®a d¹ng h¬n

+ Kh¶ n¨ng ph©n biÖt bé nhí cao h¬n: 1-16MB bé nhí chính và 64KB thiÕt bÞ ngo¹i vi

+ Được s¶n xuÊt b»ng c«ng nghÖ HMOS (HMOS, XMOS, VMOS: c¶i tiÕn cña NMOS)

+ Tèc ®é thực hiện lệnh đơn 0.1 - 1µs. Xung nhịp ®ång hå 5-10MHz

− ThÕ hÖ 4 (1983 - nay): Thêi kú c¸c bé vi xö lý 32 bit nh− 80386/486/Pentium 1, Pentium 2, Pentium 3, Pentium 4 víi c¸c kü thuËt tiªn tiÕn như pipeline, cache, vitual memory, Hyper Threading (HT)...TÊt c¶ các vi xử lý thế hệ này ®Òu cã bé ®ång xö lý to¸n häc, bé qu¶n lý bé nhí MMU.

1.2 S¬ ®å khèi cÊu tróc vµ ho¹t ®éng cña hÖ vi xö lý

− Bé vi xö lý lµ 1 thµnh phÇn kh«ng thÓ thiÕu ®−îc ®Ó x©y dùng lên c¸c hÖ thèng tÝnh to¸n, m¸y vi tÝnh. Nh−ng các bé vi xö lý cßn ph¶i kÕt hîp víi c¸c thµnh phÇn kh¸c ®Ó t¹o nªn hÖ vi xö lý.

Thái Nguyên 7-2013 4

Page 6: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− Hình 1.1 lµ s¬ ®å tæng qu¸t cña c¸c hÖ vi xö lý kinh ®iÓn ¸p dông cho c¸c hÖ

xử lý nhá vµ c¸c m¸y tÝnh ®êi ®Çu. C¸c m¸y tÝnh hiÖn nay cã cÊu tróc kh¸c h¬n.

In

AbusDbus

Cbus

I/O

M

CPU

Out

Hình 1.1 Hệ vi xử lý kinh điển • CPU (Central Processing Unit): Bé n·o cña m¸y tÝnh gåm c¸c m¹ch vi ®iÖn tö

cã ®é tÝch hîp rÊt cao (hµng triÖu tranzito trong 1 chip). CPU gåm cã c¸c phÇn:

+ CU (Control Unit): Khèi ®iÒu khiÓn cã chøc n¨ng: ®äc m· lÖnh d−íi d¹ng tËp hîp c¸c bit 0/1 tõ c¸c « nhí trong bé nhí. Gi¶i m· c¸c lÖnh thµnh d·y c¸c xung ®iÒu khiÓn ®Ó ®iÒu khiÓn c¸c khèi kh¸c thùc hiÖn nh− ®iÒu khiÓn

ALU, ®iÒu khiÓn ra ngoµi µPC

+ ALU (Arithmetic Logic Unit): Khèi tÝnh to¸n sè häc vµ logic: Tæ hîp c¸c m¹ch logic ®iÖn tö phøc t¹p cho phÐp thùc hiÖn c¸c thao t¸c trªn c¸c thanh ghi nh− +, -, *, /, AND, OR, NOT...

+ Registers: C¸c thanh ghi

− Mét CPU cã thÓ cã nhiÒu thanh ghi:

+ Thanh ghi con trá lÖnh IP (bé ®Õm ch−¬ng tr×nh) chøa ®Þa chØ cña lÖnh s¾p thùc hiÖn: C¸c ch−¬ng tr×nh m¸y tÝnh lµ tËp hîp cña c¸c lÖnh. CPU sÏ lÊy tõng lÖnh ra ®Ó ch¹y. §Ó ®iÒu khiÓn chÝnh x¸c viÖc thùc hiÖn nµy cÇn cã mét bé ®Õm ch−¬ng tr×nh; đó chính là IP. Số lượng thanh ghi trong các bộ vi xử lý khác nhau là khác nhau nhưng bộ vi xử lý nào cũng phải có thanh ghi con trỏ lệnh IP.

+ C¸c thanh ghi kh¸c: C¸c thanh ghi ®o¹n, thanh ghi lÖch, thanh ghi con trá vµ chØ sè, thanh ghi cê... lµ c¸c thanh ghi ®¶m nhiÖm c¸c chøc n¨ng nhÊt ®Þnh trong ho¹t ®éng cña bé vi xö lý (SÏ nghiªn cøu kü qua VXL 8086/8088)

• Bé nhí (Memory): Cã hai lo¹i chÝnh

− ROM: Chøa c¸c ch−¬ng tr×nh vµ sè liÖu cè ®Þnh, chóng kh«ng bÞ mÊt thông tin khi ng¾t ®iÖn cung cÊp cho vi m¹ch nhí ROM. Ch−¬ng tr×nh khëi ®éng m¸y tÝnh, c¸c ch−¬ng tr×nh vµo ra c¬ së th−êng ®−îc chøa trong ROM.

Thái Nguyên 7-2013 5

Page 7: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− RAM: Khi ng¾t ®iÖn nguån nu«i vi m¹ch RAM néi dung l−u tr÷ trong nã sÏ bÞ

mÊt. RAM l−u gi÷ mét phÇn ch−¬ng tr×nh hÖ thèng, mét sè sè liÖu cña hÖ thèng, c¸c ch−¬ng tr×nh øng dông, c¸c kÕt qu¶ trung gian cña qu¸ tr×nh tÝnh to¸n, xö lý.

• ThiÕt bÞ vµo/ra (I/O): §©y lµ khèi t¹o kh¶ n¨ng giao tiÕp gi÷a hÖ vi xö lý vµ bªn ngoµi. Do ®Æc ®iÓm cña c¸c thiÕt bÞ ngoµi vµ hÖ trung t©m (Gåm CPU+Bé nhí) ho¹t ®éng cã sù kh¸c nhau vÒ tèc ®é lµm viÖc, møc vËt lý ®iÖn, ph−¬ng thøc trao đổi dữ liệu nªn cÇn cã bé phèi ghÐp ®Öm, ®¶m b¶o cho c¸c khèi thiÕt bÞ ngoµi giao tiÕp ®−îc víi hÖ trung t©m. Bé ghÐp gi÷a bus hÖ thèng vµ thiÕt bÞ ngoµi gäi lµ cæng. Mçi cæng cã mét ®Þa chØ x¸c ®Þnh.

• HÖ thèng bus: Lµ tËp hîp c¸c ®−êng d©y dÉn ghÐp nèi c¸c ch©n ®Þa chØ, d÷ liÖu, c¸c ch©n tÝn hiÖu ®iÒu khiÓn cña 3 khèi ®· nªu trªn. Có ba loại bus.

− Abus: Nèi c¸c ®−êng d©y ®Þa chØ cña CPU víi 2 khèi M vµ I/O. Kh¶ n¨ng ph©n biÖt ®Þa chØ cña CPU phô thuéc sè ch©n ®Þa chØ cña nã. Sè nµy cã thÓ lµ 16, 20, 24, 36 ch©n. ChØ cã CPU míi cã kh¶ n¨ng ph¸t ra tÝn hiÖu ®Þa chØ - Cã mét thiÕt bÞ n÷a cã thÓ ph¸t ra tÝn hiÖu ®Þa chØ lµ DMAC (DMA Controller).

− Dbus: Dïng ®Ó vËn chuyÓn d÷ liÖu. §é réng cña nã 8, 16, 32, 64 bit. Dbus cã tÝnh 2 chiÒu. C¸c phÇn tö cã ®Çu ra nèi th¼ng víi bus d÷ liÖu ®Òu ph¶i ®−îc trang bÞ ®Çu ra 3 tr¹ng th¸i ®Ó cã thÓ lµm viÖc b×nh th−êng víi bus nµy.

− Cbus: Gåm nhiÒu ®−êng d©y tÝn hiÖu kh¸c nhau. Mçi tÝn hiÖu cã 1 chiÒu x¸c ®Þnh. C¸c tÝn hiÖu trªn Cbus bao gåm c¸c tÝn hiÖu ®iÒu khiÓn tõ CPU nh− ®iều khiển ®äc viÕt, tÝn hiÖu tr¹ng th¸i tõ bé nhí, thiÕt bÞ ngo¹i vi b¸o cho CPU nh− INTR, HOLD...

• Ho¹t ®éng cña hÖ: Ch−¬ng tr×nh vµ d÷ liÖu ®−îc chøa trong bé nhí ngoµi ®−îc ®−a vµo bé nhí trong (RAM). Sau ®ã ®−îc CPU lÊy dÇn ra ®Ó xö lý. CPU thùc hiÖn:

+ LÊy lÖnh

+ Gi¶i m· lÖnh

+ ĐiÒu khiÓn thùc hiÖn lÖnh. §ã lµ mét vßng lÆp, trong qu¸ tr×nh thùc hiÖn vßng lÆp ®ã nÕu cã t¸c ®éng ng¾t hoÆc yªu cÇu DMA CPU sÏ ®¸p øng c¸c yªu cÇu nµy sau ®ã l¹i quay trë laÞ

chu tr×nh ho¹t ®éng chÝnh.

Thái Nguyên 7-2013 6

Page 8: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ch−¬ng 2. BỘ NHỚ BÁN DẪN

2.1 Ph©n lo¹i bé nhí

− Bé nhí dïng ®Ó l−u tr÷ lÖnh vµ d÷ liÖu

− Bé nhí ®−îc x©y dùng tõ c¸c phÇn tö nhí c¬ b¶n, mçi phÇn tö lµ mét bit th«ng tin.

Bé nhí b¸n dÉn Ngoµi

Cè ®Þnh B¸n cè ®Þnh §äc/Ghi

ROM DRAMSRAMFLASHEEPROMEPROM PROM

Bé nhí

Hình 2.1. Phân loại bộ nhớ

2.1.1 Bé nhí cè ®Þnh (ROM, PROM)

D1 D0

§Çu ra D3 D2 D1 D0

Ô nhớ có địa chỉ

0 0

0 1

1 0

1 1

Hình 2.2. Bộ nhớ ROM NÕu cã diot: §Çu ra =1. NÕu kh«ng cã diot: §Çu ra = 0

Thái Nguyên 7-2013 7

Page 9: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 2.3. Bộ nhớ PROM

CS=1. §Çu ra khi ®Þa chØ ®óng b»ng 1, ở đầu ra của bộ đảo được ®¶o ®i b»ng 0. §Çu tiªn c¸c cÇu ch× cßn nguyªn. Nạp dữ liệu vào bằng cách làm đứt các cầu chì đi hoặc giữ nguyên. NÕu vÉn cßn cÇu ch×: ®iot th«ng ®Çu ra di = 0 NÕu c¾t cÇu ch×, kh«ng bÞ sôt ¸p ®Çu ra di = 1

2.1.2 Bé nhí b¸n cè ®Þnh (EPROM, EEPROM, FLASH)

• EPROM (Erasable Programmable ROM): Cã cÊu t¹o ®Æc biÖt dùa trªn nguyªn t¾c lµm viÖc cña tranzito tr−êng cã cùc ®iÒu khiÓn và thêm cửa nổi. ViÖc n¹p ch−¬ng tr×nh cho EPROM ®−îc thùc hiÖn b»ng ®iÖn. Xo¸ ch−¬ng tr×nh b»ng tia cùc tÝm, do tia cùc tÝm ¶nh h−ëng ®Õn cùc nguån vµ cùc m¸ng. Bộ nhớ EPROM có thể ghi lại được. Ký hiÖu 27xxx

a) b)

hv

File oxide File oxide

n-Sounce n-Drain

Sounce Drain Gate

Floating Gate

Control Gate

Hình 2.4. a)- Transitor trường, b)- CÊu tróc cña EPROM

Thái Nguyên 7-2013 8

Page 10: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Trong « nhí dïng tranzito nµy, cùc cöa ®−îc nèi víi ®−êng tõ, cùc m¸ng

nèi víi ®−êng bit vµ cùc nguån nèi víi nguån chuÈn ®−îc coi lµ nguån cho møc logic 1. Kh¸c víi tranzito MOS b×nh th−êng, ë ®©y cã thªm 1 cöa gäi lµ cöa næi; §ã lµ mét vïng vËt liÖu ®−îc thªm vµo gi÷a líp c¸ch ®iÖn cao nh− h×nh trªn. NÕu cöa næi kh«ng cã ®iÖn tÝch th× kh«ng cã ¶nh h−ëng g× tíi cùc cöa ®iÒu khiÓn vµ tranzito ho¹t ®éng b×nh th−êng. Tøc lµ khi d©y tõ ®−îc kÝch ho¹t (cùc cöa cã ®iÖn tÝch d−¬ng) th× tranzito th«ng, cùc m¸ng vµ cùc nguån ®−îc nèi víi nhau qua kªnh dÉn vµ d©y bit cã møc logic 1. NÕu cöa næi cã c¸c ®iÖn tö trong ®ã víi c¸c ®iÖn tÝch ©m, chóng sÏ ng¨n tõ tr−êng ®iÖn ®iÒu khiÓn cña cùc ®iÒu khiÓn vµ dï d©y tõ cã ®−îc kÝch ho¹t th× còng kh«ng thÓ ph¸t ra tr−êng ®ñ m¹nh víi cùc cöa ®iÒu khiÓn ®Ó lµm th«ng tranzito. Lóc nµy ®−êng d©y bit kh«ng ®−îc nèi víi nguån chuÈn vµ « nhí ®−îc coi nh− gi÷ gi¸ trÞ logic 0.

ViÖc n¹p c¸c ®iÖn tö vµo cöa næi, tøc lµ t¹o ra c¸c « nhí cã gi¸ trÞ logic 0, ®−îc thùc hiÖn bëi c¸c xung ®iÖn cã ®é dµi cì 50 ms vµ ®é lín +20V khi ®Æt vµo cùc cöa vµ cùc m¸ng. Lóc ®ã c¸c ®iÖn tÝch mang cã n¨ng l−îng lín sÏ ®i qua líp c¸ch ®iÖn gi÷a ®Õ vµ cöa næi. Chóng tÝch tô trong vïng cöa næi vµ ®−îc gi÷ ë ®©y sau khi xung ch−¬ng tr×nh t¾t. §ã lµ do cöa næi ®−îc c¸ch ®iÖn cao víi xung quanh vµ c¸c ®iÖn tö kh«ng cã ®ñ n¨ng l−îng sau khi l¹nh ®i, ®Ó cã thÓ v−ît ra ngoµi líp c¸ch ®iÖn ®ã n÷a. Chóng sÏ ®−îc gi÷ l¹i ë ®©y trong mét thêi gian dµi (kho¶ng 10 n¨m). §Ó xãa th«ng tin, ph¶i chiÕu tia tö ngo¹i vµo chip nhí. Nh÷ng ®iÖn tö ë ®©y ®−îc hÊp thô n¨ng l−¬ng nh¶y lªn møc n¨ng l−îng cao, chóng sÏ rêi cöa næi nh− c¸ch th©m nhËp vµo ®ã. Trong chip EPROM cã mét cöa sæ b»ng th¹ch anh chØ ®Ó cho ¸nh s¸ng tö ngo¹i ®i qua khi cÇn xãa sè liÖu trong bé nhí.

• EEPROM (Electric Erasable PROM): Cã cÊu t¹o t−¬ng tù EPROM nh−ng n¹p xo¸ b»ng ®iÖn. Ký hiÖu 28xxx (ví dụ vi mạch EEPROM 2864, 28128). Điểm khác của EEPROM lµ mét líp kªnh mµng máng «xit gi÷a vïng cöa næi tr¶i xuèng d−íi ®Õ vµ cùc m¸ng gi÷ vai trß quan träng. C¸c líp c¸ch ®iÖn kh«ng thÓ lý t−ëng ®−îc, c¸c líp ®iÖn tÝch mang cã thÓ thÊm qua líp ph©n c¸ch víi mét x¸c suÊt thÊp. X¸c suÊt nµy t¨ng lªn khi bÒ dµy cña líp gi¶m ®i vµ ®iÖn thÕ gi÷a hai cùc ë hai mÆt cña líp c¸ch ®iÖn t¨ng lªn. Muèn phãng c¸c ®iÖn tÝch trong vïng cöa næi, mét ®iÖn thÕ (-20V) ®−îc ®Æt vµo cùc cöa ®iÒu khiÓn vµ cùc m¸ng. Lóc nµy c¸c ®iÖn tö ©m trong cöa næi ®−îc ch¶y vÒ cùc m¸ng qua kªnh mµng máng «xit vµ sè liÖu l−u gi÷ ®−îc xãa ®i. §iÒu chó ý lµ ph¶i l−u ý lµm sao cho dßng ®iÖn tÝch nµy ch¶y kh«ng qu¸ l©u, v× nÕu kh«ng vïng cöa næi nµy l¹i trë nªn ®iÖn tÝch d−¬ng lµm cho ho¹t ®éng cña tranzitor kh«ng ®−îc ë tr¹ng th¸i b×nh th−êng (1).

Thái Nguyên 7-2013 9

Page 11: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

C¸c chÝp ROM hiÖn nay cã thêi gian th©m nhËp cì tõ 120-150 ns dµi h¬n nhiÒu thêi gian ®ã trong c¸c chip nhí RAM.

• Flash ROM: CÊu t¹o t−¬ng tù EEPROM sö dông víi ®iÖn ¸p thÊp h¬n. Ký hiÖu 29xxx, 39xxx 2.1.3 Bé nhí ®äc ghi (SRAM, DRAM)

+ Bé nhí RAM tÜnh lµ SRAM (Static RAM) th−êng ®−îc x©y dùng trªn c¸c m¹ch ®iÖn tö flip – flop.

+ Bé nhí RAM ®éng lµ DRAM (Dynamic RAM) ®−îc x©y dùng trªn c¬ së c¸c ®iÖn tÝch ë tô ®iÖn. Bé nhí nµy ph¶i ®−îc håi phôc néi dung ®Òu ®Æn, nÕu kh«ng néi dung sÏ mÊt theo sù rß ®iÖn tÝch trªn tô. EDORAM, VRAM, SDRAM, SGRAM ®Òu là RAM ®éng. C¸c bé nhí DRAM th−êng tho¶ m·n c¸c yªu cÇu khi cÇn bé nhí cã dung l−îng lín. Khi cÇn cã tèc ®é truy xuÊt lín th× l¹i ph¶i dïng c¸c bé nhí SRAM víi gi¸ thµnh ®¾t h¬n; c¶ hai lo¹i nµy ®Òu bị mất thông tin khi nguån ®iÖn nu«i bÞ mÊt, V× lý do nµy, c¸c ch−¬ng tr×nh dïng cho viÖc khëi ®éng PC nh− BIOS th−êng ph¶i n¹p trong c¸c bé nhí ROM.

2.1.4 Bé nhí ngoµi Bé nhí chÝnh b»ng vËt liÖu b¸n dÉn trªn b¶n m¹ch chÝnh kh«ng thÓ l−u

tr÷ mét khèi l−îng rÊt lín c¸c th«ng tin, do vËy cÇn ph¶i cã thªm c¸c thiÕt bÞ nhí bªn ngoµi nh− b¨ng giÊy ®ôc lç, b¨ng cassette, trèng tõ, ®Üa tõ, ®Üa quang laser. Nh÷ng thiÕt bÞ l−u tr÷ d÷ liÖu ë ngoµi nh− vËy ®−îc gäi lµ bé nhí khèi (mass storage) hay gäi lµ nhí ngoµi. ThiÕt bÞ nhí khèi th«ng dông nhÊt lµ ®Üa tõ. §Üa tõ lµ mét tÊm ®Üa trßn máng lµm b»ng chÊt dÎo mylar, hoÆc b»ng thñy tinh cøng hoÆc b»ng kim lo¹i cøng, trªn cã phñ mét líp bét tõ tÝnh «xit s¾t tõ có tính từ dư. §Üa tõ sö dông kü thuËt ghi tõ ®Ó l−u tr÷ gi÷ liÖu, ®ã lµ viÖc ®Þnh h−íng c¸c domain tõ ®Ó t¹o ra c¸c bit th«ng tin 0 vµ 1. Khi ®· ghi lªn ®Üa, d÷ liÖu cã thÓ tån t¹i c¶ khi c¾t ®iÖn PC. Tuy nhiªn gièng nh− b¨ng tõ, d÷ liÖu cò còng cã thÓ xãa ®i thay thÕ bëi d÷ liÖu míi nhiÒu lÇn.

Kỹ thuật điện tử tương lai sẽ cho phép có các khối nhớ dung lượng lớn hoàn toàn bằng vi mạch thay thế đĩa từ- hiện nay đã có các mạch nhớ bán dẫn với dung lượng tới vài trăm GB. 2.2 Ph©n cÊp bé nhí

CacheCPU Bé nhí chÝnh

Bé nhí ngoµi Registers

Hình 2.5. Liên hệ giữa các bộ nhớ

Thái Nguyên 7-2013 10

Page 12: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Trong c¸c hÖ VXL hiÖn ®¹i Bé nhí ¶o ®−îc t¹o nªn bëi Cache, M vµ Bé nhí ngoµi.

Bé nhí th−êng ®−îc tæ chøc gåm nhiÒu vi m¹ch nhí ®−îc ghÐp l¹i víi nhau ®Ó cã ®é dµi tõ vµ tæng sè tõ cÇn thiÕt. Nh÷ng chip nhí ®−îc thiÕt kÕ sao cho cã ®Çy ®ñ chøc n¨ng cña mét bé nhí:

• Mét ma trËn nhí gåm c¸c « nhí, mçi « nhí øng víi mét bit nhí.

• M¹ch logic gi¶i m· ®Þa chØ « nhí.

• M¹ch logic cho phÐp ®äc néi dung « nhí.

• M¹ch logic cho phÐp viÕt néi dung « nhí.

• C¸c bé ®Öm vµo, bé ®Öm ra vµ bé nhí më réng. C¸ch tæ chøc ®¬n gi¶n nhÊt lµ tæ chøc theo tõ víi sù chän tuyÕn tÝnh. Mét

ma trËn nhí nh− vËy cã ®é dµi cña cét b»ng sè l−îng tõ W vµ ®é dµi cña hµng b»ng sè l−îng bit B trong mét tõ. Bé chän tõ gi¶i m· mét tõ W, nghÜa lµ gi¶i m· ®Ó cã mét ®Çu ra duy nhÊt cho mçi tõ trong bé nhí. Râ rµng ph−¬ng ph¸p chän tuyÕn tÝnh cã thêi gian th©m nhËp ng¾n nh−ng cÇn mét bé gi¶i m· lín khi tæng sè tõ lín, lµm t¨ng gi¸ thµnh s¶n phÈm.

KÝch th−íc cña phÇn gi¶i m· ®Þa chØ sÏ gi¶m ®i khi tæ chøc ma trËn nhí vµ phÇn logic chän tõ W cho phÐp gi¶i m· hai b−íc. Ma trËn nhí sö dông gi¶i m· hai b−íc øng víi tõ vËt lý vµ tõ logic. Tõ vËt lý bao gåm sè l−îng bit trong mét hµng cña ma trËn. Tõ logic bao gåm sè l−îng bit t−¬ng øng víi mét tõ logic nhËn biÕt ®−îc vµ göi ra cïng mét bé gi¶i m·. CÇn hai bé gi¶i m·: Mét bé gi¶i m· hµng ®Ó chän mét tõ vËt lý vµ mét bé gi¶i m· cét gåm 1 vµi m¹ch dån kªnh chän mét tõ logic tõ mét tõ vËt lý ®· chän. Mét tõ vËt lý chia S tõ logic. Bé gi¶i m· hµng lµ bé gi¶i m· chän 1 tõ W, mµ B=W/S vµ bé chän cét chøa B bé dån mét ®−êng tõ S.

§Öm vµo

Hình 2.6. Gi¶i m· hai b−íc cho ma trËn ROM 128x128

Gi¶i m· hµng 1 tõ

128

Ma trËn rom

128 X 128

§Öm ra

8 Bé gi¶i m· cét 1

tõ 16

8

8

12

127 7

CS

A7-A104

A0-A6

07…01

Thái Nguyên 7-2013 11

Page 13: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 2.5 lµ ví dô vÒ s¬ ®å ROM dung l−îng 2048x8 bit, tæ chøc theo gi¶i

m· hai b−íc. Ma trËn nhí lµ 128x128 bit, nh− vËy cã 128 = 27 tõ vËt lÝ. Mét tõ vËt lý nh− vËy ®−îc chän bëi 7 ®−êng d©y ®Þa chØ tõ A0-A6. Bé gi¶i ®Þa chØ hµng chän 1 hµng tõ 128 hµng. Mét tõ vËt lý ®−îc chia thµnh 128/8=16 nhãm 8 bit. Nh− vËy, nh÷ng bé gi¶i m· cét gåm 8 bé dån kªnh mét ®−êng tõ 16 ®−êng ®Ó cung cÊp mét tõ logic 8 bit. Nh÷ng bit ®Þa chØ tõ A7-A10 ®iÒu khiÓn nh÷ng bé gi¶i m· cét. Tr−êng hîp ®Æc biÖt khi sè phÇn tö trong mét tõ vËt lý b»ng sè bit trong 1 tõ vËt lý thi ®ã lµ bé nhí tæ chøc theo bit nghÜa lµ mçi tõ logic cã ®é dµi 1 bit.

C¸c bé ®Öm ra ®¶m b¶o kh«ng nh÷ng møc logic mong muèn vµ cung cÊp ®ñ dßng ®iÖn mµ cßn cã ®Çu ra collector hë hoÆc 3 tr¹ng th¸i cho phÐp nèi chung ®Çu ra cña mét vµi chip víi nhau. Bé ®Öm ra ®−îc ®iÒu khiÓn bëi 1 hay nhiÒu ®Çu vµo nh− chän m¹ch CS, cho phÐp CE hay cho phÐp më ®Çu ra 3 tr¹ng th¸i OE.

2.3 CÊu tróc cña m¹ch nhí tÜnh SRAM

2.3.1 Giíi thiÖu c«ng nghÖ CÊu tróc m¹ch ®iÖn cña RAM phô thuéc vµo c«ng nghÖ chÕ t¹o. Cã mét sè c«ng nghÖ chÕ t¹o th«ng dông:

− Mức điện áp chuẩn TTL:

+ Qui ®Þnh 2 møc 0/1.("0"...., "1"....)

+ §iÖn ¸p sö dông 5V

− MOS: C«ng nghÖ ®¬n cùc (Metal Oxit Semi Conductor)

− ECL(M¹ch logic ghÐp cùc ph¸t - Emitor Coupler Logic), I2L, SOS

− Các khối nhớ NOR Flash.

2.3.2 CÊu tróc m¹ch nhí SRAM

2.3.2.1 Bit nhí

• Bit nhí Mçi phÇn tö nhí c¬ b¶n 1 bit lµ 1 m¹ch F-F (Flip-Flop) cã hai tr¹ng th¸i c©n b»ng æn ®Þnh ®Ó biÓu diÔn hai gi¸ trÞ nhÞ ph©n 0 vµ 1. Khi phÇn tö nhí ®· ®−îc thiÕt lËp gi¸ trÞ th× nã nhí m·i gÝa trÞ ®ã cho ®Õn khi thiÕt lËp tr¹ng th¸i míi.

§Þa chØ hµng cét Xi, Yi

CS WE

M¹ch F-F

§Çu vµo d÷ liÖu Din §Çu ra d÷ liÖu Dout

Hình 2.7. Ký hiệu bit nhớ SRAM

Thái Nguyên 7-2013 12

Page 14: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

D÷ liÖu ®−îc ®−a vµo Din, lÊy ra Dout X¸c ®Þnh ®Þa chØ bằng các dây Xi, Yi WE: ®iÒu khiÓn ®äc viÕt; tuú theo tÝn hiÖu ®−a ®Õn lµ 0 hay 1 mµ cho phÐp viÕt vµo hay ®äc ra CS (Chipselect): TÝn hiÖu chän chip. Mét bé nhí cã thÓ do nhiÒu chip nhí t¹o nªn. Khi CPU lµm viÖc víi chip nhí nµo th× nã sÏ kÝch ho¹t tÝn hiÖu chän chip cña chip nhí ®ã. TÝn hiÖu nµy th−êng t¸c ®éng ë møc thÊp.

Rn Sn Qn+1 Q/n+1

0 0 Qn Q/n

0 1 1 0 1 0 0 1 1 1 x x

Hình 2.8. Một bit nhớ F-F RS sử dụng tranzixtor phân cực

Hình 2.9. Một bit nhớ F-F RS sử dụng tranzixtor trường

Ghi:

+ Dây từ = 0 + Đưa dữ liệu vào dây bit. Giả sử là "1" + Dây từ =1 → TI/O 1 thông → D1 của T1 =1 → T2 thông D2 = 0 → G của T1

= 0 → T1 không thông và duy trì ngay cả khi dữ liệu không đặt trên dây bit + Dây từ =0. Dữ liệu được ghi trong bit nhớ

Đọc: + Trước khi đọc đây từ = 0 + Dây từ = 1. T1, T2 thông đưa dữ liệu ra dây bit.

Thái Nguyên 7-2013 13

Page 15: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

2.3.2.2 Thanh ghi

• Thanh ghi: Lµ nhãm c¸c phÇn tö nhí cã liªn hÖ víi nhau cïng ho¹t ®éng nhí 1 ®¬n vÞ nhí:

− Thanh ghi nhí tõ

− Thanh ghi dÞch

− Cã c¸c lo¹i thanh ghi 8 bit, 16 bit, 32 bit...mçi bit lµ 1 phÇn tö nhí c¬ b¶n C¸c thanh ghi lµm nhiÖm vô nhí t¹m thêi mét tõ nhÞ ph©n th−êng ®−îc

x©y dùng tõ c¸c flip-flop. C¸c bé xö lý th−êng cã mét tËp thanh ghi ®−îc sö dông ®Ó chøa t¹m d÷ liÖu hoÆc c¸c chØ thÞ trong qu¸ tr×nh thi hµnh ch−¬ng tr×nh. C¸c thanh ghi nh− vËy cÇn cã kh¶ n¨ng ho¹t ®éng ë tèc ®é cao h¬n c¸c thanh ghi kh¸c ®−îc sö dông trong bé nhí chÝnh. H×nh d−íi m« t¶ thanh ghi ®Öm 4 bit, sö dông flip-flop D chuyÓn m¹ch bëi s−ên d−¬ng cña xung ®ång hå.

LOAD

Hình 2.10. Thanh ghi ®Öm

+ Xi (i=1..3) lµ c¸c bit cña word X cÇn nhí, khi sườn xung d−¬ng ®Çu tiªn ®i tíi, word ®−îc nhí vµo trong thanh ghi lµ Q3Q2Q1Q0=X3X2X1X0, hay viÕt lµ Q=X. Tõ nhÞ ph©n cã thÓ lÊy ra ë ®Çu ra Q3Q2Q1Q0.

+ CLR lµ ®Çu vµo tÝn hiÖu ®iÒu khiÓn xo¸ néi dung thanh ghi, tÝch cùc ë møc cao, nghÜa lµ khi CLR lµ cao th× tÊt c¶ c¸c flip-flop bÞ xo¸ vµ tõ ®−îc nhí trë thµnh Q=0.

+ LOAD lµ ®Çu vµo ®iÒu khiÓn tÝch cùc ë møc cao, khi LOAD = 0 c¸c bit kh«ng thÓ ®i vµo c¸c flip-flop, ®ång thêi qua NOT ®−êng d©y kia sÏ cã møc cao, lµm cho c¸c gi¸ trÞ ë ®Çu ra cña c¸c flip-flop ®−a ng−îc l¹i lèi vµo, t¹i c¸c s−ên d−¬ng cña xung ®ång hå chóng sÏ l¹i ®−îc ghi l¹i vµo trong flip-flop, nãi c¸ch kh¸c khi LOAD=0 th× thanh ghi kh«ng thay ®æi néi dung.

Thái Nguyên 7-2013 14

Page 16: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Khi LOAD=1 c¸c bit cña X ®−îc ®−a tíi lèi vµo cña flip-flop, khi s−ên d−¬ng

cña xung ®ång hå ®i tíi chóng sÏ ®−îc ghi vµo trong thanh ghi.

2.3.2.3 Bé gi¶i m·

• Bé gi¶i m· §é dµi 1 « nhí th−êng lµ 8bit (1byte). Trong mét vi m¹ch nhí cã nhiÒu « nhí. Mçi mét « nhí khi ghÐp víi hÖ vi xö lý sÏ cã mét ®Þa chØ x¸c ®Þnh. CPU muèn lµm viÖc víi « nhí nµo nã sÏ ®−a ra tÝn hiÖu ®Þa chØ cña « nhí ®ã. Qua bé gi¶i m· ®Þa chØ, « nhí ®ã ®−îc chän chÝnh x¸c, sau ®ã cho phÐp ®äc/viÕt trªn « nhí ®ã. Bªn trong 1 vi m¹ch nhí

Bé gi¶i

m· ®Þa chØ

¤ nhí 0 ¤ nhí 1 ... ... ¤ nhí N Chän « nhí N

Chän « nhí 0 D÷ liÖu

CS

RD

WR

TÝn hiÖu điều khiển

TÝn hiÖu ®Þa chØ

Hình 2.11. Bên trong một vi mạch nhớ SRAM

Bé gi¶i m· ®Þa chØ gióp ta chän ®−îc « nhí nµo trong vi m¹ch ®Ó lµm viÖc

§Çu vµo bé gi¶i m· cã n bit ®Þa chØ sÏ ph©n biÖt ®−îc 2n tr¹ng th¸i → sÏ ph©n biÖt ®−îc 2n « nhí. NÕu 1 « nhí 8 bit cã thÓ hiÖn nh− sau §Þa chØ « nhí Néi dung

« sè 0 0000 0101 « nhí 1 11110100

... ... §Ó ®äc hay ghi « nhí cÇn cã thªm c¸c tÝn hiÖu : RD: §äc « nhí C¸c tÝn hiÖu nµy th−êng dïng møc thÊp WR: Ghi vµo « nhí Khi cÇn cã dung l−îng « nhí lín h¬n cÇn ghÐp nhiÒu vi m¹ch nhí. Khi ®ã ®Ó chän vi m¹ch nhí nµo l¹i cÇn cã mét bé gi¶i m· ®Þa chØ n÷a ®Ó chän ®−îc vi m¹ch cÇn thiÕt.

Thái Nguyên 7-2013 15

Page 17: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

VD: X©y dùng bé nhí 4KB tõ 4 vi m¹ch 1 KB CS0 CS1 ............ CSN

Hình 2.12. Bộ giải mã ngoài dùng để phân biệt các chip nhớ Gi¶i thÝch ho¹t ®éng CPU muèn lµm viÖc víi vi m¹ch nhí nµo th× nã ph¸t ra tÝn hiÖu ®Þa chØ qua Abus, c¸c tÝn hiÖu ®Þa chØ qua bé gi¶i m· ®Þa chØ sÏ kÝch ho¹t c¸c tÝn hiÖu CS t−¬ng øng ®Ó chän ®−îc vi m¹ch cÇn thiÕt.

Abus Chän « nhí

Bé gi¶i m· ®Þa chØ

Vi m¹ch nhí sè 0

Vi m¹ch nhí sè 1

Vi m¹ch nhí sè N

A0.. A9

A0.. A9

A0.. A9

A10, A11

A bus

C bus RD

C¸c tÝn hiÖu ®Þa chØ còng ®−îc ®−a vµo tõng vi m¹ch nhí ®Ó chän ra « nhí cÇn thiÕt.

− ThiÕt bÞ ngo¹i vi ®−îc dµnh 1 sè ®Þa chØ ë vïng thÊp (víi m¸y tÝnh theo kiÕn tróc IBM-PC vïng nµy gåm 1KB). Nh− vËy sÏ cã nh÷ng « nhí trong vïng thÊp nµy cã ®Þa chØ trïng víi ®Þa chØ cña thiÕt bÞ ngo¹i vi. §Ó kh«ng x¸y ra sù nhÇm lÉn gi÷a c¸c « nhí vµ thiÕt bÞ ngo¹i vi cã ®Þa chØ trïng nhau, ng−êi ta sö dông thªm tÝn hiÖu IO/M khi gi¶i m· ®Þa chØ. Còng ®Þa chØ ®ã nh−ng nÕu IO/M = 0 lµ ®Þa chØ cña « nhí, IO/M =1 lµ ®Þa chØ cña thiÕt bÞ ngo¹i vi.

− C¸c m¹ch gi¶i m· ®Þa chØ ®−îc t¹o nªn b»ng c¸c vi m¹ch sè Gi¶i m· cho 1 vi m¹ch nhí:

°

D÷ liÖu ra

TÝn hiÖu ®Þa chØ2716

CE OE

°

Hình 2.13. Ví dụ giải mã cho 1 vi mạch nhớ

A0..A10

A11

A12

A19

IO/M

Thái Nguyên 7-2013 16

Page 18: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Gi¶i m· cho nhiÒu vi m¹ch nhí

− Vi m¹ch sö dông khi gi¶i m· cÇn nhiÒu ®Çu ra th−êng dïng 74LS138 Giải mã cho 3 vi mạch ROM 2764 địa chỉ ô nhớ đầu là F0000h

Hình 2.1 Vi m¹ch cã 8 ®Çu ra gi¶i m· t¸cgi¶i m· nµo do tæ hîp tÝn hiÖu cc¸c ch©n G2A, G2B, G1 ph¶i ®¶

G2A=0 G2B=0 vµ G1=1

B¶ng 2.1 T¸c ®éng cña vi m¹ch

VÝ dô sö dông vi m¹ch 74138 gi®Çu tiªn lµ FA000h tøc lµ

ABC

G2A

A

Y3

Y

A

°°

Y0

Y1

Y2

Y4

Y5

Y7

IO/M

A19

°°°°°°°°

A0 .. A12 2764

°

2764

° °

2764

OE OE

G2AG2BG1

A B C

74138

A13 OE

A14

A15

A16

A17

A18

Th

G2

4. Giải mã dùng vi mạch 74138

®éng ë møc thÊp tõ Y0 ®Õn Y7 . ViÖc chän dÇu ra ¸c ch©n A, B, C. §Ó vi m¹ch ho¹t ®éng tÝn hiÖu ë m b¶o ®ång thêi (điều kiện "and") nh− sau:

74138

¶i m· cho 3 vi m¹ch ROM 2764, ®Þa chØ cña « nhí 1111 1110 0000 0000 0000

6

19 A0 C B A

ái Nguyên 7-2013 17

Page 19: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Cã nhiÒu ph−¬ng ¸n ®Ó gi¶i m· cho mét yªu cÇu cô thÓ khi sö dông 74138. Cho c¸c vÝ dô

2.3.2.4 M¹ch nhí SRAM (C¸c thµnh phÇn, quy tr×nh ®äc ghi, biÓu ®å thêi gian)

• M¹ch nhí SRAM

Cho phÐp ghi

D÷ liÖu D0-D7

WECS

OE

Chon chip

Cho phÐp ®−a d÷ liÖu ra

A0-A10§Þa chØ

Hình 2.15. Bộ nhớ SRAM

2.3.3 ThiÕt kÕ thÎ nhí SRAM

Mạch nhớ SRAM thường được thiết kế cho các hệ vi xử lý nhỏ. Dữ liệu ban đầu là: Dung lượng cần thiết, tốc độ truy nhập. Từ các số liệu này chọn được loại vi mạch SRAM và số lượng chip. Tiếp theo xây dựng bộ giải mã địa chỉ ngoài. Có thể dùng các vi mạch AND, OR, NOT, NAND hoặc vi mạch chuyên dụng 74138, 74 154,... để xây dựng bộ giải mã. 2.4 CÊu tróc cña m¹ch nhí DRAM PhÇn tö nhí DRAM

§Ó bè trÝ ®−îc sè ph©n tö nhí lín nhÊt trong mét vi m¹ch, mçi ph©n tö nhí ph¶i ®−îc chÕ t¹o sao cho ®¬n gi¶n nhÊt. PhÇn tö nhí RAM ®éng (DRAM) mµ chóng ta sÏ t×m hiÓu chØ cÇn 1 tranzito cho 1 bit th«ng tin, v× thÕ cã thÓ bè trÝ víi mËt ®é rÊt cao vµ cã gi¸ thµnh rÎ. Trong ph©n tö nhí nµy ng−êi ta thay flip-flop b»ng mét tô ®iÖn C, gi¸ trÞ nhí trong phÇn tö nhí nµy chÝnh lµ ®iÖn tÝch n¹p trªn tô ®iÖn. Ta cã thÓ sö dông tr¹ng th¸i tô ®−îc n¹p, tøc lµ trªn tô ®iÖn C cã mét ®iÖn ¸p lín h¬n mét gi¸ trÞ nhÊt ®Þnh nµo ®ã, biÓu diÔn gi¸ trÞ 1 cña bit, cßn tr¹ng th¸i

Thái Nguyên 7-2013 18

Page 20: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

kh«ng ®−îc n¹p biÓu diÔn gi¸ trÞ 0. Nguyªn lý cÊu t¹o cña mét phÇn tö DRAM ®−îc minh häa ë h×nh 2.13:

Tranzito T

D

G

D©y tõ

S Tô ®iÖn C

D©y bit

Hình 2.16. Phần tử nhớ DRAM 1 bit Bé nhí RAM ®éng

Bé nhí DRAM ®−îc tæ chøc thµnh mét ma trËn nhí, trong ®ã d©y tõ lµ mét trong c¸c d©y hµng cña ma trËn, cßn d©y bit lµ mét trong nh÷ng d©y cét cña ma trËn. PhÇn tö nhí ®−îc ®Æt ë giao ®iÓm cña c¸c d©y hµng vµ cét. Tranzito T lµ mét tranzito tr−êng (fet) ®ãng vai trß mét chuyÓn m¹ch ®iÖn tö. T cã ba cùc lµ cùc cæng G (Gate), cùc m¸ng D (Drain) vµ cùc nguån S (Sourne), trong ®ã G lµ cùc ®iÒu khiÓn, D sÏ ®−îc nèi víi S khi G cã møc ®iÖn ¸p cao so víi S, ng−îc l¹i ®iÖn trë gi÷a D vµ S rÊt lín.

Qu¸ tr×nh ghi: Khi d©y tõ cã møc tÝch cùc, T ë tr¹ng th¸i më, nèi tô ®iÖn C víi d©y bit. NÕu thao t¸c lµ ghi th× gi¸ trÞ cÇn ghi ph¶i ®Æt trªn d©y bit. NÕu gi¸ trÞ ®ã lµ 1 th× tô C sÏ ®−îc n¹p tíi ®iÖn ¸p t−¬ng øng víi gi¸ trÞ 1 trªn d©y bit, cßn nÕu gi¸ trÞ ®ã lµ 0 th× tô ®iÖn C sÏ bÞ phãng hÕt ®iÖn tÝch.

Qu¸ tr×nh ®äc: ViÖc ®äc phøc t¹p h¬n ghi do ®iÖn tÝch trªn tô C øng víi gi¸ trÞ cÇn ®äc rÊt nhá. Tr−íc khi ®Æt d©y tõ lªn møc tÝch cùc, cÇn ph¶i ®Æt lªn d©y bit ®iÖn ¸p b»ng 1/2 møc chªnh lÖch gi÷a ®iÖn ¸p øng víi møc 1 vµ ®iÖn ¸p øng víi møc 0. §iÖn ¸p trªn tô sÏ lµm cho ®iÖn ¸p d©y bit thay ®«i mét chót theo chiÒu h−íng t¨ng hoÆc gi¶m tuú thuéc vµo bit ®ã lµ 1 hay 0. Sù thay ®æi nhá cña ®iÖn ¸p trªn d©y bit sÏ ®−îc truyÒn tíi ®Çu vµo cña mét bé khuÕch ®¹i nh¹y, t¹i ®Çu ra cña nã ta nhËn ®−îc ®iÖn ¸p t−¬ng øng víi gi¸ trÞ cña bÝt chøa trªn tô.

Qu¸ tr×nh lµm t−¬i: Ta ®Òu biÕt mäi tô ®iÖn ®Òu cã mét ®iÖn trë rß vµ tranzito T m¾c nèi tiÕp víi nã dï ë tr¹ng th¸i cÊm còng cã mét ®iÖn trë rß nhÊt ®Þnh, cho nªn sau khi ®−îc n¹p, ®iÖn tÝch trªn tô liªn tôc bÞ phãng, sau mét thêi gian nhÊt ®Þnh sÏ bÞ mÊt th«ng tin mµ C chøa. ChÝnh v× vËy ph¶i n¹p lại ®iÖn cho tô C tr−íc khi ®iÖn ¸p trªn tô gi¶m thÊp h¬n mét ng−ìng nµo ®ã, viÖc nµy ®−îc gäi

Thái Nguyên 7-2013 19

Page 21: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

lµ “lµm t−¬i” (refresh). §Ó lµm t−¬i « nhí DRAM, cÇn ph¶i ®äc néi dung cña nã råi viÕt l¹i. ViÖc lµm t−¬i ph¶i ®−îc tiÕn hµnh theo chu kú nhÊt ®Þnh, gäi lµ chu kú lµm t−¬i.

Trong c¸c chip DRAM tr−íc ®©y m¹ch ®iÖn bæ sung ®Ó thùc hiÖn lµm t−¬i th−êng ë ngoµi chip nhí. Ngµy nay c¸c m¹ch ®iÖn lµm t−¬i ®−îc chÕ t¹o ngay bªn trong chip nhí, nhê vËy mµ lo¹i nµy võa cã dung l−îng cao võa cã giao diÖn ®¬n gi¶n, chóng ®−îc gäi lµ quasi-static RAM.

Chip nhí DRAM l−u gi÷ th«ng tin rÊt lín do ®ã còng cÇn rÊt nhiÒu ch©n cho tÝn hiÖu ®Þa chØ. §Ó lµm gi¶m bít sè ch©n ®Þa chØ trªn mét vi m¹ch nhí, ng−êi ta th−êng chia ®Þa chØ ra 2 nhãm: ®Þa chØ hµng vµ ®Þa chØ cét råi dån kªnh chóng trªn c¸c ch©n ®Þa chØ, ®ång thêi cung cÊp thªm c¸c tÝn hiÖu cho phÐp chèt gi÷

riªng rÏ ®Þa chØ hµng ( RAS ) vµ cét (CAS ) ë bªn trong vi m¹ch nhí.

Hình 2.17. Sơ đồ bộ nhớ DRAM

Hình 2.18. Biểu đồ đọc d

RAS

CAS

A0-A7

§c cét §c hµng Kh«ng quan t©m

WR

CS

Xung cho phÐp chèt ®Þa chØ

WE

Xung cho phÐp chèt ®Þa chØ

Cho phÐp ®−a d÷ liÖu ra

D÷ liÖu

OE

CAS RAS

Cho phÐp ghi

A0-A7

D0-D3

Data

§Þa chØ

Thái Nguyên 7

Do

ữ liệu từ chip DRAM

-2013 20

Page 22: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

§c cét §c hµng Kh«ng quan t©m

DIN

RAS

CAS

A0-A7

CS

WR

Data

Hình 2.19. Biểu đồ ghi dữ liệu vào chip DRAM

Thái Nguyên 7-2013 21

Page 23: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ch−¬ng 3. CÁC BỘ VI XỬ LÝ VÀ VI ĐIỀU KHIỂN

3.1 Giíi thiÖu bé vi xö lý 8 bit tæng qu¸t

3.2 Bé vi xö lý 8 bit (8086/8088)

3.2.1 S¬ ®å khèi bé vi xö lý 8 bit

alu

di si bp sp dx cx bx ax

ES

ipSS

DSCS

Bus ®Þa chØ 20 bit

Logic ®iÒu khiÓn BUS

Khối điều khiển của EU

C¸c thanh ghi t¹m thêi

Thanh ghi cê

§Öm lÖnh

C

Bus d÷ liÖu ALU (16 bit)

¸c thanh gh®o¹n vµ con

trá lÖnh

i C¸c thanh ghi con trá vµ

chØ sè

C¸c thanh gh®a n¨ng

i ∑

Bus d÷ liÖu

Bus trong cña CPU 8 bit d÷ liÖu 20 bit ®Þa

chØ

Bus ngoµi

(hµng ®îi lÖnh)

Hình 3.1. Sơ đồ khối 8086/8088 8088 cã 2 khèi: Khèi phèi ghÐp bus BIU vµ khèi thùc hiÖn lÖnh EU

• BIU: ChÞu tr¸ch nhiÖm ®−a ®Þa chØ ra bus vµ trao ®æi d÷ liÖu víi bus

Thái Nguyên 7-2013 22

Page 24: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

• EU: Bªn trong cã:

− CU (Control Unit): thùc hiÖn gi¶i m· lÖnh thµnh d·y xung ®iÒu khiÓn ®Ó ®iÒu khiÓn bªn trong vµ bªn ngoµi CPU

− ALU: Dïng ®Ó thùc hiÖn thao t¸c cña c¸c phÐp to¸n

− Khi ho¹t ®éng EU cung cÊp th«ng tin vÒ ®Þa chØ cho BIU ®Ó BIU ®äc lÖnh vµ d÷ liÖu cßn EU th× gi¶i m· lÖnh vµ thùc hiÖn lÖnh.

• Bé nhí ®Öm lÖnh trong BIU: C¸c bé vi xö lý ®Çu tiªn ho¹t ®éng theo nguyªn lý nèi tiÕp:

+ NhËn lÖnh

+ Gi¶i m· lÖnh

+ Thùc hiÖn lÖnh Trong mét thêi ®iÓm nhÊt ®Þnh CPU chØ cã thÓ lµm 1 trong 3 viÖc trªn, do vËy

cã nh÷ng thêi ®iÓm nhiÒu bé phËn cña CPU nhµn rçi; ch¼ng h¹n khi ®ang gi¶i m· lÖnh th× bus kh«ng dïng ®Õn, bé ALU kh«ng sö dông...®iÒu nµy lµm tèc ®é ho¹t ®éng cña CPU kh«ng cao

Khi cã bé ®Öm lÖnh cã thÓ thùc hiÖn c¬ chÕ xö lý xen kÏ. Bé ®Öm lÖnh lµm viÖc theo kiÓu "vµo tr−íc, ra tr−íc " FIFO. C¸c lÖnh cø nhËn vÒ ®−a vµo ®Öm lÖnh råi lÊy dÇn ra xö lý, kh«ng mÊt thêi gian chê lÊy lÖnh sau khi thùc hiÖn.

NL

TH

THTH

GM

GMGM

NL

NL

TH

TH

TH

GM

GM

GM

NL

NL

NL

Hình 3.2. Thực hiện lệnh xen kẽ

3.2.2 C¸c thanh ghi của 8086/88

Sè « nhí mµ 8088 qu¶n lý ®−îc lµ 220 = 1024.210 bytes = 1MB; nh−ng vào thời kỳ này thanh ghi trong 8088 chØ cã ®é dµi 16 bit, nh− vËy chØ l−u gi÷ ®−îc 216 tr¹ng th¸i ®Þa chØ hay 64 KB. Muèn l−u gi÷ ®−îc 220 ®Þa chØ « nhí người ta cÇn ph¶i sö dông 2 thanh ghi theo c¬ chÕ segment:offset (Thanh ghi ®o¹n: Thanh ghi lÖch) §Þa chØ vËt lý = Thanh ghi ®o¹n * 16 + Thanh ghi lÖch

Thái Nguyên 7-2013 23

Page 25: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

§Þa chØ offst

§Çu ®o¹n

C¸c « nhí

§Þa chØ ®Çu ®o¹n - Segment

Hình 3.3. Cơ chế địa chỉ segment:offset VÝ dô cÆp thanh ghi CS:IP sÏ chØ ra ®Þa chØ cña lÖnh s¾p thùc hiÖn trong ®o¹n m·. NÕu t¹i 1 thêi ®iÓm nµo ®ã ta cã CS=F000h vµ IP = FFF0h th× ®Þa chØ cña « nhí vËt lý sÏ lµ: CS:IP ~ F000h * 16 + FFF0h = F0000h + FFF0h = FFFF0h CS : thanh ghi ®o¹n m· IP: thanh ghi con trá lÖnh T−¬ng tù víi c¸c thanh ghi d÷ liÖu : DS: Thanh ghi ®o¹n d÷ liÖu C¸c thanh ghi offset cã thÓ lµ DI, SI, BX... B¶n ®å bé nhí cña 8086: FFFFF PhÇn 1MB cô thÓ nh− bªn (§Þa chØ vËt lý) F0000 C0000 A0000 (0000:0400) 00400 (0000)0000: 00000 B¶ng vector ng¾t

d÷ liÖu cña DOS vµ BIOS

Hai file Èn cña DOS

Vïng dµnh cho c¸c ch−¬ng tr×nh øng dông

BIOS

RAM mµn h×nh

Hình 3.4. Bản đồ bộ nhớ máy tính sử dụng vi xử lý 80x86

Mét ch−¬ng tr×nh khi n¹p vµo trong bé nhí n»m ë 4 vïng(®o¹n): - Vïng chøa m· ch−¬ng tr×nh (Code segment) - Vïng chøa d÷ liÖu vµ kÕt qu¶ trung gian cña ch−¬ng tr×nh (Data segment) - Vïng ng¨n xÕp (stack) ®Ó qu¶n lý c¸c th«ng sè cña bé vi xö lý khi gäi ch−¬ng tr×nh con hoÆc trë vÒ tõ ch−¬ng tr×nh con (Stack segment) - Vïng d÷ liÖu phô (Extra segment)

Thái Nguyên 7-2013 24

Page 26: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

C¸c thanh ghi ®o¹n 16 bit chØ ra ®Þa chØ ®Çu (segment) cña 4 ®o¹n trong bé nhí.

- CS: Code Segment - DS: Data Segment - SS: Stack Segment - ES: extra Segment

Néi dung c¸c thanh ghi ®o¹n x¸c ®Þnh ®Þa chØ cña « nhí n»m ë ®Çu ®o¹n (®Þa chØ c¬ së). §Þa chØ cña c¸c « nhí kh¸c n»m trong ®o¹n tÝnh ®−îc b»ng c¸ch céng thªm vµo ®Þa chØ c¬ së 1 gi¸ trÞ gäi lµ ®Þa chØ lÖch (ofset) C¸c thanh ghi cña hä 80x86 nh− sau:

Thanh ghi con trá lÖnh IP kÕt hîp CS chØ ra ®Þa chØ lÖnh s¾p thùc hiÖn C¸c thanh ghi d÷ liÖu: AX,BX,CX,DX C¸c thanh ghi con trá, chØ sè: SP,BP,SI,DI C¸c thanh ghi ®o¹n: CS,DS,SS,ES C¸c thanh ghi cã ®é dµi 16 bit gåm 8 bit phÇn thÊp vµ 8 bit phÇn cao

VD: AX gåm AH vµ AL, BX gåm BH vµ BL... Thanh ghi cê - Thanh ghi cê:

+ B¸o tr¹ng th¸i cña kÕt qu¶ c«ng viÖc + Cho c¸ch thøc ®iÒu khiÓn CPU

x x x x 0 D I T S Z x A x P x C

Cã c¸c bit cê chÝnh: + Cê nhí C: Khi C=1 phÐp tÝnh cã nhí cã m−în + Cê nhí phô A: Dïng A=1 khi cã céng hay trõ sè BCD + Cê rçng Z: Z=1 th× kÕt qu¶ = 0 + Cê dÊu S: S=1 ACC ©m + Cê Parity: P=1 Khi sè bit 1 cña ACC ch½n + Cê trµn O: O=1 khi kÕt qu¶ kh«ng biÓu diÔn næi trong thanh ghi + Cê cho phÐp ng¾t: I=1 cho phÐp ng¾t + Cê h−íng thao t¸c D: Víi lo¹i d÷ liÖu d¹ng chuçi D=1 : Lïi

§Ó xem c¸c thanh ghi ho¹t ®éng ra sao ta cã thÓ dïng ch−¬ng tr×nh debug víi lÖnh T (Ch¹y tõng b−íc) vµ lÖnh R (xem c¸c thanh ghi)

Ch¼ng h¹n: C:\debug file.exe ↵ Ta còng cã thÓ dïng 1 ch−¬ng tr×nh Pascal ®¬n gi¶n sau ®Ó xem ho¹t ®éng cña c¸c thanh ghi: uses crt; begin

Thái Nguyên 7-2013 25

Page 27: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Repeat asm xor ax,ax

mov al,1 add al,5 sub al,3 ...

end; until keypressed end. Ên Alt+D råi vµo môc Registers. Sau ®ã Ên nh¶ phÝm F7 ®Ó ch¹y ch−¬ng tr×nh vµ xem c¸c thanh ghi trong CPU ®ang ho¹t ®éng ra sao. Sè l−îng c¸c thanh ghi vµ ®é lín cña chóng trong c¸c bé CPU hiÖn ®¹i ngµy cµng ®−îc t¨ng lªn còng lµ 1 yÕu tè lµm cho c¸c bé vi xö lý nµy ho¹t ®éng nhanh h¬n. Dung l−îng c¸c thanh ghi trong 1 sè vi xö lý hiÖn ®¹i: Tõ m¸y 386 c¸c thanh ghi ®a n¨ng vµ thanh ghi cê cã ®é lín gÊp ®«i (32 bit) C¸c thanh ghi ®o¹n (4 thanh ghi) ®é lín vÉn lµ 16 bit.

3.2.3 BiÓu ®å thêi gian cña chu kú ®äc ghi sè liÖu Trong tr−êng hîp b×nh th−êng mét chu kú ®äc/ghi cña CPU kÐo dµi 4 chu

kú ®ång hå. C¸c chu kú ®−îc d¸nh dÊu lµ T1-T4. NÕu CPU lµm viÖc víi tÇn sè ®ång hå 5MHz th× mét chu kú ®ßng hå kÐo dµi T=200 ns vµ mét chu kú bus kÐo dµi 800 ns.

TÝn hiÖu tr¹ng th¸i§Þa chØ

§Þa chØ æn ®Þnh

D÷ liÖu ghi A/D AD0 - AD7

Twr

Tgi÷W

DEN

WR

§Þa chØ

A8-A15

A/S A16/S3-A19/S6

CLK

ALE

Mét chu kú cña bus

Hình 3.5. C¸c tÝn hiÖu cña CPU 8088 trong chu kú ghi ®¬n gi¶n ho¸

Thái Nguyên 7-2013 26

Page 28: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Chu kú T1

Trong chu kú nµy ®Þa chØ cña bé nhí hay thiÕt bÞ ngo¹i vi ®−îc ®−a trªn

c¸c ®−êng ®Þa chØ, hoÆc ®Þa chØ/d÷ liÖu vµ ®Þa chØ/tr¹ng th¸i. C¸c tÝn hiÖu ®iÒu

khiÓn ALE, DT/ R , IO/ M còng ®−îc ®−a ra ®Ó hoµn tÊt viÖc gi÷ th«ng tin ®Þa chØ

nµy.

Chu kú T2

Chu kú nµy CPU ®−a ra c¸c tÝn hiÖu ®iÒu khiÓn RD vµ WR , DEN vµ tÝn

hiÖu trªn D0-7 nÕu ®ã lµ lÖnh ghi. DEN th−êng ®−îc dïng ®Ó më c¸c bé ®Öm cña

bus d÷ liÖu nÕu chóng ®−îc dïng trong hÖ. T¹i cuèi chu kú T2 CPU lÊy mÉu tÝn

hiÖu READY ®Ó xö lý trong chu kú tiÕp theo khi nã ph¶i lµm viÖc víi bé nhí hoÆc

thiÕt bÞ ngo¹i vi

Mét chu kú cña bus

TÝn hiÖu tr¹ng th¸i§Þa chØ

§Þa chØ æn ®Þnh

ADR/D AD0- AD7

TrD

Tgi÷W

ADR/A8-A15

A16/S3-A19/S6

CLK

ALE

ADR/S

D÷ liÖu ®äc§Þa chØ

RD

Hình 3.6. C¸c tÝn hiÖu cña CPU 8088 trong chu kú ®äc ®¬n gi¶n ho¸

DEN

Thái Nguyên 7-2013 27

Page 29: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Chu kú T3

CPU dµnh thêi gian cho bé nhí hay thiÕt bÞ ngo¹i vi truy xuÊt d÷ liÖu. NÕu

lµ chu kú ®äc d÷ liÖu th× t¹i cuèi chu kú T3 CPU sÏ lÊy mÉu tÝn hiÖu cña bus d÷

liÖu. Nếu tại cuèi chu kú T2 mµ CPU ph¸t hiÖn ra tÝn hiÖu READY=0 th× CPU tù

xen vµo sau chu kú T3 mét sè chu kú ®Ó t¹o chu kú ®îi TW = n*T nh»m kÐo dµi

thêi gian thùc hiÖn lÖnh, t¹o ®iÒu kiÖn cho bé nhí hoÆc thiÕt bÞ ngo¹i vi cã ®ñ thêi

gian hoµn tÊt viÖc ghi ®äc d÷ liÖu.

Chu kú 4

Trong chu kú nµy c¸c tÝn hiÖu trªn bus ®−îc gi¶i tho¸t ®Ó chuÈn bÞ cho chu

kú míi. TÝn hiÖu WR trong khi chuyÓn tr¹ng th¸i tõ 0 lªn 1 sÏ kÝch ho¹t qu¸ tr×nh

ghi vµo bé nhí hay thiÕt bÞ ngo¹i vi.

3.2.5 GhÐp nèi c¸c ch©n tÝn hiÖu 8088

Hình 3.7. Các chân tín hiệu của 8088 kªnh cña bus A/D phÇn thÊp

cña bit ®Þa chØ

ng¾t che ®−îc

che ®−îc: Tín hiệu ngắt từ lỗi cổng, lỗi bộ nhớ, lỗi

+ D0 - AD7: C¸c ch©n dån

+ A8..A15: C¸c bit phÇn cao

+ A16..A19: 4 ®−êng dån kªnh cña bus C/A cao

+ INTR: TÝn hiÖu yªu cÇu

+ NMI: TÝn hiÖu ng¾t kh«ng RAM CMOS.

Thái Nguyên 7-2013 28

Page 30: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ RESET: TÝn hiÖu khëi ®éng l¹i 8088: Khi chân này ở mức cao trong 4 clk CPU

sẽ khởi động lại CLK: TÝn hi+ Öu xung nhÞp ®ång hå.

+ lµm viÖc víi bé nhí hay thiÕt bÞ ngo¹i vi

INTA: ChÊp nhËn ng¾t

+ HOLD: Yªu cÇu treo CPU

+ HLDA: Tín hiệu ch n ×nh DMA + DT/R: Tín hiệu r iề h hiều của bus dữ liệu để chọn chiều

chuyển vận của d iệ ê ao khi vi xử lý chấp nhận treo.

MIN/MAX: Ở chế độ MIN chân này nối thẳng +5V không qua điện trở. Trong

+ ới nhau để chỉ ra việc truy nhập thanh ghi đoạn.

S4 S3 Truy nhập đến

+ READY: tín hiệu vào, b¸o cho CPU biÕt t×nh tr¹ng s½n sµng cña thiÕt bÞ ngo¹i vi.

+ RD: Xung cho phÐp ®äc

WR: Xung cho phÐp viÕt

+ IO/M: TÝn hiÖu ph©n biÖt

+

ra, Êp hËn treo cho qu¸ tr

a đ u k iển các đệm 2 cữ l u tr n bus D. Chân này ở trạng thái c

+chế độ min có thể hoạt động như 8085. Các bit trạng thái: S6 = 0 liên tục, S5 phản ảnh giá trị bit IF của thanh ghi cờ, S3 và S4 phối hợp v

Bảng 3.1 Ý nghĩa bit S3 và S4

0 0 Đoạn dữ liệu phụ 0 1 Đoạn ngăn xếp 1 0 Đoạn mã hoặc không đoạn nào 1 1 Đoạn dữ liệu

+ DEN: Tín hiệu ra tác động ở mức thấp, báo cho bên ngoài biết lúc này trên bus

dồn kênh AD có dữ liệu ổn định. Chân này ở trạng thái trở kháng cao khi vi xử lý chấp nhận treo.

ALE: Xung cho phÐp chèt ®Þa chØ. Khi ALE=1 bus dån kªnh sö dông cho ®Þa chØ. Khi CPU treo th× ALE=0.

Thái Nguyên 7-2013 29

Page 31: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

é vi xö lý 8 bit

c ph¶i thùc nh víi tÊt c¶ c¸c lo¹i vi xö lý ®Òu bao gåm 2 phÇn c¬ b¶n:

byte , nghÜa lµ cã thÓ m· ho¸ gÇn 216 lÖnh kh¸c nhau.

Ó lµ néi dung c¸c thanh ghi bªn trong bé vi xö lý, cã thÓ lµ néi

D:

ADD AL, [1020h]

ïng hÖ 2 hoÆc 16. Ph¸t triÓn ¬n dïng ng«n ng÷ gîi nhí, dïng ng«n ng÷ bËc cao.

m¸y } i÷a c¸c kh©u biÓn ®æi lµ c¸c ch−¬ng tr×nh dÞch

3.2.6 HÖ lÖnh cña b

• D¹ng thøc cña lÖnh M« t¶ ®−îc trong mçi lÖnh cÇn cã c¸c th«ng tin liªn quan ®Õn c«ng viÖhiÖn. Mét lÖ

• M· lÖnh: M· lÖnh th−êng lµ 1 byte, nghÜa lµ cã thÓ cã tíi 256 lÖnh kh¸c nhau trong tËp lÖnh cña bé vi xö lý. Trong 1 sè bé vi xö lý cã thÓ dïng 2 byte cho m· lÖnh, nh−ngthø 2 kh«ng dïng hÕt c¸c bit

• C¸c ®Þa chØ cña to¸n h¹ng To¸n h¹ng cã thdung c¸c « nhí V ADD AL, BL ADD AL, 7

C¸ch thøc ghi lÖnh (ViÕt lÖnh nh− thÕ nµo ?) Ng«n ng÷ m¸y dïng tËp hîp c¸c tÝn hiÖu 0/1 m¸y tÝnh lµm viÖc víi c¸c tÝn hiÖu nµy. §Ó viÕt lÖnh ta cã thÓ dh

{ Tõ ng«n ng÷ bËc cao → assembly → ng«n ng÷G

Thái Nguyên 7-2013 30

Page 32: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ng«n ng÷ m¸y 10111010 0000001 1011 0000 10001001 1

3h B0h 89h îp n 03

ascal PORT[$303]:=$89;

C¸ch m

M· lÖnh gåm 3 phÇn:

Bit D Ó chØ d÷ liÖu

c¸c bÝt vïng Reg

Bảng 3.2 Các giá và mã

W=1 W=0 M∙

BAh 0H g÷ mov DX,03 mov al,89 P

· ho¸ lÖnh cña 8088

Opcode + dÞch chuyÓn + d÷ liÖu trùc tiÕp hoÆc ®Þa chØ trùc tiÕp

dïng ® h−íng ®i cña D = 1 Data -> Reg D = 0 Data <- Reg Reg: chØ ra nhê

W = 0 lµ kiÓu Byte W = 1 lµ kiÓu Word

trị W REG

reg

ax al 000

Bx Bl 011

Cx Cl 001

Dx Dl 010

Sp Ah 100

Di Bh 111

Bp Ch 101

Si Dh 110

2 bit MOD cïng víi 3 bit R/M (thanh ghi/ bé nhí) t¹o ra 5 bit dïng ®Ó chØ

ra chÕ ®é ®Þa chØ cho c¸c to¸n h¹ng c©u lÖnh.

Op.code 1 0 0 0 1 0 D W

Mod Reg M/R Disp L Disp H

Thái Nguyên 7-2013 31

Page 33: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

B¶ng 3.3: Phèi hîp MOD vµ R/W ®Ó t¹o ra c¸c chÕ ®é ®Þa chØ

\mod 00 01 10 11

Mr W=1 W=0

000 [bx]+[si] [bx]+[si]+d8 [bx]+[si]+d16 Al ax

001 [bx]+[di] [bx]+[di]+d8 [bx]+[di]+d16 cl cx

010 [bp]+[si] [bp]+[si]+d8 [bp]+[si]+d16 Dl dx

011 [bp]+[di] [bp]+[di]+d8 [bp]+[di]+d16 bl bx

100 [si] [si]+d8 [si]+d16 ah sp

101 [di] [di]+d8 [di]+d16 ch bp

110 d16 (®/c tt) [bp] + 8 [bp] DH SI d +d8

111 [bx] [bx]+d8 [bx]+d16 Bh Di

ChÕ ®é bé nhí ChÕ ®é Reg

Ghi chó:

+ d8 disp 8 bit, d16 disp 16 bit

víi DS ®Ó t¹o thµnh ®Þa chØ vËt lý (riªng BP ph¶i ®−îc céng víi

SP)

vÝ dô1: Mov CL,[BX]

chuyÓn néi dung « nhí cã ®Þa chØ n»m ë thanh ghi BX

+ C¸c gi¸ trÞ trong cét 2,3,4 lµ c¸c ®Þa chØ hiÖu dông (EA) sÏ ®−îc

céng

10010 10 00 001 111

Opcode [BX] M· ho¸ CLChuyÓn tíi thanh ghi

Thái Nguyên 7-2013 32

Page 34: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

vÝ dô 2: Mov 0F3H[SI],CL

a c lµ c thÊy to¸n h¹ng cho c¸c lÖnh cña nã khi ho¹t ®éng.

n

; 0 to¸n h¹ng ; 3 to¸n h¹ng

V

chøa d÷ liÖu cÇn thao t¸c. V : huyÓn néi dung ax vµo bx

nhí, to¸n h¹ng nguån lµ g sè. Cã thÓ dïng chÕ ®é ®Þa chØ nµy ®Ó n¹p d÷ liÖu cÇn thao t¸c trùc tiÕp vµo

bÊt cø thanh ghi nµo (trõ thanh ghi ®o¹n vµ thanh ghi cê) VD:

hí dïng chøa d÷ liÖu, cßn

V : « nhí DS:123 vµo al

[SI] M· ho¸ CL

100010 00 00 001 111 11110011

Opcode d8 = F3H ChuyÓn tõ thanh ghi

C¸c chÕ ®é ®Þa chØ ChÕ ®é ®Þ hØ ¸ch CPU t×mMét lÖnh th−êng cã 0 ®Õn 3 to¸n h¹ng (Tuú theo lo¹i CPU)M· lÖ h To¸n h¹ng MOV A, B ; 2 to¸n h¹ng INC A ; A=A+1 ; 1 to¸n h¹ng NOP ADD R1,R2,R3

D : CJNE A,#20h, Nh·n 8086/88 Cã c¸c chÕ ®é địa chỉ sau:

• ChÕ ®é ®Þa chØ thanh ghi: Trong chÕ ®é nµy dïng c¸c thanh ghi bªn trong CPU ®Ó

D MOV BX,AX ; C MOV DS,AX ; ChuyÓn néi dung ax vµo ds

• ChÕ ®é ®Þa chØ tøc th×: Trong chÕ ®é nµy: To¸n h¹ng ®Ých lµ 1 thanh ghi hay 1 « 1 h»n

MOV CL,100 MOV AX,0FFh MOV DS, AX

• ChÕ ®é ®Þa chØ trùc tiÕp: Trong chÕ ®é nµy 1 to¸n h¹ng chøa ®Þa chØ lÖch cña « nto¸n h¹ng kia chØ cã thÓ lµ thanh ghi mµ kh«ng ®−îc lµ « nhí (Kh«ng ph¶i lµ to¸n h¹ng mµ lµ ®Þa chØ cña to¸n h¹ng)

D mov al,[1230h] ; ChuyÓn néi dung MOV [4560h],CX ; ChuyÓn néi dung CX vµo « nhí DS: 4560 vµ DS:4561

• ChÕ ®é ®Þa chØ gi¸n tiÕp qua thanh ghi

Thái Nguyên 7-2013 33

Page 35: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Trong ¸n lÖch cña « u, c ®−îc lµ « nhVD:

éi dung « nhí cã ®Þa chØ DS:BX vµo AL

(DI+1)

hÕ ®é ®Þa chØ t−¬ng ®èi c¬ së c¸c

to¸n h¹ng trong c¸c

+10] v S:[BX+11] vµo CX

AL,[BP]+5 ;ChuyÓn néi dung « nhí SS:(BP+5) vµo AL

¬ng diÔn c¸c

dïng ®Ó tÝnh ®Þa chØ cña to¸n h¹ng trong vïng nhí DS

M g 2 « nhí liªn tiÕp cã ®Þa chØ

MOV AX,(SI+10)

Þa chØ chØ sè vµ c¬ së ta cã chÕ ®é ®Þa chØ chØ sè c¬ së

MO

ng−êi cÇm chÞch ®øng ®Çu thuyÒn. Xung nhÞp cµng cao tèc ®é xö lý cña vi xö lý cµng cao. Mét lÖnh m¸y cã thÓ tèn mét ®Õn vµi chôc xung nhÞp.

chÕ ®é nµy 1 to h¹ng lµ 1 thanh ghi ®−îc sö dông ®Ó chøa ®Þa chØnhí chøa d÷ liÖ ßn to¸n h¹ng kia chØ cã thÓ lµ thanh ghi mµ kh«ngí

MOV AL,[BX] ; ChuyÓn nMOV [SI], CL ; ChuyÓn néi dung CL vµo « nhí cã ®Þa chØ DS:SI MOV [DI],AX ; ChuyÓn néi dung AX vµo 2 « nhí liªn tiÕp cã ®Þa chØ DS:DI vµ DS:

• CTrong chÕ ®é nµy c¸c thanh ghi c¬ së nh− BX vµ BP vµ c¸c h»ng sè biÓu diÔngi¸ trÞ dÞch chuyÓn ®−îc dïng ®Ó tÝnh ®Þa chØ hiÖu dông cña ¸c vïng nhí DS vµ SS VD: MOV CX, [BX]+10 ; ChuyÓn néi dung 2 « nhí cã ®Þa chØ DS:[BX

µ DHoÆc MOV CX,[BX+10] MOV CX,10[BX] ; Gièng trªn MOV

• ChÕ ®é ®Þa chØ t− ®èi chØ sè Trong chÕ ®é nµy c¸c thanh ghi chØ sè nh− SI vµ DI vµ c¸c h»ng sè biÓugi¸ trÞ dÞch chuyÓn ®−îc VD:

OV AX, [SI]+10 ;ChuyÓn néi dun DS:(SI+10) vµ DS:(SI+11) vµo AX hoÆc MOV CL,[DI]+5 ; ChuyÓn néi dung « nhí DS:(DI+5) vµo CL

• ChÕ ®é ®Þa chØ t−¬ng ®èi chØ sè c¬ së KÕt hîp hai chÕ ®é ®VD:

V AX,[BX][SI]+8 ;ChuyÓn néi dung 2 « nhí liªn tiÕp cã ®Þa chØ DS:(BX+SI+8) vµ DS:(BX+SI+9) vµo AX TËp lÖnh cña 8088

• Xung ®ång hå clk lµ g×? C¸c thµnh phÇn trong 1 vi xö lý khi ho¹t ®éng ®−îc ®ång bé víi nhau theo mét

xung nhÞp gièng nh− trong mét chiÕc thuyÒn ®ua c¸c tay chÌo chÌo theo nhÞp cña

Thái Nguyên 7-2013 34

Page 36: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

VD: Trong 8086/88 lÖnh mov tèn 4 xung nhÞp, lÖnh loop tèn 17 xung nhÞp,

lÖnh RET tèn 16 xung nhÞp...Mçi mét xung nhÞp gäi lµ 1 clk (clock = xung ®ång ) ý hiÖn nay (1/2008) ®· ®¹t ®Õn tèc ®é trªn 4GHz (Trªn 4 tû clk

mộ• MS

Üa nhÊt gäi lµ MSB bit)

i lµ LSB (Lest signification bit)

• Mét sè lÖnh hay dïng

+ ADD: Céh: gốc

ích ← Đích + Gốc

+ AND: Vµ

ốc theo bit

BL là 13h L

tr×nh con t lệnh: CALL tên chương trình con

CF

IF ← + CMP: so

CMP đích, gốc c với đích. Thường dùng để tạo điều kiện cho

h đi một đơn vị ang là 12. Lệnh dec al sẽ cho kết quả al bằng 11.

cã dÊu Viết lệnh: DIV gốc

hå . C¸c vi xö lt gi©y).

B - LSB − Trong 1 ®¬n vÞ d÷ liÖu (byte hay word) th× bit cã ý ngh

(Most signification

− Bit Ýt cã ý nghÜa nhÊt gä

ng hai to¸n h¹ng Viết lện ADD đích,Thực hiện: ĐVí dụ: add ax,bx 2 to¸n h¹ng Viết lệnh: AND đích, gốc Thực hiện: Đích ← Đích AND GVí dụ: Nội dung của AL là 03h Nội dung của and al,bl cho kết quả là 03h cất trong A

+ CALL: Gäi ch−¬ngViế

+ CLC: Xo¸ cê nhí ← 0

+ CLI: Che c¸c ng¾t che ®−îc

0 s¸nh 2 byte hay 2 tõ Viết lệnh: Thực hiện: So sánh gốlệnh nhảy.

+ DEC: Gi¶m to¸n h¹ng ®Ých ®i 1 Viết lệnh: DEC Đích

Thực hiện: Giảm đícVí dụ: AL đ

+ DIV: Chia 2 sè kh«ng

Thái Nguyên 7-2013 35

Page 37: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

o dấu 16

o

thanh ghi DXAX. Sau khi chia: AX ←

+ g thái dừng chỉ có thể tác động vào các chân INTR, NMI hoặc

+ IN: §äc d÷ liÖu tõ cæng vµo thanh chøa Acc

thanh chứa. a địa chỉ cổng qua thanh ghi DX.

+ INC: T¨n ®

Ví dụ: AL đang là 12. Lệnh inc al sẽ cho kết quả nội dung của al tăng

+ NC, JB/JC/JNAE, JBE/JNA, JE/JZ, JG/JNLE, JGE/JNL, JL,

ơn ơn

g 0

JBE: Nhảy nếu thấp hơn hoặc bằng

ã µo thanh ghi

Thực hiện: Nếu gốc là số 8 bit: AX/gốc, số bị chia phải là số không bit để trong AX. Sau khi chia AL ← thương, AH ← số dư Nếu gốc là số 16 bit: DXAX/gốc. Số bị chia phải là số không dấu 32 bit để trong cặp thương, DX ← số dư.

HLT Dừng: Khi gặp lệnh này các hoạt động của 8088 bị tạm dừng. Để thoát khỏi trạnRESET.

Viết lệnh: IN Acc, Port Thực hiện: Acc ← Port. Đọc nội dung của cổng Port vàoKhi địa chỉ cổng lớn hơn ffh cần đư

g to¸n h¹ng Ých lªn 1 Viết lệnh: INC Đích

Thực hiện: Tăng đích lên một đơn vị Đích ← Đích +1 lên 1 là 13. + IRET: Trë vÒ tõ ch−¬ng tr×nh con phôc vô ng¾t

JA/JNBE, JAE/JNB/J JNGE, JLE/JNG A: Above - Cao hơn, ở phía trênE: Equal - Bằng, tương đươngB: Below - Ở dưới, thấp hG: Great than - Lớn hLess than - nhỏ hơn JZ: Nhảy nếu kết quả bằnJC: Nhảy nếu có cờ nhớ JAE: Nhảy nếu cao hơn hoặc bằng

... + JMP: Nhảy vô điều kiện ®Õn mét ®Ých nµo ®

+ LEA: N¹p ®Þa chØ hiÖu dông v Viết lệnh LEA Đích, gốc

Thái Nguyên 7-2013 36

Page 38: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Thực hiện: Đích thường là một trong các thanh ghi BX, CX, DX, BP, DI,

ột biến mảng, chuỗi.

iết lệong CX, sau mỗi lần thực hiện CX tự giảm đi 1.

i vòng lặp Ví dụ: Hiện

n

: MOV đích, gốc Thực hiện: C ng của gốc vào đích Ví dụ:

của al và bl đều bằng 5

Viế Thực ốc có hai trường hợp

tích. o Nếu gốc là số 16 bit: AX*gốc. Số bị nhân phải là số 16 bit trong AX.

khi nhân DXAX ← tích. Ví dụ:

mul bl; AL = 35 ng 8 clk

+ OR: HoÆc 2 to¸n h¹ng

SI hoặc là địa chỉ offset của m+ LOOP: LÆp ®o¹n ch−¬ng tr×nh V nh: LOOP nhãn Thực hiện: Số lần lặp tr

Khi cx = 0 ra khỏ5 ký tự ‘A’ mov cx, 5 hien: mov dl, ‘A’ mov ah, 2 int 21h loop hie

+ MOV: Di chuyÓn byte hay tõ Viết lệnh

opy nội du

mov al, 7 mov bl, 5 mov al, bl

Sau đoạn lệnh này nội dung + MUL: Nh©n sè kh«ng dÊu

t lệnh: MUL gốc hiện: Tuỳ theo độ dài của toán hạng g

o Nếu gốc là số 8 bit để trong AL: AL * gốc, số bị nhân là số 8 bit để trong AL. Sau khi nhân AX ←

Sau

mov al,7 mov bl,5

+ NOP: Kh«ng lµm g× tro

Thái Nguyên 7-2013 37

Page 39: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Viết lệnh: OR đích, gốc Thực hiện: Lấy nội dung của gốc OR với nội dung của gốc theo bit, kết

quả cất vào đích Ví dụ:

ng 1f1fh + OU i g

n đưa địa chỉ cổng qua thanh ghi DX. ng¨n xÕp

xÕp

ình 3.7) L đích, CL

Thực hiện:

Hình 3.8. Quay trái qua cờ nhớ

nội dung cũ của MSB. Nếu số lần quay hay đổi

iện: RCR đích, CL

mov ax, 001fh mov bx, 1f00h or ax, bx; kết quả AX bằ

T: §−a d÷ l Öu tõ Acc ra cænViết lệnh: OUT Port, Acc

Thực hiện: Port ← Acc. Đưa nội dung của thanh chứa ra Port. Khi địa chỉ cổng > ffh cầ+ POP: LÊy l¹i 1 tõ tõ ®Ønh Viết lệnh: POP đích Thực hiện: Đích ← {SP} SP ← SP + 2 + PUSH: CÊt 1 tõ vµo ng¨n Viết lệnh: PUSH gốc Thực hiện: gốc → {SP} SP ← SP - 2 + RCL: Quay tr¸i qua cê nhí (h Viết lệnh: RC CF MSB LSB

Sau khi quay 1 lần nội dung cờ CF mangtrong CL là 9 thì kết quả không t+ RCR: Quay phải qua cê nhí

CF MSB LSB Viết lệnh: RCR đích, CL Thực h Hình 3.9. Quay phải qua cờ nhớ

Thái Nguyên 7-2013 38

Page 40: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Sau khi quay 1 lần nội dung cờ CF mang nội dung cũ của LSB. Nếu số lần quay

thay đổi. on

g sang tr¸i

Thực hiện: MSB được đưa vào cờ CF và LSB.

g đổi. Sau 4 lần quay thì 2 nibble bị đổi chỗ. vßng sang ph¶i

Thực hiện:

đổi. Sau 4 lần quay thì 2 nibble bị đổi chỗ.

SHL đích, CL Toán hạng đích có thể tìm được theo các chế độ địa chỉ c nhau

iện:

ông dấu

ích, CL Toán hạng đích có thể tìm được theo các chế độ địa chỉ khác nhau Thực hiện:

được giữ lại. Thực hiện phép chia 2 số có dấu

trong CL là 9 thì kết quả không+ RET: Trë vÒ tõ ch−¬ng tr×nh c

+ ROL: Quay vßn Viết lệnh: ROL đích, CL

CF MSB LSB

Hình 3.10. Quay vòng sang trái

Nếu sau 8 lần quay kết quả khôn+ ROR: Quay CF MSB LSB

Viết lệnh: ROR đích, CL

LSB được đưa vào cờ CF và MSB. Hình 3.11. Quay vòng sang phải

Nếu sau 8 lần quay kết quả không + SAL: DÞch tr¸i sè häc Viết lệnh: SAL đích, CL khá Thực h

CF MSB LSB

0

Hình 3.12 Thực hiện phép nhân 2 số kh+ SAR: DÞch ph¶i sè häc Viết lệnh: SAR đ CFMSB LSB

. Dịch trái số học

Hình 3.13. Dịch phải số học Sau mỗi lần dịch phải MSB

Thái Nguyên 7-2013 39

Page 41: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ SHR Dịch phải logic Viết lệnh: SAL đích, CL SHL đích, CL Toán hạng đích có thể tìm được theo các

chế độ địa chỉ

Thực hiện:

a số không dấu g¾t

: SUB đích, gốc Thực hiện: đ h - gốc Ví dụ:

6

án hạng tra. Xoá CF, OF. Cập nhật PF, SF, ZF.

n hiÖu mức thấp tõ ch©n TEST hoÆc INTR + XCHG: T

ội dung ah và al

Thực hiện phép XOR theo bit giữa hai toán hạng. Kết quả cất vào đích.

í dụ: XOR AX, AX; xoá thanh ghi AX

khác nhau

CF MSB LSB

0 Hình 3.14. Dịch phải logic

Thực hiện phép chia cho 2 củ+ STI: LËp cê cho phÐp n

IF ← 1 + SUB: Trõ 2 to¸n h¹ng Viết lệnh

ích ← đíc

mov al,9 mov bl,3 sub bl,al; bl =

+ TEST: Vµ 2 to¸n h¹ng ®Ó t¹o cê Viết lệnh: TEST đích, gốc Thực hiện: Lấy gốc thực hiện phép ‘VÀ’ với đích. Nội dung tokhông thay đổi chỉ dùng để tạo cờ kiểm+ WAIT: CPU nghỉ và chê tÝ

r¸o néi dung 2 to¸n h¹ng XCHG đích, gốc

xchg ah, al; Tráo đổi n+ XOR: HoÆc lo¹i trõ 2 to¸n h¹ng

Viết lệnh: XOR đích, gốc

V

Thái Nguyên 7-2013 40

Page 42: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

LËp tr×nh hîp ng÷ víi 8088

ng

Tªn TIEP: KiÓm tra bit 5 cña thanh ghi LSR

tªn nh·n, tªn biÕn, tªn thñ tôc. Kh«ng ®−îc chøa dÊu u b»ng sè

+ g to¸n h¹ng

ph¶i lµ nghÜa bãng kh«ng dïng nghÜa

− D÷ ng÷

+ Lo¹i sè: HÖ 2, 1 ng hÖ 2 hoÆc 16 ph¶i thªm ký tù b¸o

L sè 16 MOV AL, 10b; §−a vµo AL sè 2

ý tù: Gåm ký tù ®¬n vµ ký tù chuçi

− BiÕ »ng

®Çu DB 7

DW Gi¸ trÞ khëi ®Çu

ký tù

CR EQU 0Dh; carriage return LF EQU 0Ah; line feet

• Giíi thiÖu khung cña ch−¬ng tr×nh hîp ÷

− CÊu tróc cña 1 lÖnh hîp ng÷ M· lÖnh C¸c to¸n h¹ng Chó gi¶i AND AL,20h ;

+ Tr−êng tªn: Chøac¸ch, kh«ng b¾t ®Ç

+ Tr−êng m· lÖnh:

Tr−ên

+ Tr−êng chó gi¶i: Lêi gi¶i thÝch®en.

liÖu cho ch−¬ng tr×nh hîp

0, 16. NgÇm ®Þnh lµ hÖ 10. NÕu dïhiÖu. VD: MOV AL, 10 ; §−a vµo AL sè 10 MOV AL, 10h; §−a vµo A

+ Lo¹i k

n vµ h

+ BiÕn byte: Tªn DB Gi¸ trÞ khëi B1 C1 DB '$'

+ BiÕn tõ: Tªn B1 DW 64

+ BiÕn m¶ng: M DB 2,4,5,9,12,3

+ BiÕn kiÓu x©u tb DB 'A nho hon B$'

+ H»ng cã tªn:

Thái Nguyên 7-2013 41

Page 43: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Khung cña 1 ch−¬ng tr×nh hîp ng÷

XE khi n¹p vµo trong bé nhí sÏ a mçi ®o¹n chøa trong 4

khi ch−¬ng tr×nh COM chØ nằm trong 1

m« sö dông bé nhí

ata .Code Main

h cña thñ tôc chÝnh, c¸c lêi gäi ch−¬ng tr×nh con hµm 4Ch cña INT21h

¬ng tr×nh con 1

ng tr×nh con 2

C2 endp END MAIN

M

ode RG 100h

Üa cho c¸c biÕn vµ h»ng ®Ó t¹i ®©y

lÖnh cña ch−¬ng tr×nh chÝnh

Khung cña ch−¬ng tr×nh EXE

Một ch−¬ng tr×nh En»m trong 4 đoạn, ®Þa chØ ®Çu cñthanh ghi ®o¹n, trong®o¹n. .Model Quy.Stack KÝch th−íc .D Khai b¸o d÷ liÖu

proc ; Khëi t¹o ®o¹n d÷ liÖu

mov Ax,@data mov ds,ax ; c¸c lÖn

; trë vÒ DOS dïngmov ah,4ch int 21h

Main endp CTC1 proc ; c¸c lÖnh cña ch− RET CTC1 endp CTC2 proc ; c¸c lÖnh cña ch−¬ RET CT

Khung cña ch−¬ng tr×nh CO.Model tiny .C OSTART: JMP Continue ; §Þnh nghMain proc ; c¸c

Thái Nguyên 7-2013 42

Page 44: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

INT 20h Main endp END S

• C¸ tC¸c b−

guån

c TASM.EXE

• C¸c cÊu tróc lËp tr×nh c¬ b¶n trong Assembly

− CÊu tróc tuÇn tù: Lµ cÊu tróc th«ng dông vµ ®¬n gi¶n nhÊt. Trong cÊu tróc nµy c¸c lÖnh s¾p xÕp tuÇn tù, lÖnh nä tiÕp lÖnh kia

LÖnh 2 ... LÖnh N

kh¸c 0 ? kh«ng th× g¸n lu«n

inc al ; NÕu AL = 0 th× t¨ng al lªn 1 BL, AL

RA: .....

− CÊu tróc CASE

TART

ch ¹o vµ cho ch¹y 1 ch−¬ng tr×nh hîp ng÷ íc:

+ So¹n m· n

+ DÞch ra file .OBJ b»ng MASM.EXE hoÆ

+ Liªn kÕt c¸c tÖp OBJ b»ng LINK.EXE hoÆc TLINK.EXE

+ Ch¹y thö

LÖnh 1

CÊu tróc lùa chän

Hình 3.15. Cấu trúc IF

§iÒu kiÖn §iÒu kiÖn

C«ng viÖc C«ng viÖc1 C«ng viÖc2

§

§

S S

IF - THEN IF - THEN - ELSE

VD: cmp al, 0 ; AL jne GAN ; NÕu

GAN: mov

Thái Nguyên 7-2013 43

Page 45: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 3.16. Cấu trúc CASE D:

CM

− CÊu tróc for-do

Hình 3.1 trúc FOR-DO − CÊu tróc while-do

Hình 3.18. Cấu trúc WHILE-DO

BiÓu thøc

C«ng viÖc 1 C«ng viÖc 2 C«ng viÖc N

Gi¸ trÞ 1 Gi¸ trÞ 2 Gi¸ trÞ N

VP AL,0

JE

C«ng viÖc

Khëi ®Çu bé ®Õm

Gi¶m bé ®Õm ®i 1

Bé ®Õm = 0?

S

§

7. Cấu

®iÒu kiÖn

c«ng viÖc

§

S

Thái Nguyên 7-2013 44

Page 46: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− CÊu tróc repeat-until

TIL • ộ số hàm, ng ình hợp ngữ

à 1 củ ngắ

SCII của ký tự

iện một ký tự lên màn hình

cần hiển thị Hàm 4

g cách trừ đi 30H (do giá trị thực của con số và mã ASCII của nó cách nhau 0h trong bảng mã ASCII). Ngược lại khi muốn hiện một giá trị số đã có trong

ải đổi giá trị số đó ra mã ASCII của nó bằng cách OR với giá trị 0H.

• Các ví dụ:

Viết ra màn hình câu chào “Hello!”

c«ng viÖc

®iÒu kiÖn

§

S

Hình 3.19. Cấu trúc REPEAT-UN

M t ắt hay được sử dụng trong lập trH m a t INT 21H: Nhập ký tự vào từ bàn phím Vào: AH=1 Ra: AL = mã A AH = 0 khi ký tự gõ vào là phím chức năng Hàm 2 của ngắt INT 21H: H Vào: AH = 2

DL: Mã ASCII của ký tự cần hiện Hàm 9 của ngắt INT 21H: Vào: AH = 9

DX: Địa chỉ lệch của chuỗi ký tựCH của ngắt INT 21H:

Vào: AH = 4Ch • Chuyển đổi giữa mã ASCII của ký tự số và giá trị số Khi chúng ta nhập một ký tự số vào từ bàn phím của máy tính mã ASCII của nó được đặt trong thanh ghi AL và đây không phải là giá trị số. Nếu muốn tính toán với giá trị của con số nhập vào chúng ta phải đổi mã ASCII đó ra giá trị số bằn3thanh ghi ta lại ph3

Ví dụ 1.

Thái Nguyên 7-2013 45

Page 47: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

file chao.asm

ode100

.data tp db '.code

main pdata

ax

h

mov ah,4ch int 21h

end main

. Hiện bảng mã ASCII file ascii.asm

ode20

I$'

,dx

.m l small

.stack

Hello!$'

roc mov Ax,@Mov ds,mov ah,9 lea dx,tpint 21

main endp

Ví dụ 2

.m l small

.stack

.data tb db 'Bang ma ASCI.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb int 21h xor dx mov cx,255 mov ah,2 lap: int 21h inc dl push dx

Thái Nguyên 7-2013 46

Page 48: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov dl,' '; tạo khoảng cách

ah,4ch m p end main

Ví dụ 3. Nhập ký tự từ bàn phím. Kiểm tra xem ký tự nhập có phải là ký tự số

file kt_sochu.asm

ode

u $' i la ky tu so $'

1

39h

ah,4ch

int 21h pop dx loop lap mov

int 21h ain end

không?

.m l small .stack 20 .data tb1 db 'nhap ky t tb2 db 'day khong pha.code main proc mov ax,@data mov ds,ax nhaplai:mov ah,9 lea dx,tb int 21h mov ah,1 tiep:int 21h cmp al,30h jb sai cmp al, jg sai jmp tiep sai:mov ah,9 lea dx,tb2 int 21h jmp nhaplai ra:mov

Thái Nguyên 7-2013 47

Page 49: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

main endp

. Nhập hai số vào từ bàn phím. So sánh hai số. file so_sanh1.asm

ode

ata '

= $' tb3 db ' a > b $'

proc ata

x

1

l

2

int 21h

end main Ví dụ 4

.m l small

.stack 20

.d tb1 db 'nhap a= $ tb2 db 'nhap b tb4 db ' a < b $' tb5 db 'a=b$'.code mainmov ax,@dmov ds,amov ah,9 lea dx,tbint 21h mov ah,1 int 21h sub al,30h mov bl,amov ah,9 lea dx,tbint 21h mov ah,1 int 21h sub al,30h cmp al,bl je a_bang_b jnl b_to jmp b_nho a_bang_b: mov ah,9 lea dx,tb5

Thái Nguyên 7-2013 48

Page 50: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

int 21h jmp ra b_to:mov ah,9 lea dx,tb4 int 21h jmp ra b_nho:mov ah,9

4ch main endp

. Tính tổng (hiệu) hai số có kết quả nhỏ hơn 10 nhập vào từ bàn phím file cong.asm

ode

ata tb1 db 'nhap so a = $'

'nhap so b = $' '

ap a

i ra so

hap b

lea dx,tb3 int 21h ra:mov ah,

int 21h

end main Ví dụ 5

.m l small

.stack 20

.d tb2 db tb3 db 'tong 2 so la: $.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h mov ah,1 ; nh int 21h sub al,30h ; do mov bl,al mov ah,9 lea dx,tb2 int 21h mov ah,1 ; n

Thái Nguyên 7-2013 49

Page 51: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

int 21h sub al,30h ; doi ra so

i ra ma ASCII cat vao BL de con su dung DX

; hien tong ra ah,4ch

int 21h en

Ví dụ 6Có một ả ần tử trong bộ nhớ. Để hiện mảng m làm các bước sau:

ứ nhất vào DL

+ Tăng SI (hoặc DI) lên 1 p theo ho dấu ‘ ‘ (dấu cách) vào

Lặp n lần file hien_arr.asm

ode

mang$'

add al,bl mov dl,al or dl,30h ; do mov bl,dl ; mov ah,9 lea dx,tb3 int 21h mov dl,bl mov ah,2 int 21h mov

main endp d main

. Hiện một mảng phần tử trong bộ nhớ m ng m có n ph+ Đưa đầu mảng m → DX → SI (hoặc DI) + Chuyển ô nhớ chứa phần tử th+ Hiện

trỏ vào phần tử tiế+ C+

.m l small

.stack 20

.data tb db 'gia tri cua m db 7,4,5,7,2,8 .code main proc mov ax,@data mov ds,ax

Thái Nguyên 7-2013 50

Page 52: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

lea dx, m mov cx,6 mov di,dx lap: mov dl,[di]

lap ah,4ch

int 21h mend main

. Tìm max file tim_max.asm

ode

ata

i,si

eu van to hon lam tiep hong doi cho

or dl,30h mov ah,2 inc di int 21h mov dl,' '; dấu cách int 21h loop mov

ain endp

Ví dụ 7

.m l small

.stack 20

.data tb db 'max = $' m db '3','4','5','7','2','8' .code main proc mov ax,@d mov ds,ax lea dx, m lap:mov si,dx mov d mov al,[di] mov cx,5 tiep:inc si cmp al,[si] jg timtiep; n mov di,si ; neu k

Thái Nguyên 7-2013 51

Page 53: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov al,[di] ; roi lam tiep

h ah,4ch

ain endend m• Ch

+ n hơn. Ví dụ 8. Viết chương trình th hân, chia 2 số nhập vào từ bàn

0). Các chương trình nhập, hiển thị, cộng, nhân, chia ng trình con.

file ctcong.asm .mode tack ata

'cong bam 1, nhan bam 2, chia bam 3 $'

timtiep:loop tiep mov dl,al push dx mov ah,9 lea dx,tb int 21h pop dx mov ah,2 int 21 mov int 21h m p

ain ương trình con

Lợi ích của chương trình con: + Cho phép sử dụng lại các đoạn mã có công dụng giống nhau nhiều lần

trong nhiều chương trình. Mã nguồn của chương trình gọ

ực hiện cộng, nphím (có kết quả <1viết ở dạng chươ

l small .s 20 .d

tb1 db 'a=$' tb2 db 'b=$' tb3 db 'a+b=$' tb4 dbtb5 db 'a*b =$' tb6 db 'a/b=$'

.code main proc mov ax,@data

Thái Nguyên 7-2013 52

Page 54: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov ds,ax mov ah,9 lea dx,tb1 int 21h call nhap push ax mov ah,9 lea dx,tb2 l; so b trong bl

4

hnhan

tinhco

tinhnh

int 21h call nhap mov bl,amov ah,9 lea dx,tbint 21h mov ah,1 int 21h cmp al,31h je tinhcong cmp al,32h je tincmp al,33h je tinhchia

ng: pop ax call cong push ax mov ah,9 lea dx,tb3 int 21h pop ax call hienketqua jmp ra an: pop ax call nhan push ax mov ah,9 lea dx,tb5

Thái Nguyên 7-2013 53

Page 55: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

int 21h pop ax

tinhch

a

ain e

ap kys tu so, roi doi ra so nhap tu ban phim

e

a so a BL: Chua so b chua ket qua phep cong

ua ket qua phep cong

call hienketqua jmp ra ia: pop ax call chia push ax mov ah,9 lea dx,tb6 int 21h pop ax call hienketqu jmp ra

ra: mov ah,4ch int 21h

m ndp nhap proc ;Thuc hien nh ; RA: AL chua so mov ah,1 int 21h sub al,30h ret nhap ndp cong proc ;VAO: AL: Chu ;RA : AL add al,bl or al,30h ret cong endp hienketqua proc ;VAO: AL ch mov dl,al mov ah,2 int 21h

Thái Nguyên 7-2013 54

Page 56: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

ret hienketqua endp nhan proc ;VAO: AL: so bi nhan BL: so nhan

ua trong AX . voi so <10 trong AL

ep

BL:b t qua

r al,30h ret

viết ra chỉ có thể dùng cho hươn con trong

ở sauđược

n trong ơng trình con chia trong file ‘div.asm’. Các file chứa

n đặt trong cùng thư mục chứa file chương trình chính. khai các chương trình con bây giờ chỉ cần INCLUDE...

;RA: ket q mul bl or al,30h ret nhan ndp chia roc ;thuc hien a/b ;VAO AL: ra ;RA:AL chua ke mov ah,0 div bl o

chia endp END MAIN

Chương trình chính và chương trình con chứa trong các tệp khác nhau

Các chương trình con chúng ta có thể viết ngay dưới chương trình chính trong cùng một file mã nguồn, khi đó chương trình con được c g trình chính cũng trong file đó. Để có thể sử dụng chương trìnhnhiều chương trình chính khác nhau chúng ta có thể viết các chương trình con để trong các file khác nhau. Khi sử dụng chỉ cần khai báo

INCLUDE tên file và đường dẫn file chứa chương trình con chương trình chính. Chú ý rằng tên của file chứa chương trình con không trùng với tên của chương trình con mà nó chứa. dụ 9. Có thể viết lại ví dụ 8. Các chương trình con được chứa trong các file khác nhau và không trong file chương trình chính. Chương trình con nhap trong file ‘vao.asm’. Chương trình con cong trong file ‘add.asm’ , Chương trình con hienketqua trong file ‘display.asm’. Chương trình con nhafile ‘mul.asm’. Chưchương trình coTrong phần

Thái Nguyên 7-2013 55

Page 57: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

.mode tack ata

'cong bam 1, nhan bam 2, chia bam 3 $'

l; so b trong bl

4

hnhan

tinhco

l small .s 20 .d

tb1 db 'a=$' tb2 db 'b=$' tb3 db 'a+b=$' tb4 dbtb5 db 'a*b =$' tb6 db 'a/b=$'

.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h call nhap push ax mov ah,9 lea dx,tb2

int 21h call nhap mov bl,amov ah,9 lea dx,tbint 21h mov ah,1 int 21h cmp al,31h je tinhcong cmp al,32h je tincmp al,33h je tinhchia

ng: pop ax call cong

Thái Nguyên 7-2013 56

Page 58: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

push ax mov ah,9 lea dx,tb3 int 21h pop ax

tinhnh

ax

tinhch

nketqua

ra: mov a int 21h main e

display.asm

call hienketqua jmp ra an: pop ax call nhan push ax mov ah,9 lea dx,tb5 int 21h pop call hienketqua jmp ra ia: pop ax call chia push ax mov ah,9 lea dx,tb6 int 21h pop ax call hie jmp ra

h,4ch ndp include vao.asm include add.asm include include mul.asm include div.asm

END MAIN Truyền tham số trong chương trình con:

Thái Nguyên 7-2013 57

Page 59: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Truyền tham số qua thanh ghi:

Các chương trình chính và chương trình con hoặc giữa các chương trình con truyề am số cho nhau qua thanh ghi. Nếu truyền giữa hai chương trình con thì giá trị

trong thanh ghi là đầu ra của một chương trình con sẽ là đầu vào của một chương

t phần của ví dụ 8. Chương trình gồm 3 chương trình con nhập số, tính

à hiển thị. Tham số được truyền qua thanh ghi AL ode

ata tb1 db 'a=$'

trong bl ra

th

trình con khác.

Ví dụ 10. Đây là mộcộng v.m l small .stack 20 .d tb2 db 'b=$' tb3 db 'a+b=$' .code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h call nhap push ax mov ah,9 lea dx,tb2 int 21h call nhap mov bl,al; so btinhcong: pop ax; lấy a call cong push ax mov ah,9 lea dx,tb3 int 21h

Thái Nguyên 7-2013 58

Page 60: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

pop ax call hienketqua

a21h

ys tu so, roi doi ra so chua so nhap tu ban phim

: Chua so a BL: Chua so b hua ket qua phep cong

chua ket qua phep cong

ov ah,2 r t hieEND MA

ruyền tham số qua ô nhớ-biến: 11. Cũng vẫn yêu cầu tính tổng 2 số a, b và chúng ta vẫn viết chương trình

h 3 chương trình con mode

ata

ra: mov h,4ch int main endp nhap proc ;Thuc hien nhap k ; RA: AL mov ah,1 int 21h sub al,30h ret nhap endp cong proc ;VAO: AL ;RA : AL c add al,bl or al,30h ret cong endp hienketqua proc ;VAO: AL mov dl,al m

int 21h e

nketqua endp IN + T

Ví dụ

thàn . l small .stack 20 .d

Thái Nguyên 7-2013 59

Page 61: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

s db ?

rong bl ra

ua a

21h

ys tu so, roi doi ra so chua so nhap tu ban phim

tb1 db 'a=$' tb2 db 'b=$' tb3 db 'a+b=$' .code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h call nhap push ax mov ah,9 lea dx,tb2 int 21h call nhap mov bl,al; so b ttinhcong: pop ax; lấy a call cong push ax mov ah,9 lea dx,tb3 int 21h pop ax call hienketqra: mov h,4ch int main endp nhap proc ;Thuc hien nhap k ; RA: AL mov ah,1 int 21h sub al,30h ret

Thái Nguyên 7-2013 60

Page 62: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

nhap endp cong proc ;VAO: AL: Chua so a BL: Chua so b

ua ket qua phep cong

hua ket qua phep cong

ov ah,2 r t

hienketqua endp

Truyền tham số qua ô nhớ có địa chỉ do thanh ghi chỉ ra: dụ 12.

vao 2 so co tong nho hon 10: $' , 'TONG CUA '

b ' va '

@data

9

;RA : s ch add al,bl or al,30h mov s,al ret cong endp hienketqua proc ;VAO: s c mov dl,s m

int 21h e

END MAIN

+Ví

.model small .stack 100 .data tb1 db 'go tb2 db 13,10 so1 db ? d so2 db ? db ' la : ' sum db -30h,'$' .code main proc mov ax, mov ds,ax mov ah,

Thái Nguyên 7-2013 61

Page 63: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

lea dx,tb1 int 21h mov ah,1 int 21h mov so1,al

,'

m

2

so proc

add [bx],al t add2so endp

MAIN

+ Truyền tham số qua ngăn xếp: Ví

.mode

.stack

.data go vao 2 so tong nho hon 10$'

mov dl,' mov ah,2 int 21h mov ah,1 int 21h mov so2,al lea si,so1 lea di,so2 lea bx,su call add2so lea dx,tb mov ah,9 int 21h mov ah,4ch int 21h main endp add2 mov al,[si] add al,[di]

re

END

dụ 13. l small 100

tbao1 db '

Thái Nguyên 7-2013 62

Page 64: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

tb2 db 13,10,' tong cua'

db ' va' b ?

h,'$' .code main p

@data

9

Nhập So1

,al

,'

Nhập So2

l ất vào ngăn xếp để truyền

so ưu kết quả để hiển thị

9 ,tbao2

main eadd2s

so tu dinh

v

so1 db ?

So2 ddb ' la' sum db,-30

roc mov ax,mov ds,ax mov ah,la dx,tbao1 int 21h mov ah,1; int 21h mov so1push ax mov dl,'mov ah,2 int 21h mov ah,1; int 21h mov so2,apush ax; Ccall add2add sum,al; Lmov ah,lea dxint 21hmov ah,4ch int 21h ndp

o proc ;tinh tong 2;vao: ngan xep luc ke ;dia chi tro e

Thái Nguyên 7-2013 63

Page 65: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

;so hang 2 ;so hang 1 ;Ra: ax chua ket qua push bp Cất BP ;

,sp; ăn xếp ,[bp+6]; Lấy ký tự của So1 [bp+4]; Cộng với ký tự của So2

pop bp ; Lấy lại BP yte

iện các số thập phân lớn Nhập số t

mov bp BP chỉ vào đỉnh ngmov axadd ax,

ret 4; Trở về và bỏ qua 4 badd2so endp END MAIN • Nhập và h

hập phân Để nhập số thập ph thành dạng biểu diễn nhị phân của mộ phân. Thuật toán:

SCII từ bàn phím

ký tự số Until n

Ví dụ mô tả thuật t úng ta nhập số 123. Quá trình như sau:

*0 + 1

ân phải đổỉ chuỗi các chữ số ASCII t số thập

Tổng = 0 Nhập một chữ số A

Repeat Đổi ký tự vừa nhập thành giá trị số nhị phân (GTS) Tổng = tổng*10 + GTS Nhập tiếp hập ký tự Enter

oán: Chẳng hạn chTổng = 0 Nhập ‘1’ Đổi ‘1’ → số 1 Tổng = 10Nhập ‘2’ Đổi ‘2’ → số 2 Tổng = 10*1 + 2 = 12 Nhập ‘3’ Đổi ‘3’ → số 3 Tổng = 10*12 + 3 = 123

Thái Nguyên 7-2013 64

Page 66: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Thuật toán được thể hiện thành chương trình con in_dec chứa trong file

dung như sau: ap so vao tu ban phim gioi han -32768 den 32767 a tri so nhi phan trong AX

dau hoi de biet duong ma nhap

; ky tu vao trong al

;dung thiet lap dau tru al,'+'

p tieptuc ;tiep tuc xu ly cac ky tu

ong_phai_so

; ax=tong*10 chu so

‘in_deci.asm’ có nội ; Chuong trinh con nh; VAO: khong RA: giin_dec proc push bx push cx push dx bat_dau: ;mov ah,2 ;mov dl,'?'; in ra ;int 21h xor bx,bx ; bx chua tong xor cx,cx mov ah,1 int 21h cmp al,'-' ;co phai dau am khong? je dautru cmp je daucong jmdautru:mov cx,1 daucong: int 21h tieptuc: cmp al,'0' jnge khong_phai_so cmp al,'9' Jnle kh and ax,000fh ; doi thanh chu so push ax ; cat vao ngan xep mov ax,10 mul bx pop bx ; phuc hoi add bx,ax ;tong=tong*10+chu so mov ah,1

Thái Nguyên 7-2013 65

Page 67: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

int 21h cmp al,13 ; da phai enter?

tuc ; luu so vao ax co phai so am khong?

; neu la so am doi so trong ax ra so am

mov dl,0ah

jmp bat_dau

jne tiep ; neu khong phai thi nhap tiep mov ax,bx or cx,cx ; je ra neg ax ra: pop dx pop cx pop bx ret khong_phai_so: mov ah,2 mov dl,0dh; int 21h int 21h in_dec endp Hiện số thập phân Số nhị ân 13 = 0000 1101 phố bù 1 của 13 = 1111 0010 (đảo bit)

ố bù 1 + 1 = 1111 0010

0011

8. Nếu:

hia 2416/10 được 241 dư 6 Viết ngược được 24168

c 2 dư 4 chia 2/10 đư dư 2

SSố bù 2 của 13 = S + 1 1111 Khảo sát: Giả sử trong AX có số 2416chia 24168/10 được 2416 dư 8 cchia 241/10 được 24 dư 1 chia 24/10 đượ

ợc 0

Thái Nguyên 7-2013 66

Page 68: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Từ đây chúnThuật toán 1

Chia số bị chia cho 10 Cất số dư vào ngăn xếp

số = 0

Thuật toán 2:

àn hình

hập phân trong thanh ghi AX

Lấy dạng biểu diễn thập phân các chữ số trong AX Thuật thể hiện thành chương trình con out_dec chứa trong file ‘out_deci.asm’ out_de

dung cua ax duoi dang so thap phan co dau g

neu khong la so am thi doi ra day ky tu ong am thi

g ta có các thuật cơ sở sau: : đếm = 0 Repaet

đếm = đếm +1 Until thương

For đếm do Lấy chữ số từ ngăn xếp Đổi ra ký tựĐưa ra m

End for Thuật toán đưa ra một số t If 1. Nếu AX <0 thì: 2. In ra dấu ‘-‘ 3. Thay nội dung của AX = số bù 2 của nó End If 4.

5. Đổi số sang ký tự rồi đưa ra màn hình. toán được

c proc ;in ra noi;vao: AX;ra: khonpush ax push bx push cx push dx or ax,ax; ax<0? jge doi_ra_day; he 10 ; neu kh

push ax

Thái Nguyên 7-2013 67

Page 69: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov dl,'-'

m = 0

ng so, dx chua so du t so du vao ngan xep

so bang khong chu ci bang khong ca cac bit = 0 va luc do phep OR = 0

pop cx

ret out_dec endp

tục in_dec và out_dec chúng ta có thể sử dụng trong nhiều chương hư một số ví dụ sau:

Ví hai số lớn file add_big.asm

ode100

mov ah,2 int 21h pop ax neg ax ; ax = -ax doi_ra_day: xor cx,cx; de mov bx,10; so chi = 10 chia: xor dx,dx; chuan bi word cao cho so bi chia div bx ;ax thuo push dx ; ca inc cx or ax,ax; thuong ; khi tat jne chia mov ah,2 hien: pop dx or dl,30h int 21h loop hien ;ra pop dx pop bx pop ax

Với hai thủtrình n

dụ 14. Cộng

.m l small

.stack

.data tb1 db 'nhap a=$'

Thái Nguyên 7-2013 68

Page 70: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

tb2 db 13,10,'nhap b=$'

$'

trong BX

h

ah,4Ch int 21h

ma

include out_deci.asm

dụ 15. Tính giai thừa hươ n 7!)

file giaithua.asm ode

100

tb3 db 13,10,'s= .code main proc mov ax,@data mov ds,ax lea dx,tb1 mov ah,9 int 21h call in_dec push ax mov ah,9 lea dx,tb2 int 21h call in_dec mov bx,ax pop ax add bx,ax; s = a+ b mov ah,9 lea dx,tb3 int 21

mov ax,bx call out_dec

mov

in endp include in_deci.asm

end main

Ví(C ng trình tính đế

.m l small

.stack

.data

Thái Nguyên 7-2013 69

Page 71: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

tb1 db 'n= $' tb2 db 13,10,'n!= $'

N

mov ,4ch int main endp

clude out_deci.asm

dụ 16. Tính biểu thức a2 + b2 file tong_bph.asm

ac s =127 ode

100

'

gt dw ? .code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h xor ax,ax call in_dec mov cx,ax; cx = mov ax,1 nhan: mul cx loop nhan push ax mov ah,9 lea dx,tb2 int 21h

pop ax call out_dec

ah21h

include in_deci.asm in

end main Ví

;C o nhap vao a va b <.m l small .stack .data tb1 db 'a=$' tb2 db 13,10,'b=$

Thái Nguyên 7-2013 70

Page 72: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

tb3 db 13,10,'abp+bbp = $'

x,ax

ah,4ch int 21h

de out_deci.asm

• bËc cao

− al, C, delphi, VC++

.code main proc mov ax,@data mov ds,ax mov ah,9 lea dx,tb1 int 21h call in_dec mul al push ax mov ah,9 lea dx,tb2 int 21h call in_dec mul al mov bx,ax mov ah,9 lea dx,tb3 int 21h pop ax add b

mov ax,bx call out_dec

mov main endp

include in_deci.asm inclu

end main

Phèi ghÐp hîp ng÷ víi c¸c ng«n ng÷

Cã thÓ phèi hîp hîp ng÷ víi c¸c ng«n ng÷ bËc cao nh−: pasc

Thái Nguyên 7-2013 71

Page 73: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− · dÞch ra file .OBJ víi c¸c ng«n

ng÷ bËc cao hoÆc chÌn c¸c ®o¹n hîp ng÷ trùc tiÕp vµo m· nguån cña c¸c ng«n ng÷ bËc cao trªn (c¸ch

+ Víi pascal vµ delphi c¸c ®o¹n hîp ng÷ chÌn gi÷a c¸c tõ kho¸

... c¸c lÖnh hîp ng÷ end;

µ VC i÷a c¸c dÊu {

h hîp ng÷ }

hoÆc tr−íc mçi dßng hîp ng÷ cã dÊu _asm

Ví dụ 17. Tính t + b uses crt; var a,b,sum: Begin

clrscr;Writeln( 'a =');readln(a);

m

mov ax,a ov bx,b

add ax,bx sum,ax

Ví dụ 18 ố

nteger; re tohon;

nd;

Cã thÓ ghÐp c¸c flie ch−¬ng tr×nh hîp ng÷ ®

th«ng dông):

asm

+ Víi C v ++ cã thÓ chÌn g

... c¸c lÖn

ổng a

integer;

Writeln( 'b =');readln(b);as

m

movend;

Writeln(‘a + b =’,sum);readln;

End. . So sánh 2 suses crt; var a,b: iProcedu Begin Write ('a > b'); EProcedure behon;

Thái Nguyên 7-2013 72

Page 74: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Begin Write ('a < b'); End;

ang; ite ('a = b'); End;

'a =');readln(a); eadln(b);

1 3 l tohon

@ra 3: call bang

@1: call behon

END.

Procedure b Begin WrBEGIN clrscr; Writeln( Writeln( 'b =');rasm mov ax,a mov bx,b cmp ax,bx jb @ je @@2: cal jmp @ jmp @ra

@ra: end; readln;

Viết kiểu tách hợp ngữ và ngôn ngữ bậc cao thành các tệp khác nhau:

ung (tên hằng, tên biến, tên chương trình con...) của các tk XTERNAL cho C và EXTRN cho hợp

i báo nào của C đều là dùng chung (cho phép các modul khác đ

+ mext

dùng với cú pháp sau:

Với C + Các nhãn dùng ch

ệp Pascal và hợp ngữ phải hiểu nhau thông qua sử dụng các lệnh điều khiển hi dịch chương trình PUBLIC và E

ngữ + Bất kỳ một kha

ược dùng nhãn mà modul C khai báo) nên không cần khai thêm PUBLIC. uốn sử dụng một nhãn ngài nào thì C phải khai báo external với cú pháp:

ernal kiểu tên nhãn; + Với modul Assembly phải khai báo PUBLIC với các nhãn cho phép các

modul ngoài

Thái Nguyên 7-2013 73

Page 75: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

PUBLIC tên nhãn khai báo kiểu nhãn

+ ụnm

+ E+ T nhãn dùg chung trong modul ngon ngữ

a hàm: unsigned char, char, enum, unsigned short, short, g AX, unsigned long, long trong DX:AX

9. Viết chương trình so sánh hai số nguyên (từ -32768 đến o kiểu đa tệp: Modul C nhập hai số từ bàn phím, gọi chương

viết bằng hợp ngữ, hiện giá trị số bé ra màn hình. Modul hợp ngữ thực hiện so sánh hai số. n f1.cpp ở thư mục C:\USER )

scr();

o1); “\nVao so thu hai”);

“\n So be trong hai so là:%d”,MIN());

(tên f2.ASM ở thư mục C:\USER )

EXTRN _so1: WORD, _so2: WORD

PUBLIC _MIN

Muốn sử d g một nhãn đã khai báo PUBLIC ở modul ngoài (cho phép) thì odul Assembly phải khai báo EXTRN (xin phép dùng) với cú pháp sau: XTRN ten_nhãn: kiểu hêm dấu gạch chân trước các

Assembly Giá trị quay lại củunsigned int, int tron

Ví dụ 132767) thetrình con

Tệp C (tê#include <stdio.h> #include <conio.h>int so1, so2; external int MIN() void main(void) { clrprintf(“\nVao so thu nhat”); scanf(“%d,&sprintf(scanf(“%d,&so2); printf(getch(); } Tệp Assembly.model small .data .code _MIN Proc

Thái Nguyên 7-2013 74

Page 76: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov AX, so1

X, so2 mp AX,BX

xc L1: _MINEND V+ Các nh ủa các

qua sử dụng các lệnh điều khiển khi dịc ho

+ t kthênằm

dạng khai báo như sau: ;

i chương trình con là dạng hàm thì dạng khai báo như sau: tion ten_thu_tuc ([đối số]): kiểu ; external;

t chương trình so sánh hai số nguyên (từ -32768 đến 327 l Pascal nhập hai số từ bàn phím, gọi

ằng hợp ngữ, hiện giá trị số bé ra màn hình.

scal (tên f1.pas ở thư mục C:\USER ) so_sanh;

{$F+}functi {$L SER\f2.obj} $L: Chỉ thị liên kết file .OBJ của Pascal

mov Bcjl L1

hg AX,BX

ret endp

ới Pascal ãn dùng chung (tên hằng, tên biến, tên chương trình con...) c

tệp Pascal và hợp ngữ phải hiểu nhau thôngh chương trình PUBLIC và EXTERNAL cho Pascal và EXTRN c

hợp ngữ Bất kỳ mộ hai báo nào của Pascal đều là dùng chung nên không cần khai

m PUBLIC. Pascal chỉ còn khai báo external với các chương trình con ở modul ngoài

− Với chương trình con là thủ tục thìprocedure ten_thu_tuc ([đối số]); external

− VớfuncVí dụ 20. Viế

67) theo kiểu đa tệp: Moduchương trình con viết bModul hợp ngữ thực hiện so sánh hai số.

Tệp PaProgramuses crt; var so1, so2: integer;

Các chỉ thị dịch của Pascal on MIN: integer; external;

C:\U{$F-}Begin

Thái Nguyên 7-2013 75

Page 77: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

clrscr; write(‘Hay vao so thu nhat’);readln(so1);

write(‘Hay vao so thu hai’);readln(so2); );

readln;

bly (tên f2.ASM ở thư mục C:\USER ) Viết đa tệp với Pascal quy mô phải là HUGE, LARGE hoặc

EXTRN so1: WORD, so2: WORD

PUBLIC MIN

1 X, so2

L1 xchg AX,BX L1: ret MIN endp END Tệp f2.ASM phải dịch ra .OBJ để cùng thư mục

writeln(‘So be trong hai so la: ,MIN

End. Tệp Assem.model large; MEDIUM .data .code MIN Proc mov AX, somov Bcmp AX,BX jl

Thái Nguyên 7-2013 76

Page 78: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

3.3 xö lý tiªn tiÕn dòng 80x86

C

ng khả năng quản lý bộ nhớ: Hiện chỉ dừng ở 32 chân địa chỉ do

+

+ Tăng ấy vào lõi CPU + Kỹ th+ Tăng Dual-Core, Quard-Core, Multi-Processor

Sản ph tel® Core™ i7-4770R Processor với thông số kỹ thuật ấn tượn //ark.intel.com/products/76642/Intel-Core-i7-4770R-Processor-6M-Cache-up-to-3_90-GHz)

4/8

− Có lõi xử lý đồ họa. ower 595 server

3.4 ®Ph©n b

ip vi xö lý, chip vi ®iÒu khiÓn ®· lµ mét hkhiÓn ngoµi CPU ra ®· cã s½n bé nhí ROM, RAM, c¸c cæng vµo ra song song, nèi tiÕp, cæng truyÒn tin, c¸c bé ®Õm - ®Þnh thêi gian... gióp cho ng−êi sö dông thuËn tiÖn vµ dÔ dµng khi øng dông vi ®iÒu khiÓn gi¶i quyÕt c¸c bµi

Giíi thiÖu c¸c bé vi

ác cải tiến nổi bật: + Kỹ thuật pipeline + Tăng tốc độ xung nhịp: hiện nay đến + Tă+ Tăng độ rộng bus dữ liệu

Quản lý bộ nhớ ảo. dung lượng bộ nhớ Cache và cuật HyperThreading số bộ xử lý trong 1 chip:

Ví dụ ẩm của Intel: Ing (Nguồn từ trang http:

− Tốc độ xung nhịp: 3.9GHz − Số lõi/luồng (Core/Thread):− Bộ nhớ Cache: 6MB

Sản phẩm của IBM - P− Số lõi: 8-64 − Xung nhịp 5.0GHz − Bộ nhớ Cache 1 lõi L2: 4MB − Bộ nhớ Cache toàn chip L3: 32 MB − Pipeline, HyperThreading.

Sản phẩm của Sun Microsystems, Inc. Sun UltraSparc T2 2,4 GHz.

iÒu khiÓn 8x51/52 iÖt chip vi xö lý vµ chip vi ®iÒu khiÓn Bé vi xö lý: Lµm chøc n¨ng xö lý vµ tÝnh to¸n. ChØ riªng mét chip vi xö lý th× kh«ng thÓ t¹o nªn mét hÖ thèng cã kh¶ n¨ng tÝnh to¸n vµ xö lý (hÖ vi xö lý) mµ cßn cÇn thªm c¸c chip nhí, chip ngo¹i vi, truyÒn tin, ... Chip vi xö lý vÝ dô 8088, 8086, Pentium I, II, III, IV... Chip vi ®iÒu khiÓn: Kh¸c víi c¸c ch

Ö thèng tÝnh to¸n trong mét chip (System on chip). Trong mét chip vi ®iÒu

Thái Nguyên 7-2013 77

Page 79: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

t n rÊt th«ng dông hiÖn n , 8051, 8052, 8951, 8952... v

+ PIC16F84, PIC24F, PIC24E, PIC24H,

conductor: COP8, CR16,... + Của Philips Semiconductors: LPC 700, 900, 2000,... + Của Intel : 8XC251, MXS 296, 386EX, i960,... + Ccủa Atmel: AVR nh- 90S8515, 90S8535...víi nhiÒu tÝnh n¨ng −u viÖt

h¬n, tèc ®é xö lý nhanh h¬n 8051 lµ vi ®iÒu khiÓn ®Çu tiªn cña hä vi ®iÒu khiÓn ®−îc Atmel chÕ t¹o. §Æc tÝnh kü thuËt c¬ b¶n nh− sau :

20. Vi điều khiển 8x51/52

1 Cæng nèi tiÕp, 4 cæng vµo ra song song Cã bé ®iÒu khiÓn ng¾t logic víi 5 nguån ng¾t

o¸n ®iÒu khiÓn trong thùc tÕ. Mét lo¹i vi ®iÒu khiÓay lµ vi ®iÒu khiÓn hä 8x51/52 nh− 8031, 8032µ c¸c vi ®iÒu khiÓn thÕ hÖ sau nh−

Của Microchip TechnologyPIC32MX,...

+ Của National Semi

Hình 3.- Lµ vi ®iÒu khiÓn 8 bit - Kh¶ n¨ng ®Þa chØ ho¸:

+ 64K bé nhí ch−¬ng tr×nh + 64K bé nhí d÷ liÖu

- Cã 128 bytes nhí RAM trong - Cã 2 Time/Counters - -- 22 thanh ghi cã chøc n¨ng ®Æc biÖt SFR (Special function registers) 8051cã thÓ ®¸nh ®Þa chØ 64K bé nhí d÷ liÖu ngoµi vµ 64K bé nhí ch−¬ng tr×nh ngoµi.

Thái Nguyên 7-2013 78

Page 80: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Frequency Reference Counters Osilator 4096 bytes 128 bytes Two 16 bit And Program Data Timer/Event

8051 C P U

Control Duplex UART Shifter

Timing Memory Memory Counter 64 byte bus Programmable Programmable

expansion I / O Serial Port Full

Interrupts Control Parallel Ports Serial Serial Address Data Bus Input Output

and I/O pins

hối của vi điều khiển 8051

Vi ®iÒu khiÓ »m trªn chip. Chøc n¨ng quan träng

uffer) cã ®Þa

n cho

Hình 3.21. Sơ đồ k

n 8051 cã cæng nèi tiÕp ncña cæng nèi tiÕp lµ biÕn ®æi d÷ liÖu tõ song song thµnh nèi tiÕp ®Ó ®Èy lªn ®−êng truyÒn vµ biÕn ®æi d÷ liÖu vµo tõ nèi tiÕp thµnh song song. ViÖc truy nhËp phÇn cøng cña cæng nèi tiÕp th«ng qua c¸c ch©n TxD vµ RxD cña 8051 vµ ®ã còng lµ 2 bit cña Port 3:

P3.1 (TxD) lµ ch©n 11 P3.0 (RxD) lµ ch©n 10

Cæng nèi tiÕp cña 8051 cã thÓ truyÒn 2 chiÒu ®ång thêi (full duplex) vµ ký tù cã thÓ ®−îc nhËn vµ l−u tr÷ trong bé ®Öm trong khi ký tù thø 2 ®· ®−îc nhËn vµ nÕu CPU ®äc ký tù thø nhÊt tr−íc khi ký tù thø hai ®−îc nhËn th× d÷ liÖu kh«ng bÞ mÊt. Cã 2 thanh ghi chøc n¨ng ®Æc biÖt (Special Function Register)®Ó phÇn mÒm qua ®ã truy nhËp cæng nèi tiÕp lµ SBUF vµ SCON. SBUF (Serial port bchØ 99h ®−îc xem nh− 2 buffer. Khi ghi d÷ liÖu vµo SBUF lµ truyÒn d÷ liÖu cßn khi ®äc d÷ liÖu tõ SBUF lµ nhËn d÷ liÖu tõ ®−êng truyÒn SCON (Serial port Control register) cã ®Þa chØ 98h lµ thanh ghi cã thÓ ®¸nh ®Þa chØ theo tõng bit bao gåm bit tr¹ng th¸i vµ bit ®iÒu khiÓn. Bit ®iÒu khiÓn x¸c lËp chÕ ®é ®iÒu khiÓ

Thái Nguyên 7-2013 79

Page 81: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

cæng nèi tiÕp vµ bit tr¹ng th¸i cho biÕt ký tù ®−îc truyÒn hay lµ ®−îc nhËn. Bit

ode 0 ®−îc chän b»ng c¸ch ghi 0 vµo bit SM0 vµ SM1 cña thanh ghi

hå. Trong chÕ ®é nµy ta kh«ng nãi ®Õn RxD vµ TxD. §−êng RxD −îc d

Òn qua RxD trong 1

ung lµ x¸c lËp bit REN lóc b¾t ®Çu bit RI ®Ó b¾t ®Çu

t−¬ng tù nh− mode 0, start bit lu«n b»ng 0 sau ®ã ®Õn 8 bit d÷ liÖu SCON ®−îc lËp b»ng 1 khi bit

tr¹ng th¸i ®−îc kiÓm ta b»ng phÇn mÒm hoÆc lËp tr×nh ®Ó g©y ra ng¾t. 8051 cã 4 chÕ ®é ho¹t ®éng, viÖc chän chÕ ®é ho¹t ®éng b»ng c¸ch x¸c lËp c¸c bit SM0 vµ SM1 cña thanh ghi SCON. Cã 3 chÕ ®é ho¹t ®éng truyÒn kh«ng ®ång bé, mçi ký tù truyÒn hoÆc nhËn theo tõng khung víi bit start vµ stop t−¬ng tù RS232 cña m¸y vi tÝnh. Cßn chÕ ®é thø 4 ho¹t ®éng nh− 1 thanh ghi dÞch ®¬n gi¶n. a.Thanh ghi dÞch 8 bit (Mode 0). MSCON, x¸c lËp cæng nèi tiÕp ho¹t ®éng nh− thanh ghi dÞch 8 bit. D÷ liÖu vµo vµ ra nèi tiÕp qua RxD vµ TxD theo nhÞp ®ång hå. 8 bit ®−îc truyÒn vµ nhËn víi bit thÊp nhÊt (lest significant - LSB) ®−îc truyÒn ®Çu tiªn. Tèc ®é baud ®−îc ®Æt b»ng 1/12 tèc ®é ®ång ® ïng cho c¶ truyÒn vµ nhËn d÷ liÖu cßn ®−êng TxD ®−îc dïng cho tÝn hiÖu clock. ViÖc truyÒn d÷ liÖu ®−îc khëi ®Çu b»ng c¸ch ghi d÷ liÖu vµo thanh ghi SBUF, d÷ liÖu ®−îc dÞch ra tõng bit ra ngoµi qua ch©n RxD (P3.0) cïng víi xung ®ång hå ®−îc göi ra ngoµi qua ®−êng TxD (P3.1). Mçi bit ®−îc truychu kú m¸y. ViÖc nhËn d÷ liÖu ®−îc khëi ®Çu khi bit cho phÐp nhËn (REN) ®−îc x¸c lËp lªn bit 1 vµ bit RI ph¶i xo¸ vÒ 0. Nguyªn t¾c chch−¬ng tr×nh ®Ó khëi t¹o c¸c tham sè cña cæng nèi tiÕp vµ xo¸c«ng viÖc nhËn d÷ liÖu. Khi RI ®−îc xo¸, xung ®ång hå ®−îc ghi ra ch©n TxD, b¾t ®Çu chu kú m¸y tiÕp theo vµ d÷ liÖu ®−îc ®−a vµo ch©n RxD. Mét kh¶ n¨ng cña chÕ ®é thanh ghi dÞch lµ cã thÓ më réng ®−êng ra cña 8051. Thanh ghi dÞch chuyÓn ®ái nèi tiÕp thµnh song song cã thÎ kÕt nèi víi c¸c ®−êng TxD vµ RxD cung cấp thªm 8 ®−êng ra. b. 8 bit UART víi tèc ®é baud cã thÓ thay ®æi ®−îc (mode1). Ở mode 1, cæng nèi tiÕp cña 8051 ho¹t ®éng nh− lµ UART 8 bit víi tèc ®é baud cã thÓ thay ®æi ®−îc. UART (Universal Asynchronous Receiver/Transmitter) lµ 1 thiÕt bÞ nhËn vµ truyÒn d÷ liÖu nèi tiÕp, mçi ký tù ®−îc truyÒn b¾t ®Çu b»ng bit start (tr¹ng th¸i thÊp) sau ®ã lµ c¸c bit d÷ liÖu cña ký tù ®−îc truyÒn, parity bit ®Ó kiÓm tra lçi ®−êng truyÒn vµ cuèi cïng lµ bit stop (tr¹ng th¸i cao). Mét chøc n¨ng quan träng cña UART lµ chuyÓn ®æi d÷ liÖu song song thµnh nèi tiÕp ®Ó truyÒn vµ chuyÓn ®æi nèi tiÕp thµnh song song ®Ó nhËn. Trong mode nµy, 10 bit d÷ liÖu ®−îc truyÒn qua TxD vµ nhËn vµo qua RxD vµ viÖc truyÒn còng(LSB ®Çu tiªn) vµ cuèi cïng lµ stop bit. Bit TI cña

Thái Nguyên 7-2013 80

Page 82: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

stop ë ch©n TxD. Trong qu¸ tr×nh nhËn stop bit ®−îc ®−a vµo bit RB8 cña thanh ghi SCON vµ tèc ®é truyÒn ®−îc ®Æt bởi timer1. ViÖc ®ång bé thanh ghi dÞch cña cæng nèi tiÕp ë mode 1, 2, 3 ®−îc ®iÒu khiÓn bëi counter víi ®Çu ra counter lµ nhÞp ®ång hå ®iÒu khiÓn tèc ®é baud cßn ®Çu vµo cña counter ®−îc chän b»ng phÇn mÒm. c.9 bit UART víi tèc ®é baud cè ®Þnh (mode 2).

cæng nèi tiÕp cña

å. y ®æi ®−îc (mode 3).

cã thÓ it cßn mode 2 vµ mode 3 lµ

r enable)

bit RI vµ TI trong thanh ghi SCON ®−îc lËp lªn 1 b»ng phÇn cøng vµ cuèi cïng cña d÷ liÖu

· kÕt thóc truyÒn 1 byte d÷ liÖu (receiver buffer ng¾t. NÕu ch−¬ng tr×nh muèn nhËn

p CLR RI ;xo¸ RI

V A,SBUF ;§äc d÷ liÖu tõ SBUF truyÒn vµ nã cho biÕt

g tr×nh muèn göi d÷ liÖu

Mode ®−îc chän b»ng c¸ch ®Æt bit SM1=1 vµ SM0=0, 8051 sÏ ho¹t ®éng nh− UART 9 bit cã tèc ®é baud cè ®Þnh. 11bit sÏ ®−îc truyÒn vµ nhËn qua TxD vµ RxD: 1 start bit, 9 bits d÷ liÖu vµ stop bit. Trong khi truyÒn bit thø 9 sÏ ®−îc ®Æt vµo TB8 cña thanh ghi SCON cßn trong khi nhËn bit thø 9 sÏ ®−îc ®Æt vµo bit RB8. Tèc ®é baud cña mode 2 cã thÓ lµ 1/32 hoÆc 1/64 xung nhÞp ®ång h d.9 bit UART víi tèc ®é baud cã thÓ tha Mode 3 t−¬ng tù nh− mode 2 nh−ng tèc ®é baud ®−îc lËp tr×nh vµ ®−îc cung cÊp b»ng timer. Trong thùc tÕ c¶ 3 mode 1, 2, 3 lµ t−¬ng ®−¬ng nhau chØ kh¸c nhau ë chç tèc ®é baud ë mode 2 lµ cè ®Þnh cßn mode 1 vµ mode 3 thay ®æi ®−îc vµ sè l−îng bit d÷ liÖu cña mode 1 lµ 8 b9 bit.

• Cho phÐp nhËn (Receive Bit cho phÐp nhËn (REN) cña thanh ghi SCON ph¶i ®−îc lËp b»ng phÇn mÒm ®Ó cho phÐp nhËn d÷ liÖu. ViÖc nµy ®−îc tiÕn hµnh lóc b¾t ®Çu ch−¬ng tr×nh khi cæng nèi tiÕp, timer/counter,... ®−îc khëi t¹o. Cã 2 c¸ch x¸c lËp bit nµy: SETB REN hoÆc MOV SCON,#xxx1xxxxb (Trong ®ã x cã thÓ lµ 0 hoÆc 1 tuú theo yªu cÇu cña ch−¬ng tr×nh).

• Cê ng¾t (Interrupt flag) Hai ph¶i ®−îc xo¸ vÒ 0 b»ng phÇn mÒm. RI ®−îc x¸c lËp khi bit ®−îc nhËn vµ nã cho biÕt r»ng ®full) nã ®−îc test b»ng ch−¬ng tr×nh ®Ó g©y rad÷ liÖu tõ 1 thiÕt bÞ nèi víi cæng nèi tiÕp nã ph¶i chê cho ®Õn khi RI ®−îc lËp sau ®ã xo¸ RI vµ ®äc d÷ liÖu tõ SBUF . VÝ dô: WAIT : JNB RI,WAIT ;test RI vµ chê cho ®Õn khi ®−îc lË MOT−¬ng tù bit TI ®−îc lËp khi bit cuèi cïng cña d÷ liÖu ®−îcr»ng ®· truyÒn xong (Transmit buffer empty). NÕu ch−¬n

Thái Nguyên 7-2013 81

Page 83: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

®Õn thiÕt bÞ nèi qua cæng nèi tiÕp nã ph¶i kiÓm tra xem ký tù tr−íc ®ã ®· göi ch−a,

Õu ch−a göi nã ph¶i chê ®Õn khi göi xong míi ®−îc göi . VÝ dô: WAIT: JNB TI,WAIT ; KiÓm tra vµ chê ®Õn khi TI set CLR TI ; NÕu set th× xo¸ TI MOV SBUF,A ; Göi d÷ liÖu vµo SBUF ®Ó truyÒn.

n

Hình 3.22. Hệ vi xử lý sử dụng 8051 có bộ nhớ ngoài

NHÓM LỆNH CỦA 89C51

ập lệnh của 8051 được chia thành 5 nhóm: Số học. Logic.

- Chuyển ẽ nhánh

CÁC

T- - - Chuyển dữ liệu.

điều khiển. - R .

Thái Nguyên 7-2013 82

Page 84: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Bảng 3.5. C

anh ghi được chọn. ác chi tiết thiết lập lệnh

Rn Thanh ghi R0 đến R7 của bank thData 8 bit địa chỉ vùng dữ liệu bên trong. Nó có thể là vùng RAM dữ

liệu trong (0-127) hoặc các thanh ghi chức năng đặc biệt. @Ri 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ

gián tiếp qua thanh ghi R0 hoặc R1. #data Hằng 8 bit chứa trong câu lệnh. #data 16 Hằng 16 bit chứa trong câu lệnh. Addr16 1 ong lệnh LCALL và LJMP. 6 bit địa chỉ đích được dùng trAddr11 11 bit địa chỉ đích được dùng trong lệnh LCALL và AJMP. Rel Byte offset 8 bit có dấu được dùng trong lệnh SJMP và những

ó điều kiện. lệnh nhảy cBit Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các

thanh ghi chức năng đặc biệt.

Nhóm lệnh xử lý số học xử lý số học Bảng 3.6. Lệnh

ung thanh ghi Rn vào thanh ADD A,Rn (1byte 1 chu kỳ máy): cộng nội dghi A.

ADD A,data (21): Cộng trực tiếp 1 byte vào thanh ghi A. ADD A,@Ri (11): Cộng gián tiếp nội dung RAM chứa tại địa chỉ được khai

báo trong Ri vào thanh ghi A. ADD A,#data (21): Cộng dữ liệu tức thời vào A. ADD A,Rn (11): Cộng thanh ghi và cờ nhớ vào A. ADD A,data ực tiếp byte dữ liệu và cờ nhớ vào A. (21): Cộng trADDC A,@Ri (11): Cộng gián tiếp nội dung RAM và cờ nhớ vào A. ADDC A,#data

(21): Cộng dữ liệu tức thời và cờ nhớ vào A.

SUBB A,Rn (11): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn và cờ nhớ.

SUBB A,data cờ nhớ. (21): Trừ trực tiếp A cho một số vàSUBB A,@Ri (11): Trừ gián tiếp A cho một số và cờ nhớ. SUBB A,#data cờ nhớ. (21): Trừ nội dung A cho một số tức thời và INC A (11): Tăng nội dung thanh ghi A lên 1. INC Rn (11): Tăng nội dung thanh ghi Rn lên 1.

Thái Nguyên 7-2013 83

Page 85: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

INC data (21): Tăng dữ liệu trực tiếp lên 1. INC @Ri (11): Tăng gián tiếp nội dung vùng RAM lên 1. DEC A (11): Giảm nội dung thanh ghi A xuống 1. DEC Rn (11): Giảm nội dung thanh ghi Rn xuống 1. DEC data (21): Giảm dữ liệu trực tiếp xuống 1 DEC @Ri (11): Giảm gián tiếp nội dung vùng RAM xuống 1. INC DPTR (12): Tăng nội lên 1. dng con trỏ dữ liệu M hân nội dung thanh ghi A với nội dung thanh ghi B. UL AB (14): NDIV AB (14): Chia nội dung thanh ghi A cho nội dung thanh ghi B. DA A (11): hiệu chỉnh thập phân thanh ghi A.

Nhóm lệnh Logic

dung thanh ghi Rn. Bảng 3.7. Lệnh Logic

ANL A,Rn (11): AND nội dung thanh ghi A với nộiANL A,data (21): AND nội dung thanh ghi A với dữ liệu trực tiếp. ANL A,@Ri (11): AND nội dung thanh ghi A với dữ liệu gián tiếp trong

RAM. ANL A,#data tức thời. (21): AND nội dung thanh ghi với dữ liệuANL data,A (21): AND một dữ liệu trực tiếp với A. ANL data,#data

(32): AND một dữ liệu trực tiếp với A một dữ liệu tức thời.

ANL C,bit (22): AND cờ nhớ với 1 bit trực tiếp. ANL C,/bit (22): AND cờ nhớ với bù 1 bit trực tiếp. ORL A,Rn (11): OR thanh ghi A với thanh ghi Rn. ORL A,data (21): OR thanh ghi A với một dữ liệu trực tiếp. ORL A,@Ri án tiếp. (11): OR thanh ghi A với một dữ liệu giORL A,#data (21): OR thanh ghi A với một dữ liệu tức thời. ORL data,A A. (21): OR một dữ liệu trực tiếp với thanh ghiORL data,#data

(31) :OR một dữ liệu trực tiếp với một dữ liệu tức thời.

ORL C,bit (22): OR cờ nhớ với một bit trực tiếp. ORL C,/bit (22): OR cờ nhớ với bù của một bit trực tiếp. XRL A,Rn (11): XOR thanh ghi A với thanh ghi Rn. XRL A,data (21): XOR thanh ghi A với một dữ liệu trực tiếp. XRL A,@Ri hi A với một dữ liệu gián tiếp. (11): XOR thanh g

Thái Nguyên 7-2013 84

Page 86: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

XRL A,#data ột dữ liệu tức thời. (21): XOR thanh ghi A với mXRL data,A rực tiếp với thanh ghi A. (21): XOR một dữ liệu tXRL data,#data

ới một dữ liệu tức thời. (31): XOR một dữ liệu trực tiếp v

SETB C (11): Đặt cờ nhớ. SETB bit (21): Đặt một bit trực tiếp. CLR A (11): Xóa thanh ghi A. CLR C (11): Xóa cờ nhớ. CPL A (11): Bù nội dung thanh ghi A. CPL C (11): Bù cờ nhớ. CPL bit (21): Bù một bit trực tiếp. RL A (11): Quay trái nội dung thanh ghi A. RLC A (11): Quay a cờ nhớ. trái nội dung thanh ghi A quR ải nội dung thanh ghi A. R A (11): Quay phRRC A (11): Quay phải nội dung thanh ghi A qua cờ nhớ. SWAP (11 te). ): Quay trái nội dung thanh ghi A 1 nibble (1/2by

Nhóm lệnh chuyển dữ liệu

Bảng 3.8. Lệnh chui A.

yển dữ liệu MOV A,Rn (11):Chuyển nội dung thanh ghi Rn vào thanh ghMOV A,data (21): Chuyển dữ liệu trực tiếp vào thanh ghi A. MOV A,@Ri huyển dữ liệu gián tiếp vào thanh ghi A. (11): CMOV A,#data (21): Chuyển dữ liệu tức thời vào thanh ghi A. MOV Rn,data huyển dữ liệu trực tiếp vào thanh ghi Rn. (22): CMOV Rn,#data (21): Chuyển dữ liệu tức thời vào thanh ghi Rn. MOV data,A (21): Chuyển nội dung thanh ghi A vào một dữ liệu trực

tiếp. MOV data,Rn (22): Chuyển nội dung thanh ghi Rn vào một dữ liệu trực

tiếp. MOV data,data huyển một dữ liệu trực tiếp vào một dữ liệu trực tiếp. (32): CMOV data,@Ri (22): Chuyển một dữ liệu gián tiếp vào một dữ liệu gián

tiếp. MOV data,#data (32): Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp. MOV @Ri,A (11): Chuyển nội dung thanh ghi A vào một dữ liệu gián

tiếp.

Thái Nguyên 7-2013 85

Page 87: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

MOV @Ri,data ữ liệu gián tiếp. (22): Chuyển một dữ liệu trực tiếp vào một dMOV @Ri,#data (21): Chuyển dữ liệu tức thời vào dữ liệu gián tiếp. MOV DPTR,#data

o thanh ghi con trỏ dữ liệu. (32): Chuyển một hằng 16 bit và

MOV C,bit (21): Chuyển một bit trực tiếp vào cờ nhớ. MOV bit,C (22): Chuyển cờ nhớ vào một bit trực tiếp. MOV A,@A+DPTR

(12): Chuyển byte bộ nhớ chương trình có địa chỉ là@A+DPRTvào thanh ghi A.

MOVC A,@A+PC

(12): Chuyển byte bộ nhớ chương trình có địa chỉ là @A+PC vào thanh ghi A.

MOVX A,@Ri huyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A. (12): CMOVX A,@DPTR

(12): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A.

MOVX @Ri,A (12): Chuyển nội dung A ra dữ liệu ngoài (8 bit địa chỉ). MOVX @DPTR,A

(12): Chuyển nội dung A ra dữ liệu bên ngoài (16 bit địa chỉ).

PUSH data (22): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP. POP data p vào ngăn xếp và giảm SP. (22): Chuyển dữ liệu trực tiếXCH A,Rn (11): Trao đổi dữ liệu giữa thanh ghi Rn v2 thanh ghi A. XCH A,data (21): t dữ liệu trực tiếp. Trao đổi giữa thanh ghi A và mộX i giữa thanh ghi A và một dữ liệu gián tiếp. CH A,@Ri (11): Trao đổXCHD A,@R (11): Trao đổi giữa nibble thấp (LSN) của thanh ghi A và

LSN của dữ liệu gián tiếp.

Nhóm lệnh chuyền điều khiển hu

trình con dùng địa chì tuyệt đối. Bảng 3.9. Lệnh c yển điều khiển

ACALL addr11 (22): Gọi chươngLCALL addr16 trình con dùng địa chỉ dài. (32): Gọi chương RET (12): Trở về từ lệnh gọi chương trình con. RETI (12): Trở về từ lệnh gọi ngắt. AJMP addr11 (22): Nhảy tuyệt đối. LJMP addr16 (32): Nhảy dài. SJMP rel (22):Nhảy ngắn. JMP @A+DPTR (12): Nhảy gián tiếp từ con trỏ dữ liệu. JZ rel (22): Nhảy nếu A=0.

Thái Nguyên 7-2013 86

Page 88: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

JNZ rel (22): Nhảy nếu A không bằng 0. JC rel (22): Nhảy nếu cờ nhớ được đặt. JNC rel hảy nếu cờ nhớ không được đặt. (22): NJB bit,rel (32): Nhảy tương đối nếu bit trực tiếp được đặt. JNB bit,rel hảy tương đối nếu bit trực tiếp không được đặt. (32):NJBC bit,rel (32): Nhảy tương đối nếu bit trực tiếp được đặt, rồi xóa bit. CJNE A,data,rel trực tiếp với A và nhảy nếu không (32): So sánh dữ liệu

bằng. CJNE A,#data,rel liệu tức thời với A và nhảy nếu không (32): So sánh dữ

bằng. CJNE Rn,#data,rel

n và nhảy nếu không bằng. (32): So sánh dữ liệu tức thời với nội dung thanh ghi R

CJNE @Ri,

(32): So sá ới dữ liệu gián tiếp và nhảy nh dữ liệu tức thời v#data,rel nếu không bằng.

DJNZ Rn,rel (22): Giảm thanh ghi Rn và nhảy nếu không bằng. DJNZ data (32): Giảm dữ liệu trực tiếp và nhảy nếu không bằng.

Các lệnh rẽ nhánh

trong chương trình bao gồm việc gọi hoặc trả lại từ h con hoặc rẽ h ả c h rẽ nhánh đều không ng đến cờ. Ta có t nhảy đến nơi cần n không cần đưa rõ đ biên dịch sẽ đặ tới v g lệnh đã đưa ra. B 0. Lệnh nhảy có điều k

> dition> ump_if <condition>

Có nhiều lệnh để thực hiện chương trìn nhánh có điều kiện hay k ông có điều kiện. Tất c

ác lện ảnh hưở hể địnhhảy mà ịa chỉ, trình t địa chỉ nơi cần nhảyào đúnảng 3.1 iện <condition Jump_if_not<con JC=1 JNC rel JC rel Bit=1 JNB bit,rel JB bit,rel/JNC bit,rel A=0 JNZ rel JZ rel Rn=0 DJNZ Rn,rel Direct=0 DJNZ direct,rel A direct CJNE A,direct,rel A#data CJNE A,#data,rel Rn#data CJNE Rn,#data,rel @Ri#data CJNE @Ri,#data,rel

Thái Nguyên 7-2013 87

Page 89: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Nhảy không có điều kiện a. C repe t… until”

n> Ngôn sembly:

ion

ondition>,LOOP b. C hile… do”

ondi n> on>

Ngôn :

O SJMP STOP

<action>

n… else”

action 1>

Ngôn mbl n>,ELSE

d. C of…” 1 of

0 = 1

ấu trúc “ aRepeat <action> Until <conditio ngữ AsLOOP: <act >JUMP_if_not_<cấu trúc “wwhile <c tiodo <acti ngữ Assembly LOOP: JUMP_if_not_<condition>,D DO: SJMP LOOP STOP: ...

c. Cấu trúc “if… theif <condition> then <else <action 2> ngữ Asse y JUMP_if_not_<conditio<action 1> SJMP DONE ELSE: <action 2>DONE: ... ấu trúc “case…case P#11111110b: P2.#11111101b: P2.1 = 1

Thái Nguyên 7-2013 88

Page 90: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

#11111011b: P2.2 = 1 else P2 = 0 end

Ngôn y

MP E IT 1b,SKIP2

.1 SJMP EXIT

IP2: CJNE P1,#11111011b,SKIP3

là sự từng

l = 0. it, re u (bit) = 1.

it, re nếu (bit) = 0. it, re bit = 1 và xóa bit.

A L ge 2K.

0)

((SP)) (PC15PC8) (PC10PC0) page Address.

: Lệnh gọi dài chương trình con trong 64K. (PC) (PC) + 3

)) PC7 C0)

ddr0.

ngữ AssemblCJNE P1,#11111110b, SKIP1 SETB P2.0 SJ XSKIP1: CJNE P1,#1111110SETB P2 SK SETB P2.2 SJMP EXIT SKIP3: MOV P2,#0 EXIT: ...

Sau đây tóm tắt hoạt động của lệnh nhảy. JC rel : Nhảy đến “rel” nếu cờ Carry C = 1. JNC re : Nhảy đến “rel” nếu cờ Carry C JB b l : Nhảy đến “rel” nế JNB b l : Nhảy đến “rel” JBC b l : Nhảy đến “rel” nếu AC L addr11 : Lệnh gọi tuyệt đối trong pa (PC) (PC) + 2 (SP) (SP) + 1 ((SP)) (PC7PC (SP) (SP) + 1 LCALL addr16 (SP) (SP) + 1 ((SP ( P (SP) (SP) + 1 ((SP)) (PC15PC8) (PC) Addr15A

Thái Nguyên 7-2013 89

Page 91: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

RET : Kết thúc chương trình con trở về chương trình chính.

(PC15PC8) (SP)

7P 0) ( P)) (SP) (SP) -1.

chương trình

ress.

nh LCALL. l

A + R )

JZ rel lệh kế nếu A = 0.

) + byte 2 JNZ rel

2 CJNE A, direct, rel

Address.

c hành lệnh kế tiếp CJNE A, # data, rel JNE A, direct, rel. CJNE Rn, # data, rel l.

rel rel. DJNE Rn, rel : Giảm Rn và nhảy nếu Rn 0.

(Rn) (Rn) -1

(SP) (SP) - 1 (PC C (S

RETI : Kết thúc thủ tục phục vụ ngắt quay vềchính hoạt động tương tự như RET.

AJMP Addr11 : Nhảy tuyệt đối không điều kiện trong 2K. (PC) (PC) + 2 (PC10PC0) page Add

LJMP Addr16 : Nhảy dài không điều kiện trong 64K Hoạt động tương tự lệ

SJMP re :Nhảy ngắn không điều kiện trong (-128 127) byte (PC) (PC) + 2 (PC) (PC) + byte 2

JMP @ DPT : Nhảy không điều kiện đến địa chỉ (A) + (DPTR) (PC) (A) + (DPTR: Nhảy đến A = 0. Thực hành(PC) (PC) + 2 (A) = 0 (PC) (PC: Nhảy đến A 0. Thực hành lệnh kế nếu A = 0. (PC) (PC) + 2 < > 0 (PC) (PC) + byte: So sánh và nhảy đến A direct (PC) (PC) + 3 (A) < > (direct) (PC) (PC) + Relative(A) < (direct) C = 1 (A) > (direct) C = 0 (A) = (direct). Thự: Tương tự lệnh C: Tương tự lệnh CJNE A, direct, re

CJNE @ Ri, # data, : Tương tự lệnh CJNE A, direct,

(PC) (PC) + 2

Thái Nguyên 7-2013 90

Page 92: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

(Rn) < > 0 (PC) (PC) + byte 2.

DJNZ direct, rel : Tương tự lệnh DJNZ Rn, rel.

Các lệnh dịch chuyển dữ liệu

RAM nội hoặc các vùng nhớ của các thanh ghi chức năng

toán hạng DESTINATION. cực trong suốt quá trình

thực X, còn bình thường RD và WR không tích cực (mức 1). Tất c chuyển đều không ảnh hưởng đến cờ. Hoạt động của từng lệnh

PUSH direct ăn xếp (SP) (SP) + 1

POP direct : Lấy t ra direct

XCH A, direct : (A) (direct)

3Ri0))

Cá tstruction):

Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu kỳ máy. Mẫu lệnh MOV <destination>, <source> cho phép di chuyển dữ liệu bất kỳ 2 vùng nhớ nào của

đặc biệt mà không thông qua thanh ghi A. Vùng năn xếp của 8951 chỉ chứa 128 byte RAM nội, nếu con trỏ ngăn xếp

SP được tăng quá địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi và các byte POP ra thì không biết rõ.

Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoài sự định vị gián tiếp. Địa chỉ gián tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất cả các lệnh dịch chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2 chu kỳ máy và dùng thanh ghi A làm

Việc đọc và ghi RAM ngoài (RD và WR) chỉ tíchthi của lệnh MOVả các lệnh dịch được tóm tắt như sau:

: Cất dữ liệu vào ng

(SP) (Drirect) ừ ngăn xếp(direct) ((SP)) (SP) (SP) - 1

XCH A, Rn : Đổi chổ nội dung của A với Rn (A) (Rn)

XCH A, @ Ri : (A) ((Ri)) XCHD A, @ Ri : Đổi chổ 4 bit thấp của (A) với ((Ri))

(A3A0) ((Ri

c lệnh xen vào (MiCSellamous InNOP : Không hoạt động gì cả, chỉ tốn 1 byte và 1 chu kỳ máy. Ta dùng để

tạo trễ những khoảng thời gian nhỏ.

Thái Nguyên 7-2013 91

Page 93: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

3.5 Vi ®iÒu khiÓn của Atmel AVR

3.5.1. Giíi thiÖu chung vÒ AVR Vi điều khiển AVR là sản phẩm của công ty Atmel (Hoa kỳ), là một bộ xử lý có liệu tách biệt. BĐây là iều khiển này. Sau đâ

i điều khiển 8 bit- có 32 thanh ghi đa năng 8 bit. 8 triệu lệnh trên 1 giây ở tần số 8 MHz. Có nghĩa

ập trình được ngay trên hệ thống, chịu được 10000

AM 1 kbyte te lập trình được ngay trên hệ thống, chịu được

c tính năng ngoại vi: riêng.

ế độ so sánh tín điều biến độ rộng xung PWM kép 8,9,10

ng tự có sẵn trên chíp. trên chíp .

ảm năng lượng tiêu thụ

OS tốc độ cao, tiêu thụ ít năng lương.

4MHz, 3V, 25 độ C.

- Chế độ làm giảm năng lượng tiêu thụ: < 1uA - Vào ra và cách đóng vỏ :

- 32 chân vào ra lập trình được được đóng vỏ PDIP 40 chân

kiến trúc kiểu Harvard: có bộ nhớ chương trình và một bộ nhớ dữộ vi điều khiển AVR có nhiều khả năng mới để giảm năng lượng tiêu thụ. một trong những ưu điểm lớn của họ vi đy là một số đặc điểm, tính năng kỹ thuật của AVR Atmega 16. - Atmega 16 là v- Tốc độ vi xử lý lên đến là 1 chu kì máy dùng 1 chu kì thạch anh. - Bộ nhớ flash 16 kbyte lchu kì viết xoá. - Bộ nhớ SR- Bộ nhớ EEPROM 512By100.000 chu kì viết xoá. - Lập trình khoá để bảo mật dữ liệu trong bộ nhớ chương trình flash và EEPROM. + Cá

- Bộ định thời /đếm 8 bit với bộ chia tần- Một bộ định thời /đếm 16 bit với bộ chia tần riêng, chhiệu. Chế độ bắt tín hiệu và bộbit.

- Bộ so sánh tươ- Bộ định thời Watchdog lập trình được có sẵn - UART nối tiếp lập trình đựơc

- Giao tiếp bus I2C - Giao tiếp SPI Các tính năng đặc biệt của AVR ATMega16: - Chế độ tiêu thụ ít năng lượng và gi- Các nguồn ngắt trong và ngoài. + Các đặc tính :

- Công nghệ xử lý CM - Hoạt động tĩnh hoàn toàn.

- Mức tiêu thụ năng lượng ở - Chế độ hoạt động tích cực : 3,0mA

- Chế độ chờ: 1,0 mA

Thái Nguyên 7-2013 92

Page 94: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- Điệ n

n áp nguồn uôi : 2,7 V -> 6 V

Hình 3.23. Sơ đồ chân và chức năng các chân của vi diều khiển AVR

ATMEGA 16

+ PDIP 40 chân. Trong đó có 32 chân I/O (in ut uồn, 2 chân dao động, 1

chân Reset, 1chân AREF. Mỗi một chân có thể đảm nhận nhiều vai trò. Cụ thể như sa

PB0 r của timer 0-T0

r của timer 1-T1

Timer0 -OCO0

ATMega16 đóng gói dạng p /out put) chia thành 4 Port: A,B,C,D; 4 chân ng

u: 1. Chân số 1: có vai trò

- Chân IO số 0 port B-- Chân đầu vào bộ đếm coute

2. Chân số 2: có vai trò - Chân IO số 2 port B- PB1 - Chân đầu vào bộ đếm coute

3. Chân số 3: có vai trò - Chân IO số 3 port B- PB2

- Chân ngắt ngoài 2 –INT2 4. Chân số 4: có vai trò

- Chân IO số 4 port B- PB3 - Chân đầu ra điều chế độ rộng xung PWM của5. Chân số 5: có vai trò

- Chân IO số 5 port B- PB4

Thái Nguyên 7-2013 93

Page 95: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

rong chuẩn SPI -SS

6.

Master, nhận data nếu là Slave trong SPI 7.

Slave, nhận data nếu là Master trong SPI

8.

SPI 9. reset của AVR

ấp nguồn GND 0V 12. ối với thạnh anh

huẩn RS232 15.

uẩn RS232 16.

T0 17.

T1 18.

D4 ủa Timer1 –OCO1B

rộng xung PWM của Timer1 –OCO1A 20.

D6 21.

D7 ng xung PWM của Timer2 –OCO2

- Chân chọn con slave tChân số 6: có vai trò - Chân IO số 6 port B- PB5

- Chân xuất data nếu làChân số 7: có vai trò - Chân IO số 7 port B- PB6

- Chân xuất data nếu làChân số 8: có vai trò - Chân IO số 8 port B- PB7

- Chân xuất clock trongChân số 9: có vai trò đầu vào

10. Chân số 10: có vai trò cấp nguồn VCC 5V 11. Chân số 11: có vai trò c

Chân số 12: chân dao động, n13. Chân số 13: chân dao động, nối với thạnh anh 14. Chân số 14: có vai trò

- Chân IO số 1 port D- PD0 - Chân nhận data theo c

Chân số 15: có vai trò - Chân IO số 2 port D- PD1

- Chân xuất data theo ch Chân số 16: có vai trò - Chân IO số 3 port D- PD2

- Chân ngắt ngoài 0–IN Chân số 17: có vai trò - Chân IO số 4 port D- PD3

- Chân ngắt ngoài 1–IN Chân số 18: có vai trò - Chân IO số 5 port D- P- Chân đầu ra điều chế độ rộng xung PWM c

19. Chân số 19: có vai trò - Chân IO số 6 port D- PD5

- Chân đầu ra điều chế độ Chân số 20: có vai trò - Chân IO số 7 port D- P Chân số 21: có vai trò - Chân IO số 8 port D- P- Chân đầu ra điều chế độ rộ

22. Chân số 22: có vai trò

Thái Nguyên 7-2013 94

Page 96: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- Chân IO số 1 port C- PC0

huẩn I2C-SCL 23.

huẩn I2C-SDA

24.

26.

C4 27.

29.C7

30. iện áp VCC 5V 31. điện áp GND 0V

chuyển đổi ADC 4

- Chân chuyển đổi ADC 3

- Chân xuất clock theo c Chân số 23: có vai trò - Chân IO số 2 port C- PC1

- Chân xuất Data theo c Chân số 24: có vai trò - Chân IO số 3 port C- PC2

25. Chân số 25: có vai trò - Chân IO số 4 port C- PC3 Chân số 26: có vai trò - Chân IO số 5 port C- P Chân số 27: có vai trò - Chân IO số 6 port C- PC5

28. Chân số 28: có vai trò - Chân IO số 7 port C- PC6 Chân số 29: có vai trò - Chân IO số 8 port C- P Chân số 30: có vai trò cấp đ Chân số 31: có vai trò cấp

32. Chân số 33: có vai trò - Chân IO số 8 port C- PC7 - Chân chuyển đổi ADC 7

33. Chân số 34: có vai trò - Chân IO số 7 port C- PC6 - Chân chuyển đổi ADC 6

34. Chân số 35: có vai trò - Chân IO số 6 port C- PC5 - Chân chuyển đổi ADC 5

35. Chân số 36: có vai trò - Chân IO số 5 port C- PC4 - Chân

36. Chân số 37: có vai trò - Chân IO số 4 port C- PC3

37. Chân số 38: có vai trò - Chân IO số 3 port C- PC2 - Chân chuyển đổi ADC 2

38. Chân số 39: có vai trò - Chân IO số 2 port C- PC1

Thái Nguyên 7-2013 95

Page 97: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- Chân chuyển đổi ADC 1

39. Chân số 40: có vai trò

i lệnh

chương trình và bộ nhớ dữ liệu.

ớ của bộ nhớ chương trình gồm 16Kby H tới 2FFFH. Bộ nhớ dữ liệu gồm hai phần: bộ nhớ ong đó không gian bộ nhớ RAM lại chia làm 3 phần ghi vào ra và cuối cùng là 512 byte b là một phần của bộ nhớ dữ liệu nh độc lập như một bộ nhớ độc lập và cũng được đánh địa ch

iệu: các thanh ghi chức năng chung: AVR có 32 thanh ghi chức n ợc liên kết trực tiếp với ALU đây là điểm khác biệt của A

ng vào ra bao gồm cả tha

H tới 0010H

- Chân IO số 1 port C- PC0 - Chân chuyển đổi ADC 0

-------------------------------------------------------------------------------------------------- Bộ nhớ chương trình là loại bộ nhớ flash. Dung lượng của bộ nhớ này thay đổi khác nhau giữa các bộ xử lý trong cùng họ. Bộ nhớ này được truy nhập theo từng chu kỳ đồng hồ, và một lệnh được nạp vào thanh ghi lệnh. Thanh ghi lệnh nối với tệp thanh ghi bằng cách lựa chọn xem thanh ghi nào được ALU sử dụng để thực th

+ Cấu trúc bộ nhớ: cũng như mọi vi điều khiển khác AVR có cấu trúc Harvard tức là có bộ nhớ và đường bus riêng cho bộ nhớ

+ Sơ đồ bộ nhớ: ta thấy không gian bộ nhtes và có địa chỉ đánh từ 0000 RAM và bộ nhớ EEPROM tr: Các thanh ghi chức năng chung, các thanhộ nhớ SRAM. Bộ nhớ EEPROM mặc dù cùngưng lại hoàn toàn đứng ỉ riêng.+ Bộ nhớ dữ lăng chung và chúng đư

VR và tạo cho nó một tốc độ xử lý cực cao. Các thanh ghi được đặt tên từ R0 tới R31. Đặc biệt cặp 6 thanh ghi cuối (từ R6 tới R31) từng đôi một tạo thành các thanh ghi 16 bit sử dụng làm con trỏ trỏ tới bộ nhớ chương trình và dữ liệu. Chúng lần lượt có tên là X,Y, Z. Không gian các thanh ghi cổ

nh ghi dữ liệu và thanh ghi điều khiển cho cổng vào ra. Cuối cùng là bộ nhớ SRAM.

+ Bộ nhớ chương trình: với bộ nhớ chương trình có địa chỉ từ 0000 được dành cho bảng véc tơ ngắt. Cụ thể như sau: $0000 RESET Khởi động lại hệ thống $001 INT0 Ngắt ngoài 0 $002 INT1 Ngắt ngoài 1 $003 TIMER2 COMP bộ so sánh timer2 $004 TIMER2 over tràn bộ đếm/định thời 2 $005 TIMER1 CAPT

Thái Nguyên 7-2013 96

Page 98: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

$006 …………….. $011 Hết véc tơ ngắt. + Các thanh ghi chức năng đặc biệt: bao gồm các thanh ghi dữ liệu và các

thanh ó thể truy nhập được bằng 2 cách: bằng đX,Y, Z

đây là thanh ghi trạng thái có 8 bit lưu trữ trạng ic.

cờ dấu (Nếu kết quả của phép toán là âm)

- K: Hằng số dữ liệu - k: Hằng số địa chỉ (Có thể là một nhóm hoặc một địa chỉ cụ thể) - b: Bit trong thanh ghi chức năng chung hoặc trong thanh ghi chức năng đặc biệt (0-7). - s: Bit trong thanh ghi trạng thái (0-7). - X,Y, Z: Thanh ghi địa chỉ (Để trỏ tới địa chỉ trong RAM, hoặc Z có thể trỏ tới địa chỉ trong ROM). (X=R27:R26, Y=R29:R28 and Z=R31:R30) - A: I/O location address - q : Chỉ số cho các địa chỉ trực tiếp (0-63). - Stack: Ngăn xếp. STACK: Là nơi lưu giữ con trỏ PC cho các chương

trình con và các trình phục vụ ngắt. (Cụ thể là một vùng nhớ có tính năng “vào sau ra trước”) - SP: Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi

chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp. Khi chương trình phục vu ngắt hoặc chương trình con được gọi thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực

ghi điều khiển các cổng vào ra. Chúng cịa chỉ trực tiếp hoặc ta có thể truy nhập gián tiếp chúng thông qua thanh ghi . Ở đây chỉ giới thiệu về thanh ghi rất đặc biệt mà thôi - Status Register (SREG):thái của ALU sau các phép tính số học và log- C (Carry Flag): cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập) - Z (Zero Flag) : Cờ zero (Nếu kết quả phép toán bằng 0) - N (Negative Flag): - H (Half Carry Flag): Được sử dụng trong một số toán hạng - T (Transfer bit used by BLD and BST instructions): được sử dụng làm nơi trung gian trong các lệnh BLD, BST. - I (Global Interrupt Enable/Disable Flag): là bit cho phép ngắt toàn cục. Bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ. - Rd: Thanh ghi đích (một trong 32 các thanh ghi chức năng chung) - Rr: Thanh ghi nguồn (Một trong 32 thanh ghi chức năng chung) - R: Kết quả sau khi lệnh chạy.

Thái Nguyên 7-2013 97

Page 99: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2.

3.5

tử Philips. Ban đầu, loại bus này chỉ được dùng trong

hoạt động: I²C sử dụng hai đường truyền tín hiệu: mộ đ u luôn được

Hình 3.24. Hệ vi xử lý đơn giản sử dụng AVR

.2. Bus I2C vµ SPI Hai loại giao diện truyền tin cho phép truyền tin với khối lượng lớn, tốc độ cao

I2C: I²C - Inter-Intergrated Circuit, là bus truyền tin nối tiếp được phát triển bởi hãng sản xuất linh kiện điệncác linh kiện điện tử của Philip. Sau đó, do tính ưu việt và đơn giản của nó, I²C đã được chuẩn hóa và được dùng rộng rãi trong các mô đun truyền thông nối tiếp của vi mạch tích hợp ngày nay. Cấu tạo và nguyên lý

t ường xung nhịp đồng hồ và một đường dữ liệu. Đường dữ liệ

Thái Nguyên 7-2013 98

Page 100: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

kéo ê chế độ

h riêng. Điểm mạnh của I²C chính là hiệu suất và sự đơn giản của nó: điều khiển cả một mạng thiết bị mà chỉ cần

ai lố

oặc liên lạc giữa hai hay nhiều vi điều khiển. Bus SPI thỉnh thoảng òn đư

à nhận nhịp đồng hồ n

master. Giao thiết bị SPI trong khi master lựa chọn mỗi một tron ở mức thấp CS (Chip Select). bus SPI gồm

aster In Slave Out (MISO), erial Clock (SCLK or SCK)

Chip Select (CS

l n nguồn bằng một điện trở kéo lên có giá trị xấp xỉ 4,7 KOhm. Các hoạt động của I²C bao gồm:

• Chế độ chuẩn (standard mode) hoạt động ở tốc độ 100 Kbit/s. • Chế độ tốc độ thấp (low-speed mode) hoạt động ở tốc độ 10 Kbit/s.

Tần số xung nhịp đồng hồ có thể xuống 0 Hz. I²C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể định địa chỉ tới 112 nút, 16 địa chỉ còn lại được sử dụng vào mục đícmột khối điều khiển trung tâm có thểh i ra điều khiển. I²C được dùng trong các khối truyền thông nối tiếp của vi điều khiển.

SPI (Serial Peripheral Interface): SPI là một giao diện đơn giản có thể truyền tin giữa vi điều khiển và các chip ngoại vi hc ợc gọi là giao diện nối bốn (called four wire interface) có thể được sử dụng với các chip hoặc các thiết bị như: LCD, sensors, bộ nhớ, ADC, RTC. Phạm vi sử dụng rất rộng. Bus SPI sử dụng giao thức truyền đồng bộ, trong đó việc truyền vđược chỉ đạo (guided) bởi xung được phát sinh bởi vi điều khiể

diện SPI cho phép nối một vàig chúng bằng tín hiệu tác động 4 dây nối tín hiệu: Master Out Slave In (MOSI), MS

) cho ngoại vi

+ er – recipient là Slave. MOSI cũng

ệu ISc nh

+ SCLK hoặc SCK được sinh ra bởi master với việc truyền dữ liệu đồng bộ.

r với lựa chọn chip slave

+ Một số vi điều khiển có một chip chuyên dụng dùng cho giao diện SPI gọi

____

Hình 3.25 Bus SPI

là Slave Select ( SS ). Tín hiệu MOSI được phát sinh bởi mastcó thể được gán cho là SI hoặc SDI.

+ Các tín hi M O được sinh ra bởi slave. Trong một số chip chúng ta có thể tìm thấy cá ãn là SO hoặc SDO.

+ Tín hiệu ____CS (

____SS ) cũng được sinh ra bởi maste

hoặc thiết bị.

Thái Nguyên 7-2013 99

Page 101: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Data transfer is organized by using Shift register in both: master and slave. While master shifts register value out through MOSI line then slave shifts data in to its

SS

shift register. If there is full duplex used, then send and receive is performed at the same time:

There also is multiple byte stream mode available with SPI bus interface. In this mode master can shift bytes continuously. Using this type of transfer slave select ( ) must remain low until all stream process continues. For example you can write to memory by sending address bytes and then data in the same

ability when you can connect multiple SPI devices in series and data can be transferred to all devices though other. For instance if you connect three devices to microcontroller in series MCU-A-B-C, then MCU will have to send three bytes of information. The first byte goes to C device, second to B and third byte to A:

stream operation. In this way kilobytes or more can be sent using multiple byte transfer mode.

Hình 3.26. Daisy-chained mode

Some chips have

Hình 3.27. Nối 3 thiết bị tới MCU

Daisy-chain won’t work with devices which

ected in daisy-chain circuit:

OSI and MISO outputs are valid on rising edge of clock signal (from low to high);

sig

support or require multiple bytes operation (memory chips).

For instance AD8403 - 4-Channel Digital Potentiometer can be conn

Depending on Clock (SKC) polarity, there may be four operation modes of SPI:

Low clock polarity – when clock is low in idle and toggles in high;

High clock polarity – when clock is high in idle and toggles in low stage;

Clock phase zero – M

Clock phase one – MOSI and MISO outputs are valid on falling edge of SCK nal (high to low) Hình 3.28 Ghép nối với AD

Thái Nguyên 7-2013 100

Page 102: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Bus:

3.5.3. AVR 90S8535 SM

n và c uẩn bị khiển này (Keyword 90S8535 pdf).

ình của các hệ thống trên một vi mạch

h bao gồm một loạt các mạch tích hợp cho phé t ác nhau. Các mạch tích hợp này có thể là:

).

ột vi mạch. SoC có thể tích hợp

ầu của từng ứng dụng cụ thể.

đến+

LD -Programmable Logic Device

+ ng cung cÊp c«ng nghÖ nµy th× h·ng Cypress MicroSystems víi c¸c chip PSoC cho tiÒm n¨ng lín trong c¸c gi¶i ph¸p øng

chip cũng có

Học sinh dowload tài liệu tham khảo về AVR 90S8535 từ Inter et h báo cáo về vi điều

3.6 C¸c hÖ thèng trªn mét chip cã kh¶ n¨ng t¸i cÊu h×nh (SoC) 3.6.6 SoC lµ g×?

Hệ thống trên một vi mạch (trong tiếng Anh gọi là system-on-a-chip, viết tắt là SoC hay SOC) là một hệ thống điện tử được xây dựng trên một đế silicon với ý tưởng ban đầu là tích hợp tất cả các thành phần của một hệ thống máy tính lên trên một vi mạch đơn (hay còn gọi là một chip đơn). Hệ thống SoC này có thể bao gồm các khối chức năng số, tương tự, tín hiệu kết hợp (mixed-signal) và cả các khối tần số radio (RF). Ứng dụng điển hlà các hệ thống nhúng. Hệ thống trên một vi mạch đôi khi còn được gọi là hệ thống đơn chip hay hệ thống "sốc" (SoC).

Một hệ thống máy tính điển hìnp hực hiện các nhiệm vụ kh• bộ vi xử lý (microprocessor). • bộ nhớ (RAM, ROM• khối truyền thông nối tiếp UART. • các cổng song song. • khối điều khiển truy xuất bộ nhớ trực tiếp (DMA controller).

Sự phát triển gần đây của công nghệ bán dẫn cho phép chúng ta tích hợp ngày càng nhiều thành phần vào một hệ thống trên mthêm các khối như: bộ xử lý tín hiệu số, bộ mã hóa, giải mã Viterbi, Turbo,... tùy theo yêu cCông nghệ thiết kế và xây dựng các hệ thống trên một vi mạch (SoC) có thể kể

như: Công nghệ chế tạo ASIC - Application Specific Integrated Circuit víi c¸c hä chÝnh lµ d¶i cæng lËp tr×nh ®−îc d¹ng tr−êng FPGA-Field Programmable Gate

array, vµ c¸c linh kiÖn logic lËp tr×nh ®−îc P[1]. HiÖn cã hai h·ng næi tiÕng cung cÊp c¸c thiÕt bÞ, chip tr¾ng vµ phÇn mÒm ASIC lµ ALTERA vµ XILINX cña Hoa Kú. C«ng nghÖ CSoC: Trong sè c¸c h·

dông ®o l−êng vµ ®iÒu khiÓn [2]. Các thiết kế SoC thường tiêu tốn ít năng lượng và có giá thành thấp hơn các hệ thống đa chip nếu so sánh cùng một thiết kế. Ngoài ra, hệ thống đơn

Thái Nguyên 7-2013 101

Page 103: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

tính ổn định cao hơn. Các ứng dụng xây dựng trên cơ sở sử dụng các hệ thống đơn chip cũng cho giá thành thấp hơn, không gian chiếm chỗ ít hơn. Trên thế giới, sự phát triển của máy tính (PC) đã chuyển sang giai đoạn thứ

0: PC - Internet phát triển; dự đoán từ 2000 - 2020: giai đoạn của môi

việc nghiên cứu

3 - giai đoạn của môi trường thông minh mà hệ thống nhúng là cốt lõi (còn gọi là giai đoạn hậu PC - Internet). Năm 1960 - 1980 là giai đoạn phát triển của máy tính lớn (mainframe); 1980 - 200trường thông minh với cốt lõi là hệ thống nhúng (gọi tắt là giai đoạn hậu PC - Internet). Phát triển hệ nhúng và phần mềm (SW) nhúng đang là quốc sách của nhiều quốc gia và VN cũng cần quan tâm trước bài toán cạnh tranh trong tiến trình hội nhập. Hàn Quốc có những dự án lớn nhằm phát triển công nghệ SW nhúng như các thiết bị gia dụng nối mạng Internet, hệ thống SW nhúng phát triển thành phố thông minh. Phần Lan, Mỹ có những chính sách quốc gia tích cực chophát triển các hệ nhúng, đặc biệt là PM nhúng. Hầu hết những quốc gia này đều lập nhiều viện nghiên cứu và trung tâm phát triển các hệ nhúng. Thiết bị ngày nay phải có nhiều chức năng, thân thiện với người dùng, đặc biệt gia tăng “độ thông minh”. Đó chính là lý do xuất hiện các loại điện thoại di động tích hợp nhiều tính năng, các mẫu người máy (robot) ngày càng gần giống người thật. Chính điều này cần đến vai trò của các hệ thống nhúng. Hệ thống nhúng hiểu một cách nôm na là hệ tính toán nhúng vào một sản phẩm để thực hiện một số chức năng cụ thể. Quanh ta có rất nhiều sản phẩm nhúng như lò vi sóng, nồi cơm điện, điều hòa, điện thoại di động... Các thiết bị này ngoài chức năng truyền thống (như lâu nay chúng ta vẫn biết) còn được tích hợp nhiều tính năng mới thông qua hệ điều khiển nhúng, chẳng hạn như lò vi sóng có khả năng điều khiển bằng giọng nói, điều khiển thông qua điện thoại di động... Lâu nay chúng ta mới nhìn thấy bề nổi của CNTT là PC và Internet, còn phần chìm của CNTT chiếm đến 99% bộ xử lý trên toàn cầu nằm trong các hệ thống nhúng thì ít được biết đến [Phạm Thượng Cát, Hệ thống nhúng và thời kỳ hậu máy tính Tạp chí tự động hoá ngày nay, 2005] . Các thống kê cho biết, số chip vi xử lý ở trong máy tính (PC) và server, các mạng LAN và Internet chỉ chiếm khoảng 1% tổng số chip vi xử lý có trên thế giới. Rõ ràng, CNTT không chỉ đơn thuần là PC, mạng LAN, WAN, Internet, PM quản lý như nhiều người thường nghĩ mà còn là ứng dụng của hệ nhúng. Vai trò của SW trong PC và các thiết bị nhúng có những nét khác biệt. Đối với PC và mạng Internet, chức năng xử lý được phát triển mạnh ở lĩnh vực quản lý và dịch vụ như thương mại điện tử, ngân hàng điện tử, chính phủ điện tử, thư điện tử, đào tạo từ xa, báo điện tử... Các ứng dụng này chạy trên PC, mạng WAN, LAN. Còn đối với hệ nhúng, chức năng xử lý, tính toán của SW ứng dụng cho các thiết

Thái Nguyên 7-2013 102

Page 104: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

b lý như điện thoại di động, thiết bị gia dụng, các thiết bị điện tử cầm tay, thiết bị y tế, ô tô... Lâu nay, chính sách phát triển cũng như các nghiên cứu về CNTT trong nước quá thiên về phần nổi, nghĩa là chỉ PC và SW. Trong khi đó, thị trường cho hệ nhúng rất đa dạng, lớn gấp 100 lần thị trường PC, không công ty lớn nào trên thế giới có thể chiếm lĩnh hết. Vì thế, cơ hội cho thị trường này rất lớn. Hệ nhúng trải rộng trong tất cả các ngành từ thiết bị tiêu dùng, y tế, giao thông, công nghiệp... đến những lĩnh vực cao cấp như máy bay, tên lửa, vệ tinh. Hệ nhúng còn có trong đồ chơi. Mỗi đồ chơi hình thù khác nhau, gắn chip điều khiển khác nhau trở nên vô cùng đa dạng, mở ra thị trường phong phú. Cần biết rằng tại Trung Quốc, doanh số sản phẩm đồ chơi có chip lớn hơn nhiều lần doanh số PC. Nếu như thiết bị phần cứng là xác thì SW làm nên hồn của thiết bị, tạo ra nhiều tính năng mới và chiếm tỷ lệ ngày càng cao trong giá trị của các sản phẩm này. Hiện nay phần lớn SW nằ

ị vật

m trong các sản phẩm truyền thông, điện tử gia ô tô, phương tiện vận chuyển, máy móc, thiết bị y tế, thiết bị

u, ,

ng oát hoạt động và điều khiển. Trong ô tô hiện đại có đến trên 80

nú bảo ô tô hoạt động an toàn và thoải mái cho gười

đã cho phép các SV Cô iển tự động tiếp thu được các

và các thế hệ sau: Datasheet của các chip này có thể tham khảo trong Cypress.com hoặc tìm

ới từ khóa "tên chip + .pdf".

dụng, tiếp đến là năng lượng, thiết bị cảnh báo... Hệ nhúng là gì? Hệ nhúng là những hệ kết hợp phần cứng (HW) và SW một cách tối ưtrong đó máy tính nằm ẩn bên trong (được biết đến dưới dạng chip, mạch phụ trợthiết bị ngoại vi) và được gắn hữu cơ với vật dụng. Các hệ thống nhúng lớn thường là các hệ nối mạng. Ở máy bay, tàu vũ trụ thường có nhiều mạng nhúkết nối để kiểm s

t mạng nhúng kết nối để đảmn sử dụng.

3.6.7 Giíi thiÖu PSoC Được sự giúp đỡ về thiết bị, kỹ thuật của GSTSKH Phạm Thượng Cát Viện CNTT Viện KH và công nghệ Việt Nam, Bộ môn CNĐKTĐ là đơn vị đầu tiên tại Khoa CNTT (Nay là Khoa Công nghệ Tự động hóa -Trường đại học Công nghệ thông tin và Truyền thông Thái Nguyên) đã đưa công nghệ PSoC vào nội dung giảng dạy môn học vi xử lý và thông qua các đợt thực tập bắt đầu từ 2006. Cùng với sự phát triển nghiên cứu về ASIC/FPGA đóng góp này

ng nghệ thông tin, điện tử viễn thông, điều khcông nghệ mới nhất trên thế giới về vi điều khiển, vi xử lý.

3.6.8 PSoC CY8C29446 v

Thái Nguyên 7-2013 103

Page 105: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

CÁC BƯỚC TẠO VÀ CHẠY MỘT PROJECT PSOC

Khi cài chương trình thiết kế PSoC và Chương trình nạp yêu cầu IE phải từ bản IE6. ndows 2 00 sử dụng IE 5 thì trước đó phải chạy cài IE 6.0

0 trở lên. Nếu cài trên Wi 0

Hình 3.29. Khởi động phần mềm thiết kế PSoC

1. Chạy chương trình PsoC Designer:

Hình 3.30. Đặt tên thư mục chứa dự án

2. Vào Start new project. Đánh tên project (chẳng hạn 'LED')

Made by Pham Duc Long - ĐKTĐ

Thái Nguyên 7-2013 104

Page 106: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 3.31. Đặt tên dự án 3. Chọn khối thiết bị

Made by Pham Duc Long - ĐKTĐ

Hình 3.32. Chọn khối thiết bị

4. Sẽ được

Hình 3.33. Kết quả chọn khối

Các khối thêm

Thái Nguyên 7-2013 105

Page 107: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

5. Tiếp sau đó bấm vào Interconnect View

Hình 3.34. Chuẩn bị bước kết nối các khối, các đầu nối

6. Place User Module: Chọn modul làm việc

Hình 3.35. Chọn modul làm việc để thiết lập giá trị

1. Khối đã được ọn có màu

xanh

2.

ch

Bấm vào đây để kích hoạt

Bấm vào đây để tiếp

Made by Pham Duc Long - ĐKTĐ

Thái Nguyên 7-2013 106

Page 108: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

7. Chọn các giá trị ở mục

Hình 3.36. Đặt giá trị thông số làm việc 8 ân ra

họn Port_2_0 ấm chuột trái vào chân này để hiện bảng chọn như bên

Hình 3.37. Chọn chân ra của vi mạch

iếp theo

Chọn các giá trị trong mục này

. Chọn ch CB

Bấm chuột trái vào đây

T

Thái Nguyên 7-2013 107

Page 109: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 3.38. Chọn chân ra của vi mạch (tiếp)

9. Kết quả bước 8

.39. Kết quả nối, chọn chân ra của chip

10. Phát sinh ứng dụng

Hình 3.40. Phát sinh ứng dụng

• Bấm chuột trái vào Select để

• Sau đó chọn Global Out Even

có menu này

_0

Port_2_0 đượ

Copyright by Phạm Đức Long - ĐKTĐ Made by Pham Duc Long - ĐKTĐ

Màu chân đổi thành mầu nâu

c nối

Hình 3

Bấm vào đây

Thái Nguyên 7-2013 108

Page 110: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

11. Soạn thảo ứng dụng

Hình 3.41. Phát sinh ứng dụng (tiếp)

12. Mở file main.asm

Hình 3.42. Mở file mã nguồn, viết mã, ghi lại 13. Dịch

Hình 3.43 ấu PSoC

Bấm vào đây

. Dịch chương trình ứng dụng và nạp kết c

Thái Nguyên 7-2013 109

Page 111: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

14. Chạy chương trình nạp

Hình 3.44. Chạy chương trình nạp PSoC

5. Nạp chương trình và chạy thử + Thiết bị nạp đã được cài vào qua cổng USB + Chọn "Port" + Chọn "Device Family" + Chọn "Device" như hình dưới + Bấm vào "File Load" chọn file cần nạp vào + Để nạp bấm vào "Program" + Nếu dùng thiết bị MiniProg1 bấm vào "Toggle Device Power" cấp

nguồn cho thiết bị để xem kết quả

Bấm vào đây

1

Hình 3.45. Nạp và chạy thử

Made by Phạm Đức Long - ĐKTĐ

Thái Nguyên 7-2013 110

Page 112: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ch−¬ng 4. CÁC BỘ ĐIỀU KHIỂN VÀ GHÉP NỐI DỮ LIỆU

4.1 »ng ng¾t ngo¹i vi vµ thÕ giíi bªn ngoµi

số trao đổi là không liên tục và có thể

− ®Þnh tr×nh.

+ Vµo ra cã th¨m dß (ph−¬ng ph¸p hái vßng - polling).

+ Vµo ra dùng kỹ thuật DMA.

4.1.1 Nguyªn lý vµo/ra ®iÒu khiÓn b»ng ng¾t

Ng¾t lµ g×? Sù cÇn thiÕt ph¶i ng¾t CPU

− Ng¾t lµ kh¶ n thùc hiÖn 1

Hình 4.1. Dừng chương trình chính để thực hiện ISR − Ch−¬ng tr×nh phôc vô ng¾t ISR: Lµ ch−¬ng tr×nh t−¬ng øng víi mçi 1 ng¾t khi

ng¾t ®ã ® T (Interrupt ch−¬ng tr×nh chÝnh)

− Sè l−î ¾t lµm t¨ng kh¶ n¨ng ho¹t ®éng cña CPU. Nhê cã kh¶ n¨ng ®¸p øng ng¾t CPU cã thÓ ®¸p øng

d÷ liÖu, ®¸p øng c¸c sù kiÖn trong khi vÉn cã thÓ

Vµo/ ra sè liÖu ®iÒu khiÓn bCPU thùc hiÖn trao ®æi th«ng tin víi c¸c thiÕt bÞ

th«ng qua thiÕt bÞ giao diÖn. Dòng dữ liệuđiều khiển được. Cã thÓ ph©n chia c¸c ph−¬ng ph¸p vµo/ra d÷ liÖu thµnh 2 nhãm:

Vµo ra do CPU chñ ®éng:

+ Vµo ra theo

− Vµo ra do thiÕt bÞ ngo¹i vi chñ ®éng:

+ Vµo ra b»ng ng¾t cứng.

•¨ng dõng ch−¬ng tr×nh chÝnh ®ang thùc hiÖn ®Ó

ch−¬ng tr×nh con kh¸c gäi lµ ch−¬ng tr×nh con phôc vô ng¾t ISR (Interrupt Service Routine)

ISR

Main Program

−îc gäi. C¸c ch−¬ng tr×nh nµy khi kÕt thóc cã lÖnh IREReturn - Trë vÒ

ng ng¾t trong c¸c lo¹i CPU kh¸c nhau lµ kh¸c nhau. Ng

rÊt nhanh c¸c yªu cÇu trao ®æi thùc hiÖn ®−îc c¸c c«ng viÖc kh¸c.

C¸c lo¹i ng¾t

− Ng¾t cøng

+ Ng¾t trong

+ Ng¾t ngoµi: cã 2 lo¹i: ng¾t che ®−îc vµ kh«ng che ®−îc

− Ng¾t mÒm

Thái Nguyên 7-2013 111

Page 113: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Ng¾t hÖ thèng: Gåm ng¾t cña DOS vµ ng¾t cña BIOS

+ Ng¾t cña ng−êi sö dông

§¸p øng cña CPU khi cã ng¾t

M¸y tÝnh ®ang thù tr×n dßng lÖnh n th× cã tÝn hiÖu xin ng¾t (Xin dõng ch−¬ng tr×nh chÝnh l¹i ®Ó phôc vô ngắt). Nãi chung (trõ tr−êng hîp îc) CPU sÏ thùc hiÖn nèt lÖnh ®ang lµm dë, cÊt ®Þa chØ cña lÖnh tiÕp theo n+1 vµo stack, nÕu ng¾t cã thÓ che th× kh«ng t¸c ®éng; n¹p ®Þa chØ cña ch−¬ng tr×nh con ng¾t t−¬ng øng (Interupt Service Routine) råi thùc hiÖn ch−¬ng tr×nh ISR. Cuèi ch−¬ng tr×nh con ISR gÆp lÖnh IRET CPU kh«i phôc l¹i vÞ trÝ ®Þa chØ cña ch−¬ng tr×nh chÝnh bÞ dõng vµ thùc hiÖn tiÕp ch−¬ng tr×nh chÝnh

Hình 4.2. Đáp ứng của CPU khi có ngắt

+

+

• B¶ng vector ng¾t: Gåm 1KB trong bé nhí tõ ®Þa chØ 00000 ®Õn ®Þa chØ 003ff

îc t¹o ra trong qu¸ tr×nh khëi ®éng m¸y tÝnh. B¶ng vector

•− c hiÖn ch−¬ng h chÝnh ®Õn 1

ng¾t che ®−

LÖnh ®ang lµm dë Lµm nèt §iÓm xuÊt hiÖn ng¾t

Main Program n-1 n

n+2 n+1

IRET ISR

Ho¹t ®éng cña CPU khi cã yªu cÇu ng¾t vµ thùc hiÖn ®−îc gåm 3 giai ®o¹n:

Giai ®o¹n 1: KÕt thóc lÖnh cßn ®ang dë. Cã thÓ cÊt thanh ghi cê. CÊt ®Þa chØ trë vÒ vµo Stack. CÊm c¸c ng¾t kh¸c ®Ó xö lý trän vÑn. Tr¶ lêi ra ngoµi chÊp nhËn ng¾t qua ch©n tÝn hiÖu INTA

Giai ®o¹n 2: TÝnh ®Þa chØ ISR.

+ Giai ®o¹n 3: Thùc hiÖn ISR, cuèi ch−¬ng tr×nh ISR gÆp lÖnh IRET kÕt thóc ISR, lÊy l¹i ®Þa chØ trë vÒ, tr¹ng th¸i cña Main Program. Thùc hiÖn tiÕp Main Program

B¶ng vect¬ ng¾t. Kü thuËt thay vect¬ ng¾t

−(§Þa chØ lo gic) ®−ng¾t chøa c¸c ®Þa chØ cña c¸c ch−¬ng tr×nh phôc ng¾t, gåm 256 phÇn tö mçi phÇn tö gåm 4 bytes 2 bytes chøa segment, 2 bytes chøa offset cña ch−¬ng tr×nh phôc vô ng¾t t−¬ng øng.

Thái Nguyên 7-2013 112

Page 114: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− Kü thuËt thay véc tơ ngắt dïng ®Ó thùc hiÖn thay ®æi ®Þa chØ cña ch−¬ng tr×nh

phôc vô ng¾t ®Õn 1 ®Þa chØ cña 1 ch−¬ng tr×nh øng dông do ng−êi sö dông viÕt. (Khi 1 ùc hiÖn 1 ch−¬ng tr×nh ISR nµo ®ã th× b©y giê l¹i thùc h ng tr×nh cña ng−êi sö dông).

• Xö lý

NÕu t¹i mét thêi ®iÓm nµo ®ã ®ång thêi cã nhiÒu yªu cÇu ng¾t th× CPU sÏ ®¸p øng yªu cÇu ng¾t nµo? C©u tr¶ lêi lµ CPU sÏ xö lý c¸c yªu cÇu ng¾t theo thø tù − −u tiªn cao nhÊt sÏ ®−îc CPU nhËn biÕt

¾t ®Ó ch¹y tõng lÖnh

4.1.2 Bé ®iÒu khiÓn ng¾t PIC (8259)

Dïng ®Ó ®iÒu khiÓn c¸c ng¾t theo møc −u tiªn khi cã nhiÒu ng¾t cïng yªu cÇu.

8259A cã thÓ lËp tr×nh ®−îc, xö lý 8 yªu cÇu ng¾t víi 8 møc −u tiªn ®Ó t¹o ra 1 yªu cÇu ng¾t ®−a ®Õn ch©n INTR cña CPU

8259A ®−îc lËp tr×nh b»ng c¸ch ghi vµo c¸c thanh ghi c¸c tõ ®iÒu khiÓn khëi ®Çu ICW vµ sau ®ã lµ OCW

+ ICW: C¸c tõ ®iÒu khiÓn khëi ®Çu dïng ®Ó t¹o nªn c¸c kiÓu lµm viÖc c¬ b¶n cho PIC

+ OCW: C¸c tõ ®iÒu khiÓn ho¹t ®éng sÏ quyÕt ®Þnh c¸ch thøc lµm viÖc cô thÓ cña 8259A

ng¾t ®−îc gäi lÏ ra thiÖn 1 nhiÖm vô kh¸c trong ch−¬

−u tiªn ng¾t

u tiªn víi nguyªn t¾c ng¾t nµo cã møc vµ ®¸p øng tr−íc.

− NgÇm ®Þnh møc −u tiªn cña 8088:

+ Ng¾t néi bé: INT0

+ Ng¾t kh«ng che ®−îc NMI ¦u tiªn cao nhÊt

+ Ng¾t che ®−îc INTR

+ Ng ¦u tiªn thÊp nhÊt

−−

Thái Nguyên 7-2013 113

Page 115: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 4.3. Bộ điều khiển ngắt lập trình được 8259A

°

Bus hÖ thèng cña 8088 ë chÕ ®é min

8259A

D0..D7 IR0RD WR IR7A0 INT INTA SP/EN CS

°°

°

WR RD

A0 INTR INTA

A1..A7

IO/M

c¸c yªu cÇu ng¾t

+5V

INTA

Hình 4.4. Sơ đồ khối cấu tạo của PIC 8259A

IMR (thanh ghi mÆt n¹ ng¾t)

ISR PR IRR

IR0

IR2

IR7

:

ENSP

Ca

Cas0

/

s2

Cas1

CS

A0 WR

RD

D0-D7 Logic ®iÒu khiÓn

INT

§Öm bus D

§Öm Çng

Logic ghi/®äc

nèi tvµ so s¸nh

Bus néi bé

Thái Nguyên 7-2013 114

Page 116: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Các c

+ ng¾t.

+

hân tín hiệu: IR0-IR7: C¸c yªu cÇu

+ IRR: Thanh ghi yªu cÇu ng¾t

+ PR: Bé xö lý −u tiªn

ENSP / : LËp tr×nh thµnh m¹ch slaver/më ®Öm bus d÷ liÖu.

ISR: Thanh ghi yªu cÇu ng¾t ®ang ®−îc phôc vô +

C¸c

+ yªu cÇu ng¾t cã t¹i ®Çu vµo IRi.

Thanh ghi IMR: Ghi nhí mÆt n¹ ng¾t ®èi víi c¸c yªu cÇu ng¾t IRi.

: Khèi nµy cã nhiÖm vô göi yªu cÇu ng¾t tíi INTR cña

+ Öu: Dïng ®Ó phèi ghÐp 8259A víi bus d÷ liÖu cña CPU.

Lo c ®

+ Kh v

C¸c tÝn

0 hoÆc c¸c Çu ra tÇng m c¸c yªu

cÇu cÇn xö lý.

+ Cas0 – Cas2: T×m hiÓu nèi tÇng gi÷a c¸c PIC víi nhau khèi chøc n¨ng chÝnh cña 8259A:

Thanh ghi IRR: Ghi nhí c¸c

+ Thanh ghi ISR: Ghi nhí c¸c yªu cÇu ng¾t ®ang ®−îc phôc vô trong sè c¸c yªu cÇu ng¾t IRi.

++ Logic ®iÒu khiÓn

8088 khi cã tÝn hiÖu t¹i c¸c ch©n IRi vµ nhËn tr¶ lêi chÊp nhËn yªu cÇu ng¾t INTA tõ CPU ®Ó ®iÒu khiÓn viÖc ®−a ra kiÓu ng¾t trªn bus d÷ liÖu.

§Öm bus d÷ li

+ gi iÒu khiÓn ®äc/ghi: Dïng cho viÖc ghi c¸c tõ ®iÒu khiÓn vµ ®äc c¸c tõ tr¹ng th¸i cña 8259A.

èi ®Öm nèi tÇng µ so s¸nh: Ghi nhí vµ so s¸nh sè hiÖu cña c¸c m¹ch 8259A cã mÆt trong hÖ vi xö lý.

hiÖu cña 8259A:

+ CAS – CAS {I,O}: lµ c¸c ®Çu vµo ®èi víi c¸c m¹ch 8259A tí2

® cña m¹ch 8259A chñ dïng khi cÇn nèi ®Ó t¨ng thª

+ SP / EN [I,O]: Khi 8259A lµm viÖc ë chÕ ®ä kh«ng cã ®Öm bus d÷ liÖu ch tí th× ®©y lµ tÝn hiÖu vµo dïng lËp tr×nh ®Ó biÕn m¹ch 8259A thµnh m¹

( SP =0) hoÆc chñ ( SP =1); Khi 8259A lµm viÖc trong hÖ vi xö lý ë chÕ ®é

®Öm bus d÷ liÖu th× ch©n nµy lµ tÝn hiÖu ra EN dïng ®Ó më ®Öm bus d÷ liÖu ®Ó 8088 vµ 8259A th«ng b¸o bus d÷ liÖu hÖ thèng. Lóc nµy 8259A thùc hiÖn th«ng qua tõ ®iÒu khiÓn ICW4.

+ INT[0]: TÝn hiÖu yªu cÇu ng¾t ®Õn ch©n INTR cña CPU 8088.

+ INTA [I]: Nèi víi tÝ iÖu b hËn ng¾t INTAn h ¸o chÊp n cña CPU.

CW: Có 4 từ điều khiển khởi đầu ICW1-ICW4. I

Thái Nguyên 7-2013 115

Page 117: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

116

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Cũng có thể ghi cả 4 từ điều khiển này hoặc chỉ ghi 2, 3 từ điều khiển là đủ. uy trình khởi tạo ghi từ điều khiển (hình 4.5):

h 4.5. Quy trình khởi tạo ghi từ điều khiển

VXL 16-32 bit) = 0 bỏ ICW4 (Họ VXL 8 bit)

NGL: = = Có nh PIC

DI: Khoảng cách giữa các vectơ ngắt =0 Các =1 Cách 8 bytes (8080/85)

TIM: Cá c động của xung yê= 0: Theo sườ ươn

Q

ICW1

Thái Nguyên 7-2013

ICW2

ICW1.2=1?

C

Hìn

Các từ điều khiển ICW

IC4: = 1 Cần ICW4 (Họ S 1 Có 1 PIC 0 iều A

4 bytes (8086/88)

L ch tá u cầu ngắt n d g

ICW3

ICW1.1=1?

ICW4

Sẵn sàng nhận ngắt

K

C

K

Có một PIC

Có nhiều PIC

Họ VXL 16-32 bit

Họ VXL 8 bit

ICW1A0

IC4 SNGL ADILT1xx x IM0

Page 118: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

=1: Theo mức dương

ệ vi xử lý ta có một mạch 8259A chủ và hai mạch 8259A thợ i vào chân IR0 và IR1 của mạch chủ. Tìm giá trị phải gán cho các từ điều khiển ởi đầu ICW. iải: Để ảo yêu cầu trên, các mạch có thể làm việc được với nhau thì W3 = 0 cho c CW 00 o h t hứ và 3 = 01h

ợ thứ hai. Các từ điều khiển OC hoạt động như thế nào sau đã được khởi đầu bằ khiển ICW. Tất cả các từ điều khiển

T0 T1 T2T3T4T5T6 T7 1

A0 ICW2

Để chọ

n kiểu (số ệu) ng h 8259 hi ắt cho mạc A Ứng vớ ủa yêu cấu ngắt IR0-IR7

i mã c

S0 S1 S3 S2S4S5S6 S7 1

A0 ICW3 chủ

1: Đầu vào IR i mạch 8259 thợ 0: ối ạc

i nối vớ Đầu vào IRi không n với m h thợ

Hình 4.6. Các thanh ghi từ điều khiển ICW Ví dụ: Trong một hnốkhG đảm bIC 3h mạch hủ, I 3 = h ch mạc hợ t nhất ICWcho PIC th W sẽ quyết định 8259A khi nó ng các từ điều

ID0 ID1 ID20 000 0 1

A0 ICW3 thợ

Mã hoá số 0-IR7 hiệu của mạch thợ 0-7 nối vào IR

A0 ICW4

µPM AEOI M/SBUFSFNM00 0 1

1: Chế độ ưu tiên cố định đặc biệt 0: Không phải chế độ ưu tiên cố định đặc biệt

1: cho họ 80x86/88

1:EOI tự động 0: EOI thường

0x: 8259A ở chế độ không đêm 10: Mạch 8259A thợ ở chế độ đệm 11: Mạch 8259A chủ ở chế độ đệm

Thái Nguyên 7-2013 117

Page 119: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

hoạt động sẽ được ghi vào các thanh ghi trong PIC khi A0 = 0. Riêng OCW1

c ghi khi A0=1.

0 0 1

đượ

A0 OCW1

M0 M1 M2M3M4M5M6 M7 1

Mặt nạ ngắt tại các yêu cầu ngắt 1: có mặt nạ 0: không có mặt nạ

OCW2A0

L0 L1 L2000 R EOISL

0 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 0

Kết thúc ngắt

(EOI) Đổi mức ưu tiên tự động Đổi mức ưu tiên đích danh

Lệnh EOI thường Lệnh EOI chỉ đích danh Đổi mức ưu tiên khi có EOI thường Lập chế độ quay khi có EOI tự động Xoá ch độ kh ó EO tự độĐổi mức ưu tiên khi có EOI đích danh

mức ưu tiên

ế quay i c I ng

Mã hoá mức ưu tiên ngắt bị tác động 000: mức 0 ... 111: mức 7

Lệnh lặpKhông làm gì

Hình 4.7. Các thanh ghi từ điều khiển OCW

A0 OCW3 RISERIS P10SMMESMM0 0

10: Đ IRR ở lần đọc sau: Đ IRR ở lần đọc sau, 00 hông tác động

ọc 1101

ọc: K

Chế độ mặt nạ đặc t hế độ mặ đặc t ế độ đặc biệt

biệ10: xoá c11: Lập ch

t nạ biệ

Thăm dò hiện trạng của yêu cầu ngắt ất ở lần

đọc sau. 1: đọc mã mức ưu tiên cao nh

Thái Nguyên 7-2013 118

Page 120: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Thanh ghi ISR trước khi IR ợ ấ ậ(0: mứ u ên p t)

6 5 4 2 1 0

4 đư c ch p nh n c cao nhất; 7: mức ư ti thấ nhấ IS7 IS IS IS IS3 IS IS ISTrạng thái của ISR 0 1 0 1 0 0 0 0 Mức ưu tiên 7 6 5 4 3 2 1 0

Thanh ghi ISR sau khi IR4 được chấp nhận và sau khi có lệnh quay 0: mức cao nhất; 7: ê ấ ấ

IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0

( mức ưu ti n th p nh t)

Trạng thái củ 0 0 0 a ISR 0 1 0 0 0 Mức ưu tiên 6 5 4 3 2 1 0 7

Dạng thức của thanh ghi yêu c c vụ

an ghi IRR

Hình 4.9. Thanh ghi ISR

4.1.3 Ng¾t trong m¸y tÝnh IBM/PC

Tõ 80286 i, cÊu tróc ng¾t c thèng sö d PIC 8259A ®Ó më réng kh¶ n¨ng qu¶n lý viÖc xö lý c¸c yªu c©ï ng¾t

C¸c nguån g©y ng¾t kh«ng che ®−îc:

D

ầu ngắt và thanh ghi phụThanh ghi IRR: D7 D6 D5 D4 D3 D2 D1 0

IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0

Hình 4.8. Th hThanh ghi ISR:

− trë ® ña hÖ ông 2

D7 D6 D5 D4 D3 D2 D1 D0IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0

IRi = 0 đầu vào i không có yêu cầu ngắt IRi = 1 đầu vào i có yêu cầu ngắt

ISi = 0 yêu cầu ngắt i không phục vụ ISi = 1 yêu cầu ngắt i đang được phục vụ

Thái Nguyên 7-2013 119

Page 121: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Lçi RAM CMOS

Lçi parity tõ bé nhí vµ thiÕt bÞ ngo¹i vi

ìn h Bảng 4 IRQ má

+

H h 4.10. G

.1 Các của các y tính PC

IRQ INT N ?

IRQ0 INT08h Bộ đếm 8IRQ1 INT09h Bàn phímIRQ2 INT0Ah Yêu cầu nIRQ3 INT0Bh COM2 IRQ4 INT0Ch COM1 IRQ5 INT0Dh Cổng máyIRQ6 INT0Eh Điều khiểIRQ7 INT0Fh Cổng máyIRQ8 INT70h CMOS đồIRQ9 INT71h Định hướIRQ10 INT72h Dành o chIRQ11 INT73h Dành cho

INTR INTR

INTA INTA

IRQ7

IRQ0 IRQ8

IRQ15 SE/EN

INTA

N

CAS0

6 8259 chñ8259 thî

INTR

Thái Nguy

SE/E

ép nối PIC chủ - thợ

/AT

Dành cho 254 đạt số đếm gắt từ 8259A thợ

in song song LPT2n đĩa mềm in song song LPT1ng hồ thời gian thự

ng lại bằng chương người sử dụng người sử dụng

CAS2

i Parity tõ bé nhí

Lçi Parity tõ I/O

ên 7-2013

80x8

NMI

+5V

c trình về INT 0Ah

D7 cña cæng 70h

120

Page 122: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

IRQ12 INT74h Chuột PS/2 IRQ13 INT75h Bộ đồng xử lý toán học IRQ14 INT76h Ổ đĩa cứng IRQ15 INT77h Dành cho người sử dụng

Trên máy tính PC chúng ta có thể lập trình lại cho các PIC. Tuy nhiên khi chúng ta không lập trình thì các bộ PIC này hoạt động theo chế độ khởi tạo ngầm định bởi

DMA

®ßi hái tèc ®é vµo/ra d÷ liÖu nhanh h¬n kh¶ n¨ng vµo/ra d÷ liÖu cña c¸c ph−¬ng ph¸p vµo/ra d÷ liÖu b»ng ch−¬ng tr×nh nh− ®· tr×nh bµy ë trªn, vÝ dô qu¸ tr×nh chuyÓn d÷ liÖu tõ c¸c æ ®Üa vµo bé nhí vµ ng−îc l¹i. Lóc nµy cã thÓ sö dông ph−¬ng ph¸p vµo/ra d÷ liÖu kiÓu DMA, lµ qu¸ tr×nh v hí vµ th Þ ngo¹i ng qua CPU.

Trong qu¸ tr×nh DMA viÖc chuyÓn d÷ liÖu kh«ng ®−îc ®iÒu khiÓn bëi CPU mµ

S¬ ®å qu¸ tr×nh nh− sau

Sơ đồ thực hiện DMA

CP

− − ªu cÇu CPU ®i vµo

chương trình trong BIOS.

4.2 Vµo/ra sè liÖu ®iÒu khiÓn b»ng th©m nhËp bé nhí trùc tiÕp

4.2.1 Nguyªn lý vµo/ ra b»ng DMA Cã nhiÒu qu¸ tr×nh trao ®æi d÷ liÖu

µo/ra d÷ l ùc tiÕp giiÖu tr ÷a bé n iÕt b vi kh«

bëi mét thiÕt bÞ phÇn cøng lµ bé ®iÒu khiÓn DMAC (DMA Controller).

:

Hình 4.11.

U ®ang ho¹t ®éng b×nh th−êng

− DMAC ®−îc x¸c lËp chÕ ®é lµm viÖc, nhËn th«ng tin vÒ ®Þa chØ ®Çu khèi nhí chøa d÷ liÖu vµ kÝch thø¬c khèi d÷ liÖu cÇn truyÒn.

ThiÕt bÞ vµo/ra ph¸t tÝn hiÖu DRQ cho DMAC

DMAC ph¸t tÝn hiÖu HRQ =1 ®Õn ch©n HOLD cña CPU, ychÕ ®é DMA

CPU thùc hiÖn nèt chu kú m¸y

• CPU

DMAC I/O MEM HOLD DRQDRQHRQ

HLDA DACK DACKHACK

Thái Nguyên 7-2013 121

Page 123: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− CPU ph¸t tÝn hiÖu HLDA tr¶ lêi cho DMAC vµ tù t¸ch ra khái hÖ thèng bus.

Quy

− DM u cÇu, ph¸t ®Þa chØ « nhí lªn bus ®Þa chØ, ph¸t c¸c tÝn hiÖu ®iÒu khiÓn ghi/®äc thiÕt bÞ vµo/ Ón toµn

− Tro+ Treo+ Treo CPU ®Ó trao ®æi tõng byte. + T

• Trao ®æi c¶ m¶ng d÷ liÖu: Trong chÕ ®é nµy CPU bÞ treo trong suèt thêi gian trao ®æivíi æ ®Üa h mét m¶ng d÷ liÖu

1. Þa chØ ®Çu cña m¶ng nhí, ®é dµi cña m¶ng

2. o ®æi d÷ liÖu, nã ®−a DRQ=1 ®Õn

3. treo CP

4. NhËn ®−î

n d÷ liÖu tõ bé nhí ra thiÕt bÞ ngo¹i vi b»ng

Òn ®iÒu khiÓn hÖ thèng bus thuéc vÒ DMAC

AC lµm chñ bus hÖ thèng, t¹o tÝn hiÖu DACK tr¶ lêi thiÕt bÞ yª

ra vµ c¸c tÝn hiÖu ®iÒu khiÓn ghi/®äc bé nhí vµ thùc hiÖn ®iÒu khibé qu¸ tr×nh chuyÓn d÷ liÖu giữa thiÕt bÞ vµo/ra vµ bé nhí.

KÕt thóc qu¸ tr×nh DMA, DMAC göi tÝn hiÖu HRQ = 0 ®Õn ch©n HOLD tr¶ l¹i quyÒn ®iÒu khiÓn bus cho CPU

CPU tiÕp tôc lµm viÖc b×nh th−êng. ng trao ®æi d÷ liÖu DMAC cã 3 kiÓu trao ®æi nh− sau:

CPU mét kho¶ng thêi gian ®Ó trao ®æi c¶ m¶ng d÷ liÖu.

Ën dông thêi gian kh«ng dïng bus cña CPU ®Ó trao ®æi d÷ liÖu.

m¶ng d÷ liÖu. ChÕ ®é nµy ®−îc dïng khi ta cã nhu cÇu trao ®æi d÷ liÖu oÆc ®−a d÷ liÖu ra ®Ó hiÓn thÞ. C¸c b−íc thñ tôc ®Ó chuyÓn

tõ bé nhí ra thiÕt bÞ ngo¹i vi: CPU ph¶i ghi tõ ®iÒu khiÓn vµ tõ chÕ ®é lµm viÖc vµo DMAC ®Ó quy ®Þnh c¸ch thøc lµm viÖc, ®nhí… Khi thiÕt bÞ ngo¹i vi cã yªu cÇu traDMAC. DMAC ®−a ra tÝn hiÖu HRQ ®Õn ch©n HOLD cña CPU ®Ó yªu cÇu

U. HOLD=1 trong suèt qu¸ tr×nh trao ®æi d÷ liÖu. c yªu cÇu treo, CPU kÕt thóc chu kú bus hiÖn t¹i, sau ®ã

treo c¸c bus cña m×nh vµ ®−a tÝn hiÖu HLDA b¸o cho DMAC ®−îc toµn quyÒn sö dông bus.

5. DMAC ®−a ra xung DACK ®Ó b¸o cho thiÕt bÞ ngo¹i vi biÕt lµ cã thÓ b¾t ®Çu qu¸ tr×nh trao ®æi d÷ liÖu.

6. DMAC b¾t ®Çu chuyÓc¸ch ®−a ®Þa chØ cña byte ®Çu ra bus ®Þa chØ vµ ®−a tÝn hiÖu

MEMR =0 ®Ó ®äc tõ bé nhí ra bus d÷ liÖu. TiÕp ®ã DMAC ®−a tÝn

hiÖu IOW =0 ®Ó ghi d÷ liÖu ra thiÕt bÞ ngo¹i vi. DMAC sau ®ã gi¶m bé ®Õm sè byte cÇn ph¶i chuyÓn, cËp nhËt byte cÇn ®äc tiÕp vµ lÆp l¹i c¸c ®éng t¸c trªn cho ®Õn khi hÕt sè ®Õm.

Thái Nguyên 7-2013 122

Page 124: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

7. Khi qu¸ tr×nh DMA kÕt thóc, DMAC cho ra tÝn hiÖu HRQ=0 ®Ó b¸o

cho CPU biÕt vµ dµnh l¹i quyÒn ®iÒu khiÓn hÖ thèng.

• Treo CPU ®Ó trao ®æi tõng byte CPU kh«ng bÞ treo l©u dµi trong mét lÇn nh−ng thØnh tho¶ng l¹i bÞ treo

trong mét kho¶ng thêi gian rÊt ng¾n ®ñ ®Ó trao ®æi mét byte d÷ liÖu. Do bÞ mÊt mét sè chu kú ®ång hå nh− vËy nªn tèc ®é thùc hiÖn mét c«ng viÖc nµo ®ã cña CPU − tr−íc (chØ trao ®æi mét byte).

• TËn dông thêi gian CPU kh«ng dïng bus ®Ó trao ®æi d÷ liÖu ng c¸ch tra u nµy ta ph¶i cã c¸c logic phô bªn ngoµi cÇn

thiÕt ®Ó ph¸t hiÖn ra c¸c chu kú xö lý néi bé cña CPU (kh«ng dïng ®Õn bus ngoµi) vµ tËn dông c¸c chu kú ®ã vµo viÖc trao ®æi hiÕt bÞ ng i bé nhí. Trong c¸ch lµm nµy th× DMAC vµ CPU lu©n phiªn nhau sö dông bus vµ viÖc th©m trùc tiÕp b nµy kh«ng g× tíi ho¹t ®éng b×nh th−êng cña CPU.

điều khiển truy nhËp bé nhí trùc tiÕp DMAC (8237)

H của DMAC 8237 C¸c ®Æc tr−ng cña IC: - Cho phÐp hoÆc cÊm riªng tõng kªnh DMA

chØ bÞ suy gi¶m chø kh«ng bÞ dõng h¼n. C¸ch trao ®æi t−¬ng tù nh

Tro

nhËp

o ®æi d÷ liÖ

d÷ liÖu gi÷a t o¹i vi ví

é nhí kiÓu ¶nh h−ëng

4.2.2 Bé

ình 4.12. Sơ đồ khối

Khèi t¹o

nhÞp vµ

®iÒu khiÓn

Bé gi¶mThanh ghi t¹m bé ®Õm sè tõ

§Öm ra§Ö

§Þa chØ Sè tõ hiÖn t¹i hiÖn t¹i

m ghi/®äc

§Öm ®äc

c¬ së§Þa chØ Sè tõc¬ së

TG mÆt n¹

TG yªu cÇu

TG t¹m TG tr¹ng th¸i TG chÕ ®é

Bé m· ho¸ ø−u t log t¹−u n

lu©n

m c iªn vµ ic o tiª phiªn

TG lÖnh §Öm I/O

§Öm ghi §Öm ®äc

§Öm I/O

Bé t¨ngThanh ghi t¹m bé ®Õm sè tõ

Thái Nguyên 7-2013 123

Page 125: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- D

®éc lËp vµ cã 4 ®−êng tr¶ lêi DACK

MA gi÷ vïng nhí - Tù khëi ®éng gi÷a tõng kªnh riªng biÖt - Cho phÐp nèi tõng kªnh ®Ó t¨ng sè kªnh DMA Khi dïng DMAC hÖ dïng mét sè lÖnh ®iÒu khiÓn h¬i kh¸c víi CPU Cã 4 kªnh DRQ

Cã IOR Vµ IOW 2 chiÒu dïng DMAC ®äc ghi tõ ngo¹i vi.

MEMR vµ MEMW dïng cho bé nhí.

EOP lµ tÝn hiÖu hai chiÒu. Khi ®−a vµo 8237 lµm nhiÖm vô DMAC kÕt thóc qu¸ tr×nh DMA. NÕu ra nã b¸o cho 1 kªnh nµo ®ã ®É chuyÓn sè byte yªu cÇu lóc nµy nã dïng yªu cÇu ng¾t víi CPU xö lý qu¸ tr×nh ng¾t DMA.

cÊm©y lµ xung tõ 8237 ®Ó chèt ®Þa chØ cao tõ A8-A15 tren DB

hanh ghi DMAC khi lËp tr×nh ra chøa 4

DB0-7: 2 chiÒu nèi víi bus ®Þa chØ vµ bus d÷ liÖu. Ready: Lµ tÝn hiÖu s½n sµng nèi tõ 8237 tíi Ready cña hÖ thèng ®Ó t¹o chu kú ®îi kh

C¸c tr¹ng tPhôNhãm Ø vµ

ho¹t ®éng.clock.

1. th¸i nghØ SI: §©y lµ tr¹ng th¸i kh«ng ho¹t ®éng (

AEN cho phÐp m¹ch chèt nèi DB0-7 chèt ®Õn vïng bé nhí dïng DMA vµ c¸c ®Öm tõ CPU.

ADSTB: §A0-A3: Lµ hai chiÒu. Dïng ®Ó chän c¸c tbit thÊp ®Þa chØ. A4-A7: Lµ 4 bit ®Þa chØ cao.

i tÝn hiÖu chËm. h¸i

thuéc vµo ta ®Æt tr−íc vµo thanh ghi. thanh ghi ®iÒu khiÓn vµ tr¹ng th¸i:… lµm viÖc theo 2 chu kú ngh

Mçi chu kú bao gåm mét sè tr¹ng th¸i. Mçi tr¹ng th¸i chiÕm mét xung

7 tr¹ng th¸i:

Tr¹ng CS = 1) lóc

2. CPU nh−ng ch−a ®−îc x¸c nhËn b»ng tÝn hiÖu HLDA.

liÖu S1. DMAC ph¸t ®Þa chØ nguån

n d÷ liÖu S2.DMAC ph¸t ra lÖnh ®äc nguån d÷

thanh ghi ®Öm 8237A.

nµy CPU ®iÒu khiÓn 8237A. Tr¹ng th¸i chê: §©y lµ tr¹ng th¸i b¾t ®Çu DMA. Khi DMAC göi tÝn hiÖu treo

3. Tr¹ng th¸i ph¸t ®Þa chØ nguån d÷d÷ liÖu (ngo¹i vi, bé nhí).

4. Ph¸t lÖnh ®äc nguåliÖu.

5. Tr¹ng th¸i chê SW (x¶y ra nÕu tèc ®é hai bªn kh¸c nhau). DMAC chê trong kho¶ng SW ®Ó d÷ liÖu ®äc ®−îc ghi hÕt vµo

Thái Nguyên 7-2013 124

Page 126: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

6. Ph¸t ®Þa chØ ®Ých cña d÷ liÖu S3. 7. Tr¹ng th¸i ph¸t lÖnh ghi d÷ liÖu vµo ®Ých S4.

C viÖc:

+ ChuyÓn mét tõ ®¬n

+ ChÕ ®é chuyÓn b¶n, chuyÓn c¶ m¶ng d÷ liÖu cho ®Õn khi TC (bé ®Õm ®Þa chØ) hoÆc EOP. ë ®©y DMAC kh«ng cho phÐp tù khëi ®éng.

+ ChuyÓn theo nhu cÇu: Còng chuyÓn c¶ m¶ng d÷ liÖu nh− chÕ ®é thø 2 nh−ng nã ®−îc n¹p l¹i mçi lÇn DRQ míi.

+ ChÕ ®é ghÐp tÇng.

MAC 8237 ChÕ ®é −

+ R0 cao nhÊt -IR3)

+ ¦u tiªn vßng (lu©n phiªn): §¶m b¶o 4 yªu cÇu nh− nhau. C¸c than

C¸c thanh gh

khèi xö lý DMA

u khiÓn Than

+

+ o tõng kªnh Thanh ghi ®iÒu khiÓn

+ Thanh ghi chÕ ®é: §iÒu khiÓn viÖc chuyÓn m¶ng ®Õn ®Ó t¨ng hay gi¶m nèi tÇng hay kh«ng.

¸c chÕ ®é DMAC lµm

Hình 4.13. Ghép nhiều Du tiªn c¸c yªu cÇu DMA

¦u tiªn cè ®Þnh.(I

h ghi néi i néi cña DMAC chia lµm 2 lo¹i:

+ Thanh ghi cña

+ C¸c thanh ghi ®iÒh ghi DMA:

Thanh ghi yªu cÇu

+ Thanh ghi lËp xo¸ mÆt n¹

Thanh ghi mÆt n¹ ch

+ Thanh ghi lÖnh:

CPU hol

Drq1a

Dack1

Dack0

Drq08237 d

8237HLDA

8237

Thái Nguyên 7-2013 125

Page 127: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Thanh ghi tr¹ng th¸i: Tr¹ng th¸i cña tõng kªnh cßn yªu cÇu DMA

hay kÕt thóc DMA.

4.2.3 Sö dông bé ®iÒu khiÓn DMAC trong hÖ vi xö lý

Hình 4.14. GhÐp 2 DMAC trong PC

There are various modes of data transfer on IDE disk drives.

The PIO modes use the CPU, and the DMA modes bypass the CPU.

Hình 4.15. DMA Disk Transfers

Thái Nguyên 7-2013 126

Page 128: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

4.3 B

Tác dụng lập trình được: ững khoảng thời gian nhỏ chính xác: đến 1 clk, nếu tần số

càng lớn thì khoảng thời gian xác định được chính xác càng nhỏ. Ví dụ nếu xung nhịp làm việc là 100MHz thì thời gian 1 clk sẽ là

+ Đếm xung. + Tạo xung.

−îc (8254)

Bảng 4.2 Chọn c

1 2

é ®Õm lËp tr×nh ®−îc

của bộ đếm + Xác định nh

xung nhịp

1/108 giây.

4.3.1 S¬ ®å khèi bé ®Õm lËp tr×nh ®

§Öm

bus d÷ liÖu

RD LogicWR ®iÒu A0 khiÓn A1 ghi/®äc

Bé ®Õm 0

A A0 0 0 1 1 0 1 1

Bé ®Õm 1

RDWR

A0

A1

A2..A15

D0 .. D7

CPU

clk0

Gate0

Out0

clk1

Gate1

Out1

CS

H S¬ ®å khèi cña 8254

tha

Thanh ghi tõ ®iÒu khiÓn

ình 4.16.

nh ghi trong 8254

Chän ra Thanh ghi cho bé ®Õm sè 0 Thanh ghi cho bé ®Õm sè 1 Thanh ghi cho bé ®Õm sè 2 Thanh ghi tõ ®iÒu khiÓn

Bé ®Õm 2

clk2

Gate2

Out2

Thái Nguyên 7-2013 127

Page 129: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 4.17. Thanh ghi tõ ®iÒu khiÓn cña 8253/54

4.3.2 C¸c chÕ ®é lµm viÖc cña bé ®Õm lËp tr×nh Tham khảo thêm Data sheet 82C54.pdf

ChÕ ®é 0 - T¹o yªu cÇu ng¾t khi ®Õm xong:

SC0 SC1 RW0RW1 BCDM0M1M2

Ghi/®äc: 00: LÖnh chèt bé ®Õm 01: ChØ ®äc/ghi byte LSB 10: ChØ ®äc ghi byte MSB 11: ®äc/ghi byte LSB tiÕp theo lµ MSB

Chän bé ®Õm: 00: Chän bé ®Õ

0: Bé ®Õm HEX 4 sè 1: Bé ®Õm BCD sè

m 0 ChÕ ®é:000: ChÕ ®é 0-T¹o yªu cÇu ng¾t khi ®Õm

01: Chän bé ®Õm 1 10: Chän bé ®Õm 2

001: ChÕ ®é 1- §a hµi ®îi 010: ChÕ ®é 2- Bé chia tÇn

11: §Ó ra lÖnh ®äc n

hÕt lËp tr×nh ®−îc

hÐp mÒm hÐp cøng

g−îc sè cho N

011: ChÕ ®é 3- T¹o xung vu«ng

100: ChÕ ®é 4- T¹o xung cho p101: ChÕ ®é 5- T¹o xung cho p

Hình 4.18. Chế độ 0 của 8254

Sau khi ®Æt tõ ®iÒu khiÓn CW=10h ta n¹p n=4 vµo LSB. Gate lóc nµy =1 vµ ®Çu ra OUT = 0. S−ên lªn cña xung WR sÏ kÝch ho¹t bé ®Õm ®Õm ng−îc. Bé

g ng¾t víi CPU sau khi ®Õm hÕt. Trong nöa h×nh d−íi khi ®ang ®Õm ng−îc mµ Gate = 0 th× bé ®Õm dõng l¹i

hi ®ang ®Õm Gate = 0 bé Õm dõng l¹i gi÷ sè ®Õm 4 sau 3 clk Gate =1 l¹i ®Õm tiÕp.

Trong qu¸ tr×nh ®Õm mét sè ®Õm míi còng cã thÓ ®−îc n¹p vµo. Khi ®ã bé ®Õm l¹i ®Õm theo sè ®Õm míi.

®Õm b¾t ®Çu ®Õm ng−îc tõ 4. Sau 5 xung khi bé ®Õm = 0 th× OUT = 1. Xung OUT cã thÎ ®−îc dïng nh− xun ®Õn khi nµo Gate = 1 th× l¹i ®Õm tiÕp. Trªn h×nh vÏ k®

Thái Nguyên 7-2013 128

Page 130: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

ChÕ ®é 1- §a hµi ®îi víi thêi gian lËp tr×nh ®−îc:

Hình 4.19. Chế độ của 8254

ChÕ ®é 2 - T¹o ra xung cã tÇn sè fin/N:

Hình 4.20. Chế độ 2 của 8254

ChÕ ®é 3 - T¹o ra d·y xung vu«ng:

Hình 4.21. Chế độ 3 của 8254

ChÕ ®é 4 - T¹o ra xung cho phÐp b»ng ch−¬ng tr×nh:

Thái Nguyên 7-2013 129

Page 131: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 4.22. Chế độ 4 của 8254

ChÕ ®é 5 - T¹o ra xung cho phÐp b»ng xung ®iÒu khiÓn GATE:

Hình 4.23. Chế độ 5 của 8254

4.3.3 Sö dông bé ®Õm trong hÖ vi xö lý

Các vi mạch 8253, 8254 có thể được sử dụng: + Riêng biệt kết hợp với các vi mạch điện tử khác. + hoặc có thể được ghép với hệ vi xử lý.

4.4 Phèi ghÐp vµo ra nèi tiÕp

4.4.1 Nguyªn lý vµo/ ra nèi tiÕp D÷ liÖu ®−îc ®−a ra, nhËn vµo m¸y tÝnh theo tõng bit 1. Trong thùc tÕ th«ng tin th−êng ®−îc ®ãng gãi thµnh c¸c gãi tin cã ®é dµi kh«ng x¸c ®Þnh tr−íc khi chuyÓn ®i. So víi vµo ra song song th× ph−¬ng ph¸p nµy truyÒn nhËn d÷ liÖu cho tèc ®é chËm h¬n nhiÒu; bï l¹i ph−¬ng ph¸p nµy kh¾c phôc ®−îc c¸c kho¶ng c¸ch xa. Trong khi truyÒn qua cæng LPT chóng ta chØ thÓ thùc hiÖn d−íi kho¶ng c¸ch 5m th× qua cæng nèi tiÕp b×nh th−êng ta ®· truyÒn ®−îc kho¶ng c¸ch 15-20m; NÕu cã sù trî gióp cña modem c¸c kho¶ng c¸ch nµy lµ hµng chôc ngh×n m. M¹ng Internet truyÒn qua ®−êng d©y ®iÖn tho¹i 2 d©y lµ 1 vÝ dô sinh ®éng. Ta cã 2 ph−¬ng ph¸p truyÒn tin nèi tiÕp:

• TruyÒn ®ång bé :

XHEADER X

SYN

H

SOH

ình 4.24. Khu«n d¹

Thái Ngu

ST

ng cña

yên 7-

TEXT

b¶n tin tru

2013

ET

yÒn ®ång

BCC

130

Page 132: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

SYN: Ký tù ®ång bé SOH: B¾t ®Çu phÇn mµo ®Çu HEA DER:PhÇn mµo ®Çu STX: Ký tù b¾t ®Çu v¨n b¶n TEXT: Th©n v¨n b¶n ETX: Ký tù kÕt thóc khèi v¨n b¶n BCC: Ký tù kiÓm tra khèi

• TruyÒn kh«ng ®ång bé (Acsynchronous Communication ) D÷ liÖu ®−îc truyÒn ®i tõng ký tù. Ký tù cÇn truyÒn ®i ®−îc g¾n thªm 1 bit ®¸nh dÊu ë ®Çu ®Ó b¸o b¾t ®Çu ký tù (Start) vµ 1 hoÆc 2 bit ®¸nh dÊu ë cuèi ®Ó b¸o kÕt thóc ký tù (stop). D¹ng thøc cña d÷ liÖu truyÒn ®i theo ph−¬ng ph¸p kh«ng ®ång bé nh− sau

Start D0 D1 D2 D3 D4 D5 D6 Parity Stop

ChiÒu dßng d÷ liÖu Lu«n ë møc caoLu«n ë møc thÊp

Hình 4.25. Khung tin truyền không đồng bộ

Bit Start: = 0 Data bit: cã thÓ lµ 5,6,7 hoÆc 8 Bit D0 ®−îc truyÒn ®Çu tiªn Bªn c¹nh c¸c bit d÷ liÖu cã thÓ cã hay kh«ng 1 bit Parity ®Ó kiÓm tra lçi khi truyÒn Bit Stop cã thÓ lµ 1 hay 2 Tèc ®é truyÒn ®−îc ®o b»ng bit/gi©y. Ng−êi ta còng hay dïng baud lµ gi¸ trÞ nghÞch ®¶o cña thêi gian gi÷a c¸c lÇn thay ®æi møc tÝn hiÖu. Víi d÷ liÖu chØ cã 2 møc 0 vµ 1 baud = bit/s C¸c tèc ®é truyÒn th−êng dïng lµ 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19.200 Th−êng dïng nhÊt lµ 4800 vµ 9600 baud Khi truyÒn kh«ng ®ång bé th−êng mÊt kho¶ng 30% sè bit b¾t tay Trong khi truyÒn chóng ta còng cã c¸c ph−¬ng ph¸p kh¸c nhau:

- TruyÒn ®¬n c«ng Simplex: D÷ liÖu chØ ®i ®−îc 1 chiÒu 1 tr¹m ph¸t 1 tr¹m kia thu

- TruyÒn b¸n song c«ng (Half Duplex): C¶ 2 tr¹m ®Òu ph¸t vµ thu ®−îc nh−ng kh«ng ®ång thêi. VÝ dô m¸y bé ®µm

- C¶ 2 tr¹m ®Òu ph¸t vµ thu ®ång thêi.

Thái Nguyên 7-2013 131

Page 133: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Qu¸ tr×nh ®iÒu chÕ: Modulation Dïng ®Ó biÕn ®æi c¸c møc logic TTL cña m¸y tÝnh thµnh c¸c tÝn hiÖu vËt lý phï hîp víi m«i tr−êng truyÒn Cã thÓ dïng

§iÒu chÕ biªn ®é : §iÒu chÕ tÇn sè §iÒu chÕ pha

Hình 4.26. Các kiểu điều chế tín hiệu §iÒu chÕ 1 chiÒu Nguån dßng lµ nguån ¸p cã néi trë riªng nhá, chèng nhiÔu tèt. Nguån dßng th−êng ®−îc sö dông trong c«ng nghiÖp

Hình 4.27. Optocoupler

• RS 232 Standard: ChuÈn RS 232 lµ giao diÖn phæ biÕn do EIA (Electro Industrie American) ®−a ra tõ n¨m 1969. Do tÝnh thuËn tiÖn cña nã nªn hÇu hÕt c¸c thiÕt bÞ khi cÇn 1 giao diÖn ghÐp nèi m¸y tÝnh ng−êi ta hay sö dông RS232, nã cã mÆt trong rÊt nhiÒu thiÕt bÞ.

Tèc ®é truyÒn : 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19.200 Th−êng dïng nhÊt lµ 4800 vµ 9600 baud

• Møc tÝn hiÖu logic n»m trong kho¶ng – 12V ®Õn +12V Møc 1: -3 V ®Õn – 12V Møc 0: Tõ +3V ®Õn + 12 V

• Kho¶ng c¸ch truyÒn: Tuú thuéc tèc ®é truyÒn vµ chÊt l−îng ®−êng truyÒn (M«i tr−êng truyÒn cã nhiÔu ? ChÊt l−îng d©y ra sao? cã mèi nèi kh«ng ?...) Nãi chung kh«ng v−ît qu¸ 30m (100feet)

• Conector: Dïng 2 lo¹i DB9 vµ DB29 Male vµ Female

Hình 4.28. Đầu nối DB 25 và DB 9

Thái Nguyên 7-2013 132

Page 134: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Bảng 4.3 Chức năng các chân trong hai loại đầu nối DB 9 và DB 25

DB9 DB25 Chøc n¨ng 1 8 DCD- Data Carrier Detect Lèi vµo 2 3 RxD – Receive Data Lèi vµo 3 2 TxD – Transmit Data Lèi ra 4 20 DTR – Data Terminal Ready Lèi ra 5 7 GND – Nèi ®Êt 6 6 DSR - Data Set Ready Lèi vµo 7 4 RTS – Request to Send Lèi ra 8 5 CTS – Clear to Send Lèi vµo 9 22 RI – Ring Indicator Lèi vµo

C¸c ®−êng d©y dÉn trong thùc tÕ cã thÓ kh«ng ®Çy ®ñ, Ýt nhÊt chØ cÇn 3 d©y lµ cã thÓ thùc hiÖn ®−îc viÖc truyÒn tin theo s¬ ®å nèi sau:

5 2

3

3

2

5

Hình 4.29. Ghép nối kiểu null modem

4.4.2 M¹ch thu ph¸t th«ng tin nèi tiÕp UART 8250A Lµ vi m¹ch thu ph¸t kh«ng ®ång bé v¹n n¨ng (Universal AsynchroTransmitter) - Kh¸c víi vi m¹ch thu ph¸t ®ång bé/kh«ng ®ånUSART 8251A (Universal Synchronous-Asynchronous ReceiveTrong m¸y tÝnh IBM sö dông vi m¹ch 8250A cho phèi ghÐp víi c¸sau ®ã n©ng cÊp 6450 råi vi m¹ch 16450 vµ hiÖn nay lµ 64750,m¹ch nµy cã nhiÖm vô biÕn ®æi d÷ liÖu ë d¹ng song song thµnh d÷tiÕp, g¾n c¸c bit Start vµ Stop cÇn thiÕt vµo phôc vô cho viÖc gëm¹ch nµy còng lµm nhiÖm vô ng−îc l¹i khi thu gãi tin: cã nghÜa lµliÖu, th¸o c¸c khung tin, chuyÓn ®æi thµnh d÷ liÖu song song (bytiÕt cña vi m¹ch ta cã thÓ tham kh¶o trong c¸c s¸ch kü thuËt cñnhiªï cuèn nh− “ §o l−êng vµ ®iÒu khiÓn b»ng m¸y tÝnh – Ng« Diªlý – V¨n ThÕ Minh”

Thái Nguyên 7-2013

GND

nous Receiver-g bé v¹n n¨ng r Transmitter). c cæng nèi tiÕp 64850. C¸c vi liÖu ë d¹ng nèi i tin ®i. C¸c vi nhËn c¸c bit d÷ te). CÊu t¹o chi a vi m¹ch hoÆc n TËp”. “ Vi xö

133

Page 135: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 4.30. S¬ ®å khèi UART 8250A Vi m¹ch 8250A (HiÖn nay - 7/2007 - ®ang sö dông trong c¸c m¸y PC lµ 82850) ®−îc dïng réng r·i trong c¸c m¸y tÝnh IBM PC lµ vi m¹ch ghÐp cæng truyÒn tin nèi tiÕp (Cæng COM) theo chuÈn RS 232C. NhiÖm vô chÝnh cña vi m¹ch lµ:

− ChuyÓn c¸c tÝn hiÖu th«ng tin song song thµnh nèi tiÕp vµ ng−îc l¹i

− KiÓm tra lçi truyÒn tin (KiÓm tra Parity)

− ThiÕt lËp tèc ®é thu ph¸t

− Cã tÝn hiÖu g©y ng¾t cã thÓ dïng ®Ó ®iÒu khiÓn m¸y tÝnh.

− M¹ch 8250A cã 3 tÝn hiÖu chän vá t¹o ®iÒu kiÖn thuËn lîi cho ng−êi sö dông trong viÖc gi¶i m· ®Þa chØ c¬ b¶n.

− X tal lµ c¸c ch©n ®Ó c¾m th¹ch anh dïng cho m¹ch dao ®éng bªn trong cña 8250A. Trong tr−êng hîp sö dông tÝn hiÖu ®ång hå chuÈn tõ bªn ngoµi th× ta ®−a xung ®ång hå vµo ch©n X tal1 vµ bá löng X tal2.

− Ch©n RLSD (receive line signal detect) lµ ch©n tÝn hiÖu b¸o t×m thÊy sãng mang (CD hoÆc DCD theo tiªu chuÈn RS232 hoÆc SYNDET cña 8251A) tøc lµ ®· thiÕt lËp ®−îc ®−êng truyÒn.

− RI (Ring indicator) còng lµ tÝn hiÖu chuÈn cña RS232C ®Ó modem th«ng b¸o lµ cã xung rÐo chu«ng.

− INTRPT lµ tÝn hiÖu ®Ó yªu cÇu ng¾t CPU. C¸c ®Çu ra phô Out1 vµ Out2 dµnh cho ng−êi sö dông trong c¸c øng dông kh«ng t−¬ng thÝch víi chuÈn RS 232C

RxClk

§Öm ph¸t// → ----

§Öm bus d÷

liÖu

Logic ®iÒu khiÓn

ghi ®äc

§iÒu

khiÓn thu ph¸t vµ modem

§Öm thu // ← ----

°°°

A0 A1 A2 RD WR CS2 CS0 CS1

Master RESET(M

S)

°

°

°

°°

°

INTRPT( Yªu cÇu ng¾t)

RI ( B¸o chu«ng)

Out 1RTSCTS

Out 2 DTRDSR RLSD( Thu ®−îc sãng mang)

Baud out nhÞp ph¸t thu X - tal 1,2 Nèi th¹ch anh

Sout TÝn hiÖu ph¸t D0-D7

Thái Nguyên 7-2013 134

Page 136: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

− Ch©n MS (Master Reset) lµ chç nèi vµo tÝn hiÖu reset cña hÖ thèng, cã t¸c dông

xo¸ tÊt c¶ c¸c thanh ghi trong 8250A trõ thanh ghi ®Öm thu, thanh ghi ®Öm ph¸t vµ thanh ghi LSB, MSB cña sè chia.

− Tèc ®é truyÒn tÝnh ®−îc nhê vµo viÖc chän xung ®ång hå vµo X tal1 vµ viÖc chän sè chia cña tÇn sè nµy (§Ó t¹i thanh ghi LSB vµ MSB). VÝ dô nÕu ta dïng tÇn sè ®ång hå 1.8432 MHz t¹i X tal1 ta muèn tèc ®é ph¸t lµ 9600 baud ta t×m sè chia ®Ó ghi vµo LSB vµ MSB nh− sau: Sè chia = TÇn sè vµo/( Tèc ®é ph¸t x 16) = 1.8432.106/(9600*16) = 12

Vi m¹ch cã 8 thanh ghi, víi nhiÒu chøc n¨ng Bảng 4.4 Các thanh ghi của 8250A

DLA A2 A1 A0 Chän ra 0 0 0 0 Thanh ghi ®Öm thu, Thanh ghi gi÷ ph¸t(XF8) 0 0 0 1 Thanh ghi cho phÐp t¹o yªu cÇu ng¾t (IER) XF91 0 0 0 Thanh ghi cho sè chia phÇn thÊp(LSB) 1 0 0 1 Thanh ghi cho sè chia phÇn cao(MSB) x 0 1 0 Thanh ghi nhËn d¹ng nguån gèc yªu cÇu ng¾t x 0 1 1 Thanh ghi ®iÒu khiÓn ®−êng d©y (LSR – XFB) x 1 0 0 Thanh ghi ®iÒu khiÓn modem (MCR) x 1 0 1 Thanh ghi tr¹ng th¸i ®−êng d©y (LSR XFD) x 1 1 0 Thanh ghi tr¹ng th¸i modem x 1 1 1 Thanh ghi nh¸p dµnh cho CPU Ýt sö dông

Trong c¸c øng dông thu ph¸t th«ng th−êng, sö dông Topology Point – To – Point Null Modem sö dông 3 d©y c¸c thanh ghi ®−îc sö dông lµ: - Thanh ghi ®Þa chØ c¬ së XF8 - Thanh ghi LSR ®Þa chØ XFD Ta sÏ giíi thiÖu 2 thanh ghi nµy

• Thanh ghi ®Þa chØ c¬ së lµ thanh ghi t¹i ®©y ta cã thÓ nhËn 1 d÷ liÖu ®Õn tõ 1 hÖ vi xö lý (m¸y tÝnh) kh¸c hoÆc ph¸t ®i 1 d÷ liÖu. Vïng ®Öm cã ®é lín 1 byte. §©y lµ vïng ®Öm kÐp, bao gåm ®Öm gi÷ vµ ®Öm ph¸t: Trong khi 1 ký tù ®ang ®−îc truyÒn ®i ë ®Öm ph¸t th× 1 ký tù kh¸c cã thÓ ®−îc ®−a tõ CPU sang ®Öm gi÷.

Trong m¸y tÝnh PC cã 4 cæng truyÒn tin nèi tiÕp. §Þa chØ c¬ së cña c¸c cæng nh− sau: - COM1: 3F8-3FFh dïng IRQ4 - COM2: 2F8-2FFh dïng IRQ3 - COM3: 3E8-3EFh dïng IRQ4 - COM4: 2E8-2EFh dïng IRQ3

Thái Nguyên 7-2013 135

Page 137: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Trong c¸c Mainboard th−êng chØ cã s½n 2 cæng COM1 vµ COM2. Muèn sö dông COM3 vµ COM4 ta ph¶i c¾m thªm 1 card phèi ghÐp I/O ngoµi

• Thanh ghi ®iÒu khiÓn ®−êng truyÒn LCR (Line Control Register): Lµ thanh ghi

®Þnh khu«n d¹ng d÷ liÖu. Có địa chỉ là ĐCCS +3. D6 D5 D4 D3 D2 D1D7 D0

Hình 4.31. Thanh ghi điều khiển đường truyền D7: Bit DLAB truy nhËp sè chia

D7 = 1 truy nhËp sè chia D7 = 0 Truy nhËp thanh ghi DCCS vµ DCCS+1 D6: Bit ®iÒu khiÓn gi¸n ®o¹n

=1 Buéc Sout =0 = 0 kh«ng ho¹t ®éng

D5: §¶o parity =1 ®¶o parity = 0 kh«ng ho¹t ®éng

D4: Chän t¹o kiÓm tra parity ch½n D3: Cho phÐp t¹o/kiÓm tra parity =1 parity ch½n = 1 cho phÐp =0 parity lÎ = 0 cÊm

D2: Sè bit stop D1, D0: Sè bit truyÒn =0 1 bit 00: 5 =1 1.5 hoÆc 2 01: 6 10:7

11:8 • Thanh ghi tr¹ng th¸i ®−êng truyÒn LSR (Line Status Register) : cã ®Þa chØ = §Þa chØ c¬ së +5 D¹ng thøc cña thanh ghi

D6 D5 D4 D3 D2 D1D7 D0

Hình 4.32. Thanh ghi trạng thái đường truyền D0: RxDR: Receiver data ready:

=1 ®· nhËn ®−îc1 d÷ liÖu vµ ®Ó nã trong thanh ghi ®Öm thu RBR. bit nµy bÞ xo¸ khi CPU ®äc d÷ liÖu ë RBR.

D1: OR - Lçi do thu ®Ì D2: PE - Lçi Parity D3: FE - Lçi khung D4: BI – Cã sù gi¸n ®o¹n trong khi truyÒn

Thái Nguyên 7-2013 136

Page 138: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

D5: THRE: Transmitter holding register empty (Thanh ghi ph¸t rçng)

= 1 khi ký tù ®· ®−îc chuyÓn tõ THR sang TSR bit nµy bÞ xo¸ khi CPU ®−a ký tù tíi thanh ghi THR

D6: TSRE – Thanh ghi dÞch ph¸t rçng D7 lu«n b»ng 0

• C¸c thanh ghi phôc vô cho ng¾t Nguån g©y ng¾t trong 8250A vµ møc −u tiªn:

Cã thÓ cÊm hoÆc cho phÐp ng¾t 8250A b»ng thanh ghi §CCS +1 khi bit DLAB =0. Khu«n d¹ng thanh ghi cho phÐp ng¾t (IER Interrupt enable register)

0 0 0 0 MODEM RLINE RxRDYTxEMPTY

Hình 4.33. Thanh ghicho phép ngắt MODEM = 1 Cho phÐp c¸c thay ®æi tr¹ng th¸i cña modem g©y ng¾t RLINE = 1 Cho phÐp c¸c tÝn hiÖu tr¹ng th¸i b¸o ®−êng d©y thu g©y ng¾t TxEMPTY = 1 Cho phÐp g©y ng¾t khi ®Öm gi÷ ph¸t rçng RxRDY = Cho phÐp g©y ng¾t khi ®Öm thu ®Çy 8250A chØ cã 1 ®Çu t¸c ®éng ng¾t ®Õn CPU trong khi ®ã nã 4 nguån g©y ra

ng¾t v× vËy cÇn sö dông thanh ghi nhËn d¹ng nguån ng¾t IIR - Interrupt Indentification Register

0 0 0 0 ID0ID2 ID10

Hình 4.34. Thanh ghi nhận dạng nguồn ngắt ID0 = 0 Cã yªu cÇu ng¾t = 1 Kh«ng cã Tæ hîp ID1 vµ ID2 m· ho¸ yªu cÇu ng¾t cã møc −u tiªn cao nhÊt ®ang chê ®−îc phôc vô.

Thái Nguyên 7-2013 137

Page 139: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Bảng 4.5 Các mức ưu tiên ngắt trong 8250A

ID2 ID1 Møc Tªn lo¹i ng¾t Nguån gèc ng¾t IDi bÞ xo¸ khi

1 1 1 Tr¹ng th¸i ®−êng thu

Lçi khung, thu ®Ì, lçi parity, gi¸n ®o¹n khi thu

§äc LSR

1 0 2 §Öm thu ®Çy §Öm thu ®Çy §äc RBR

0 1 3 §Öm gi÷ ph¸t rçng §Öm gi÷ ph¸t rçng §äc IIR ghi THR

0 0 4 Tr¹ng th¸i modem ∆CTS, ∆DSR, ∆

RI, ∆RLSD §äc MSR

ViÖc truyÒn tin qua c¸c cæng nèi tiÕp cña m¸y tÝnh PC ®−îc tiÕn hµnh theo c¸c c¸ch

Dïng kü thuËt hái vßng: - Init c¸c cæng : Tªn cæng truyÒn/nhËn), tèc ®é ph¸t/thu, khu«n d¹ng gãi tin - Test thanh ghi LSR víi c¸c bit tr¹ng th¸i t−¬ng øng ®Ó quyÕt ®Þnh göi, nhËn

d÷ liÖu theo 1 giao thøc nµo ®ã. Tèc ®é truyÒn qua cæng COM sö dông c¸c vi m¹ch kÕ thõa 8250 ®−îc tÝnh nhê viÖc chän xung ®ång hå X – tal1 vµ viÖc chän sè chia cña tÇn sè nµy (®Ó t¹i thanh ghi LSB vµ MSB) VÝ dô: 1 ®o¹n ch−¬ng tr×nh khëi ®Çu cho COM2:

mov al, 80h mov dx, 2fbh out dx, al mov al,24 ; tèc ®é 4800 mov dx, 2f8h out dx, al mov al, 0 mov dx, 2f9h out dx, al mov al, 1ah; tõ khu«n d¹ng d÷ liÖu: Parity ch½n, 1 bit stop, 7 bit m· mov dx, 2fb out dx, al

Thái Nguyên 7-2013 138

Page 140: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

NÕu dïng Pascal: (* Chuong trinh doi thu ky tu tu 1 PC khac den 11/14/2000*) uses crt,dos; var kytu:byte; i,j:longint; BEGIN clrscr; port[$3fb]:=$80; port[$3f8]:=12; port[$3f9]:=0; port[$3fb]:=2; i:=1;j:=0; Repeat clrscr; port[$3fd]:= port[$3fd] and $01; if port[$3fd]<>$01 then { DOI THU } begin gotoxy(30,12);writeln(' Dang doi thu tin hieu ...'); delay(50); end else { THU KY TU } begin kytu:=port[$3f8]; writeln('Ky tu nhan duoc: ',chr(kytu),' So ky tu thu duoc :',i);delay(10);{port[$3f8]:=$5;} i:=i+1; end; { PHAT TRA LAI } asm @1:mov dx,03fdh in al,dx and al,20h cmp al,20h je @2 jmp @1 @2:mov al,kytu

Thái Nguyên 7-2013 139

Page 141: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

mov dx,3f8h out dx,al end; Until keypressed;{writeln( ' So ky tu nhan sai',j);} END. uses crt,dos; const a=$2f8; var kt_phat,kt_thu:byte; begin clrscr; {writeln; writeln; Write(' Dang phat chu U ...');} port[a+3]:=$80; port[a]:=12; {9600} port[a+1]:=0; port[a+3]:=2;{none parity, 7} {i:=1;j:=0;} repeat port[a]:=$55;delay(1); Repeat port[$3fd]:= port[$3fd] and $01; until port[$3fd]=$01; kt_thu:=port[$3f8]; writeln(' Thu duoc ',chr(kt_thu)); until keypressed; end.

Dïng ng¾t Tr×nh tù cña mét ch−¬ng tr×nh thu/ ph¸t dïng ng¾t

+ CÊm b¸o ng¾t cøng

+ Xo¸ nguån b¸o ng¨t

+ §Æt khu«n d¹ng truyÒn

+ §Æt sè chia

Thái Nguyên 7-2013 140

Page 142: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ DLAB=0

+ Xo¸ b¸o ng¾t ph¸t

+ Xo¸ b¸o ng¾t nhËn

+ §Æt nguån ng¾t lµ thu hay ph¸t

+ B¶o vÖ ng¾t cò

+ Thay vect¬ ng¾t míi

+ Cho phÐp b¸o ng¾t cøng

C¸c lÖnh thu hay nhËn d÷ liÖu ®−îc viÕt trong ch−¬ng tr×nh cña chóng ta d−íi d¹ng ch−¬ng tr×nh phôc vô ng¾t. Khi cã ng¾t (thu hay nhËn) ch−¬ng tr×nh phôc vô ng¾t nµy nµy sÏ thùc hiÖn thu hay nhËn d÷ liÖu.

Thái Nguyên 7-2013 141

Page 143: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

4.5 Phèi ghÐp víi thiÕt bÞ vµo/ra qua cæng song song

4.5.1 GhÐp nèi song song ®¬n gi¶n

− Cã nhiÒu vi m¹ch tæ hîp cì võa cã thÓ ®−îc dïng lµm cæng phèi ghÐp víi bé vi xö lý ®Ó vµo/ra d÷ liÖu. C¸c m¹ch cæng nµy th−êng ®−îc cÊu t¹o nªn tõ c¸c m¹ch chèt 8 bit cã ®Çu ra 3 tr¹ng th¸i nh− 74373 (kÝch theo møc) hoÆc 74374 (kÝch theo s−ên)

°°

Q0

Q7 D7

D0

OC

G

G

D Q

°

°

Q7

OC1 OC2

D0

D7

Q0

Hình 4.35. Phối ghép song song đơn giản

4.5.2 M¹ch phèi ghÐp vµo/ra song song lËp tr×nh ®−îc PPI 8255A M¹ch 8255A th−êng ®−îc gäi lµ m¹ch phèi ghÐp vµo ra lËp tr×nh ®−îc

(programmable peripheral interface - PPI).

• CÊu t¹o:

− 8255 cã 3 cæng (thanh ghi) cã thÓ ®−îc lËp tr×nh thµnh vµo hay ra

− Khi ghÐp vµo mét hÖ vi xö lý, ®Þa chØ cña cæng PA lµ ®Þa chØ c¬ së (§CCS). §Þa chØ PB lµ §CCS+1. §Þa chØ PC lµ §CCS+2

− §Ó lËp tr×nh cÇn ®−a tõ ®iÒu khiÓn vµo thanh ghi tõ ®iÒu khiÓn CWR (cã ®Þa chØ lµ §CCS+3)

− C¸c ch©n Reset, WR, RD, A0, A1, CS...

Thái Nguyên 7-2013 142

Page 144: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

§Öm bus D

§iÒu khiÓn

nhãm B

§iÒu khiÓn

nhãm A

Nhãm B PB

Nhãm BPCL

Nhãm APCH

Nhãm APA

Logic ®iÒu

khiÓn ghi/®äc

PC0 - PC3

PA0 - PA7

PB0 - PB7

PC4 - PC7

Bus néi bé

D0 - D7

RDWRA0A1

ResetCS

Hình 4.36. S¬ ®å cÊu tróc bªn trong cña 8255A

• Tõ ®iÒu khiÓn cña 8255A

D0 D1D2D3D4D7 D6 D5

Hình 4.37. Từ điều khiển 8255A

D0: PCL 1=lèi vµo D4: PA 1=lèi vµo D2: Mode 1= Mode 1 0= lèi ra 0= lèi ra 0= Mode 0 D1: PB 1=lèi vµo D5 – D6 00= Mode 0 D3: PCH 1=lèi vµo 0= lèi ra Mode 01= Mode 1 0= lèi ra

1x= Mode 2 D7: Mode 1 = Active

• C¸c chÕ ®é lµm viÖc cña 8255A:

+ ChÕ ®é 0: "Vµo ra c¬ së": Trong chế độ này mỗi cổng PA, PB, PCH, PCL đều có thể được định nghĩa là cổng vào/ra tuỳ ý.

+ ChÕ ®é 1: "Vµo ra cã xung cho phÐp" Trong chế độ này mỗi cổng PA, PB có thể được định nghĩa là cổng vào/ra, các tín hiệu móc nối handshaking do các bit của cổng PC trong cùng nhóm điều khiển đảm nhiệm

+ ChÕ ®é 2: "Vµo ra 2 chiÒu" Trong chế độ này chỉ riêng cổng PA có thể được định nghĩa là cổng vào/ra hai chiều với các bít móc nối của cổng PC đảm nhiệm. Cổng PB có thể làm việc trong chế độ 0 hoặc chế độ 1.

+ LËp xo¸ c¸c bit PCi

Thái Nguyên 7-2013 143

Page 145: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

(Các sinh viên dowload tài liệu 8255A từ Internet để tham khảo – Keyword ‘ 8255A pdf’)

• VD lËp tr×nh 8255A:

§iÒu khiÓn b¨ng t¶i

§Ìn b¸o hiÖu

§Çu thu hång ngo¹i

Hình 4.38. Ghép nối điều khiển băng tải qua 8255A Cho s¬ ®å ghÐp nèi 8255A víi m¸y tÝnh nh− sau t¹i ®Þa chØ c¬ së 300h TÝn hiÖu ®Õm s¶n phÈm (=1 khi cã s¶n phÈm) cña d©y chuyÒn s¶n xuÊt ®−a vµo PA0 . §ãng c¾t d©y chuyÒn b»ng PC0 ( = 0 : D©y chuyÒn dõng l¹i). ViÕt ch−¬ng tr×nh ®iÒu khiÓn ®Ó khi s¶n xuÊt ®ñ 5000 s¶n phÈm th× d©y chuyÒn dõng l¹i vµ ®Ìn b¸o hiÖu bËt s¸ng (PB0 = 1).

Thái Nguyên 7-2013 144

Page 146: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Ch−¬ng 5 THIẾT KẾ HỆ THỐNG VI XỬ LÝ Hiện nay khi xây dựng các hệ vi xử lý nhỏ người sử dụng thường sử dụng các vi điều khiển thông dụng như 8x51/52, AVR hoặc PSoC hoặc nhúng các bộ xử lý trong FPGA. Việc phát triển hệ thống thường là tuỳ hứng, không có các thiết kế trước hoặc chỉ có thiết kế phần cứng và không có thiết kế phần mềm. Khi chuyển sang xây dựng các hệ ứng dụng lớn hoặc khi làm việc với các kỹ sư nước ngoài được đào tạo bài bản về thiết kế hệ vi xử lý thì thường bộc lộ nhiều lúng túng. Chương này giúp cho người học nắm được các bước thiết kế một hệ vi xử lý bài bản như thế nào và cũng giúp cho người học hình dung rõ hơn về một hệ thống vi xử lý mà trong đó bao gồm rất nhiều hệ vi xử lý nhỏ gần gũi với chúng ta là máy tính PC. 5.1 ThiÕt kÕ phÇn cøng

Hệ vi xử lý bao gồm phần cứng + phần mềm. Thiết kế một hệ vi xử lý trước hết chúng ta cần thiết kế phần cứng. Thiết kế phần cứng bao gồm thiết kế sơ đồ nguyên lý, thiết kế mạch in bố trí lắp ráp linh kiện.

Các ví dụ sẽ sử dụng vi điều khiển 89C51/52 do các vi điều khiển này ngày nay đã rất thông dụng: Vẽ hình cấu tạo vi điều khiển 51/52. Vẽ hình nguyên lý vi điều khiển 51/52 - Giải thích các cổng, các chân tín hiệu EA, PSEN, RST,...và các mạch điện kèm theo.

A D KĐ C

Loadcell

Ur

Phôi liệu

Khoá van

Hình 5. 1. Hệ vi xử lý đơn giản cân đóng bao sản phẩm dùng 8051/52

Thái Nguyên 7-2013 145

Page 147: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 5. 2. MAX 232 sử dụng trong truyền tin nối tiếp

Hình 5. 3. Mạch nguồn nuôi 5.2 ThiÕt kÕ phÇn mÒm 5.2.1 ROM Mapping ThiÕt kÕ c¸c vïng nhí cho ROM:

Thái Nguyên 7-2013 146

Page 148: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

+ Vïng chøa ch−¬ng tr×nh khëi ®éng hÖ thèng

+ Ch−¬ng tr×nh kiÓm tra bé nhí, thiÕt bÞ ngo¹i vi

+ Vïng chøa ch−¬ng tr×nh phôc vô ng¾t

+ Vïng chøa c¸c b¶ng chuyÓn ®æi sè liÖu ra m· ASCII, m· 7segment

+ Vïng sè hiÖu ngµy th¸ng ®Æc ®iÓm cña vi m¹ch ROM

VÍ DỤ THIẾT KẾ VÙNG NHỚ CHO ROM Bé nhí ROM mang th«ng tin chñ yÕu lµ ch−¬ng tr×nh (Firmware) vµ 1 vµi sè liÖu cè ®Þnh:

- Sè liÖu cè ®Þnh nh− kÝch th−íc cña ROM, RAM tÝnh b»ng sè trang 128bytes. VÝ dô sè 04 lµ bé nhí cã 512bytes (4trang) trong hÖ cã dïng ROM, RAM ngoµi hay kh«ng, b¶ng font ch÷, c¸c b¶ng ®æi m·, format cña character trªn ®−êng truyÒn...c¸c sè liÖu nµy ®−îc ®Æt ë 2 trang nhí ROM thø 0 vµ 1, ®Þa chØ tõ 0030h ®Õn 00ffh (TÊt nhiªn ph¶i trõ c¸c ®Þa chØ cho reset, c¸c ®Þa chØ cña c¸c interrupts). §èi víi 1 hÖ x¸c ®Þnh c¸c sè liÖu nµy sÏ kh«ng thay ®æi, ngo¹i trõ c¸c thiÕt kÕ viªn thay ®æi chóng khi söa ch÷a.

- Ch−¬ng tr×nh ®−îc chia lµm 2 nhãm: Ch−¬ng tr×nh hÖ thèng vµ ch−¬ng tr×nh øng dông

+ Ch−¬ng tr×nh hÖ thèng ®−îc chia thµnh c¸c modules vµ ®−îc ®Æt tªn b¾t ®Çu víi ch÷ S(ystem Program), gåm ch−¬ng tr×nh khëi ®éng (Initializing), ch−¬ng tr×nh kiÓm tra vµ c¸c hµm ghÐp nèi chuÈn cña hÖ thèng víi thÕ giíi bªn ngoµi nh− ®iÒu khiển cæng RS-232 ®Ó ph¸t hay thu b¶n tin, ®iÒu khiÓn c¸c LEDs, loa, bàn phÝm... + Ch−¬ng tr×nh øng dông, cã tªn cña c¸c modules b¾t ®Çu b»ng ch÷ A(pplication Program) thùc hiÖn c¸c c«ng viÖc riªng biÖt cho tõng hÖ.

Vùng số liệu cố định: §Þa chØ vïng sè liÖu cè ®Þnh trong b¾t ®Çu tõ 30..0ffh, trang 0: Các số liệu cố định sẽ được ghi từ địa chỉ 0030h đến 00ffh. NÕu sè liÖu 2 bytes hay 4 bytes trËt tù sÏ lµ thÊp tr−íc, cao sau

§Þa chØ ROM - KÝch th−íc cña ROM (ROMSize): 30h, 31h

Max lµ 64KB, víi vi m¹ch EPROM 27-512. Tuy nhiªn c¸c øng dông th−êng kh«ng dïng hÕt l−îng nhí nµy nªn dung l−îng nhí cè ®Þnh sÏ ®−îc tÝnh theo sè ch½n c¸c trang 128byte/page. §iÒu nµy tr¸nh viÖc ph¶i kiÓm tra BCC (block check sum) ®èi víi nh÷ng vïng nhí kh«ng dïng ®Õn. VÝ dô: NÕu ch−¬ng tr×nh th«ng tin trong miÒn nhí ROM cã kÝch th−íc lín h¬n 896 bytes vµ nhá h¬n hoÆc b»ng 1024 bytes, gi¸ trÞ 2 « nhí trªn sÏ lµ : (0030) = 08h (0031) = 00h

Thái Nguyên 7-2013 147

Page 149: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- KÝch th−íc cña RAM (RAMSize): 32h, 33h

Còng ®−îc tÝnh nh− trªn. NÕu hÖ 8051/8031 cã nghÜa lµ kh«ng cã RAM ngoµi hoÆc hÖ 8052/8032, sè 4 lµ kh«ng cã RAM ngoµi.

- ROM’sCheckSumCode (ROMBCC): 34h, 35h - Ngµy th¸ng n¨m n¹p ch−¬ng tr×nh (4bytes)yyyy-mm-dd 36h, 39h

VÝ dô 10-20-02-12 Ngµy 12 th¸ng 2 n¨m 2010 - Version cña hÖ thèng: (2bytes) 3ah, 3bh -Tªn hÖ øng dông 4bytes-ASCII 3ch, 3fh

VÝ dô hÖ thÝ nghiÖm m¸y ®iÖn lµ E3S1 -B¶ng dÞch m· Hex/7 segment (TabHto7) 40h, 4fh

(Cã hÖ kh«ng cÇn) gåm 16 « dïng ®Ó l−u gi÷ m· 7 thanh cho c¸c ký tù hiÓn thÞ kiÓu LED 7seg, ®−îc dïng ®Ó ®æi m· hiÓn thÞ kiÓu tra b¶ng.

-B¶ng ®æi m· 7 segtoBCD (Tab7toD) 40h, 4fh 50h..6fh Dïng ®Ó l−u gi÷ 10 gi¸ trÞ sè thËp ph©n BCD ®Æt trong c¸c « nhí r¶i r¸c theo quy luËt cña m· 7 thanh ®· ®−îc rót gän (5bit). §Þa chØ offset c¸c « nhí nµy ®−îc tÝnh theo gi¸ trÞ cña 5 bit rút gän cña m· 7 thanh. Th−êng dïng ®Ó ghÐp nèi víi bé chuyÓn ®æi tÝch ph©n 2 s−ên dèc ICL 7107.

-B¶ng gi¶i m· cho keyboard (Tabkey) ®Ó dµnh 32 « 70h, 8fh

Dïng ®Ó gi¶i m· nh− tõ m· hµng cét cña phÝm thµnh m· cã nghÜa, ®· ®−îc rót gän.

-Format cña Character trªn ®−êng truyÒn (ComChar) 90h bit 0 0 - 7databit ASCII 1 - 8databit binary bit 2,1 00 - 2400bps 01 - 4800bps

10 - 9600bps 11 - 19,200bps bit3 0 - Non Parity bit 1 - Cã dïng Parity bit 4 0 - Parity Even 1 - Parity Odd bit 5 0 - 1 Stop bit 1 - 2 Stop bit bit 6 0 - Giao tiÕp kiÓu Polling 1 - Cã dïng ng¾t bit 7 0 - Nun Modem Protocol 1 - Cã Modem

- KiÓu MODEM 91h..92h - KÝch th−íc b¶n tin nhËn tõ Host(RxSize) 93h - KÝch th−íc b¶n tin chuyÓn vÒ Host (TxSize) 94h - KÝch th−íc b¶n Text tõ Host (RxSize) 95h - Dù tr÷ : 96h..9Fh Ở ®©y t¹i 2 « nhí 96h ..97h cã l−u gi÷ gi¸ trÞ default ®Ó thùc hiÖn Fower factor

controler (Cho thiết bị ví dụ này - hoặc là các số liệu khác cho hệ vi xử lý khác).

Thái Nguyên 7-2013 148

Page 150: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Bản đồ bộ nhớ vùng chương trình

Ngo¹i trõ c¸c lÖnh nh¶y khi reset, tõ c¸c interrupt ®Æt t¹i trang 0. PhÇn th©n cña c¸c modulles ch−¬ng tr×nh b¾t ®Çu tõ trang 3, ®Þa chØ ROM tõ 0100h trë ®i. Cần ghi tên chương trình, bắt đầu ở địa chỉ nào trong vùng nhớ, đầu vào là gì?, đầu ra là gì? Khi thực hiện có gọi chương trình con nào?... (Xem phần 5.3 và 5.4). Có thuật toán thực hiện chương trình (bằng lời hoặc followchart).

5.2.2 RAM Mapping ThiÕt kÕ c¸c vïng nhí cho RAM:

+ Vïng chuyÓn giao d÷ liÖu truyÒn tin

+ Ng¨n xÕp

+ Vïng tÝnh to¸n

+ ........ Trong vùng RAM thường sắp xếp các vùng STACK (vùng ngăn xếp), vùng dữ liệu ra, vùng dữ liệu vào, vùng chứa các thông tin hiển thị,... Số vùng và kích thước mỗi vùng tuỳ theo yêu cầu cụ thể của bài toán và khuôn khổ vùng nhớ RAM (trong hoặc ngoài của vi điều khiển chọn sử dụng).

Thái Nguyên 7-2013 149

Page 151: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Hình 5. 4. Bản đồ bộ nhớ RAM của 8051 sử dụng trong thiết kế Stack memory 32bytes Địa chỉ 60-7Fh Stack memory dïng ®Ó l−u gi÷ c¸c ®Þa chØ quay vÒ cña Main Program gäi ISRs vµ Subroutines vµ ®Ó l−u c¸c biÕn t¹m thêi. Output Data Base (OdB)

19bytes Địa chỉ 4Ah-5Ch

Lµ DataBase l−u gi÷ sè liÖu tõ qu¸ tr×nh vµ còng lµ gãi tin göi vÒ Host, gåm : • M· khëi ®Çu $, lµ h»ng ký tù ®Æt trong ROM • 6 sè ®o ®−îc göi vÒ PC Addr 4Bh..55h Mçi sè ®o gåm 2bytes (Riªng sè ®o f 1byte) ®o cña lÇn cuèi. Mçi sè ®o cã Format nh− sau theo kiÓu thÊp tr−íc cao sau : Addr : Hi_Nibble - Lo_Nibble

Thái Nguyên 7-2013 150

Page 152: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Lo_byte : tens - units Hi_byte : yx00 - hundreds Víi x=0, Sè liÖu d¹ng nhÞ ph©n 12 bit x=1, Sè liÖu lµ 3 Digit BCD y=0, Sè liÖu cò hoÆc kh«ng thay ®æi kÓ tõ khi göi vÒ PC lÇn cuèi vµ y=1, Sè ®o míi ®· ®−îc update mµ ch−a göi vÒ Host. Ch−¬ng tr×nh göi b¶n tin ph¶i ghi gi¸ trÞ y nµy nÕu göi sè ®o vÒ PC. M· tr¹ng th¸i cña hÖ Stt Addr 4Ah M· kiÓm tra BlockCheckSum cña c¶ gãi tin Addr 5Ch

C¸c tr¹ng th¸i cña hÖ thèng (SSt) B¸o m· tr¹ng th¸i RTU Addr 4Ah + NÕu tÊt c¶ b×nh th−êng m· 00h Norm + NÕu sai CheckSum cña lÖnh thu vÒ bit 7=1 CErr + §ang bËn Update data bit 6=1 Busy + §· nhËn ®−îc lÖnh mµ ch−a xö lý xong bit 5=1 NRd + Cã lçi t¹i CPU bit 4=1 CPUErr + Cã lçi t¹i ROM CheckSum bit 3=1 ROMErr + Cã lçi RAM bit 2=1 RAMErr + Cã lçi PPI bit 1=1 PPIErr + Cã lçi ADC bit 0=1 ADCErr

Input Data Base (IdB

Lµ miÒn nhí sè liÖu ®Ó l−u gi÷ sè liÖu nhËp vÒ, bao gåm: 5bytes Addr 36h..3Ah Dïng ®Ó chøa lÖnh tõ Host ®ang vµ sÏ ®−îc xö lý. Format cña c©u lÖnh nh− sau: @ - Command - Attribute - CheckSum + @ : Lµ m· quy −íc ®¸nh dÊu khëi ®Çu, ®Ó ph©n c¸ch 2 c©u lÖnh vµ lµ b¾t buéc. + Command: M· lÖnh 1 byte m« t¶ nhiÖm vô RTU cÇn ph¶i thùc hiÖn, nh− thùc hiÖn c¸c lÖnh cña hÖ thèng hay lÖnh øng dông ®o ®¹i l−îng g×, ®o hîp bé c¸c kªnh nµo ... + Attribute: 1 byte lµ c¸c tham sè cña tõng lÖnh cô thÓ, nh− tÇn suÊt bao nhiªu l©u ®o 1 lÇn, kiÓm tra range checking, kªnh nµo... + CheckSum: 1 byte ®Ó kiÓm tra tÝnh ®óng ®¾n cña c©u lÖnh. + M· kÕt thóc: 1byte b¸o kÕt thóc lÖnh

DisplayBuffer (DiB) 6 bytes Addr 30h..35h Chøa m· 7- seg cña c¸c gi¸ trÞ cÇn hiÓn thÞ

5.3 ThiÕt kÕ c¸c ch−¬ng tr×nh hÖ thèng Khi thiÕt kÕ c¸c hÖ vi xö lý nhá, c¸c ch−¬ng tr×nh th−êng ®−îc viÕt råi n¹p

trong ROM. Víi c¸c ch−¬ng tr×nh nhỏ cã thÓ sö dông ROM trong vi ®iÒu khiÓn hoÆc ROM ngoµi.

Thái Nguyên 7-2013 151

Page 153: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Còng t−¬ng tù, víi c¸c øng dông nhá th× RAM trong ®· cã thÓ ®¸p øng nhu

cÇu sö dông. NÕu cÇn dung l−îng lín h¬n ta ph¶i sö dông RAM ngoµi. Ví dụ dưới đây là chương trình hệ thống và địa chỉ trong ROM.

CHƯƠNG TRÌNH HỆ THỐNG

S_Start(ColdStart): 0100h

Input: + BÊm nót Reset hoÆc + Thùc hiÖn lÖnh jump ®Þa chØ 0000h (Ýt dïng), hoÆc + Do yªu cÇu cña Host Output: ®Õn ch−¬ng tr×nh SPOST Call: Non

Ch−¬ng tr×nh Reset dïng ®Ó x¸c ®Þnh cÊu h×nh hÖ thèng theo sè liÖu cè ®Þnh trong ROM. TiÕp theo ch−¬ng tr×nh sÏ thùc hiÖn POST

S_POST: Lµ ch−¬ng tr×nh kiÓm tra toµn bé hÖ thèng nnnmh Input: + SStart hoÆc (nnnmh là một địa chỉ nào đó) + Host Output: + Byte tr¹ng th¸i SSt, ®Þa chØ 4Ah-RAM + S¸ng c¸c gi¸ trÞ t−¬ng øng trªn LED 7 thanh + SInit Call_ SDislay Bao gåm :

+KiÓm tra c¸c thanh ghi CPU vµ c¸c Int.RAM b»ng c¸ch ghi vµo « ®Çu tiªn vµ chuyÓn sang c¸c « tiÕp theo cho ®Õn hÕt c¸c m· 00, 0ffh 55h vµ 0aah. + KiÓm tra thanh ghi tr¹ng th¸i CPU, b»ng c¸ch set/clear c¸c cê tr¹ng th¸i råi nh¶y ng−îc l¹i. VÝ dô:

SETB C ;Set carry Flag JNC CPUErr ;B¸o CPU cã lçi

+ KiÓm tra ROM b»ng c¸ch tÝnh CheckSum 2 bytes råi so víi ROMBCC, ®Þa chØ ROM 104h vµ 105h + KiÓm tra c¸c thanh ghi cña cæng vµo ra vµ c¸c thiÕt bÞ ghÐp nèi

S_Init(WarmStart/Restart): nnnnmh Dïng ®Ó khëi t¹o (Initializing) c¸c thiÕt bÞ cho phï hîp cÊu h×nh cña hÖ. Input: + SPOST hoÆc + Host hoÆc + LÖnh JMP ®Õn SInit Output: Main Program Call: SDisplay, Blinking Ready LED Khëi t¹o c¸c thiÕt bÞ cã tÝnh mÒm dÎo, nh− x¸c ®Þnh format character vµ tèc ®é cho ®−êng truyÒn tin nèi tiÕp, n¹p mode cho c¸c m¹ch PPI cho phï hîp víi cÊu h×nh hÖ thèng ®· ®Þnh.

Thái Nguyên 7-2013 152

Page 154: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

S_Main nnmnh Lµ ch−¬ng tr×nh th−êng trùc cña RTU: • LÊy sè ®o f, U, I

• TÝnh cosϕ, P, Q cÊt vµo vïng nhí • So s¸nh gi¸ trÞ set point Điều khiển ®ãng c¾t tô bï • HiÓn thÞ LED 7 segment (default hiÖn cosϕ)

Input: + SInit + C¸c Subroutine kh¸c Output: C¸c Subroutine Call: SDisplay, A_P, A_Q, A_cosϕ, A_f, A_FFC, A_ADC

S_Display (Subroutine ) nmnnh Lµ ch−¬ng tr×nh : • §æi 2 bytes gi¸ trÞ tõ c¸c « nhí I_RAM chøa

hoÆc: f, P, Q, U, I, cosϕ, thµnh 3bytes BCD råi chuyÓn vµo 3 « nhí 5Dh, 5Eh, 5Fh • §æi 3 bytes BCD ë c¸c « nhí nµy thµnh 6 bytesm· 7 ®o¹n cÊt vµo 6 « nhí tõ 30h ®Õn 35h • §−a 6 « nhí ra cæng PA ®Ó hiÓn thÞ trªn 6 LED Input : + Tõ c¸c ch−¬ng tr×nh, c¸c Subroutine Output: + VÒ Smain + VÒ Caller Call Non

S_Rx (Ch−¬ng tr×nh phôc vô ng¾t) mmnnh Dïng ®Ó thu 1 gãi tin cã kÝch th−íc theo ROMData 92h, cÊt vµo RxBuff, RAM 36h ®Õn 3Ah. Input: I_S_Routine gäi khi cã sè liÖu thu vÒ Output: SRxCheck ®Ó kiÓm tra Format vµ BCC cã phï hîp. Call ISR thu 1 char Dïng bé thanh ghi RB1

S_Tx (Ch−¬ng tr×nh phôc vô ng¾t) mnnnh Dïng ®Ó göi 1 gãi tin cã kÝch th−íc theo TxSize, ®Þa chØ ROMData 93h. Néi dung tin tõ ®Þa chØ RAM OdB 4Ah .. 5Ch vÒ host theo giao thøc ®· ®Þnh Input: + C¸c modul ch−¬ng tr×nh kh¸c Output: + Caller Call I_S_Routine ph¸t 1 char dïng bé thanh ghi RB2

S_RxCheck nnnn §Ó kiÓm tra có ph¸p cña c©u lÖnh vµ m· BCC sau ®ã b¸o vÒ host t×nh h×nh nhËn lÖnh b»ng 2 m· ACK(06h) hoÆc (15h) cña ASCII.

S_KB: Ch−¬ng tr×nh bµn phÝm - (Ch−¬ng tr×nh phôc vô ng¾t).

Thái Nguyên 7-2013 153

Page 155: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

5.4 ThiÕt kÕ c¸c ch−¬ng tr×nh øng dông

Tuú theo yªu cÇu cô thÓ mµ hÖ vi xö lý ph¶i ®¶m nhiÖm. C¸c ch−¬ng tr×nh còng cã thÓ chØ cÇn chøa trong ROM trong nÕu kÝch th−íc nhá, hoÆc trong ROM ngoµi nÕu cã kÝch th−íc lín.

Chương trình chính của một chương trình ứng dụng trên một hệ vi xử lý thường chỉ làm các nhiệm vụ nhất định nào đó như: thu thập dữ liệu, truyền tín hiệu đóng chuyển động cho thiết bị, đưa thông tin ra thiết bị, hiển thị...; nhiều khi chỉ đơn giản là hiển thị thông tin. Việc xác định chương trình chính làm gì rất có ý nghĩa vì xác định không đúng chương trình chính thì người kỹ sư không làm chủ được hệ thống vi xử lý và không thiết lập đúng hoạt động của các chương trình trong hệ. Bàn phím của hệ vi xử lý thường được thực hiện theo kiểu ngắt; với hệ đơn giản có thể sử dụng kiểu polling. Chương trình truyền tin cũng thường được thực hiện theo ngắt hoặc kiểu polling. Các trao đổi dữ liệu vào/ra cũng có thể theo ngắt. Cơ chế này cho phép hệ vi xử lý thực hiện các đáp ứng nhanh chóng và hiệu quả. Một số ví dụ:

Chương trình chính của thiết bị đo kiểm tra cosϕ

Bắt đầu

Init

• LÊy sè ®o f, U, I • TÝnh cosϕ, P, Q cÊt vµo vïng nhí ODB • So s¸nh gi¸ trÞ default ®/k ®ãng c¾t tô bï • HiÓn thÞ LED 7 ®o¹n

Hình 5. 5. Thuât toán của Main Program

Thái Nguyên 7-2013 154

Page 156: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

S_Main (Chương trình chính)

f U I P Q

Auto Man SET

Esc Mode - Display + Enter

Hình 5. 6. Mặt hiển thị của thiết bị và các phím Khi ho¹t ®éng, thiÕt bÞ lu«n hiÓn thÞ cosµϕ (default). B×nh th−êng ®Ìn Auto lu«n s¸ng. Khi Ên phÝm " Mode ", nh¶ ra råi l¹i Ên tiÕp: ®Ìn Auto t¾t, ®Ìn "Man" s¸ng (Chế độ bằng tay). NÕu sau 20 gi©y kh«ng Ên tiÕp th× ®Ìn '''Man" vÉn tiÕp tôc s¸ng vµ thiÕt bi ë chÕ ®é §iÒu khiÓn b»ng tay. NÕu nh¶ ra råi Ên tiÕp: ®Ìn SET s¸ng. Khi nµy Ên nh¶ phÝm Display c¸c ®Ìn P, Q, U, I, cosϕ sÏ lÇn l−ît s¸ng. Khi ®Ìn nµo s¸ng dïng c¸c phÝm "+","-" (Ên - nh¶) sÏ thay ®æi c¸c gi¸ trÞ mÉu cho thiÕt bÞ. Sau ®ã nhÊn phÝm "Enter" kÕt thóc viÖc ®Æt chÕ ®é. Lóc nµy chØ cßn ®Ìn Auto s¸ng, ®Ìn cosϕ s¸ng, 6LED hiÓn thÞ trÞ sè cosϕ. Muèn c¸c xem gi¸ trÞ P, Q, U, I ®Çu tiªn ta Ên Display (PhÝm nµy võa ®Ó xem võa ®Ó ®Æt gi¸ trÞ - NÕu kh«ng Ên Enter th× c¸c gi¸ trÞ hiÖn hµnh kh«ng ®−îc chuyÓn vµo trong vïng nhí Default) råi nh¶_ Ên ®Ó xem c¸c gi¸ trÞ cÇn xem. Trong qu¸ tr×nh set nÕu sai gi¸ trÞ ta cã thÓ dïng phÝm " Esc " ®Ó trë vÒ thiÕt lËp l¹i (Gièng chøc n¨ng th−êng dïng cña phÝm Esc trªn bµn phÝm m¸y PC). (Tr−íc 1 sè quyÕt ®Þnh ®Òu kiÓm tra phÝm Esc cã ®ãng kh«ng ?)

CHƯƠNG TRÌNH ỨNG DỤNG A_F :

X¸c ®Þnh sè ®Õm trong nöa chu kú d−¬ng cña dßng ®iÖn ®· ®−îc biÕn ®æi ra d¹ng xung vu«ng. Tra b¶ng ra tÇn sè dßng ®iÖn t−¬ng øng Input: Counters in Timer/Counter TH0 Output: Value f gåm 2bytes cÊt vµo vïng nhí 55h Call non

A- cosϕ:

So s¸nh ®é chªnh lÖch sè ®Õm trong nöa chu kú d−¬ng cña dßng ®iÖn vµ ®iÖn ¸p ®· ®−îc biÕn ®æi ra d¹ng xung vu«ng. Tra b¶ng ra cosϕ t−¬ng øng

Input: Counters in Timer/Counter TH0 and TH1 Output: Value gãc ϕ gåm 2bytes cÊt vµo vïng nhí 4Fh..50h

call:

Thái Nguyên 7-2013 155

Page 157: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

A_ Q:

TÝnh gi¸ trÞ c«ng suÊt ph¶n kh¸ng Q=UIsinϕ ë vÞ trÝ hiÖn hµnh Input: Value U, I, ϕ tõ c¸c « nhí t−¬ng øng output: Value Q gåm 2bytes cÊt vµo vïng nhí 51h, 52h call

A_P : TÝnh gi¸ trÞ c«ng suÊt T¸c dông P=UIcosϕ ë vÞ trÝ hiÖn hµnh Input: Value U, I, ϕ tõ c¸c « nhí t−¬ng øng output: Value P gåm 2bytes cÊt vµo vïng nhí 53h, 54h call

A_ Ffc: (Fower factor controller) So s¸nh tû lÖ S (C«ng suÊt biÓu kiÕn) vµ P (C«ng suÊt t¸c dông) víi gi¸ trÞ set point. §iÒu khiÓn ®ãng c¾t tô Input: Q, P tõ c¸c « nhí 51h ..54h Output: LËp xo¸ c¸c bit cña cæng P1 ®Ó ®ãng c¾t tô bï. Call:

A_ADC: Input: LËp xo¸ c¸c bit PB6, PB7 Output: + Value U gåm 2bytes cÊt vµo vïng nhí 4Bh, 4Ch Internal RAM l−u gi÷ value U + Value I gåm 2bytes cÊt vµo vïng nhí 4Dh, 4Eh Internal RAM l−u gi÷ value I call:

S_KB: (Ch−¬ng tr×nh phôc vô ng¾t) ; Khi cã phÝm bÊm : •@Bdau:- Xem phÝm nµo ?

- TrÔ 20 ms - NÕu lµ phÝm "+" ,"-" , "Enter" : Kh«ng t¸c ®éng - NÕu lµ phÝm MODE : JMP to @MODE - N Õu lµ phÝm DISPLAY : JMP to @DISPLAY - NÕu lµ phÝm ESC : JMP to @Bdau

• @MODE : { Khi phÝm MODE ®−îc Ên } - Call Blinking (Auto): §Ìn LED nhá AUTO s¸ng - Gi÷ cho 6 LED lín hiÓn thÞ tr¹ng th¸i hiÖn hµnh - Test xem phÝm MODE ®· nh¶ ra ch−a ?

+ Ch−a nh¶: Quay vÒ Test MODE ®îi phÝm nµy nh¶ +Nh¶ råi: Test xem Mode ®ãng kh«ng ?

* NÕu kh«ng ®ãng: §îi 20 gi©y. Test "Esc" ®ãng ? +NÕu cã jmp @Bdau +NÕu kh«ng vÒ Reset (Mainprogram)

* NÕu tr−íc 20 gi©y ®ãng → ®Ìn " Man " s¸ng jmp continue

Thái Nguyên 7-2013 156

Page 158: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

- Continue: Test xem phÝm MODE ®· nh¶ ra ch−a ? + Ch−a nh¶: Quay vÒ Test MODE ®îi phÝm nµy nh¶ +Nh¶ råi: Test xem Mode ®ãng kh«ng ?

* NÕu kh«ng ®ãng: §îi 20 gi©y. Test "Esc" ®ãng ? +NÕu cã jmp @Bdau

+NÕu kh«ng call Man_Play (§ãng c¾t b»ng tay) * NÕu tr−íc 20 gi©y ®ãng → ®Ìn "SET" s¸ng jmp @SET • @SET: -6 ®Ìn LED lín nhÊp nh¸y - Test xem phÝm "Display" cã ®−îc Ên kh«ng ?

* NÕu kh«ng ®ãng: ®ợi 10 gi©y. Test "Esc" ®ãng ? +NÕu cã jmp @Bdau

+NÕu kh«ng vÒ Reset (Mainprogram) * NÕu tr−íc 10 gi©y ®−îc Ên → jmp @Display • @DISPLAY : - Test xem phÝm "Display" cã ®−îc Ên - nh¶ kh«ng ®Ó chuyÓn f, U, I, P,

Q, cosϕ +NÕu kh«ng sau 20 gi©y: Return Mainprogram +NÕu cã tr−íc 20 gi©y: Test xem c¸c phÝm "+","-" cã ®−îc t¸c ®éng ®Ó ®Æt c¸c gi¸ trÞ vµo c¸c « nhí gi¸ trÞ cña chóng.jmp next -Next: Test "Esc" ®ãng ?

* NÕu cã jmp @Bdau * NÕu kh«ng Xem "Enter" cã ®−îc Ên kh«ng ?

+ NÕu cã Ên: ChuyÓn gi¸ trÞ do ta set vµo vïng nhí Set point Call Roll Subroutine. Jmp to Mainprogram + NÕu kh«ng sau 10 gi©y: ChuyÓn gi¸ trÞ default tõ ROM vµo vïng nhí set point. Jmp to Mainprogram

IRET

Thái Nguyên 7-2013 157

Page 159: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Một ví dụ khác về

B¾t ®Çuchương trình chính của hệ vi xử lý

Hình 5. 7. Ch−¬ng tr×nh chÝnh KiÓm tra CPU: + C¸c thanh ghi + ROM, RAM trong cña recorder

ThiÕt lËp chÕ ®é: + Ng¾t

+ TruyÒn tin nèi tiÕp + Timer/Counter

+ Khëi t¹o 8255 + KiÓm tra RAM ngoµi

HiÖn mµn h×nh b¶n quyÒn thiÕt bÞ

ChÕ ®é 1 ?

ChÕ ®é 1: Thu d÷ liÖu c¸c kªnh cÊt vµo RAM ngoµi

Cã lÖnh tõ CPU ?

S

S

§

§

Xö lý lÖnh cña PC

ChÕ ®é 3 ?

ChÕ ®é 3: Xử lý lệnh từ PC, không ghi vào RAM ngoài

§S

ChÕ ®é 2: ChuyÓn toµn bé d÷ liÖu ®ang cã trong RAM ngoµi vÒ PC

Thái Nguyên 7-2013 158

Page 160: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

C©u hái vµ bµi tËp

1. Vßng lÆp ho¹t ®éng cña vi xö lý lµ g×? 2. Vi xö lý vµ vi ®iÒu khiÓn kh¸c nhau thÕ nµo? 3. Khái niệm Hệ trung tâm gồm những thành phần nào? 4. Sè l−îng thanh ghi trong c¸c CPU lµ kh¸c nhau nh−ng cã mét thanh ghi nµo b¾t buéc

CPU nµo còng ph¶i cã? 5. C¬ chÕ ®Þa chØ segment:offset gi¶i quyÕt vÊn ®Ò g× ? 6. Cã ph¶i chØ cã 1 lo¹i hîp ng÷ duy nhÊt cho tÊt c¶ c¸c bé vi xö lý? 7. Cã ph¶i CPU nµo còng ho¹t ®éng ®−îc víi c¬ chÕ b¶o vÖ kh«ng? 8. Cã ph¶i CPU nµo còng ho¹t ®éng ®−îc víi c¬ chÕ bé nhí ¶o kh«ng? 9. Mét bit nhí trong ®¬n vÞ ®o th«ng tin cã tån t¹i thùc kh«ng?

10. V× sao DRAM ph¶i ®−îc lµm t−¬i? 11. EEPROM, FlashROM cã g× gièng nhau kh«ng? 12. T¹i sao chiÕu tia cùc tÝm vµo ROM (lo¹i ®äc xo¸ ®−îc) l¹i xo¸ ®−îc néi dung cña nã. 13. X©y dùng c¸c bé gi¶i m· dïng NAND, OR, NOT ghÐp nèi 1 vi m¹ch, 2, vi m¹ch, 3

vi m¹ch ROM 27 64 t¹i c¸c ®Þa chØ 80000h, 8A000h , F8000h. 14. X©y dùng c¸c bé gi¶i m· dïng NAND, OR, NOT ghÐp nèi 1 vi m¹ch, 2, vi m¹ch, 3

vi m¹ch SRAM 6264 t¹i c¸c ®Þa chØ 88000h, A8000h , F8000h. 15. C¸c ®Çu bµi nh− 13 vµ 14 nh−ng sö dông 74138. 16. Tín hiệu chốt địa chỉ ALE được sử dụng để làm gì? 17. Một lệnh của bộ vi xử lý gồm có những thành phần nào? 18. CPU 8088/86 sử dụng các chế độ địa chỉ nào? 19. Xung nhịp đồng hồ clk là gì? 20. Ngắt ngoài tác động vào những chân nào của vi xử lý 80x86? 21. Chương trình .EXE khác chương trình .COM ở chỗ nào? 22. Có thể sử dụng các phương pháp điều khiển trao đổi dữ liệu nào trong truyền tin nối

tiếp? 23. Thế nào là thu đè, phát đè trong truyền tin nối tiếp không đồng bộ? 24. Truyền tin đồng bộ thực hiện được trên khoảng cách xa hay truyền tin không đồng

bộ? 25. Mức logíc ‘0’, ‘1’ có phải là luôn luôn cố định với mọi chuẩn? 26. Bộ đếm/định thời gian được sử dụng để làm gì? 27. Mô tả hoạt động của truyền tin I2C, SPI. 28. Kiến trúc Haward và Paul Noumann khác nhau thế nào? 29. Tính địa chỉ hexa của ngắt khi biết số hiệu ngắt như thế nào? 30. Bản chất của kỹ thuật thay véc tơ ngắt là gì? 31. Một bộ vi xử lý có điện áp nuôi +5 V nếu điện áp này lớn hơn hay nhỏ hơn +5V thì

vi xử lý có hoạt động không? Cụ thể ảnh hưởng trong các trường hợp? 32. Cần xây dựng bản đồ bộ nhớ của hệ vi xử lý để làm gì? 33. Làm thế nào để kiểm tra xem một vi mạch ROM có tốt hay không? 34. Làm thế nào để kiểm tra xem một vi mạch RAM có tốt hay không?

Thái Nguyên 7-2013 159

Page 161: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

Phụ lục

CÁC HỆ SỐ

1. Hệ cơ số mười

Đây là hệ số thông dụng với con người. Ngầm định trong các ngôn ngữ lập trình cũng là hệ số này. Trong các ngôn ngữ lập trình nếu muốn sử dụng các hệ số khác thường phải thêm các ký tự vào đầu hoặc cuối các ký tự ngụ ý nhắc đó là hệ số gì. Nếu không có thêm gì có nghĩa là hệ cơ số mười (thập phân). Hệ số thập phân sử dụng tập các ký tự ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ đứng đơn lẻ hoặc ghép với nhau để biểu diễn các số nguyên dương. Ví dụ ‘11’, ‘27’, ‘159’, ...

10 hoặc 10D có nghĩa là số 10.

10B có nghĩa là số 2 trong hệ 10.

10H có nghĩa là số 16 trong hệ 10.

2. Hệ nhị phân

Dùng nhóm các ký tự ‘0’ và ‘1’ để biểu diện các giá trị, cuối dãy số thêm ký tự ‘B’ tức là “binary-số nhị phân”. Ví dụ ‘10010111B’ hoặc ‘10101010B’. Khi có các con số ‘0’ ; ở đầu dãy số thì có thể bỏ qua . Ví dụ ‘001101B’ thì cũng chỉ là ‘1101B’ mà thôi.

3. Hệ số hexa

Hệ số thập lục phân (hệ số hexa hoặc hệ số 16) sử dụng tập các ký tự ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ... đứng đơn lẻ hoặc ghép với nhau để biểu diễn các số nguyên dương. Cuối dãy số thêm ký tự ‘H’ để ngụ ý đây là số hexa. Nếu chỉ con số chỉ biểu diễn bằng ký tự chữ thì thêm số 0 vào trước. Ví dụ ‘1FH’, ‘0A27H’, ‘159H’, ‘0BCH’ ...

4. Số BCD

Dùng nhóm bốn chữ số nhị phân để biểu diễn cho một con số thập phân. Ví dụ số thập phân ‘1973’ (hoặc có thể viết là ‘1973D’ biểu diễn bằng số BCD sẽ là ‘0001 1001 0111 0011BCD’. Số BCD thường được sử dụng khi hiển thị bằng đèn LED 7 đoạn (LED 7 segment).

5. Chuyển đổi giữa các hệ

Đổi số nguyên hệ 10 ra số nhị phân:

Lấy con số cần đổi chia cho 2 được thương số thứ nhất và số dư thứ nhất. Lấy thương số thứ nhất chia cho 2 được thương số thứ hai và số dư thứ hai. Tiếp tục làm với thương số thứ hai... để được số dư thứ 3. Làm liên tục cho đến khi kết quả

Thái Nguyên 7-2013 160

Page 162: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

thương số bước n bằng 0 tại bước này có số dư thứ n. Viết ngược số dư n, số dư n-1, ..., số dư bước 2, số dư bước 1. sẽ được số nhị phân cần tìm.

Ví dụ đổi 21D ra số nhị phân:

+ Lấy 22 chia 2 được 11 dư 0

+ Lấy 11 chia 2 được 5 dư 1

+ Lấy 5 chia 2 được 2 dư 1

+ Lấy 2 chia 2 được 1 dư 0

+ Lấy 1 chia 2 được 0 dư 1.

Dừng lại ở đây. Viết ngược dãy số dư được dãy số ‘10110’ đây là số nhị phân ‘10110B’ biểu diễn số 21D.

Đổi số thập phân hệ 10 ra số nhị phân:

Lấy số thập phân (sau dấu phảy) nhân 2 làm cho đến khi kết quả là một số chẵn thì dừng. Viết lần lượt các con số trước dấu phảy sẽ được con số thập phân nhị phân. Ví dụ:

Đổi 0.125 ra số nhị phân:

0.125 x 2 = 0.250

0.250 x 2 = 0.500

0.500 x 2 = 1.000. Dừng lại ở đây và viết các con số trước dấu thập phân được ‘001’.

Vậy 0.125D = 0.001B

Đổi số 10.127D ra số nhị phân

Phần trước dấu phảy (chấm) thập phân đổi bình thường như với số nguyên được ‘1010’. Phần sau dấu phảy (chấm) thập phân được

0.127 x 2 = 0.254

0.254 x 2 = 0.580

0.580 x 2 = 1.160

0.160 x 2 = 0.320

0.320 x 2 = 0.640

0.640 x 2 = 1.280

0.280 x2 = 0.560

Thái Nguyên 7-2013 161

Page 163: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

0.560 x 2 = 1.120.

... Ta thấy không thể dừng được là một số chẵn. Do vậy tuỳ theo độ chính xác mà có thể dừng ở đâu.

Vậy ta có 10.127D = 1010.001B - nếu lấy đến 3 số sau dấu thập phân hoặc

10.127D = 1010.001001B nếu lấy đến 6 số sau dấu thập phân. Tuy nhiên ở đây đã có sai số.

Đổi số thập phân ra số hexa: Làm như với số nhị phân. Tuy nhiên thay cho chia cho 2 thì bây giờ chúng ta chia cho 16.

Ví dụ: Đổi 254D ra số hexa

+ Lấy 254 chia cho 16 được 15 dư 14

+ Lấy 15 chia cho 16 được 0 dư 15. Dừng lại ở đây và viết ngược để có số hexa. Tuy nhiên ta không viết là ‘1514’ mà viết là ‘FE’ vì ‘0FH’ = 15 và ‘0E’ =14. Cuối cùng có: 254D = 0FEH.

Đổi 11900D ra số hexa:

+ Lấy 11900 chia cho 16 được 743 dư 12

+ Lấy 743 chia cho 16 được 46 dư 7

+ Lấy 46 chia cho 16 được 2 dư 14.

+ Lấy 2 chia cho 16 được 0 dư 2.

Dừng lại ở đây và viết ngược lại được 2E7CH . Vậy 11900D = 2E7CH.

Đổi số nhị phân ra số thập phân

Có số nhị phân gồm n chữ số bnbn-1bn-2...b2b1 trong đó bi là các hệ số ∈ {0,1}, i=1..n. Chữ số thập phân tương ứng sẽ là

D = bn*2n-1 + bn-1*2n-2 + bn-2*2n-3 +...+b2*22-1 + b1*21-1

Ví dụ: Đổi 101101B ra số thập phân. Ở đây n = 6

D = 1*25+0*24+1*23+1*22+0*21+1*20 = 32+0+8+4+0+1=45

Đổi số hexa ra số thập phân

Có số hexa gồm n chữ số hnhn-1hn-2...h2h1 trong đó hi là các hệ số ∈ {0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, i=1..n. Chữ số thập phân tương ứng sẽ là

D = hn*16n-1 + hn-1*16n-2 + hn-2*16n-3 +...+ h2*162-1 + h1*161-1

Ví dụ: Đổi 2AE101H ra số thập phân. Ở đây n = 6

Thái Nguyên 7-2013 162

Page 164: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

D = 2*165+10*164+15*163+1*162+0*161+1*160

D = 2*1048576 + 10*65536 + 15*4096 + 1*256 + 0*16 +1*1

D = 2097152 + 655360 + 61440 + 256 + 1 = 2814209

Đổi số nhị phân ra số hexa Thực hiện theo quy tắc: Từ phải sang trái nhóm 4 chữ số nhị phân một và đổi ra số hexa. Ví dụ: 10110001011101B = ? Nhóm 4 chữ số từ phải sang:

1101B = DH

0101B = 5H

1100B = CH

10B = 2H

Như vậy 10110001011101B = 2C2DH

Thái Nguyên 7-2013 163

Page 165: Bai Giang Vi Xu Ly Va LTHN 2013

Phạm Đức Long BM Công nghệ &Thiết bị Tự động Khoa CN Tự động hóa – ĐHCNTT&TT Thái Nguyên

BÀI GIẢNG MÔN HỌC VI XỬ LÝ VÀ LẬP TRÌNH HỢP NGỮ

TÀI LIỆU THAM KHẢO

[1]. V¨n ThÕ Minh, Kỹ thuật vi xö lý, NXBGD, 1997. [2]. §ç Xu©n TiÕn, Kü thuËt vi xö lý vµ lËp tr×nh assembly cho hÖ vi xö lý,

NXBKHKT, 2001. [3]. Ytha yu & charles marut, LËp tr×nh hîp ng÷ vµ m¸y vi tÝnh IBM-PC,

NXBGD, 1998. [4]. John Uffenbeck, The 80x86 family - Design, Programming, and

Interfacing, Prentice Hall, 1998.

Thái Nguyên 7-2013 164