Cấu trúc lập trình ghép nối và ứng dụng vi điều khiển tập 1

21 65 0
Cấu trúc   lập trình   ghép nối và ứng dụng vi điều khiển  tập 1

Đ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

r r i T S N G U Y Ễ N M ẠN H G IA N G CẤU TRÚC LẬP TRÌNH-GHÉP NỐI VÀ ÚNG DUNG VI DIẾU KHIỂN T Ằ參 P M Ộ參 T C Ấ U T R ÍÍC V À L Â P T R ÌI^ I l V » R /8 (B ( l i hàn lân thu nhntị 厂N N H Ả X U Ấ T B Ả N G I A O D U C Công ty cổ phẩn sách Oại học Dạy nghế - Nhà xuất Giáo dục Việt Nam giiữ quiyển công bố tác phẩm Mọi tổ chức, cá nhản muốn sử dụng tác phẩm đưới hinh thức phả đưực sư ơống ỷ chủ sở hữu quyểin tácigiả 04 - 2009/CXB/223 - 21 I7/GD Mã só : 7B677y9 - D A I LỜI NÓI ĐẦU Vi xử lý (Microprocessor), phận xử lý trung lâm để xử lý lệnh, đời lẩn (1971) vơi bit liệu, dược cải tiến thành bít (8080, 8083, 8088 nãm 1974), 16 bìt (8086’ 80286 năm 1978), 32 bit (80386, 80486’ năm 1983) 64 bit (80586, nầm 1991) Trên sở vi xử lý ’ ihêm khối nhớ chương trình đọc (PROM), khối nhớ đọc/ghi r a m , cổng vào song song nối tiếp, người ta dã chế tạo máy vi tính cá nhân PC (Personal Computer) rc /X T (1 với 8080, 8085), PC/AT (1987 với 80286), PC/AT cải tiến (1989 với 80386, 80486) Pentium (199ỉ với 80586) Riêng Pentium, có Pentium I, Pentium II, 4GHz, 1995) Pentium ỉ lỉ ’ Pentium MT% da phương tiện, Pentium Pro hay IV (lốc độ l , Pentium V (lốc độ tới 3,4 GHz), Vi diểu khiển (Microcontroller) vi mạch lích hợp lớn, kích thước nhỏ (rộng cỡ cm, dài lừ 3-8 cm, vói số chân ỉừ 18’ 28’ 40’ 48, 64), bao gồm bô phận máy vi tính (bộ xử lý trung tâm CPU’ nhớ chương trình PROM, nhớ đọc/ghi RAM, cổng song song, cổng nối tiếp, dịnh thời/đếm (Timer/Counter) điều khiển ngắt chương trình Ví diểu khiển có khả nãng máy vi tính, có ưu diêm đặc biệt vể kích ihước nhỏ, nên dã xâm nhập sâu vào thiết bị đo lường, điểu khiển tự dộng hóa đặc biẽl vào thiết bị đời sống hàng ngày hổ thời gian, hổ báo giờ, đầu máy ghi phát âm hay phái hình (video, VCD, DVD v'v… Đinh cao việc dùng VĐK ỉà dùng người máy (ROBOT) thiết bị PLC dể điểu khiển logic chương trinh hóa dây chuyén sản xuất lự dộng Vi diéu khiển có bốn dòng họ lớn V i điểu khiển 681 ỈCxx hãng MOTOROLA’ MCS-51 hãng INTEL, AVR hãng ATM EL PIC cùa hãng MICROCHIP • Ngồi bơ phận giống vé cấu irúc, vi điéu khiển irên déu có : - Cúc ỉìhóm lệnh: rẽ nhánh chương trình {đỉéu khiển chương trình ihay đổi thứ lự lênh), dịch chuycn liệu (giữa ghi irong nhớ RAM), xử lý số học (cộng trừ, nhân, chia), xừ lý lo g ic (v , h o c , lo i Ir V A ' ) v x l ý t h e o b i l ( x c lậ p , x ó a , đ ả o V - V Ạ - Cíh ltìli í!ộỉỉg cư bản: irao dổi tin song song, trao dổi tin nối tiếp, định ihời gian, đếm xung íigoầi’ điéu khiển ngát chương irình (do xung ngồi, đếm tràn vé 0, irao dổi tin nỏi liếp) Hiộn có nhiéu hãng điện tử tham gia chế lạo VĐK khác theo cấu trúc lính nâng í ương ĩự Có loại sau: Vf)K clùỉìỊỊ Ỉroỉìg cỏỉìg nghiệp: cấu tạo dơn giản, cổng vào/ra song song, có 18 chân : cùa hăng INTEL, PIC MICROCHIP - VDK Ihrhig dụng: 8051’ 8052 Ihuộc họ MCS,31 hãng INTEL, AT89CM, AT89C52, \Tf)0C52, A ['89C535 cua hãng ATMEL* - \ f)K tiên tiến: có lính nảng mở rộng có nhiểu mức ngát, có nhiểu định thời Vateli dog (chó canh cửa), đếm kiểu ma trận, ghép nối với thiết bị nối liếp SPỈ v.v VDK cỏ DAC, ADC bân irong vi mạch : ADU812 {DAC, ADC có 12 bit), ADU 816 (D A C \D C cỏ 16 bii), ADU824 (DAC, ADC có 24 bit) hăng Analog hay hãng khác - VDK (lùíig ĩronị;intỵén ihõỉìịỊ mạng : 87C51GB xử lý sô DSP 51000 Tài liêu dươc bièn soan với tiêu chí sau: - Kếí hợp phán cimg I*ừ phán mém: mô lả vé cấu lạo kết hơp hoạt động ìẳp trình bảng hợp ìigiữ - Kết hợp lỷ thuyết với ílỉực hành: chương déu có Ihực hành vé ghép nối thiết bị V(ới I lập trình irên chương trình mơ phòng irẻn máy tính PC cho chạy ircn k i t 《giá》ihợc nghiệm - cấu ĩriic tàt liệu từ hàỉì tới lỉiện dụi, iừ dễ ĩớĩ khó: để phù hợp VỚI chưưng Irình clàio I lạo lỉẽn thỏng lừ học nghề lẽn cao đẳng, dại học trẽn đại học - Tạo diểit kiện cho người (ự học: Với chương trình mơ phòng Pinnacle có máy lĩtính, người tự học quan sát dược phận hoạt dộng chúng, VĐK Cấc ví (iu wẻ * chương irình tài liệu chương trình mẫu, ứng dụng bản, người tự học cầm :sao chép lại vào chương trình mơ phòng Pinnacle máy lính hợp dịch chạy ((tỉĩừng bước chirơng trình) Nếu có kit thực tập, người dùng nạp chương trình vào bó) I nhớ PROM hay nhớ ROM bên VĐ K tải sang nhớ R AM bên ngồi vỉà * cho chạy chương nh sau nhấn nút RESET, Với thực hành, người dùng lự học' lỉíheo dẫn chi liết - Tạo diéii kiện chơ người nglìiétì ctíU, ĩìùẽĩ kế chê ỉạo: ví dụ hay chương trình nmẫu vấn để người nghiên cứu dựa vào để thiết kế, chế lạo hệ dùng V Đ K riẻnịg trong tlìơi gian chu í rình mãv (cỡ ỈỊ.IS cho ưin số !2MHz) tio inach hình 1-3 có nhớ mờ rộng +5V RESET K h o n g ắ t, c ổ n g n ố i tiế p PD CPU /ID L Hình t - M a c h d iê n R e s e t Sau bật ngiiổn niiòi hay ấn núm RKSHT ihì ■giá ti Ị ciia uhi SP 二 07h: CAimưC VIĐỈỀU KHIẺNA H inh 1-4 M y p h t x u n g n h ịp giá trị cổng song song OFFH; - giá trị ghi hay ò nhớ OOFFH; - giá trị ghi PC= OOH nên địa lệnh dâu liên chương trình chítih OOH 1.2.3 M áy phát xung n h ịp chu trìn h VĐK hay vi xử lý hoạt động chuỗi xung nhịp kích thích mạch số Do đố',mỗi VĐK phải có máy phái xung nhịp với tần số ihích hợp VĐK 8051 cần tán số 11,0592 MHz Máy phát xung nhịp có sẵn vi mạch VĐK, cần nối linh thể thạch anh có lẩn số tư(Tn: g ứng vào chân X T A L Ỉ, X TAL2 hình 1,4 Có thể dùng máy phát xung nhịp bên ngoài, đỏ, cần đưa tín hiệu dao động ngồi vào chân X T A L l, chân X TAL2 để trống Các chu trình xung nhịp cho lệnh byte hai byte hình 1-5 Như vậy, chuỗi xung nhịp chia thành: - Chu irình : gồm nhịp,từ Si lới S6 - Pha :mỗi nhịp có hai pha P1, P2 Mỗi pha có độ kéo dài cỡ microsec (lần số nhịp 12 MHz) Tại nhịp SI S4 tiến hành đọc mã lệnh byte thứ hai có tín hiệu chdt địa A L E = Hình l-5a ứng với lệnh INC A (tâng nội dung ghi chứa A ),là lệnh byte, thực chu trình (cỡ 12 ịisec) Hình l-5b ứng với lệnh ADD A, #data (cộng ghi chứa A với liệu trực tiếp dai; a), lệnh hai byte {byle mã lệnh byte ỉiệu data) thực chu trình (6 nhịp) Hinh l-5c ứng với lệnh INC DPTR (tăng ghi địa nhớ ngoài) gồm l byte, thực ĩrong hai chu trình (12 nhịp) S2 S4 S3 S5 S6 SI osc ALE 61 Đ ọ c m ă lênh khác Đ oc m ã lê nh khác ò ọ c m à-lệnh S2 S3 S4 S5 SI a ) L ệ n h m ộ t b y te , m ộ t c h u trìn h , n h IN C A Đ ọc m ă lênh ; ; S1 Đ ọ c byte th ứ ^ ị S2 S3 S4 S5 S6 b ) L ê n h h a i b y le , m ô t c h u trìn h , n h A D D A # d a ta n n r m iè.nh Đ ọ c m â lênh (chu trình 1) ị S1 Dọc m ã lệnh (chu trin h 2) ị i S2 S3 S4 S1 S5 S6 S1 ị' S2 S3 S4ị c ) L ệ n h m ộ t b y t e ’ h a i c h u trìn h , n h IN C D P T R Hinh 1-5 Các chu kỷ xu ng nhịp cho lệnh m ột b y te 《a) vả haỉ byte (b 》 m ộ t chu trin h m ột byte hai chu trinh (c) Ngồi lệnh có lệnh hai byte’ hai chu irình M O VX, @DPTR, A (đưai mỏi dung ghi A ố nhớ ngồi có dịa giá trị ghi DPTR)* Cdây, VĐK chọn địa nhớ chương trình ngồi (PROM) hav RAM ngồi (EXRAM) tín hiệi dịa ALE (đế chổi địa thấp A0-A7) 7ín hiệu dưa cổng P2 địa cao (A8-A13), ghi (lẻm lênh nửa cao PCH đưa (PCI OUTcho PROM) hay nửa cao ghi trò địa chi DPÍỈ (cho EXRAM) (.ổng Pl đưa địa thấp A0-A7, ihanh ghi đếm lệnh thấp đưa (PCL o r 》hay nửa thấf cia Ihanh ghi trò địa DPL Khi có tín hiệu /PSEN 二 nhớ chương trình (PROM) đọc lênh vào (ISNT IN) trẽn đường dảy dĩ liệu PO Khi có tín hiệu /RD = 0, nhớ RAM ngồi đọc liệu vào (DATA IN) trẽn đường dây dữhệi PO ' ’ I A Lệnh dạng ngôn ngữ mã (mã lệnh) Giữa người điéu hành (hay sử dụng》và VĐK "trao đổi" lin (dữ liêu, lệnh hành động) loa! ĩiịôn ngữ chưng dạng mã (tập hợp bit nhị phân 0, 1) quy ước người thiết kế, chế tạo dé s/ới ngốn ngữ dạng mâ, VĐ K hiểu mộĩ cách trực tiếp, khổng cán ihông dịch (intepreier - dịrhvà thực theo lệnh) hay biên dịch (compiler - dịch vãn bàn) thành dạng mã Mội lệnh cổy đìi đéu có bốn thành phán nhãn, mã lênh, loán hạng (Operand) nguồn s tốn hạng (ích D thích (Comment), ĩạng lệnh sau: Labei: OPCODE D, s ; Commenl ló: Lahel: gọi nhãn hay ký hiệu, hay mội sổ ký tợ, không trùng với từ khố hay tếi lệnh, khơng bát đầu bầng chữ số, dùng để đáiih dấu địa cùa lệnh chương trình cần rứảy íới dùng lệnh nhảy (JMP ABC) hay gọi chương trình (CALL SUBR) OPCODE: mã lệnh hay mã hành dộng Mà lệnh (lổ hợp bit 0) người thiết kế, chế tạo VĐK quy định dựa theo cấu trúc hoạt dộng VĐK Mã lệnh chứa nội byte (8 bit) Do đó, mội VĐK có lới 256 lệnh với sơ' mã khác 、 'í dụ: + V Đ K 8051/8052 có lệnh NOP (NO operation-khỏng hành động gì): có mã lệnh 00000000B = OOH Gặp lệnh nàv, llianh ghi đếm lệnh PC lăng lên tré thời gian chu trình (1 Ị.IS) + Lệnh INC A (tăng nội dung ihanh ghi chứa A lẽn 1) có mã icnh 00000lOOB = 04H + Lệnh MOV / \ ’ #dala (chuyển (lữ liệu lức thi dala vào ghi A có mã 0111 OOB dala hay 74H, dala D ịDưMinion): tốn hạng đích (nơi gìn liêu sau hành íiộiig) s (Stntire): tốn hang nguồn (nơi chứa liệu cần cho hành dong) liíc hành dỏng, tốn hạng nguồn hay đích đéu dược quy ước (lạng nhị pliAn hay dạng mã ĩoán hạng nơi chứa liệu cho lệnh, ịiêu tức (immcdiaie - liệu ghi sau nà lệnh), ghi R (phương pháp (lia ihanh ghi) hay ô nhớ (phương pháp địa iríc liếp hay gián tiêp ghi chi số) Chúng ta dề cập lứi phương pháp địa chi chươig ba Commenỉ (clìíi ĩlỉich): sau dấu châm phấy (;), dùng để ghi chú,giải thích ihêm lệnh chươig trình Khi dịch chương trình, phần ihích nàv dược bỏ qua, khơng dịch chay chươig trình, khơng [hực Nếu qn (iẩu chấm phẩy, chirơng irình dịch báo lỗi VI sai cú pháp'ủa cảu lệnh ĩroiig VĐK có lệnh khơng có mà hành động, khơng có tốn hang hay có tốn hạng Ví dụ: - Lênh NOP có mã 00000000B hay OOH, khỏng thực ĩTiơt lìàiih dộng IIÍÌO, chi ỉốn tliỡi gian (lọc lệnh chu irình máy (I rnicrosec) - Lệnh INC A có inã 00000100B hay 041 ĩ : lộnlì khơng có lốn lìang s hay ĩ), I.IITI láiig ihanh ghi chứa A lẽn đơn vị (A + 1), khơng có lốii hạng nguồn s (ỉích f) - Lậih MOV #data có tốn hạng nguổn tà data kèm sau mã lệnh, toán hạng dích ỉả A - Lệnh ADD A #data có ma 0010 0100 (#íiaia) hay 24H (#tlaĩa), gổm hai hyt c inã lệnh loán hang nguồn i data Thanh ghi chứa A vừa toán hạng nguồn (cộng data với A> lại gừi két lổng vùo Ihanh ghi A Tư ỳ hành dộng, số toán hạng phương pháp dịa hay phương pháp lim liổu cho lệnh, ta có lệnh dài hay bylc thời gian thực cần ỉ , chư trình máy 1.2.5 Quá trìn h thực lệnh Lệnh chương liình chứả irong nhớ ROM (irong hay ngồi), liệu hav cấc ghi dược chứa nhớ RAM VĐK nói chung hay CPU nói rieng, thirc liiên niội lênh chứa irong nhớ theo bước sau: - CPU đưa nội dung ihanh ghi đếm lệnh PC, tức địa nhớ ROM (trong hay ngồ.ì) dế đọc mã lệnh vào ihanh ghi đệm lệnh IR - CPU đưa nội dung ghi đếm lệnh PC+I dể đọc bc thứ hai lệnh tức íốn (hạ ng ngn s nêu lẽrih cán tốn hạng s, CPU đưa nội dung ghi dếm lệnh PC+2 đế dọc byle thứ ba lệ n h 【 ức toán ỉhạ ĩig nguồn D iệnh cần ĩoán hạng D - CPU gỉảỉ mã lệnh để biết cần đưa tín hiệu tới phận Iirưng ứng Ví dụ lệnh INiC A có mã 041 ỉ làm táng nội dung ghi chứa A tức đưa mội tín hiệu vào Ihaiih ghi đẽ:m A đế nội dung A tăng Nếu lệnh có tốn hạng nguồn s, liệu dược dọc vào ihanh ghi đệm lam Ih i《 xem ihìiĩili l-2b) cúa sơ đồ khối chi liếl VĐK 8051/8052) sau lệnh thao tác vứi tốn h n g U iổ n rổi gửi vào tốn hạiig dích D Ví dụ, tệnh ADD A ’ #dala, ghi chứa A dược khối xử lý sỏ học logic A lẢ ì c-ộmg ihanb ghi chứa A YỞi ciừ liệu dala ghi clệm, kết quủ gừi lại vào A íỉưa clỉi ihi kết quiá vé irang ihái irèn Ihanlì ghi trạng thái cờ psvv 1-2.6 Cliư - c'hưưnji (lìn h hión doi danu I ì i i X sang lỉiN viỉ ngược la i‘ - ( 'huoniì ii Mìh m u phune (S im tilaĩor) dơ clKiy ihư ucn irơn \\ú \ VI tinlì l,(* i ì ì u y liìu ìi hưởe, Ù111Ị2 duiu.nt! li inh ca chitone irìnỉi) (iiao dicn cua chương ninh mở phonu Pninaclc cỉươc giới ihiệu livn liiith 1-S VƠI iliiíc ihm lìgane va tloc' ị Sí> xũny) (/hi càn nháy dìuỏi’ có ihc lụ" tluov cac einniị:(rình CII.I Ilìưc (1(111 Iiiĩani! \à doc lcỉì man hình 1)0 tlo, Sctii kỉìi chuvmg ưìnlì mở P1NNAC'[.IỈ (írona WINỈỈ)OWS l Iicn mau líiiilu ta cn ihuv tlơn imaim \ a kco Mioiìg với (ié miiL sau; - I lì I (ỉưỊ)i S ỉ \ \ í (lê soạn ihao chươim ỉ ĩ ình inới tlạne ASM), ( )V\iN uk mo cluiơni:ninh (la cổ) CLOSIv (donu clurơuị:irmh dà mơ), HXIT (ỉliốí khoi P1NN A(*1J ;vỏ w 1N I)()\\ Si - l u i I I ( M u n i ỉ l ỉ u o Ị : c!ê so a rì th a o c h n g trìn h , l ll: W ( ( Ị i i i ỉ N kl.XÍISTHR (các ihanti ghì A H ROR7 sp 11: ll\ rs w i: DlM K (,011 muUa chn m k T S u 'a c CỎ!1^J l U P l, P2, P3k riMHR r r r O N , T M ()[)/1 ('()N 12\1()13):Sl ịi Dnvci VIOU:m ! licỉd: CODl ;M1*: M()RY(Ỉ)1SSASS1': MHI Y- nhớ ma lcĩih) UART 12C DOMCO SPI - LXtX n i , ịfhưc lìiVỉiỉ :kU N (i*5- chay cá chương innh); STOl) ((lưng clia\ chìỉiu iniih), K l: s l ART (klìơi clỏny lai) S1N(»1.1:STHP (ehay líriiií bước): PROCliDURK STỈ,:r u'h‘iy diuunsi ưmh con); SKIP s riíp (bo\|ua bước) I INISỈỈ S11BR()UTIN1: (kct ihuc durung irmh LOIU I IMlSỉl lM l* ; KkUlM (kcĩ lỉuìc n^ai) SIMl l A I O R ÌO i?lỉ0Ní>ì :C 'U :A k (xoii nhở chirơng trình, nho Tronic, nhỡ naoun, M ì A I) MI.:M()RY (nap hộ nhỏ Iigồi nhỏ troim, nhớ dmong irìiih) S AV l M I:M í)KV ílmi ỉ lữ); 1; \1-; ('HTI()N7SI A ('K llis n o m ;a ) D Ỉ :lMHN HDIT’ PRO.IH(T O KriO N (T O S i: (X)MIMI i :I II I , (1-2hioii (Itch); COMPlí.h;+ INK (t;rR !.+l'2- biẻn dich kêì nối); RHBUn AI 1,; ST()P HUII !)) Ị()()L{ion: ^ a i ì :I II lí(X )N V IỈR S K )N { I!1:X-BỈN HIN-11Ỉ; X): c x ) l) l: \ V I / A K I ) (baiul Raỉc u i/a i (ÌK - o r r i o N ịiỉiv chọNi 11)1:O IT ỈO N ' - u //\7)ơ u v RHCỈISTỈÍR P k O ílK A M - I i r i rn K ^ KiHpì IMNNAC L I' IIHl r; KOSi ro N T R O I丄 i-:R' ABOUT IMNNACI I roniĩ ihư IIUK' 1ị\ \A \ LÌiiiny ta có ilìc tloc c;íc iiii t!òl vìì hưo.njz dan MI' cliiii*! 1*!NNA( '\Ả cau Iruc c ua Vf)K S051, va ( ) cliuvíiit: nay, dumg ía lưu V lới inò phong cáu ínk' ciìa Pinnadc qiui thỉỉV ílòii ViL.、 、\oi (Ic m ục、au: ■l\c: ^f \íci thaiih ghỉ A !ỉ R0-R7 Sỉ*k ( ìì\ IH, \\\ PCON,p s w ' S( ( >N), DPI R iro (lia clìi cua bó nhổ' 16 hiu lir MOI ỉ lới r i'N 'i I- Ỉ^ÌỊỈ.S cổnị! sonu soiìị:R) P l, P2 P3 Tunci ho đinh ihỜ! gian Timc,.í) Timerl \à I Iinet2 VỚI Ihaníi ghi U UN 1\U )1), T2 n)N T 2\1 01X T I M i m 1,2 xà RCAP2ỈÌ, RCAP2L - lỉiĩciiìn l rum: nhớ RAM ĩiong cỏ dịa chi ùr 0011 lới r i i - Eucnud ' í'川 nhớ RAM ngồi, có dia chi từ 0011tới í'i'1'M i - SI'R (líiei ỉ VICW : lìhin irực tiêp ỉhanlì ghi tlạc biệt vùng cUa ch' ILI soi I Uí'1 i I 1i - l ỉ i ĩ vìiní:dia chi hiK có địa chi ĨÙ20IỈ lới 21 n dé chi bit (rang thái ciia cluuíiiL:li inh í rmh 1'7 giới thiệu thục đơn CLUI thự: đơn V1H\V la SI-K íl)it Fiỉ L l )), X K A M CODE MEMORY n'inh 1-8 giới thiệu thực đơn V1EW íhưc 'iơn cùa nó: cấc ghi Register, n iT R 、Timcr/Coiinier IRAN1 M » a » t t a a» a a a a ỡ ơ L Ị aữ g 8g8ggg Time s8888g ‘ g8g888 Scope ^ Ê m Ê m *ễ ^ 的 ggg88s8E g ^ c# Q # í2 ► m PC 0000 Op 00 i Piniiiacĩữ 52 Pre&siondl Developmenỉ System S*rn,iJà.or Fvoje

Ngày đăng: 06/01/2020, 23:46

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan