1. Trang chủ
  2. » Cao đẳng - Đại học

TÀI LIỆU VI ĐIỀU KHIỂN PIC 8051

166 28 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 166
Dung lượng 1,89 MB

Nội dung

ÀI LIỆU VI ĐIỀU KHIỂN PIC 8051 c¸c bé vi ®iÒu khiÓn vµ c¸c bé xö lý nhóng. Trong môc nµy chóng ta bµn vÒ nhu cÇu ®èi víi c¸c bé vi ®iÒu khiÓn (V§K) vµ so s¸nh chóng víi c¸c bé vi xö lý cïng d¹ng chung nh­ Pentium vµ c¸c bé vi xö lý ´ 86 kh¸c. Chóng ta cïng xem xÐt vai trß cña c¸c bé vi ®iÒu khiÓn trong thÞ tr­êng c¸c s¶n phÈm nhóng. Ngoµi ra, chóng ta cung cÊp mét sè tiªu chuÈn vÒ c¸ch lùa chän mét bé vi ®iÒu khiÓn nh­ thÕ nµo. 1.1.1 Bé vi ®iÒu khiÓn so víi bé vi xö lý cïng dïng chung Sù kh¸c nhau gi÷a mét bé vi ®iÒu khiÓn vµ mét bé vi xö lý lµ g×? Bé vi xö lý ë ®©y lµ c¸c bé vi xö lý c«ng dung chung nh­ hä Intell ´ 86 (8086, 80286, 80386, 80486 vµ Pentium) hoÆc hä Motorola 680 ´ 0(68000, 68010, 68020, 68030, 68040 v.v...). Nh÷ng bé VXL nµy kh«ng cã RAM, ROM vµ kh«ng cã c¸c cæng vµo ra trªn chÝp. Víi lý do ®ã mµ chóng ®­îc gäi chung lµ c¸c bé vi xö lý c«ng dông chung. H×nh 1.1: HÖ thèng vi xö lý ®­îc so s¸nh víi hÖ thèng vi ®iÒu khiÓn. a) HÖ thèng vi xö lý c«ng dông chung b) HÖ thèng vi ®iÒu khiÓn CPU GeneralPurpose Microprocessor RAM ROM Timer Serial COM Port IO Port CPU RAM ROM IO Timer Serial COM Port Data bus (a) GeneralPurpose Microcessor System Address bus (b) Microcontroller CuuDuongThanCong.com https:fb.comtailieudientucntt Mét nhµ thiÕt kÕ hÖ thèng sö dông mét bé vi xö lý c«ng dông chung ch¼ng h¹n nh­ Pentium hay 68040 ph¶i bæ xung thªm RAM , ROM, c¸c cæng vµo ra vµ c¸c bé ®Þnh thêi ngoµi ®Ó lµm cho chóng ho¹t ®éng ®­îc. MÆc dï viÖc bæ xung RAM, ROM vµ c¸c cæng vµo ra bªn ngoµi lµm cho hÖ thèng cång cÒnh vµ ®¾t h¬n, nh­ng chóng cã ­u ®iÓm lµ linh ho¹t ch¼ng h¹n nh­ ng­êi thiÕt kÕ cã thÓ quyÕt ®Þnh vÒ sè l­îng RAM, ROM vµ c¸c cæng vµo ra cÇn thiÕt phï hîp víi bµi to¸n trong tÇm tay cña m×nh. §iÒu nµy kh«ng thÓ cã ®­îc ®èi víi c¸c bé vi ®iÒu khiÓn. Mét bé vi ®iÒu khiÓn cã mét CPU (mét bé vi xö lý) cïng víi mét l­îng cè ®Þnh RAM, ROM, c¸c cæng vµo ra vµ mét bé ®Þnh thêi tÊt c¶ trªn cïng mét chÝp. Hay nãi c¸ch kh¸c lµ bé xö lý, RAM, ROM c¸c cæng vµo ra vµ bé ®Þnh thêi ®Òu ®­îc nhóng víi nhau trªn mét chÝp; do vËy ng­êi thiÕt kÕ kh«ng thÓ bæ xung thªm bé nhí ngoµi, cæng vµo ra hoÆc bé ®Þnh thêi cho nã. Sè l­îng cè ®Þnh cña RAM, ROM trªn chÝp vµ sè c¸c cæng vµo ra trong c¸c bé vi ®iÒu khiÓn lµm cho chóng trë nªn lý t­ëng ®èi víi nhiÒu øng dông mµ trong ®ã gi¸ thµnh vµ kh«ng gian l¹i h¹n chÕ. Trong nhiÒu øng dông, vÝ dô mét ®iÒu khiÓn TV tõ xa th× kh«ng cÇn c«ng suÊt tÝnh to¸n cña bé vi sö lý 486 hoÆc thËm chÝ nh­ 8086. Trong rÊt nhiÒu øng dông th× kh«ng gian nã chiÕm, c«ng suÊt nã tiªu tèn vµ gi¸ thµnh trªn mét ®¬n vÞ lµ nh÷ng c©n nh¾c nghiªm ngÆt h¬n nhiÒu so víi c«ng suÊt tÝnh to¸n. Nh÷ng øng dông th­êng yªu cÇu mét sè thao t¸c vµo ra ®Ó ®äc c¸c tÝn hiÖu vµ t¾t më nh÷ng bit nhÊt ®Þnh. V× lý do nµy mµ mét sè ng­êi gäi c¸c bé xö lý nµy lµ IBP (“IttyBittyProcessor”), (tham kh¶o cuèn “Good things in small packages are Generating Big product opportunities” do Rick Grehan viÕt trªn t¹p BYTE th¸ng 9.1994; WWW. Byte. Com ®Ó biÕt vÒ nh÷ng trao ®æi tuyÖt vêi vÒ c¸c bé vi ®iÒu khiÓn). §iÒu thó vÞ lµ mét sè nhµ s¶n xuÊt c¸c bé vi ®iÒu khiÓn ®· ®i xa h¬n lµ tÝch hîp c¶ mét bé chuyÓn ®æi ADC vµ c¸c ngo¹i vi kh¸c vµo trong bé vi ®iÒu khiÓn. B¶ng 1.1: Mét sè s¶n phÈm ®­îc nhóng sö dông c¸c bé vi ®iÒu khiÓn ThiÕt bÞ néi thÊt gia ®×nh V¨n phßng « t« §å ®iÖn trong nhµ §iÖn tho¹i M¸y tÝnh hµnh tr×nh CuuDuongThanCong.com https:fb.comtailieudientucntt M¸y ®µm tho¹i M¸y ®iÖn tho¹i C¸c hÖ thèng an toµn C¸c bé më cöa gara xe M¸y tr¶ lêi M¸y Fax M¸y tÝnh gia ®×nh Tivi TruyÒn h×nh c¸p VCR M¸y quy camera §iÒu khiÓn tõ xa Trß ch¬i ®iÖn tö §iÖn tho¹i tæ ong C¸c nh¹c cô ®iÖn tö M¸y kh©u §iÒu khiÓn ¸nh s¸ng M¸y nh¾n tin M¸y ch¬i Pootball §å ch¬i C¸c dông cô tËp thÓ h×nh M¸y tÝnh C¸c hÖ thèng an toµn M¸y Fax Lß vi sãng M¸y sao chôp M¸y in lazer M¸y in mµu M¸y nh¾n tin §iÒu khiÓn ®éng c¬ Tói ®Öm khÝ ThiÕt bÞ ABS §o l­êng HÖ thèng b¶o mËt §Ýòu khiÓn truyÒn tin Gi¶i trÝ §iÒu hoµ nhiÖt ®é §iÖn tho¹i tæ ong Më cöa kh«ng cÇn ch×a kho¸ 1.1.2 C¸c bé V§K cho c¸c hÖ thèng nhóng. Trong tµi liÖu vÒ c¸c bé vi xö lý ta th­êng thÊy kh¸i niÖm hÖ thèng nhóng (Embeded system). C¸c bé vi xö lý vµ c¸c bé vi ®iÒu khiÓn ®­îc sö dông réng r·i trong c¸c s¶n phÈm hÖ thèng nhóng. Mét s¶n phÈm nhóng sö dông mét bé vi xö lý (hoÆc mét bé vi ®iÒu khiÓn ®Ó thùc hiÖn mét nhiÖm vô vµ chØ mét mµ th«i. Mét m¸y in lµ mét vÝ dô vÒ mét viÖc nhóng v× bé xö lý bªn trong nã chØ lµm mét viÖc ®ã lµ nhËn d÷ liÖu vµ in nã ra. §iÒu nµy kh¸c víi mét m¸y t×nh PC dùa trªn bé xö lý Pentium (hoÆc mét PC t­¬ng thÝch víi IBM ´ 86 bÊt kú). Mét PC cã thÓ ®­îc sö dông cho mét sè bÊt kú c¸c tr¹m dÞch vô in, bé ®Çu cuèi kiÓm kª nhµ b¨ng, m¸y ch¬i trß ch¬i ®iÖn tö, tr¹m dÞch vô m¹ng hoÆc tr¹m ®Çu cuèi m¹ng Internet. PhÇn mÒm cho c¸c øng dông kh¸c nhau cã thÓ ®­îc n¹p vµ ch¹y. TÊt nhiªn lµ lý do hiÓn nhiªn ®Ó mét PC thùc hiÖn hµng lo¹t c¸c c«ng viÖc lµ nã cã bé CuuDuongThanCong.com https:fb.comtailieudientucntt nhí RAM vµ mét hÖ ®iÒu hµnh n¹p phÇn mÒm øng dông th­êng ®­îc ®èt vµo trong ROM. Mét m¸y tÝnh PC ´ 86 chøa hoÆc ®­îc nèi tíi c¸c s¶n phÈm nhóng kh¸c nhau ch¼ng h¹n nh­ bµn phÝm, m¸yin, Modem, bé ®iÒu khiÓn ®Üa, Card ©m thanh, bé ®iÒu khiÓn CD = ROM. Chuét v.v... Mét néi ngo¹i vi nµy cã mét bé vi ®iÒu khiÓn bªn trong nã ®Ó thùc hiÖn chØ mét c«ng viÖc, vÝ dô bªn trong mçi con chuét cã mét bé vi ®iÒu khiÓn ®Ó thùc thi c«ng viÖc t×m vÞ trÝ chuét vµ göi nã ®Õn PC B¶ng 1.1 liÖt kª mét sè s¶n phÈm nhóng. 4.1.3 C¸c øng dông nhóng cña PC ¥ 86. MÆc dï c¸c bé vi ®iÒu khiÓn lµ sù lùa chän ­a chuéng ®èi víi nhiÒu hÖ thèng nhóng nh­ng cã nhiÒu khi mét bé vi ®iÒu khiÓn kh«ng ®ñ cho c«ng viÖc. V× lý do ®ã mµ nh÷ng n¨m gÇn ®©y nhÝÒu nhµ s¶n xuÊt c¸c bé vi sö lý c«ng dông chung ch¼ng h¹n nh­ Intel, Motorla, AMD (Advanced Micro Devices, Inc...). Vµ Cyric (mµ b©y giê lµ mét bé phËn cña National Senicon ductir, Inc) ®· h­íng tíi bé vi xö lý cho hiÖu suÊt cao cña thÞ tr­êng nhóng. Trong khi Intel, AMD vµ Cyrix ®Èy c¸c bé xö lý ´ 86 cña hä vµo cho c¶ thÞ tr­êng nhóng vµ thÞ tr­êng m¸y tÝnh PC ®Ó b¸n th× Motorola vÉn kiªn ®Þnh gi÷ hä vi xö lý 68000 l¹i chñ yÕu h­íng nã cho c¸c hÖ thèng nhóng hiÖu suÊt cao vµ b©y giê Apple kh«ng cßn dïng 680 ´ trong c¸c m¸y tÝnh Macintosh n÷a. Trong nh÷ng n¨m ®Çu thËp kû 90 cña thÕ kû 20 m¸y tÝnh Apple b¾t ®Çu sö dông c¸c bé vi xö lý Power PC (nh­ 603, 604, 620 v.v...) thay cho 680 ´0 ®èi víi Macintosh. Bévi xö lý Power PC lµ kÕt qu¶ liªn doanh ®Çu t­ cña IBM vµ Motorola vµ nã ®­îc h­íng cho thÞ tr­íng nhóng hiÖu suÊt cao còng nh­ cho c¶ thÞ tr­êng m¸y tÝnh PC. CÇn ph¶i l­u ý r»ng khi mét c«ng ty h­íng mét bé vi xö lý c«ng dông chung cho thÞ tr­êng nhóng nã tèi ­u ho¸ bé xö lý ®­îc sö dông cho c¸c hÖ thèng nhóng. V× lý do ®ã mµ c¸c bé vi xö lý nµy th­êng ®­îc gäi lµ c¸c bé xö lý nhóng hiÖu suÊt cao. Do vËy c¸c kh¸i niÖm c¸c bé vi ®iÒu khiÓn vµ bé xö lý nhóng th­êng ®­îc sö dông thay ®æi nhau. Mét trong nh÷ng nhu cÇu kh¾t khe nhÊt cña hÖ thèng nhóng lµ gi¶m c«ng suÊt tiªu thô vµ kh«ng gian. §iÒu nµy cã thÓ ®¹t ®­îc b»ng c¸ch tÝch hîp nhiÒu chøc n¨ng vµo trong chÝp CPU. TÊt c¶ mäi bé xö lý nhóng dùa trªn ´ 86 vµ 680 ´ 0 ®Òu cã c«ng suÊt tiªu thu thÊp ngoµi ra ®­îc bæ xung mét sè d¹ng cæng vµo ra, cæng COM vµ bé nhí ROM trªn mét chÝp. CuuDuongThanCong.com https:fb.comtailieudientucntt Trong c¸c bé xö lý nhóng hiÖu suÊt cao cã xu h­íng tÝch hîp nhiÒu vµ nhiÒu chøc n¨ng h¬n n÷a trªn chÝp CPU vµ cho phÐp ng­êi thiÕt kÕ quyÕt ®Þnh nh÷ng ®Æc tÝnh nµo hä muèn sö dông. Xu h­íng nµy còng ®ang chiÕm lÜnh thiÕt kÕ hÖ thèng PC. B×nh th­êng khi thiÕt kÕ bo m¹ch chñ cña PC (Motherboard) ta cÇn mét CPU céng mét chÝp set cã chøa c¸c cèng vµo ra, mét bé ®iÒu khiÓn cache, mét bé nhí Flash ROM cã chøa BIOS vµ cuèi cïng lµ bé nhí cache thø cÊp. Nh÷ng thiÕt kÕ míi ®ang khÈn tr­¬ng ®i vµo c«ng nghiÖp s¶n xuÊt hµng lo¹t. VÝ dô Cyrix ®· tuyªn bè r»ng hä ®ang lµm viÖc trªn mét chÝp cã chøa toµn bé mét m¸y tÝnh PC ngo¹i trõ DRAM. Hay nãi c¸ch kh¸c lµ chóng ta x¾p nh×n thÊy mét m¸y tÝnh PC trªn mét chÝp. HiÖn nay do chuÈn ho¸ MS DOS vµ Windows nªn c¸c hÖ thèng nhóng ®ang sö dông c¸c m¸y t×nh PC ´ 86 . Trong nhiÒu tr­êng hîp viÖc sö dông c¸c m¸y tÝnh PC ´ 86 cho c¸c øng dông nhóng hiÖu suÊt cao lµ kh«ng tiÕt kiÖm tiÒn b¹c, nh­ng nã lµm rót ng¾n thêi gian ph¸t triÓn v× cã mét th­ viÖn phÇn mÒm bao la ®· ®­îc viÕt cho nÒn DOS vµ Windows. Thùc tÕ lµ Windows lµ mét nÒn ®­îc sö dông réng r·i vµ dÔ hiÓu cã nghÜa lµ viÖc ph¸t triÓn mét s¶n phÈm nhóng dùa trªn Windows lµm gi¶m gi¸ thµnh vµ rót ng¾n thêi gian ph¸t triÓn ®¸ng kÓ. 1.1.4 Lùa chän mét bé vi ®iÒu khiÓn. Cã 4 bé vi ®iÒu khiÓn 8 bit chÝnh. §ã lµ 6811 cña Motorola, 8051 cña Intel z8 cña Xilog vµ Pic 16 ´ cña Microchip Technology. Mçi mét kiÓu lo¹i trªn ®©y ®Òu cã mét tËp lÖnh vµ thanh ghi riªng duy nhÊt, nÕu chóng ®Òu kh«ng t­¬ng thÝch lÉn nhau. Còng cã nh÷ng bé vi ®iÒu khiÓn 16 bit vµ 32 bit ®­îc s¶n xuÊt bëi c¸c h·ng s¶n xuÊt chÝp kh¸c nhau. Víi tÊt c¶ nh÷ng bé vi ®iÒu khiÓn kh¸c nhau nh­ thÕ nµy th× lÊy g× lµm tiªu chuÈn lùa chän mµ c¸c nhµ thiÕt kÕ ph¶i c©n nh¾c? Cã ba tiªu chuÈn ®Ó lùa chän c¸c bé vi ®iÒu khiÓn lµ: 1) §¸p øng nhu cÇu tÝnh to¸n cña bµi to¸n mét c¸ch hiÖu qu¶ vÒ mÆt gi¸ thµnh vµ ®Çy ®ñ chøc n¨ng cã thÓ nh×n thÊy ®­îc (kh¶ dÜ). 2) Cã s½n c¸c c«ng cô ph¸t triÓn phÇn mÒm ch¼ng h¹n nh­ c¸c tr×nh biªn dÞch, tr×nh hîp ng÷ vµ gì rèi. 3) Nguån c¸c bé vi ®iÒu khiÓn cã s½n nhiÒu vµ tin cËy. 1.1.5 C¸c tݪu chuÈn lùa chän mét bé vi ®iÒu khiÓn.

Chương I Các vi điều khiển 8051 1.1 vi điều khiển xử lý nhúng Trong mục bàn nhu cầu vi điều khiển (VĐK) so sánh chúng với vi xử lý dạng chung Pentium vi xử lý 86 khác Chúng ta xem xét vai trò vi điều khiển thị trường sản phẩm nhúng Ngoài ra, cung cấp số tiêu chuẩn cách lựa chọn vi điều khiển 1.1.1 Bộ vi điều khiển so với bé vi xư lý cïng dïng chung Sù kh¸c vi điều khiển vi xử lý gì? Bộ vi xử lý vi xử lý công dung chung hä Intell ´ 86 (8086, 80286, 80386, 80486 vµ Pentium) hc hä Motorola 680 ´ 0(68000, 68010, 68020, 68030, 68040 v.v ) Những VXL RAM, ROM cổng vào chíp Với lý mà chúng gọi chung bé vi xư lý c«ng dơng chung Data bus CPU GeneralPurpose Microprocessor RAM ROM I/O Port Timer CPU RAM ROM I/O Timer Serial COM Port Serial COM Port Address bus (a) General-Purpose Microcessor System (b) Microcontroller H×nh 1.1: HƯ thèng vi xử lý so sánh với hệ thống vi ®iỊu khiĨn a) HƯ thèng vi xư lý c«ng dơng chung b) HƯ thèng vi ®iỊu khiĨn CuuDuongThanCong.com https://fb.com/tailieudientucntt Mét nhµ thiÕt kÕ hƯ thèng sư dơng mét bé vi xử lý công dụng chung chẳng hạn Pentium hay 68040 phải bổ xung thêm RAM , ROM, cổng vào định thời để làm cho chúng hoạt động Mặc dù việc bổ xung RAM, ROM cổng vào bên làm cho hệ thống cồng cềnh đắt hơn, chúng có ưu điểm linh hoạt chẳng hạn người thiết kế định số lượng RAM, ROM cổng vào cần thiết phù hợp với toán tầm tay Điều có vi điều khiĨn Mét bé vi ®iỊu khiĨn cã mét CPU (mét vi xử lý) với lượng cố định RAM, ROM, cổng vào định thời tất chíp Hay nói cách khác xử lý, RAM, ROM cổng vào định thời nhúng với chíp; người thiết kế bổ xung thêm nhớ ngoài, cổng vào định thời cho Số lượng cố định RAM, ROM chíp số cổng vào - vi điều khiển làm cho chúng trở nên lý tưởng nhiều ứng dụng mà giá thành không gian lại hạn chế Trong nhiỊu øng dơng, vÝ dơ mét ®iỊu khiĨn TV từ xa không cần công suất tính toán bé vi sư lý 486 hc thËm chÝ nh­ 8086 Trong nhiều ứng dụng không gian chiếm, công suất tiêu tốn giá thành đơn vị cân nhắc nghiêm ngặt nhiều so với công suất tính toán Những ứng dụng thường yêu cầu số thao tác vào - để đọc tín hiệu tắt - mở bit định Vì lý mà số người gọi xử lý IBP (Itty-Bitty-Processor), (tham kh¶o cuèn “Good things in small packages are Generating Big product opportunities Rick Grehan viết tạp BYTE tháng 9.1994; WWW Byte Com để biết trao đổi tuyệt vời vi điều khiển) Điều thú vị số nhà sản xuất vi điều khiển đà xa tích hợp chuyển đổi ADC ngoại vi khác vào vi điều khiển Bảng 1.1: Một số sản phẩm nhúng sử dụng vi điều khiển Thiết bị nội thất gia đình Đồ điện nhà CuuDuongThanCong.com Văn phòng ô tô Điện thoại Máy tính hành trình https://fb.com/tailieudientucntt Máy đàm thoại Máy điện thoại Các hệ thống an toàn Các mở cửa ga-ra xe Máy trả lời Máy Fax Máy tính gia đình Tivi Truyền hình cáp VCR Máy quy camera Điều khiển từ xa Trò chơi điện tử Điện thoại tổ ong Các nhạc cụ điện tử Máy khâu Điều khiển ánh sáng Máy nhắn tin Máy chơi Pootball Đồ chơi Các dụng cụ tập thể hình Điều khiển động Máy tính Các hệ thống an Túi đệm khí Thiết bị ABS toàn Đo lường Máy Fax Hệ thống bảo mật Lò vi sóng Đíũu khiển truyền Máy chụp tin Máy in lazer Giải trí Máy in màu Điều hoà nhiệt độ Máy nhắn tin Điện thoại tổ ong Mở cửa không cần chìa khoá 1.1.2 Các VĐK cho hệ thống nhúng Trong tài liệu vi xư lý ta th­êng thÊy kh¸i niƯm hƯ thèng nhóng (Embeded system) Các vi xử lý vi điều khiển sử dụng rộng rÃi s¶n phÈm hƯ thèng nhóng Mét s¶n phÈm nhóng sư dơng mét bé vi xư lý (hc mét bé vi ®iỊu khiĨn ®Ĩ thùc hiƯn mét nhiƯm vơ vµ chØ mà Một máy in ví dụ việc nhúng xử lý bên làm việc nhận liệu in Điều khác với máy tình PC dựa xử lý Pentium (hoặc PC t­¬ng thÝch víi IBM ´ 86 bÊt kú) Mét PC sử dụng cho số trạm dịch vụ in, đầu cuối kiểm kê nhà băng, máy chơi trò chơi điện tử, trạm dịch vụ mạng trạm đầu cuối mạng Internet Phần mềm cho ứng dụng khác nạp chạy Tất nhiên lý hiển nhiên để PC thực hàng loạt công việc lµ nã cã bé CuuDuongThanCong.com https://fb.com/tailieudientucntt nhí RAM vµ mét hệ điều hành nạp phần mềm ứng dụng thường đốt vào ROM Một máy tính PC 86 chứa nối tới sản phẩm nhúng khác chẳng hạn bàn phím, máyin, Modem, điều khiển đĩa, Card âm thanh, điều khiển CD = ROM Chuột v.v Một nội ngoại vi có vi điều khiển bên để thực công việc, ví dụ bên cht cã mét bé vi ®iỊu khiĨn ®Ĩ thùc thi công việc tìm vị trí chuột gửi đến PC Bảng 1.1 liệt kê số sản phẩm nhóng 4.1.3 C¸c øng dơng nhóng cđa PC ´ 86 Mặc dù vi điều khiển lựa chän ­a chng ®èi víi nhiỊu hƯ thèng nhóng nh­ng có nhiều vi điều khiển không đủ cho công việc Vì lý mà năm gần nhíều nhà sản xuất vi sử lý công dụng chung chẳng hạn Intel, Motorla, AMD (Advanced Micro Devices, Inc ) Và Cyric (mà phận National Senicon ductir, Inc) đà h­íng tíi bé vi xư lý cho hiƯu st cao thị trường nhúng Trong Intel, AMD Cyrix đẩy xử lý 86 họ vào cho thị trường nhúng thị trường máy tính PC để bán Motorola kiên định giữ họ vi xư lý 68000 l¹i chđ u h­íng nã cho hệ thống nhúng hiệu suất cao Apple không dùng 680 máy tính Macintosh Trong năm đầu thập kỷ 90 kỷ 20 máy tính Apple bắt đầu sử dụng c¸c bé vi xư lý Power PC (nh­ 603, 604, 620 v.v ) thay cho 680 ´0 ®èi víi Macintosh Bộvi xử lý Power PC kết liên doanh đầu tư IBM Motorola hướng cho thÞ tr­íng nhóng hiƯu st cao cịng nh­ cho thị trường máy tính PC Cần phải lưu ý r»ng mét c«ng ty h­íng mét bé vi xư lý công dụng chung cho thị trường nhúng tối ưu hoá xử lý sử dụng cho hệ thống nhúng Vì lý mà vi xử lý thường gọi xư lý nhóng hiƯu st cao Do vËy c¸c kh¸i niệm vi điều khiển xử lý nhúng thường sử dụng thay đổi Một nhu cầu khắt khe hệ thống nhúng giảm công suất tiêu thụ không gian Điều đạt cách tích hợp nhiều chức vào chíp CPU Tất xử lý nhúng dựa 86 680 có công suất tiêu thu thấp bổ xung số dạng cổng vào - ra, cổng COM nhớ ROM chíp CuuDuongThanCong.com https://fb.com/tailieudientucntt Trong c¸c bé xư lý nhóng hiƯu st cao có xu hướng tích hợp nhiều nhiều chức chíp CPU cho phép người thiết kế định đặc tính họ muốn sử dụng Xu hướng chiếm lĩnh thiết kế hệ thống PC Bình thường thiết kế bo mạch chđ cđa PC (Motherboard) ta cÇn mét CPU céng mét chíp - set có chứa cống vào - ra, mét bé ®iỊu khiĨn cache, mét bé nhí Flash ROM cã chøa BIOS vµ ci cïng lµ bé nhí cache thứ cấp Những thiết kế khẩn trương vào công nghiệp sản xuất hàng loạt Ví dụ Cyrix đà tuyên bố họ làm việc chíp có chứa toàn máy tính PC ngoại trừ DRAM Hay nói cách khác xắp nhìn thấy máy tính PC chíp Hiện chuẩn hoá MS - DOS Windows nên hệ thống nhúng sử dụng máy tình PC ´ 86 Trong nhiỊu tr­êng hỵp viƯc sư dơng c¸c m¸y tÝnh PC ´ 86 cho c¸c øng dụng nhúng hiệu suất cao không tiết kiệm tiền bạc, làm rút ngắn thời gian phát triển có thư viện phần mềm bao la đà viết cho DOS Windows Thực tế Windows sử dụng rộng rÃi dễ hiểu có nghĩa việc phát triển sản phẩm nhúng dựa Windows làm giảm giá thành rút ngắn thời gian phát triển đáng kể 1.1.4 Lựa chän mét bé vi ®iỊu khiĨn Cã bé vi điều khiển bit Đó 6811 Motorola, 8051 cđa Intel z8 cđa Xilog vµ Pic 16 ´ Microchip Technology Mỗi kiểu loại có tập lệnh ghi riêng nhất, chúng không tương thích lẫn Cũng có vi điều khiển 16 bit 32 bit sản xuất hÃng sản xuất chíp khác Với tất vi điều khiển khác lấy làm tiêu chuẩn lựa chọn mà nhà thiết kế phải cân nhắc? Có ba tiêu chuẩn để lựa chọn vi điều khiển là: 1) Đáp ứng nhu cầu tính toán toán cách hiệu mặt giá thành đầy đủ chức nhìn thấy (khả dĩ) 2) Có sẵn công cụ phát triển phần mềm chẳng hạn trình biên dịch, trình hợp ngữ gỡ rối 3) Nguồn vi điều khiển có sẵn nhiều tin cậy 1.1.5 Các tíêu chuẩn lựa chọn vi điều khiển CuuDuongThanCong.com https://fb.com/tailieudientucntt Tiêu chuẩn đầu tiênvà trước hết tronglựa chọn vi điều khiển phải đáp ứng nhu cầu toán mặt công suất tính toán giá thành hiệu Trong phân tích nhu cầu dự án dựa vi điều khiển trước hết phải biết vi điều khiển bit, 16 bit hay 32 bit đáp ứng tốt nhu cầu tính toán toán mộ tcách hiệu nhất? Những tiêu chuẩn đưa để cân nhắc là: a) Tốc độ: Tốc độ lớn mà vi điều khiển hỗ trợ b) Kiểu đóng vỏ: Đó kíểu 40 chân DIP hay QFP kiểu đóng vỏ khác (DIP -đóng vỏ theo hàng chân QFP đóng vỏ vuông dẹt)? Đây điều quan trọng yêu cầu không gian, kiểu lắp ráp tạo mẫu thử cho sản phẩm cuối c) Công suất tiêu thụ: Điều đặc biệt khắt khe sản phẩm dùng pin, ắc quy d) Dung lượng nhớ RAM ROM chíp e) Số chân vào - định thời chíp f) Khả dễ dàng nâng cấp cho hiệu suất cao giảm công suất tiêu thụ g) Giá thành cho đơn vị: Điều quan trọng định giá thành cuối sản phẩm mà vi điều khiển sử dụng Ví dụ có vi điều khiển giá 50 cent đơn vị mua 100.000 mét lóc 2) Tiªu chn thø hai lùa chän vi điều khiển khả phát triển sản phẩm xung quanh dễ dàng nào? Các câu nhắc chủ yếu bao gồm khả có sẵn trình lượng ngữ, gỡ rối, trình biên dịch ngôn ngữ C hiệu mà nguồn, trình mô hỗ trợ kỹ thuật khả sử dụng nhà môi trường Trong nhiều trường hợp hỗ trợ nhà cung cấp thứ ba (nghĩa nhà cung cấp khác hÃng sản xuất chíp) cho chíp tốt như, không tốt hơn, hỗ trợ từ nhà sản xuất chíp 3) Tiªu chuÈn thø ba lùa chän mét bé vi điều khiển khả sẵn sàng đáp ứng số lượng tương lai Đối với số nhà thiết kế điều chí quan hai tiêu chuẩn Hiện nay, vi điều khiển bit dấu đầu, họ 8051 có số lương lớn nhà cung cấp đa dạng (nhiều nguồn) Nhà cung cấp có nghĩa nhà sản xuất bên cạnh nhà sáng chế vi điều khiển Trong trường hợp 8051 nhà sáng chế CuuDuongThanCong.com https://fb.com/tailieudientucntt Intel, hiƯn cã rÊt nhiỊu h·ng s¶n xt nã (cịng trước đà sản xuất) Các hÃng bao gåm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra vµ Dallas, Semicndictior Bảng 1.2: Địa số hÃng sản xuất thành viên họ 8051 HÃng Intel Antel Plips/ Signetis Siemens Dallas Semiconductor Địa Website www.intel.com/design/mcs51 www.atmel.com www.semiconductors.philips.co m www.sci.siemens.com www.dalsemi.com Cịng nªn l­u ý r»ng Motorola, Zilog Mierochip Technology đà dành lượng tài nguyên lớn để đảm bảo khả sẵn sàng thời gian phạm vi rộng cho sản phẩm họ từ sản phẩm họ vào sản xuất ổn định, hoàn thiện trở thành nguồn Trong năm gần họ đà bắt đầu bán tế bào thư viện Asic vi ®iỊu khiĨn 1.2 Tỉng quan vỊ hä 8051 Trong mơc xem xét số thành viên khác họ vi điều khiển 8051 đặc điểm bên chúng Đồng thời ta điểm qua số nhà sản xuất khác sản phẩm họ có thị trường 1.2.1 Tóm tắt lịch sử 8051 Vào năm 1981 HÃng Intel giới thiệu số vi điều khiển gọi 8051 Bộ vi điều khiển có 128 byte RAM, 4K byte ROM chíp, hai định thời, cổng nối tiếp cổng (đều rộng bit) vào tất đặt chíp Lúc coi hệ thống chíp 8051 xử lý bit cã nghÜa lµ CPU chØ cã thĨ lµm viƯc víi bit liệu thời điểm Dữ liệu lớn bit chia thành liƯu bit ®Ĩ cho xư lý 8051 cã tÊt cổng vào - I/O cổng rộng bit (xem hình 1.2) Mặc dù 8051 có ROM chíp cực đại 64 K byte, nhà sản xuất lúc đà cho xuất xưởng với 4K byte ROM chíp Điều bàn chi tiết sau CuuDuongThanCong.com https://fb.com/tailieudientucntt 8051 đà trở nên phổ biến sau Intel cho phép nhà sản xuất khác sản xuất bán dạng biến 8051 mà họ thích với điều kiện họ phải để mà lại tương thích với 8051 Điều dẫn đến đời nhiều phiên 8051 với tốc độ khác dung lượng ROM chíp khác bán nửa nhà sản xuất Điều quan trọng có nhiều biến thể khác 8051 tốc độ dung lương nhớ ROM chíp, tất chúng tương thích với 8051 ban đầu lệnh Điều có nghĩa ta viết chương trình cho phiên chạy với phiên khác mà không phân biệt từ hÃng sản xuất Bảng 1.3: Các đặc tính 8051 Đặc tính ROM chíp RAM Bộ định thời Các chân vào - Cổng nối tiếp Nguồn ngắt Số lượng 4K byte 128 byte 32 1.2.2 Bé vÝ ®iỊu khiển 8051 Bộ vi điều khiển 8051 thành viên họ 8051 HÃng Intel ký hiệu MCS51 Bảng 3.1 trình bày đặc tính cña 8051 ETC INTERRUPT CONTROL ON - CHIP RAM TIMER TIMER CPU OSC CuuDuongThanCong.com BUS CONTROL I/O PORTS SERIAL PORT https://fb.com/tailieudientucntt COUNTER INPUTS EXTERNAL INTERRUPTS H×nh 1.2: Bố trí bên sơ đồ khối 8051 1.2.3 thành viên khác họ 8051 Có hai vi điều khiển thành viên khác họ 8051 8052 8031 a- Bộ vi điều khiển 8052: Bộ vi điều khiển 8052 thành viên khác họ 8051, 8052 có tất đặc tính chuẩn 8051 có thêm 128 byte RAM định thời Hay nói cách khác 8052 có 256 byte RAM định thêi Nã cịng cã 8K byte ROM Trªn chÝp thay 4K byte 8051 Xem bảng 1.4 Bảng1.4: so sánh đặc tính thành viên họ 8051 Đặc tính ROM chíp RAM Bộ định thời Chân vào - Cổng nối tiếp Nguồn ngắt 8051 4K byte 8052 8K byte 128 byte 32 256 byte 32 8031 OK 128 byte 32 Như nhìn thấy từ bảng 1.4 8051 tập 8052 Do tất chương trình viết cho 8051 chạy 8052 điều ngược lại không b- Bộ vi điều khiển 8031: Một thành viên khác 8051 chíp 8031 Chíp thường coi 8051 ROM chíp có OK CuuDuongThanCong.com https://fb.com/tailieudientucntt byte ROM chíp Để sử dụng chíp ta phải bổ xung ROM cho ROM phải chứa chương trình mà 8031 nạp thực So với 8051 mà chương trình chứa ROM chíp bị giới hạn 4K byte, ROM chứa chương trinh gắn vào 8031 lớn đến 64K byte Khi bổ xung cổng, lại cổng để thao tác Để giải vấn đề ta có thĨ bỉ xung cỉng vµo - cho 8031 Phèi phÐp 8031 víi bé nhí vµ cỉng vµo - chẳng hạn với chíp 8255 trình bày chương 14 Ngoài có phiên khác tốc độ 8031 từ hÃng sản xuất khác 1.2.4 Các vi điều khiển 8051 từ hÃng khác Mặc dù 8051 thành viên phỉi biÕn nhÊt cđa hä 8051 nh­ng chóng ta sÏ thấy kho linh kiện Đó 8051 có nhiều dạng kiểu nhớ khác UV - PROM, Flash NV RAM mà chúng có số đăng ký linh kiện khác Việc bàn luận kiểu dạng nhớ ROM khác trình bày chương 14 Phiên UV-PROM 8051 8751 Phiên Flash ROM bán nhiều hÃng khác chẳng hạn Atmel corp với tên gọi AT89C51 phiên NV-RAM 8051 Dalas Semi Conductor cung cấp gọi DS5000 Ngoài có phiên OTP (khả trình lần) 8051 sản xuất nhiỊu h·ng a- Bé vi ®iỊu khiĨn 8751: ChÝp 8751 có 4K byte nhớ UV-EPROM chíp Để sử dụng chíp để phát triển yêu cầu truy cập đến đốt PROM xoá UV- EPROM để xoá nội dung nhớ UVEPROM bên 8751 trước ta lập trình lại Do thực tế ROM chíp 8751 UV-EPROM nên cần phải 20 phút để xoá 8751 trước lập trình trở lại Điều đà dẫn đến nhiều nhà sản xuất giới thiệu phiên Flash Rom UV-RAM 8051 Ngoài có nhiều phiên với tốc độ khác 8751 từ nhiều hÃng khác b- Bộ vi điều khiển AT8951 tõ Atmel Corporation ChÝp 8051 phỉ biÕn nµy cã ROM chíp dạng nhớ Flash Điều lý tưởng phát triển nhanh nhớ Flash xoá vài giây tương quan so với 20 phút mà 8751 yêu cầu Vì lý mà AT89C51 để phát triển hệ thống dựa vi điều khiển yêu cầu đốt ROM mà CuuDuongThanCong.com https://fb.com/tailieudientucntt Hình 15.2: Sơ đồ khối 8255 15.1.1.2 Các chân PB0 - PB7 (cỉng B) C¶ bit cđa cỉng B lập trình bit đầu vào bit đầu bit hai chiều vào/ 15.1.1.3 Các chân PC0 - PC7 (cỉng C) TÊt c¶ bit cđa cỉng C (PC0 - PC7) lập trình bit đầu vào bit đầu bit chia làm hai phần: Các bit cao (PC4 - PC7) CU bit thấp (PC0 - PC3) CL Mỗi phần dùng làm đầu vào làm đầu Ngoµi tõng bit cđa cỉng C tõ PC0 PC7 lập trình riêng rẽ 15.1.1.4 Các chân RD WR Đây hai tín hiệu ®iỊu khiĨn tÝch cùc møc thÊp tíi 8255 ®­ỵc nèi tới chân liệu RD WR từ 8031/51 nối tới chân đầu vào 15.1.1.5 Các chân liệu D0 - D7 Các chân liệu D0 - D7 8255 nối tới chân liệu vi điều khiển phép gửi liệu qua lại vi điều khiển chíp 8255 15.1.1.6 Chân RESET Đây đầu vào tín hiệu tích cực mức cao tới 8255 dùng để xoá ghi điều khiển Khi chân RESET kích hoạt tất cổng khởi tạo lại cổng vào Trong nhiều thiết kế chân nối tới đầu RESET bus hệ thống nối tới đất để không kích hoạt Cũng tất chân đầu vào IC để hở 15.1.1.7 Các chân A0, A1 CS Trong CS chọn toàn chíp A0 A1 lại chọn cổng riêng biệt Các chân dùng để truy cập cổng A, B, C ghi điều khiển theo bảng 15.1 Lưu ý CS tÝch cùc møc thÊp 15.1.2 Chän chÕ ®é cđa 8255 Trong cổng A, B C dùng để nhập xuất liệu ghi điều khiển phải lập trình để chọn chế độ làm việc cổng Các cổng 8255 lập trình theo chế độ Chế độ (Mode0): Đây chế độ vào/ đơn giản chế độ cổng A, B CL CU lập trình đầu vào đầu Trong chế độ tất bit đầu vào đầu Hay nói cách khác điều khiển theo bit riêng rẽ ta ®· thÊy ë c¸c cỉng P0 - P3 cđa 8051 Vì đa phần ứng dụng liên quan đến 8255 sử dụng chế độ vào/ đơn giản nên ta tập chung sâu vào chế độ Chế độ (Mode1): Trong chế độ cổng A B dùng cổng đầu vào đầu với khả bắt tay Tín hiệu bắt tay cấp bit cổng C (sẽ trình bày mơc 15.3) ChÕ ®é (Mode2): Trong chÕ ®é cổng A dùng cổng vào/ hai chiều với khả bắt tay tín hiệu bắt tay cấp bit cổng C Cổng B dùng chế độ vào/ đơn giản chế độ có bắt tay Mode1 Chế độ không trình bày tài liệu Chế độ BSR: Đây chế độ thiết lập/ xoá bit (Bit Set/ Reset) chế độ có bit riêng rẽ cổng C lập trình (sẽ trình bày mục 15.3) Bảng 15.1: Chọn cổng 8255 CuuDuongThanCong.com https://fb.com/tailieudientucntt CS A1 A0 Chän cæng 0 0 0 1 x 1 X Cæng A Cæng B Cæng C Thanh ghi điều khiển 8255 không chọn Group A D7 D6 D5 Group A D4 D3 Mode Selection 00 = Mode 01 = Mode 1x = Mode2 D1 Mode Selcction = Mode = Mode Pont A = Input = Output = I/O Mode = BSR Mode D2 Port C (Upper PC7 - PCA) = Input = Output D0 Port (Lowe PC3 - PCC) = Input = Output Port B = Input = Output H×nh 15.3: Định dạng từ điều khiển 8255 (chế độ vào/ ra) 15.1.3 Lập trình chế độ vào/ đơn giản HÃng Intel gọi chế độ chế độ vào/ sở Một thuật ngữ dùng chung vào/ đơn giản Trong chế độ cổng A, B, C lập trình cổng đầu vào cổng đầu Cần lưu ý chế độ cổng đà cho vừa làm đầu vào lại vừa làm đầu lúc Ví dụ 15.1: HÃy tìm từ điều khiển 8255 cho cấu hình sau: Tất cổng A, B C cổng đầu (chế độ 0) PA đầu vào, PB đầu ra, PCL đầu vào PCH đầu Lời giải: Từ hình 15.3 ta tìm được: a) 1000 0000 = 80H; b) 1001 000 = 90H 15.1.4 Nèi ghÐp 8031/51 víi 8255 Chíp 8255 lập trình bốn chế độ vừa trình bày cách gửi byte (hÃng Intel gọi từ điều khiển) tới ghi điều khiển 8255 Trước hết phải tìm địa cổng gán cho cổng A, B, C ghi điều khiển Đây gọi ánh xạ cổng vào/ (mapping) Như nhìn thấy từ hình 15.4 8255 nèi tíi mét 8031/51 nh­ thÕ nã lµ bé nhí RAM Để việc sử dụng tín hiệu RD WR Phương pháp nối chíp vào/ nhớ ánh xạ vào không gian nhớ Hay nói cách khác, ta sử dụng không gian nhớ để truy cập thiết bị vào/ Vì ly??? mà ta dùng lệnh MOVX để truy cập RAM ROM Đối với 8255 nối tới 8031/51 ta phải dùng lệnh MOVX để truyền thông với Điều thể ví dụ 15.2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ 15.2: Đối với hình 15.4: a) HÃy tìm địa vào/ gán cho cổng A, B, C ghi điều khiển b) HÃy lập trình 8255 cho cổng A, B C thành cổng đầu c) Viết chương trình để gửi 55H AAH đến cổng liên tục Lời giải: a) Địa së dµnh cho 8255 nh­ sau: A1 x A1 A1 x A1 x A1 x A1 x A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 x x x x x x x X 0 =4000HPA x x x x x x x x x x x x X =4000HPB x x x x x x x x x x x x X =4000HPC x x x x x x x x x x x x X 1 =4000HCR b) Byte (tõ) ®iỊu khiển cho tất cổng đầu 80H tính ví dụ 15.1 c) MOV MOV MOVX MOV MOV MOVX INC MOVX INC MOVX CPL ACALL SJMP AGAIN: A, #80H DPTR, # 4003H @DPTR, A A, # 55H DPTR, # 4000H @DPTR, A DPTR @DPTR, A DPTR @DPTR, A A DELAY AGAIN 8051 ; Tõ điển khiển ; Nạp địa cổng ghi ®iỊu khiĨn ; Xt tõ ®iĨn khiĨn ; G¸n A = 55 ; Địa cổng PA ; Lấy bit cổng PA ; Địa cổng PB ; Lấy bít cổng PB ; Địa cổng PC ; LÊy c¸c bÝt cỉng PC ; LÊy c¸c bÝt ghi A ; Chê ; TiÕp tôc RD WR P3.7 P3.6 A1 CS WR RD P2.7 ALE P0.7 P0.0 AD7 AD0 8255 G DQ 74LS373 OC A1 A1 A0 A0 D7 D7 D0 H×nh 15.4: Nèi ghÐp 8051 víi 8255 cho vÝ dô 15.2 CuuDuongThanCong.com https://fb.com/tailieudientucntt PA PB PC D0 Ví dụ 15.3: Đối với hình 15.5: a) Tìm địa cổng vào gán cho cổng A, B, C thanhg ghi điều khiển b) Tìm byte điều khiển PA đầu vào, PB đầu ra, PC đầu c) Viết chương trình để nhận liệu từ PA gửi đến cổng B cổng C Lời giải: a) Giả sử tất các bit không dùng đến địa cổng sở cho 8255 1000H Do vËy ta cã: 1000H lµ PA; 1001H lµ PB; 1002H PC 1003H ghi điều khiển b) Từ điều khiển cho trường hợp 10010000 hay 90H c) MOV MOV MOVX MOV MOVX INC MOVX INC MOVX A, #90H ; PA đầu vào, PB đầu ra, PC đầu DPTR, #1003H ; Nạp địa cổng ghi điều khiển @DPTR, A ; Xt tõ ®iỊu khiĨn DPTR, #1000H ; Địa PA A, @DPTR ; Nhận liệu từ PA DPTR ; Địa PB @DPTR, A ; Gửi liệu PB DPTR ; Địa PC @DPTR, A ; Gưi d÷ liƯu PC 8051 RD WR P3.7 P3.6 A15 P2.7 A12 G ALE P0.7 P0.0 WR RD CS AD7 AD0 8255 A1 D Q 74LS373 OC A0 A1 A0 D7 PA PB PC D0 RE D7 D0 H×nh 15.5: Nèi ghÐp 8051 tíi 8255 cho vÝ dụ 15.3 Đối với ví dụ 15.3 ta nên dùng lệnh EQU cho địa cổng A, B, C ghi điều khiển CNTPORT sau: APORT EQU BPORT EQU CPORT EQU CNTPORT 1000H 1001H 1002H EQU 1003H MOV MOV A, #90H DPTR, #CNTPORT CuuDuongThanCong.com ; PA đầu vào, PB đầu ra, PC đầu ; Nạp địa cổng ghi điều khiĨn https://fb.com/tailieudientucntt MOVX @DPTR, A ; Xt tõ ®iỊu khiĨn MOV DPTR, #CNTPORT ; Địa PA MOVX DPTR, APORT ; Nhận liệu PA INC A, @DPTR ; Địa chØ PB MOVX DPTR ; Gưi d÷ liƯu PB INC DPTR ; Địa PC MOVX DPTR, A ; Gửi liệu PC viết lại sau: CONTRBYT EQU 90H Xác định PA đầu vào, PB PC đầu BAS8255P EQU 1000H ; Địa chØ c¬ së cđa 8255 MOV MOV MOVX MOV A, #CONTRBYT DPTR, #BAS8255P+3 @DPTR, A DPTR, #BASS8255P ; N¹p ®Þa chØ cỉng C ; Xt tõ ®iỊu khiĨn ; §Þa chØ cỉng A §Ĩ ý vÝ dơ 15.2 15.3 ta đà sử dụng ghi DPTR địa sở gán cho 8255 16 bit Nếu địa sở dành cho 8255 bit, ta cã thĨ sư dơng c¸c lƯnh “MOVX A, @R0 MOVX @R0, A R0 (hoặc R1) giữ địa cổng bit cổng Xem ví dơ 15.4, chó ý r»ng vÝ dơ 15.4 ta sử dụng cổng lôgíc đơn giản để giải mà địa chỉa cho 8255 Đối với hệ thống có nhiều 8255 ta sử dụng 74LS138 để giải mà trình bày ví dụ 15.5 15.1.5 Các bí danh địa (Addren Alias) Trong ví dụ 15.4 15.4 ta giải mà bít địa chØ A0 - A7, nhiªn vÝ dơ 15.3 15.2 ta đà giải mà phần địa chØ cao cđa A8 - A15 ViƯc gi¶i m· tõng phần dẫn đến gọi bí danh địa (Address Aliases) Hay nói cách khác, cổng vật lý giống có địa khác nhau, cổng mà biết với tên khác Trong ví dụ 15.2 15.3 ta thay đổi tốt x thành tổ hợp số khác thành địa khác nhau, song thực chất chúng tham chiếu đến cổng vật lý Trong tài liệu thuyết minh phần cứng cần phải bảo đảm ghi đầy đủ bí danh địa chỉa có cho người dùng biết địa có sẵn để họ mở réng hƯ thèng VÝ dơ 15.4: Cho h×nh 15.6: a) HÃy tìm địa cổng vào/ gán cho cổng A, B, C ghi điều khiển b) Tìm từ điều khiển cho trường hợp PA đầu ra, PB đầu vào, PC - PC3 đầu vào CP4 - CP7 đầu c) Viết chương trình để nhận liệu từ PB gửi PA Ngoài ra, liệu từ PC1 gửi đến CPU Lời giải: a) Các địa cổng tìm thấy sau: BB CS A1 A0 Địa 0010 0010 0010 0010 00 00 00 00 0 1 1 20H 21H 22H 23H Cæng Cæng A Cæng B Cæng C Thanh ghi điều khiển b) Từ điều khiển 10000011 hay 83H CuuDuongThanCong.com https://fb.com/tailieudientucntt c) CONTRBYT APORT BPORT CPORT CNTPORT EQU EQU EQU EQU EQU MOV MOV MOV MOVX MOV MOVX DEC MOVX MOV MOVX ANL SWAP MOVX 83H 20H 21H 22H 23H ; PA đầu ra, PB,PCL đầu vào A, #CONTRBYT A, #CONTRBYT R0, #CNTPORT @R0, A R0, #BPORT A, @R0 R0 @R0, A R0, #CPORT A, @R0 A, #0FH A @R0, A 8051 ; PA, PCU đầu ra, PB PCL đầu vào ; Nạp địa cổng ghi điều khiển ; Xuất từ điều khiển ; Nạp địa PB ; Đọc PB ; Chỉ đến PA (20H) ; Gửi đến PA ; Nạp địa PC ; Đọc PCL ; Che phần cao ; Trao đổi phần cao thấp ; Gửi đến PCU RD WR P3.7 P3.6 A7 WR RD CS ALE P0.7 P0.0 PA A2 8255 G AD7 A1 D Q A1 A0 D7 74LS373 AD0 A0 OC PB PCL PCU D0 RES D7 D0 H×nh 15.6: Nèi ghÐp 8051 víi 8255 cho vÝ dơ 15.4 Ví dụ 15.5: HÃy tìm địa sở cho 8255 hình 15.7 Lời giải: GA G 2B G 2A C B A A7 A6 A5 A4 A3 A2 CuuDuongThanCong.com Địa A1 A0 https://fb.com/tailieudientucntt 88H 74LS138 A2 A4 A B C A5 G 2A A6 G 2B A7 G1 A3 A0 A1 8255 Y2 CS Hình 15.7: Giải mà ®Þa chØ cđa 8255 sư dơng 74LS138 15.1.6 HƯ 8031 với 8255 Trong hệ thống dựa 8031 mà nhớ chương trình ROM bắt buộc tuyệt đối sử dụng 8255 trào đón Điều thực tế giải trình phối ghép 8031 với nhớ chương trình ROM ta bị hai cổng P0 P2 lại cổng P1 Do vậy, việc nối với 8255 cách tốt để có thêm số cổng Điều hình 15.8 EA 8031 P3.7 P3.6 RD WR VCC PSEN A12 P2.7 P2.0 ALE P0.7 P0.0 G AD7 AD0 D q 74LS373 OC A8 CE OE VCC A12 A8 A0 A0 A0 A0 D7 2864 (2764) 8K´8 Program RAM D0 WR RD 5 PA PB PC A1 A0 RES D7 D0 H×nh 15.8: Nèi 8031 tới ROM chương trình 8255 15.2 Nèi ghÐp víi thÕ giíi thùc 15.2.1 Phèi ghÐp 8255 với động bước Chương 13 đà nói chi tiết phối ghép động bước với 8051, ta trình bày nối ghép động bước tới 8255 lập trình (xem hình 15.9) CuuDuongThanCong.com https://fb.com/tailieudientucntt 0855 D0 D7 from 8051 WR A0 A1 Decoding Circuyiry A7 ULN2003 PA0 RD A0 A1 A2 D0 D7 PA1 PA2 PA3 16 15 14 13 Stepper Motor CS ULN2003 Conection for Stepper Motor Pin = GND Pin = +5v COM COM +5V H×nh 15.9: Nèi ghép 8255 với động bước Chương trình cho sơ đồ nối ghép sau: AGAIN: MOV MOV MOVX MOV MOV MOVX RR ACALL SJMP A, #80H R1, #CRPORT @R1, A R1, #APORT A, #66H @R1, A A DELAY AGAIN ; Chọn từ điều khiển để PA đầu ; Địa cổng ghi điều khiển ; Cấu hình cho PA đầu ; Nạp địa chØ cỉng PA ; G¸n A = 66H, chun xung động bước ; Xuất chuỗi động đến PA ; Quay chuỗi theo chiều kim đồng hồ ; Chờ 15.2.2 Phối ghép 8255 với LCD Chương trình 15.1 trình bày cách xuất lệnh liệu tới LCD nối tới 8255 theo sơ đồ hình 15.10 Trong chương trình 15.1 ta phải đặt độ trễ trước lần xuất thông tin (lệnh liệu) tới LCD Một cách tốt kiĨm tra cê bËn tr­íc xt bÊt kú thø tới LCD đà nói chương 12 Chương trình 15.2 lặp lại chương trình 15.1 có sử dụng kiểm tra cờ bận Để ý lúc không cần thời gian giữ chậm vị trí 15.1 Ch­¬ng 15.1: 0855 PA0 LCD D0 VCC VEE PA1 A7 VSS RS R/W E PB0 PB1 PB2 RESET H×nh 5.10: Nối ghép 8255 với LCD ; Ghi lệnh liệu tới LCD kiểm tra cờ bận ; Giả sử PA 8255 nối tới D0 - D7 cđa LCD vµ ; IB - RS, PB1 = R/W, PB2 = E để nối chân điều khiển LCD MOV A, #80H ; Đặt tất cổng 8255 đầu MOV R0, #CNTPORT ; Nẹp ®Þa chØ ghi ®iỊu khiĨn MOVX @R0, A ; Xuất từ điều khiển MOV A, #38H ; Cấu hình LCD có hai dòng ma trận 57 CuuDuongThanCong.com 10K POT https://fb.com/tailieudientucntt ACALL CMDWRT ACALL DELAY MOV A, # 0EH ACALL CMDWRT ACALL DELAY MOV A, # 01H ACALL CMDWRT ACALL DELAY MOV A, # 06 ACALL CMDWRT ACALL DELAY MOV A, # 'N' ACALL DATAWRT ACALL DELAY MOV A, # '0' ACALL DATAWRT ACALL DELAY ; Ch­¬ng tr×nh ghi lƯnh CMDWRT LCD CMDWRT: MOV R0, # APORT MOVX @R0, A MOV R0, # BPORT MOV A, # 00000100B MOVX NOP NOP MOV @R0, A ; Ghi lệnh LCD ; Chờ đến lần xuất kế tiÕp (2ms) ; BËt trá cho LCD ; Ghi lệnh LCD ; Chờ lần xuất ; Xoá LCD ; Ghi lệnh LCD ; Dịch trỏ sang phải ; Ghi lệnh LCD ; Chờ lần xuất sau ; Ghi lệnh LCD ; v.v cho tÊt c¶ mäi lƯnh LCD ; Hiển thị liệu (chữ N) ; Gửi liệu LCD để hiển thị ; Chờ lần xuất sau ; Hiển thị chữ "0" ; Gửi LCD để hiển thị ; Chờ lần xuất sau ; v.v cho liệu khác ; Nạp địa cổng A ; Xuất thông tin tới chân liệu LCD ; Nạp địa cổng B ; RS=0, R/W=1, E=1 cho xung cao xuèng thÊp ; Kích hoạt chânRS, R/W, E LCD ; Tạo ®é xung cho ch©n E A, # 00000000B ; RS=0, R/W=1, E=1 cho xung cao xuèng thÊp MOVX @R0, A ; Chốt thông tin chân liệu LCD RET ; Chương trình ghi lệnh DATAWRT ghi liƯu LCD CMDWRT: MOV R0, # APORT ; N¹p địa cổng A MOVX @R0, A ; Xuất thông tin tới chân liệu LCD MOV R0, # BPORT ; Đặt RS=1, R/W=0, E=0 cho xung cao xuống thấp MOV A, # 00000101B ; Kích hoạt chân RS, R/W, E MOVX @R0, A ; Tạo độ xung cho ch©n E NOP NOP MOV A, # 00000001B ; §Ỉt RS=1, R/W=0, E=0 cho xung cao xng thÊp MOVX @RC, A ; Chốt thông tin chân liệu LCD RET Chương trình 15.2: ; Ghi lệnh liệu tới LCD có sử dụng kiểm tra cờ bận ; Giả sử PA 8255 nối tíi D0 - D7 cđa LCD vµ ; PB0 = RS, PB1 = R/W, PB2 = E ®èi víi 8255 tới chân điều khiển LCD MOV A, #80H ; Đặt tất cổng 8255 đầu MOV R0, #CNTPORT ; Nạp địa ghi điều khiển MOVX @R0, A ; Xt tõ ®iỊu khiĨn MOV A, #38H ; Chọn LCD có hai dòng ma trận 5´7 ACALL NMDWRT ; Ghi lÖnh LCD MOV A, # 0EH ; LƯnh cđa LCD cho trá bËt ACALL NMDWRT ; Ghi lÖnh LCD MOV CuuDuongThanCong.com A, # 01H ; Xo¸ LCD https://fb.com/tailieudientucntt ACALL NMDWRT ; Ghi lƯnh LCD MOV A, # 06 ; LƯnh dÞch trá sang ph¶i ACALL CMDWRT ; Ghi lƯnh LCD ; v.v cho tÊt c¶ mäi lƯnh LCD MOV A, # 'N' ; Hiển thị liệu (ch÷ N) ACALL NCMDWRT ; Gưi d÷ liƯu LCD để hiển thị MOV A, # '0' ; Hiển thị chữ "0" ACALL NDADWRT ; Gửi LCD để hiển thị ; v.v cho liệu khác ; Chương trình ghi lệnh NCMDWRT có hiển thị cờ bận NCMDWRT: MOV R2, A ; Lưu giá trị ghi A MOV A, #90H ; Đặt PA cổng đầu vào để đọc trạng thái LCD MOV R0, # CNTPORT ; Nạp địa ghi điều khiển MOVX @R0, A ; Đặt PA đầu vào, PB ®Çu MOV A, # 00000110B ; RS=0, R/W=1, E=1 đọc lệnh MOV @R0, BPORT ; Nạp địa cổng B MOVX R0, A ; RS=0, R/W=1 cho chân RD RS MOV R0, APORT ; Nạp địa cỉng A MOVX @R0 ; §äc ghi lƯnh RLC A ; Chun D7 (cê bËn) vµo bit nhí carry JC READY ; Chờ LCD sẵn sàng MOV A, #80H ; Đặt lại PA, PB thành đầu MOV R0, #CNTPORT ; Nạp địa cổng điều khiĨn MOVX @R0, A ; Xt tõ ®iỊu khiĨn tíi 8255 MOV A, R2 ; Nhận giá trị trả lại tới LCD MOV R0, #APORT ; Nạp địa cổng A MOVX @R0, A ; Xuất thông tin tới chân liệu LCD MOV R0, #BPORT ; Nạp địa cổng B MOV A, #00000100B ; Đặt RS=0, R/W=0, E=1 cho xung thÊp lªn cao MOVX @R0, A ; KÝch ho¹t RS, R/W, E cđa LCD NOP ; Tạo độ rộng xung chân E NOP MOV A, #00000000B ; Đặt RS=0, R/W=0, E=0 cho xung cao xuống thấp MOVX @R0, A ; Chốt thông tin chân liệu LCD RET ; Chương trình ghi liƯu míi NDATAWRT sư dơng cê bËn NCMDWRT: MOV R2, A ; Lưu giá trị ghi A MOV A, #90H ; Đặt PA cổng đầu vào để đọc trạng thái LCD MOV R0, # CNTPORT ; Nạp địa ghi điều khiển MOVX @R0, A ; Đặt PA đầu vào, PB đầu MOV A, # 00000110B ; RS=0, R/W=1, E=1 ®äc lƯnh MOV @R0, BPORT ; Nạp địa cổng B MOVX R0, A ; RS=0, R/W=1 cho chân RD RS READY: READY: MOV MOVX RLC JC MOV MOV MOVX MOV MOV MOVX MOV MOV CuuDuongThanCong.com R0, APORT @R0 A READY A, #80H R0, #CNTPORT @R0, A A, R2 R0, #APORT @R0, A R0, #BPORT A, #00000101B ; Nạp địa cổng A ; §äc ghi lƯnh ; Chun D7 (cê bËn) vµo bit nhớ carry ; Chờ LCD sẵn sàng ; Đặt lại PA, PB thành đầu ; Nạp địa cổng điều khiển ; Xuất từ điều khiển tới 8255 ; Nhận giá trị trả lại tới LCD ; Nạp địa cổng A ; Xuất thông tin tới chân liệu LCD ; Nạp địa cổng B ; Đặt RS=1, R/W=0, E=1 cho xung thÊp lªn cao https://fb.com/tailieudientucntt MOVX NOP NOP MOV MOVX RET @R0, A ; KÝch ho¹t RS, R/W, E cđa LCD ; Tạo độ rộng xung chân E A, #00000001B ; Đặt RS=1, R/W=0, E=0 cho xung cao xuống thấp @R0, A ; Chốt thông tin chân liƯu LCD 15.2.3 Nèi ghÐp ADC tíi 8255 C¸c bé ADC đà trình bày chương 12 Dưới chương trình ADC nối tới 8255 theo sơ đồ cho hình 115.11 BACK: sàng ch­a MOV MOV MOVX MOV MOVX ANL A, #80H R1, #CRPORT @R1, A R1, #CPORT A, @R1 A,, #00000001B ; Từ điều khiển với PA = đầu PC = đầu vào ; Nạp địa cổng điều khiển ; Đặt PA = đầu PC = đầu vào ; Nạp địa cổng C ; Đọc địa cổng C để xem ADC đà sẵn sàng chưa ; Che tất bít cổng C để xem ADC đà sẵn JNZ BACK MOV MOVX R1, #APORT A, @R1 ; Giữ hiển thị PC0 che EOC ; Kết thúc hội thoại nhận liệu ADC ; Nạp địa PA ; A = đầu vào liệu tương tự Cho đến ta đà trao đổi chế độ vào/ đơn giản 8255 trình bày nhiều ví dụ Ta xét tiếp chế độ khác ADC804 RD 8255 D0 D7 A2 A7 PA0 PA7 PC0 Decoding Circuyiry RESET WR D0 D7 INTR VCC CLK R 5V 10k 150pF CLK IN Vin(+) Vin(-) A GND Vref/2 GND 10K POT CS Hình 15.11: Nối ghép ADC 804 với 8255 15.3 Các chế độ khác 8255 15.3.1 Chế độ thiết lập/ xoá bit BSR Một đặc tính cổng C bit điều khiển riêng rẽ Chế độ BSR cho phép ta thiết lập bit PC0 - PC7 lên cao xuống thấp hình 15.12 Ví dụ 15.6 15.7 trình bày cách sử dụng chế độ nµo? CuuDuongThanCong.com https://fb.com/tailieudientucntt D7 D6 D5 x x BSR Mode D4 D3 D2 x Not Used Generally = D1 D0 S/R Bit Select 000=Bit0 100=Bit4 001 = Bit1 101=Bit5 010 = Bit2 110=Bit6 011 = Bit3 111=Bit7 Set=1 Reset=0 Hình 15.12: Từ điều khiển chế độ BSR VÝ dơ 15.6: H·y lËp tr×nh PCA cđa 8255 ë chế độ BSR bit D7 từ điều khiển phải mức thấp Để PC4 mức cao, ta cần từ điều khiển "0xxx1001" mức thấp ta cần "0xxx1000" Các bít đánh dấu x ta không cần quan tâm thường chúng ®Ỉt vỊ MOV MOV MOVX ACALL MOV MOVX ACALL A, 00001001B R1, #CNTPORT @R1, A DELAY A, #00001000B @R1, A DELAY ; Đặt byte điều khiển cho PC4 =1 ; Nạp cổng ghi điều khiển ; Tạo PC4 = ; Thêi gian gi÷ chËm cho xung cao ; Đặt byte điều khiển cho PC4 = ; T¹o PC4 = D0 D7 WR RD A2 A7 Decoding Circuyiry A0 A7 8255 WR RD A0 A7 PC4 CS Hình 15.13: Cấu hình cho ví dụ 15.6 15.7 Ví dụ 15.7: HÃy lập trình 8255 theo sơ đồ 15.13 để: a) Đặt PC2 lên cao b) Sử dụng PC6 để tạo xung vuông liên tục với 66% độ đầy xung Lời giải: a) MOV R0, # CNTPORT MOV A, # 0XXX0101 MOV @R0, A b) AGAIN: MOV MOV MOVX ACALL ACALL MOV CuuDuongThanCong.com ; Byte ®iỊu khiĨn A, #00001101B R0, #CNTPORT @R0, A DELAY DELAY A, #00001100B ; Chọn PC6 = ; Nạp địa ghi điều khiển ; Tạo PC6 = ; PC6 = https://fb.com/tailieudientucntt D7 D6 D5 D4 D3 D2 D1 D0 Port A Output PC1 OBFB PC2 ACKB X INTEB OBFB INTEB iNTEA PB7 PB0 I/O WR I/O s D7 D6 D5 D4 D3 D2 D1 D0 INTEA PC0 1/0 StatusWord-Mode1Output OBFA INTEB Port B with Hanshake Signals INTEB Port B Output PC6 I/O Mode INTEA Port B Mode1 ACKA Port B Output PC6 PC4.51=Input,0=Outpput OBFA Port A Output PC7 Port A Mode1 S ControlWord-Mode1Output Port A Mode1 INTEA PC4 PC4 DELAY ; Thêi gian gi÷ chËm AGAIN Port A with Hanshake Signals ACALL SJMP Port A Output INTEA is controlled by PC6 in BSR mode PC4.5 INTEB is controlled by PC2 in BSR mode Hình 15.14: Biểu đồ đầu 8255 chế độ WR OBF INTEB ACK Output Hình 15.15: Biểu đồ định thời 8255 chế độ 15.3.2 8255 chế độ 1: Vào/ với khả bắt tay Một đặc điểm mạnh 8255 khả bắt tay với thiết bị khác Khả bắt tay trình truyền thông qua lại hai thiết bị thông minh Ví dụ thiết bị có tín hiệu bắt tay máy in Dưới ta trình bày tín hiệu bắt tay 8255 với máy in Chế độ 1: Xuất liệu với tín hiệu bắt tay Như trình bày hình 15.14 cổng A B sử dụng cổng đầu để gửi liệu tới thiết bị với tín hiệu bắt tay Các tín hiệu bắt tay cho hai cổng A B cấp bit cổng C Hình 15.15 biểu đồ định thời 8255 CuuDuongThanCong.com https://fb.com/tailieudientucntt Dưới phần giải thích tín hiệu bắt tay tính hợp lý chúng cổng A, cổng B hoàn toàn tương tự Tín hiệu OBFa : Đây tín hiệu đệm đầu đầy cổng A tích cực mức thấp từ chân PC7 để báo CPU ®· ghi byte d÷ liƯu tíi cỉng A TÝn hiệu phải nối tới chân STROBE thiết bị thu nhận liệu (chẳng hạn máy in) để báo đà đọc mét byte d÷ liƯu tõ chèt cỉng TÝn hiƯu ACKa : Đây tín hiệu chấp nhận cổng A có mức tích cực mức thấp nhân chân PC6 cđa 8255 Qua tÝn hiƯu ACKa th× 8255 biÕt tín hiệu cổng A đà thiết bị thu nhận lấy Khi thiết bị nhận lấy liệu từ cổng A báo 8255 qua tín hiệu ACKa Lúc 8255 bật OBFa lên cao để báo liệu cổng A liệu cũ CPU đà ghi byte liệu tới cổng A OBFa lại xuống thấp v.v Tín hiệu INTRa: Đây tín hiệu yêu cầu ngắt cổng A có mức tích cực cao từ chân PC3 8255 Tín hiệu ACK tín hiệu có độ dài hạn chế Khi xuống thấp (tích cực) làm cho OBFa kh«ng tÝch cùc, nã ë møc thÊp mét thêi gian ngắn sau trở nên cao (không tích cực) Sườn lên ACK kích hoạt INTRa lên cao Tín hiệu cao chân INTRa dùng để gây ý CPU CPU thông báo qua tín hiệu INTRa máy in đà nhận byte cuối sẵn sàng để nhận byte liệu khác INTRa ngắt CPU ngừng thứ lµm vµ Ðp nã gưi byte kÕ tiÕp tíi cỉng A để in Điều quan trọng ý INTRa bật lên INTRa, OBFa ACKa mức cao Nó xoá kh«ng CPU ghi mét byte tíi cỉng A TÝn hiệu INTEa: Đây tín hiệu cho phép ngắt cổng A 8255 cấm INTRa để ngăn không ngắt CPU Đây chức tín hiệu INTEa Nó mạch lật Flip - Flop bên thiÕt kÕ ®Ĩ che (cÊm) INTRa TÝn hiƯu INTRa bật lên bị xoá qua cổng C chế độ BSR INTEa Flip - Plop điều khiển PC6 Từ trạng thái: 8255 cho phép hiển thị trạng thái tín hiệu INTR, OBF INTE cho hai cổng A B Điều thực cách đọc cổng C vào ghi tổng kiểm tra bit Đặc điểm cho phép thực thi thăm dò thay cho ngắt phần cứng 13 14 25 Hình 15.16: Đầu cắm DB-25 (hình 15.17 mờ không vẽ được) Hình 15.17: Đầu cáp máy in Centronics Bảng 15.2: Các chân tín hiệu máy in Centronics CuuDuongThanCong.com https://fb.com/tailieudientucntt Ch©n sè 10 Mô tả STROBE Dữ liệu D0 Dữ liệu D1 D÷ liƯu D2 D÷ liƯu D3 D÷ liƯu D4 Dữ liệu D5 Dữ liệu D6 Dữ liệu D7 Chân sè 11 12 13 14 15 16 17 18-25 M« t¶ BËn (busy) HÕt giÊy (out of paper) Chän (select) Tự nạp ( Autofeed ) Lỗi ( Error ) Khởi tạo máy in Chọn đầu vào ( Select input ) Đất (ground) ACK (chấp nhận) Các bước truyền thông có bắt tay máy in 8255 Một byte liệu gửi đến bus liệu máy in Máy in báo có byte liệu cần in cách kích hoạt tín hiệu đầu vào STROBE Khi máy nhận liệu báo bên gửi cách kích hoạt tín hiệu đầu gọi ACK (chấp nhận) Tín hiệu ACK khởi tạo trình cấp byte khác đến máy in Như ta đà thấy từ bước byte liệu tới máy in không đủ Máy in phải thông báo diện liệu Khi liệu gửi máy in bận hết giấy, máy in phải báo cho bên gửi nhận lấy liệu Hình 15.16 15.17 trình ổ cắm DB25 đầu cáp máy in Centronics tương ứng CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 8051 1.2.3 thành vi? ?n khác họ 8051 Có hai vi điều khiển thành vi? ?n khác họ 8051 8052 8031 a- Bộ vi điều khiển 8052: Bộ vi điều khiển 8052 thành vi? ?n khác họ 8051, 8052 có tất đặc tính chuẩn 8051. .. Grehan vi? ??t tạp BYTE tháng 9.1994; WWW Byte Com để biết trao đổi tuyệt vời vi điều khiển) Điều thú vị số nhà sản xuất vi điều khiển đà xa tích hợp chuyển đổi ADC ngoại vi khác vào vi điều khiển. .. cho đơn vị: Điều quan trọng định giá thành cuối sản phẩm mà vi điều khiển sử dụng Ví dụ có vi điều khiển giá 50 cent đơn vị mua 100.000 bé mét lóc 2) Tiªu chn thø hai lùa chọn vi điều khiển khả

Ngày đăng: 07/01/2022, 16:07

TỪ KHÓA LIÊN QUAN

w