Vi xử lý bài giảng dành cho sinh viên Đại học và cao đẳng là bộ tài liệu hay và rất hữu ích cho các bạn sinh viên và quý bạn đọc quan tâm. Đây là tài liệu hay trong Bộ tài liệu sưu tập gồm nhiều Bài tập THCS, THPT, luyện thi THPT Quốc gia, Giáo án, Luận văn, Khoá luận, Tiểu luận…và nhiều Giáo trình Đại học, cao đẳng của nhiều lĩnh vực: Toán, Lý, Hoá, Sinh…. Đây là nguồn tài liệu quý giá đầy đủ và rất cần thiết đối với các bạn sinh viên, học sinh, quý phụ huynh, quý đồng nghiệp và các giáo sinh tham khảo học tập. Xuất phát từ quá trình tìm tòi, trao đổi tài liệu, chúng tôi nhận thấy rằng để có được tài liệu mình cần và đủ là một điều không dễ, tốn nhiều thời gian, vì vậy, với mong muốn giúp bạn, giúp mình tôi tổng hợp và chuyển tải lên để quý vị tham khảo. Qua đây cũng gởi lời cảm ơn đến tác giả các bài viết liên quan đã tạo điều kiện cho chúng tôi có bộ sưu tập này. Trên tinh thần tôn trọng tác giả, chúng tôi vẫn giữ nguyên bản gốc. Trân trọng. ĐỊA CHỈ DANH MỤC TẠI LIỆU CẦN THAM KHẢO http:123doc.vntrangcanhan348169nguyenductrung.htm hoặc Đường dẫn: google > 123doc > Nguyễn Đức Trung > Tất cả (chọn mục Thành viên)
TR NGă I H C PH MăV Nă NG KHOA K THU T ậ CÔNG NGH BÀI GI NG VI X LÝ B c h c:ăCaoăđ ng Gi ng viên: Nguy n Ph măHoƠngăD ng B môn:ă i n ậ i n t Khoa: K thu t ậ Công ngh Qu ng Ngãi, tháng 12/2014 TR NGă I H C PH MăV Nă NG KHOA K THU T ậ CÔNG NGH BÀI GI NG VI X LÝ B c h c:ăCaoăđ ng (S ti t: 30) Gi ng viên: Nguy n Ph măHoƠngăD ng B môn:ă i n ậ i n t Khoa: K thu t ậ Công ngh Qu ng Ngãi, tháng 12/2014 M CL C L I NịI Ch U ng T NG QUAN V H VI X LÝ 1.1 H vi x lý 1.2 Các thành ph n c a h vi x lý 1.2.1 Lõi vi x lý 1.2.2 H th ng bus .8 1.2.3 C u chuy n bus .10 1.2.4 Ngo i vi 11 1.3 L ch s phát tri n phân lo i b vi x lý 11 Ch ng B VI X LÝ INTEL 8086 17 2.1 Ki n trúc bên c a 8086 17 2.1.1 S đ kh i .17 2.1.2 Ch c n ng vƠ ch đ làm vi c c a chân giao ti p 18 2.2 Các thành ph n c a b vi x lý 8086 .22 2.3 Quá trình s lý l nh 29 2.3.1 Các ph ng pháp đ nh đ a ch 30 2.3.2 T p l nh 8086 34 2.4 Ng t 55 2.4.1 Gi i thi u .55 2.4.2 Ng t .56 2.4.3 Ng t 58 2.4.4 B ng vector ng t .59 2.4.5 Quá trình x lý ng t 60 2.5 B đ ng x lý toán h c 8087 62 Ch ng VI I U KHI N VÀ VI CH NG TRỊNH 68 3.1 Gi i thi u v vi u n .68 3.2 ng d li u vƠ đ ng u n .69 3.3 Vi l nh 73 3.4 nh vi l nh .75 Ch ng PH I GHÉP B VI X LÝ V I B NH VÀ CÁC THI T B VÀO/RA 78 4.1 Gi i thi u v b nh .78 4.2 Gi i thi u v thi t b vào/ra 81 4.2.1 Phân lo i thi t b vào/ra 81 4.2.2 Các kh i giao ti p 81 4.3 H th ng bus .82 4.4 Các chip h tr vào/ra 83 4.4.1 Chip USART 8251A .84 4.4.2 Chip PIO 8255A 94 4.5 Vào/ra b ng ph ng pháp th m dò 103 4.6 Vào/ra b ng ph ng pháp ng t 105 4.6.1 Các tín hi u ng t c a 8086 105 4.6.2 Quá trình x lý ng t 105 4.6.3 X lý u tiên ng t 106 4.6.4 Chip phân x ng t 8259A .107 4.7 Vào/ra b ng ph ng pháp truy xu t b nh tr c ti p (DMA) .117 4.7.1 Khái ni m DMA 117 4.7.2 Chip u n DMA 8237A .118 4.7.3 Ho t đ ng c a 8237A h vi x lý 8086 .129 Ch ng L P TRÌNH PH I GHÉP 131 5.1 L p trình cho chip h tr vào/ra 131 5.1.1 L p trình cho chip h tr vào/ra n i ti p USART 8251A 131 5.1.2 L p trình cho chip PIO 8255A 136 5.2 L p trình s d ng ng t l p trình cho 8259A 139 5.2.1 Ng t m m vƠ ch ng trình x lý ng t 139 5.2.2 L p trình cho 8259A .142 5.3 L p trình cho b u n truy nh p b nh tr c ti p 8237A 145 5.4 M t s ng d ng khác 150 5.4.1 Ghép n i vi x lý v i bàn phím 150 5.4.2 Ghép n i v i led đ n .154 5.4.3 Ghép n i v i led đo n 155 TÀI LI U THAM KH O .161 L IăNịIă Bài gi ng “Vi x lý” đ U c biên so n dùng làm tài li u h c t p cho sinh viên b c cao đ ng qui ngành công ngh k thu t Ph m V n ng Bài gi ng bao g m ch i nậ i n t tr ng ih c ng, cung c p cho sinh viên nh ng ki n th c c b n v vi x lý nh : l ch s phát tri n, h th ng bus, ngo i vi, ki n trúc c a vi x lý, t p l nh cách th c xây d ng t p l nh cho vi x lý, ho t đ ng c a vi x lý, cách th c xây d ng m t h th ng vi x lý ầ BƠi gi ng s d ng vi x lý Intel 8086 đ minh h a chi ti t cho khái ni m Intel 8086 thu c h vi x lý thông d ng c a Intel, đ c s d ng ph bi n máy vi tính cá nhân ây lo i vi x lý thu c đ i đ u c a h 8086 (x86) nên có ki n trúc c b n, làm n n t ng cho s phát tri n c a dòng vi x lý cao c p c a Intel nh Celeron, Pentium, ầ N i dung chi ti t c a gi ng nh sau: - Ch ng 1: T ng quan v h vi x lý - Ch ng 2: B vi x lý Intel 8086 - Ch ng 3: Vi u n vƠ vi ch - Ch ng 4: Ph i ghép b vi x lý v i b nh thi t b vào/ra - Ch ng 5: L p trình ph i ghép ng trình Trong trình biên so n không th tránh kh i nh ng thi u sót, r t mong nh n đ c s góp ý c a b n đ c đ gi ng đ góp xin g i v đ a ch : B môn Tr ng i h c Ph m V n i n ậ ng Tác gi xin chân thành c m n c hoàn thi n h n M i ý ki n đóng i n t , Khoa K thu t ậ Công ngh , Ch ngă1 T NG QUAN V H VI X LÝ Ngày nay, v i s phát tri n bùng n c a khoa h c k thu t nói chung vƠ l nh v c vi m ch n t công ngh cao nói riêng, thi t b n t đư tr nên r t thông d ng v i t t c m i ng i T nh ng v t d ng đ nhà ph c v cho cu c s ng sinh ho t hàng ngƠy nh : tivi, t l nh, máy gi t, ầ cho đ n nh ng thi t b c m tay ph c v cho nhu c u công vi c gi i trí nh : máy tính, máy nh, n tho i di đ ng, ầ đ u có m t đ c m chung, lƠ: ho t đ ng d a s u n c a m t ho c nhi u ph n t m ch Các ph n t nƠy đ c ví nh b não c a c h th ng, có nhi m v đón nh n, x lý thông tin vƠ u n c h th ng ho t đ ng m t cách hài hòa nh t, chúng đ c g i vi x lý Vi x lý g n g i vƠ quen thu c nh t v i có l đ n v x lý trung tơm (hay đ CPU) c a Intel vƠ AMD, đ c s d ng máy vi tính cá nhơn Ch cg i ng s trình bày t ng quan v h vi x lý nh : l ch s phát tri n c a vi x lý, thành ph n c b n m t h vi x lý, ầ 1.1 H vi x lý M t h vi x lý th ng bao g m: lõi vi x lý k t n i v i ngo i vi u n thi t b bên thông qua h th ng bus Hình 1.1 mô t m t h vi x lý đ n gi n bao g m hai lõi vi x lý T hình 1.1, ta th y h th ng bao g m hai lõi vi x lý giao ti p v i ngo i đơy ta s d ng thu t ng “lõi vi x lý” vi thông qua bus c u chuy n bus (core) hay đ n v x lý trung tơm (CPU) c ng lƠ m t “vi x lý” n i dung c a giáo trình Trên th c t , “vi x lý” lƠ thu t ng dùng chung đ đ c p đ n k thu t ng d ng công ngh vi n t , công ngh tích h p kh n ng x lý theo ch ng trình vƠo l nh v c khác Vào nh ng giai đo n đ u trình phát tri n, vi x lý đ c thi t k ch t o ch tích h p nh ng ph n c ng thi t y u nh t c a m t vi x lý nh : kh i giao ti p bus, kh i tính toán s h c (ALU), t p ghi, kh i gi i mã l nh, ầ Trong giai đo n này, thành ph n u n khác th tích h p đư đ ng không đ c tích h p v i vi x lý m t chip (m ch c đóng gói thƠnh ph n c ng) mà ph i ghép n i thêm bên Các thành ph n đ c g i ngo i vi V sau nh s phát tri n v tb cc a công ngh tích h p, ngo i vi c ng d n đ c tích h p vào bên chip v i lõi vi x lý t o thành h th ng vi x lý Hình 1.1 H vi x lý M t h th ng vi x lý có th có m t ho c nhi u lõi vi x lý NgƠy nay, ng i ta có th tích h p r t nhi u lõi vi x lý th m chí b x lý đ h a m t chip Thông th ng, m i lõi vi x lý s chi m m t bus, bus liên h v i thông qua c u chuy n bus nh hình 1.1 Vi c phân h th ng thành nhi u bus nh v y nh m t i u hóa t c đ c a t ng ngo i vi h th ng Các ngo i vi t c đ th p (nh UART, CAN, SPI, ầ) s đ c k t n i v i bus t c đ th p, t ng nh v y ngo i vi t c đ cao (nh USB, SATA, Ethernet, ầ) s đ ng ck t n i v i bus t c đ cao M i lõi vi x lý h th ng đa lõi s có m t ch c n ng riêng tùy vƠo đ c tính k thu t ng d ng c th Nguyên lý ho t đ ng c a m i h vi x lý d ng nƠy đ u gi ng Vi x lý đ c m t l nh t b nh , th c thi l nh r i đ c th c thi l nh k ti p Quá trình nƠy đ c l p l p l i mi n h th ng ch y Chính v y, m t h th ng vi x lý ph i có m t phân vùng b nh dƠnh cho ch ng trình th c thi kh i u n truy xu t đ n b nh M t s h th ng vi x lý đ c s d ng cho ng d ng đ n gi n, không c n ch h p s n h th ng (th gi i h n v kích th (th ng trình l n s s d ng b nh đ ng SRAM) làm b nh ch c tích ng trình Tuy nhiên, c c a chip nên b nh d ng ch có dung l ng nh ng ch vƠi tr m KB) Do đó, đ i v i ng d ng ph c t p đòi h i ch trình l n, ng i ta ph i s d ng b nh có dung l g n h th ng làm b nh ch nƠy đ ng ng l n (nh DRAM) đ c ng trình Vi c truy xu t đ n nh ng b nh d ng c th c hi n thông qua m t ngo i vi c a h th ng, lƠ ngo i vi u n b nh 1.2 Các thành ph n c a h vi x lý Ph n s trình bày thành ph n c b n c a m t h vi x lý, bao g m v trí, vai trò vƠ s l c v c u t o c a t ng thành ph n h th ng 1.2.1 Lõi vi x lý Lõi vi x lý đ c xem b não c a h th ng Ch c n ng c a lõi vi x lý ti p nh n x lý thông tin t ngo i vi h th ng thông qua h th ng bus vƠ u n ho t đ ng c a h th ng m t cách h p lý nh t theo yêu c u k thu t đư đ c đ a Vi x lý ho t đ ng theo m t ch s d ng đ nh ngh a tr l nh nƠy đ ch c Ch c th hi n d ng trình đ c ng i ng trình lƠ t p h p l nh đ x lý d li u Các i d ng s nh phơn vƠ đ c l u tr b nh ng trình Tuy nhiên, vi c vi t l nh (hay g i l p trình cho vi x lý) d i d ng s nh phân công vi c h t s c nhàm chán d x y sai sót ch ng trình Do đó, đ vi c l p trình tr nên thú v mang tính tr c quan h n, song song v i vi c thi t k ph n c ng, công ty thi t k vi x lý phát tri n thêm ph n m m đ d ch l nh c a vi x lý đ c l p trình d i d ng ch vi t mang tính g i nh , thành mã nh phơn t ng ng Ph n m m nƠy đ trình biên d ch, l nh đ i d ng ch vi t đ c th hi n d c a vi x lý, m i l nh t p l nh t biên d ch, mã nh phơn nƠy đ d ng l nh t p l nh đ cg i c g i t p l nh ng ng v i m t mã nh phơn sau đ c c g i opcode Vi c l p trình cho vi x lý s c g i l p trình assembly cho vi x lý l p trình assembly, l p trình viên đòi h i ph i thu c n m v ng t t c l nh t p l nh, đơy c ng công vi c khó kh n vi x lý khác s có t p l nh khác nh ng vi x lý ph c t p th ng có t p l nh lên đ n hƠng tr m l nh, r t khó đ nh t t c Do đó, song song v i trình biên d ch assembly, công ty thi t k vi x lý phát tri n thêm trình biên d ch ngôn ng C cho vi x lý nh m t n d ng tính ph bi n c a ngôn ng l p trình C Khi đó, l p trình viên ch c n l p trình ho t đ ng cho vi x lý hoàn toàn b ng ngôn ng l p trình C, mà không c n quan tơm đ n t p l nh c a vi x lý V i vi c vi x lý ph i đ c l nh th c thi t vùng nh h th ng xen k v i vi c truy xu t d li u đ ph c v cho m t s l nh, vi x lý th ng đ c thi t k theo hai ki n trúc c b n v n ph bi n cho đ n ngƠy nay, ki n trúc Von Neumann ki n trúc Harvard a Ki n trúc Von Neumann Các vi x lý thi t k theo ki n trúc Von Neumann s chia s m t đ ng bus chung cho c l nh d li u nh hình 1.2 Hình 1.2 Ki n trúc Von Neumann V i ki n trúc Von Neumann, l nh d li u có th đ m t b nh Trên th c t , m t b nh đ vùng nh cho l nh d li u s ng c l u tr c chia thành r t nhi u vùng, vi c phân i l p đ c tính k thu t c a h th ng quy đ nh T đ c tính c a vi x lý thi t k theo ki n trúc Von Neumann, ta th y, lúc vi x lý truy xu t d li u không th g i l nh vƠ ng m t nh c m c a ki n trúc Von Neumann, đ th t c chai Von Neumann kh c ph c tình tr ng nƠy, ng c l i ơy c ng c g i tình tr ng i ta đư s d ng m t s k thu t nh : tích h p thêm b nh cache vào vi x lý ho c thi t k theo ki n trúc Harvard b Ki n trúc Havard Hình 5.8 Gi năđ đ nh vi căđoc/ghiăc a 8237A Hình 5.9.ăS ăđ m ch gi iămưăbusăđi u n B ng 5.2 b ng chân tr bi u di n ho t đ ng c a m ch gi i mã bus B ng 5.2 B ng chân tr c a m ch gi iămưăbusăđ a ch RD WR M / IO MEMR MEMW IOR IOW 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 147 Hai tr ng thái đ u b ng 5.2 tr ng thái c m, ho t đ ng đ c ghi không th x y m t lúc Trên th c t tr ng h p này, ta ch đ a vƠo b ng chân tr nh m rút g n b t m ch u n Gi s m ch gi i mư đ c thi t k đ ghi c a 8237A có đ a ch nh sau: Thanh ghi đ a ch g c t c th i kênh 0: 70h Thanh ghi đ m d li u g c t c th i kênh 0: 71h Thanh ghi đ a ch g c t c th i kênh 1: 72h Thanh ghi đ m d li u g c t c th i kênh 1: 73h Thanh ghi ch n ch đ ho t đ ng: 7Bh Thanh ghi tr ng thái l nh: 78h Thanh ghi m t n : 7Fh Thanh ghi yêu c u: 79h V i h th ng nh đư cho trên, xét ví d sau Ví d : S d ng hai kênh vƠ đ th c hi n vi c chuy n 100 byte d li u t vùng nh có đ a ch đ u 1000H sang vùng nh có đ a ch đ u 4000H S d ng kênh lƠm kênh đ c vƠ kênh lƠm kênh ghi, đ a ch thay đ i theo chi u t ng d n Chú ý r ng, tr c ghi đ a ch ngu n vƠ đ a ch đích vƠo ghi c a DMAC, ta c n ph i th c thi l nh Clear first/last Flip-Flop S byte c n chuy n ph i đ c ghi vào ghi b đ m c a kênh Sau đó, ta l p trình ch đ ho t đ ng cho m i kênh, cho phép kênh ho t đ ng, kích ho t b ng ph n m m DMAC ho t đ ng ch đ chuy n m t kh i d li u ch ng trình đ c đ n gi n, d hi u, ta nên đ nh ngh a m t s giá tr b ng t g i nh b ng ch d n EQU ho c DB, DW Do đó, ch có d ng nh sau: data CLEAR_FF EQU 7Ch; l nh Clear first/last Flip-Flop DCHI_K0 EQU 70h; ghi đ a ch kênh DEM_K0 EQU 71h; ghi đ m d li u kênh 148 ng trình s DCHI_K1 EQU 72h; ghi đ a ch kênh DEM_K1 EQU 73h; ghi đ m d li u kênh CHEDO EQU 7Bh; ghi ch n ch đ ho t đ ng LENH EQU 78h; ghi l nh MATNA EQU 7Fh; ghi m t n YEUCAU EQU 79h; ghi yêu c u DMA SOBYTE DB 100; s l NGUON DW 0h; đ a ch g c DICH DW 4000h; đ a ch đích OUT CLEAR_FF, AL; l nh Clear first/last Flip-Flop MOV AX, NGUON; n p đ a ch ngu n cho kênh OUT DCHI_K0, AL MOV AL, AH OUT DCHI_K0, AL MOV AX, DICH; OUT DCHI_K1, AL MOV AL, AH OUT DCHI_K1, AL MOV AL, SOBYTE; OUT DEM_K1, AL MOV AL, 88h; OUT CHEDO, AL MOV AL, 85h; OUT CHEDO, AL MOV AL, 1; OUT LENH, AL MOV AL, 0Ch; OUT MATNA, AL MOV AL, 4; ng byte c n chuy n code n p đ a ch đích cho kênh n p s đ m d li u cho kênh thi t l p ch đ ho t đ ng cho kênh thi t l p ch đ ho t đ ng cho kênh cho phép ch đ chuy n d li u gi a b nh cho phép kênh cho kênh yêu c u DMA 149 OUT YEUCAU, AL Sau truy n xong s byte đ EOP s tích c c Thông th c l p trình ghi đ m, tín hi u ng tín hi u nƠy đ c dùng làm yêu c u ng t thông báo v i CPU đư hoƠn thƠnh vi c truy n d li u ch ng trình ng t CPU s th c hi n thao tác ti p theo sau trình truy n d li u 5.4 M t s ng d ng khác 5.4.1 Ghép n i vi x lý v i bàn phím Bàn phím m t thi t b vào r t thông d ng h vi x lý, th đ ng c dùng đ nh p d li u Có hai cách qu n lý bàn phím: qu n lý tr c ti p b ng vi x lý qu n lý b ng chip quét phím chuyên d ng Sau đơy ta s tìm hi u hai cách qu n lý Qu n lý vi c quét phím b ng vi x lý Vi x lý s qu n lý vi c quét phím b ng m t ch ng trình dò phím iv i cách quét phím ta c n ph i ý đ n m t s v n đ sau trình l p trình: Ch ng rung: i v i phím c (th ng đ c dùng h th ng vi x lý), v a nh n ho c nh phím s t o xung không liên t c, trình th ng di n vòng 10ms ậ 20ms Do đó, n u ta đ c thông tin v a nh n phím s cho d li u không th t s xác, ta nên đ c thông tin nh n phím sau kho ng th i gian 20ms sau có s thay đ i m c lôgic t i phím nh n Ch ng dính phím: Trong m t s tr đ tr ng h p phím b h ng, m ti p xúc tr ng thái đ c n i v i nhau, t c phím ng h p này, ta nên thêm m t ch c nh n Do đó, đ tránh ng trình ki m tra bƠn phím tr c th c hi n quét phím Sau đơy, ta xét m t bƠn phím đ n gi n bao g m 16 phím nh n đ d ng ma tr n nh hình 5.10, n tr kéo lên ngu n có đ l n 10k 150 c b trí Hình 5.10 Bàn phím 16 nút nh n Ph i ghép bàn phím v i chip m r ng c ng PIO 8255A b ng cách ghép hàng v i bit th p c a c ng C c t v i bit cao c ng C L p trình cho bit th p c ng C ngõ bit cao c ng C ngõ vào tr ng thái không nh n phím, c t s có m c lôgic Khi nh n m t phím nƠo đó, c t s đ v i hƠng t cn i ng ng c a phím vƠ có m c lôgic c a hƠng Do đó, gi i thu t quét phím g m b c nh sau: a lôgic l n l c v m c lôgic c t xem có c t xu ng m c lôgic hay không, t ta xác đ nh đ t hàng c phím nƠo đ c nh n Gi s k t qu tr v m t phím t di n cho phím vƠ đ giá tr FFh Ch ng ng đ c nh n m t mã s đ i c l u tr ghi AL Khi bàn phím b l i, AL s có ng trình t o th i gian tr 20ms có tên lƠ: DELAY_20MS Ch trình quét phím có d ng nh sau .data ; gi s phím có b ng mư nh sau (theo d ng c a ma tr n phím) ma_phim DB 00h 01h 02h 03h DB 10h 11h 12h 13h 151 ng DB 20h 21h 22h 23h DB 30h 31h 32h 33h PA EQU 60h PB EQU 61h PC EQU 62h CWR EQU 63h CW EQU 88h; 8255A ho t đ ng ch đ 0, PC3-PC0: xu t, PC7-PC4: nh p code MOV AX, @data MOV DS, AX ; nh p đ a ch đ u đo n d li u MOV AL, CW OUT CWR, AL QUET_PHIM: ; nh p t u n cho 8255A ; b t đ u ch ng trình quét phím ; ki m tra bàn phím MOV AL, OUT PC, AL ; đ a t t c hàng MOV CX, KIEM_TRA_PHIM: ; ki m tra dính phím IN AL, PC AND AL, 0F0h CMP AL, 0F0h LOOPNE KIEM_TRA_PHIM JCXZ PHIM_LOI ; phím b dính, báo l i DOI_NHAN_PHIM: IN AL, PC AND AL, 0F0h CMP AL, 0F0h JE DOI_NHAN_PHIM ; ti p t c quét ch a có phím đ CALL DELAY_20MS ; đ i 20ms ch bàn phím n đ nh 152 c nh n ; ki m tra l i xem phím có th t s đ c nh n hay không IN AL, PC AND AL, 0F0h CMP AL, 0F0h JE DOI_NHAN_PHIM ; n u phím rung quay tr phím MOV AL, 0Eh MOV CL, AL MOV BX, OFFSET ma_phim QUET_COT: OUT PC, AL ; đ a m t hàng IN AL, PC ; đ c giá tr c t AND AL, 0F0h CMP AL, 0E0h ; ki m tra phím nh n c t JE COT_0 CMP AL, 0D0h ; ki m tra phím nh n c t JE COT_1 CMP AL, 0B0h ; ki m tra phím nh n c t JE COT_2 CMP AL, 070h ; ki m tra phím nh n c t JE COT_3 ADD BX, CMP BX, 16 JE DOI_NHAN_PHIM ROL CL, ; xoay đ n hàng ti p theo MOV AL, CL JP QUET_COT COT_0: MOV SI, JP TAO_MA 153 l i ti p t c quét COT_1: MOV SI, JP TAO_MA COT_2: MOV SI, JP TAO_MA COT_3: MOV SI, ; t o mư phím vƠ l u vƠo ghi AL TAO_MA: MOV AL, [BX+SI] JP DOI_NHAN_PHIM PHIM_LOI: ; quay l i ch ng trình ch phím nh n ti p theo ; bàn phím b l i MOV AL, 0FFh JP DOI_NHAN_PHIM ; quay l i ch ng trình ch phím nh n ti p theo 5.4.2 Ghép n i v iăledăđ n Trong ph n ta ch quan tâm t i cách k t n i vi x lý v i led đ n, l i vi c hi n th led r t đ n gi n, ta ch c n đ a m c logic khác chân c a c ng xu t có th cho led sáng ho c t t Hình 5.11 th hi n cách k t n i led v i vi x lý ho c v i chip tích h p nói chung Hình 5.11 Các cách k t n iăledăđ năv i vi x lý Thông th ng ng i ta lái led theo ki u hút dòng, t c dòng qua led sáng có chi u t bên vào c ng IO Sau đơy ta xét tr - Tr ng h p 1: ghép t t, led sáng bình th 154 ng h p c a hình 5.11 ng ngõ có m c lôgic - Tr ng h p 2: ghép kém, dòng qua led l n có th lƠm h c ng ho c led - Tr ng h p 3: ghép kém, không đ dòng lái, led m 5.4.3 Ghép n i v iăledă7ăđo n Led đo n thành ph n hi n th quan tr ng m t h vi x lý Led đo n đ c c u t o t led đ n, b trí theo hình s nh hình 5.12 Có hai lo i led đo n là: anod chung cathod chung Anod chung: c c anod c a led n i chung (COM) n i v i ngu n Vcc Cathode chung: c c cathode c a led n i chung (COM) n i xu ng GND Tuy nhiên, th c t ta s d ng led đo n cathode chung v n đ không đ dòng lái nh đư đ c p ph n Lo i anod chung th ng đ cs d ng k t h p v i chip 7447 nh hình 5.12 đ hi n th ch s Hình 5.12 K t n iăledă7ăđo n anod chung v i chip 7447 Các đo n led đ đo n sáng chơn t a ph i m c c đ t tên lƠ a, b, c ầ., g ng ng đo n ph i i v i lo i anod chung, đ m t m c Ví d : đ đo n a sáng chân hi n th s nƠo m t vƠi đo n sáng m t vƠi đo n t t Ví d : hi n th s 1: đo n b, c sáng vƠ đo n l i ph i t t hi n th s 3: đo n e, f t t vƠ đo n l i sáng hi n th s 8: t t c đo n ph i sáng Ngõ vào c a 7447 t t ng ng s BCD bi u di n cho ch s , ngõ ng ng m c lôgic đ có th hi n th s led đo n 155 i v i h th ng c n nhi u led đo n đ hi n th ta c n ph i s d ng gi i thu t quét led đ ti t ki m chân IO chip 7447 Hình 5.13 mô t cách m c theo ki u d n kênh ch s d ng m t chip 7447 (thay chip 7447) đ u n led đo n Hình 5.13 Ghép d n kênh led 7ăđo n Theo cách m c trên, chân a, b, c, d, e, f, g c a led đo n đ cn i chung v i n i vào ngõ c a chip 7447 Các chơn anod chung (COM) đ u n b i transistor Các chơn u n đóng ng t transistor đ v i c ng c a vi x lý Khi transistor đóng, led đ D a vào hi n t ng l u nh s đ l n) mà m t th cn i c c p ngu n hi n th s m t, ta có th quét cho led t t m liên t c (v i t n ng v n không th nh n Vi c quét led đ cách cho transistor l n l c c th c hi n b ng t tích c c Th i gian gi a hai l n tích c c c a m t transistor ph i đ ng n đ không th y hi n t ng nh p nháy led Thông th s quét t i thi u 40Hz Cách m c s ti t ki m đ ng t n c chip u n 7447 gi m m c tiêu th n n ng c a led t i m t th i m ch có m t led hi n th s Sau đơy lƠ gi i thu t quét led cho led đo n hình 5.13 B t đ u: t t [T3:T0] L p: b t T3 Nh n d li u [a:h] cho led T3 Trì hoãn T t T3, b t T2 Nh n d li u [a:h] cho led T2 Trì hoãn 156 T t T2, b t T1 Nh n d li u [a:h] cho led T1 Trì hoãn T t T1, b t T0 Nh n d li u [a:h] cho led T0 Trì hoãn T t T0 Nh y v nhưn “L p” Tùy vào s led mà m c đ trì hoãn s khác nhau, đ m b o cho t n s quét ph i l n h n 40Hz V i led hi n th , đ trì hoãn t i đa ph i 25/4 = 6.25ms Ghép b n led đo n 7447 đ hình 5.13 v i chip m r ng c ng 8255A Ngõ vào c a c l y t bit th p c a c ng C, ngõ vƠo u n transistor đ t bit cao c ng C Các c ng A, B, C c a 8255A có đ a ch l n l 62h Sau đơy lƠ ch data EQU 60h PB EQU 61h PC EQU 62h CWR EQU 63h CW EQU 80h ; 8255A ho t đ ng ch đ 0, PC7-PC0: xu t LED0 EQU 11h ; b t T0, đ a d li u cho led LED1 EQU 22h ; b t T1, đ a d li u cho led LED2 EQU 43h ; b t T2, đ a d li u cho led LED3 EQU 84h ; b t T3, đ a d li u cho led CAM EQU 0Fh ; t t t t c transistor code MOV AL, CW OUT CWR, AL ; nh p t u n cho 8255A 157 ng ng trình quét led có d ng nh sau PA t 60h, 61h, ng trình dùng đ hi n th 1234 led đo n Gi s ch trình trì hoãn 6ms có tên g i lƠ DELAY_6MS Ch cl y MOV AL, CAM OUT PC, AL ; c m t t c led QUET_LED: MOV AL, LED0 ; b t T0, đ a d li u led OUT PC, AL CALL DELAY_6MS; trì hoãn 6ms MOV AL, LED1 ; b t T1, đ a d li u led OUT PC, AL CALL DELAY_6MS; trì hoãn 6ms MOV AL, LED2 ; b t T2, đ a d li u led OUT PC, AL CALL DELAY_6MS; trì hoãn 6ms MOV AL, LED3 OUT PC, AL ; b t T3, đ a d li u led CALL DELAY_6MS; trì hoãn 6ms JP QUET_LED Trong ch hoưn Thông th ng trình ph n trên, ta đ u có hàm t o th i gian trì ng, vi c trì hoãn m t h th ng vi x lý đ đáp ng m t yêu c u nƠo lƠ r t quan tr ng Do đó, ph n d i trình bày m t ph ng pháp t o th i gian trì hoãn 1ms b ng vi x lý, d a vào chu k th c thi l nh Ch có tên DELAY_1MS DELAY_1MS: PUSH CX ; c t ghi CX vƠo ng n x p MOV CX, 292 ; s vòng l p LAP: LOOP LAP POP CX RET 158 ng trình nƠy N i dung ghi đ m s vòng l p đ tr ng h p 292) ph i đ c tính cho th i gian th c thi ch g n b ng 1ms Cách tính giá tr nƠy đ Th i gian th c thi ch ch ng trình Xét chu k c ch a ghi CX (trong ng trình ph i c trình bày ph n d i đơy ng trình b ng t ng th i gian th c thi l nh th c thi t ng l nh c a 8086 ch ng trình DELAY_1MS L nh S chu k th c thi PUSH 11 MOV 17 (ho c tr LOOP ng h p k t thúc vòng l p) POP RET 18 Th i gian th c thi ch ng trình đ c tính nh sau: Tclk *(11+4+8+18+5+(N-1)*17) = 1ms L y t n s xung clock cung c p cho vi x lý lƠ 5MHz, Tclk = 0.2µs T đó, ta tính đ c s vòng l p N g n s là: 292 t o giá tr trì hoãn khác ta có th làm theo hai cách sau: Tính toán đ thay đ i l i giá tr N G i ch ta có th g i ch ng trình trì hoưn 1ms nhi u l n Ví d đ t o th i gian trì hoãn 6ms ng trình trì hoưn 1ms sáu l n Khi đó, th i gian trì hoãn s không xác b ng cách l nh CALL c ng c n m t s chu k th c thi 159 CÂU H I ÔN T PăCH NGă5 S d ng c ng logic m ch gi i mã, thi t k m ch gi i mư đ a ch dùng đ ánh x chip EPROM thành kh i b nh 64KB (8KB x 8) v i đ a ch n m d i t F0000H đ n FFFFFH Gi s bus đ a ch có 20 bit S d ng c ng logic, thi t k m ch gi i mư đ a ch dùng đ ánh x chip nh dung l ng 4KB vào vùng nh có t m đ a ch D000H đ n DFFFH Gi s bus đ a ch có 16 bit V i h th ng nh hình 5.1, vi t ch ng trình g i ký t ‘A’ thông qua c ng n i ti p Quá trình truy n nh n b t đ ng b có thông s nh sau: t c đ 600 baud, s d ng bit ki m tra l i parity l bit d ng Bi t xung ngõ b t o t c đ baud có t n s 9.6 kHz V i h th ng nh hình 5.3 a Xác đ nh t u n đ c ng c a 8255A ho t đ ng ch đ 0, c ng A CU c ng nh p, c ng B CL c ng xu t b Vi t ch ng trình đ đ c giá tr t c ng A CU, xu t c ng B CL V i h th ng nh hình 5.7, s d ng hai kênh c a 8237A đ th c hi n vi c chuy n 100 byte d li u t vùng nh có đ a ch đ u 1000H sang vùng nh có đ a ch đ u 4000H S d ng kênh lƠm kênh ghi vƠ kênh lƠm kênh đ c, đ a ch thay đ i theo chi u gi m d n Nêu m t s l u ý qu n lý vi c quét bàn phím b ng vi x lý Vi t ch trình quét phím cho bàn phím bao g m 16 nút nh n nh hình 5.10 Nêu gi i thu t quét led chung cho led đo n nh ch hình 5.13 Vi t ng trình hi n th s 5678 led đo n Gi s led đo n ghép v i chip m r ng c ng 8255A Ngõ vào c a 7447 đ c ng C, ngõ vƠo u n transistor đ A, B, C c a 8255A có đ a ch l n l hình 5.13 đ c c l y t bit th p c a c l y t bit cao c ng C Các c ng t 60h, 61h, 62h 160 ng TÀI LI U THAM KH O [1] V n Th Minh, K thu t vi x lý, Nhà xu t b n giáo d c, 1997 [2] H Trung M , Vi x lý, Nhà xu t b n HQG Tp.HCM, 2003 [3] Intel Corporation, SDK-86 MCS-86 System Design Kit User’s Guide, Apr 1979 [4] Intel, iAPX 86, 88 User’s Manual, 1981 [5] Intel, 8251A Programmable Communication Interface, Nov 1986 [6] Intel, 8259A Programmable Interrupt Controller, Dec 1988 [7] Intel, 8255A Programmable Peripheral Interface [8] Intel, 8237A High Performance Programmable DMA Controller, Sep 1993 161 ... máy vi tính cá nhơn Ch cg i ng s trình bày t ng quan v h vi x lý nh : l ch s phát tri n c a vi x lý, thành ph n c b n m t h vi x lý, ầ 1.1 H vi x lý M t h vi x lý th ng bao g m: lõi vi x lý k... cho sinh vi n nh ng ki n th c c b n v vi x lý nh : l ch s phát tri n, h th ng bus, ngo i vi, ki n trúc c a vi x lý, t p l nh cách th c xây d ng t p l nh cho vi x lý, ho t đ ng c a vi x lý, cách... IăNịIă Bài gi ng Vi x lý đ U c biên so n dùng làm tài li u h c t p cho sinh vi n b c cao đ ng qui ngành công ngh k thu t Ph m V n ng Bài gi ng bao g m ch i nậ i n t tr ng ih c ng, cung c p cho sinh