Sei sulla pagina 1di 252
Chuong 1 : Gidi thiéu 1 i) t GIGI THIEU i 1.1 MG DAU \ Vao nim 1971 ¢4p doan Intel di gidi thigu 8080, bé vi xi ly ( micro- processor ) thanh céng dau tién. Sau dé khong lau Motorola, RCA, ké én la MOS Technology va Zilog da gidi thiéu cdc bd vi xit ly tuong ty : 6800, 1801, 6502 va 280. Ban than cdc vi mach ( IC : integrated circuit ) nay tuy khong cé nhiéu hiéu qua sit dung nhung khi la mét phan cia mét mdy tinh don board ( single-board computer ), ching tré thanh thanh phdn trung tam trong cdc sdn phdm cé ich ding dé nghién ctu va thiét ké. Cac may tinh don board nay, trong dé c6 D2 cia Motorola, KIM-1 cia MOS Technology va SDK-85 cia Intel la déng ghi nhé nhat, da nhanh chéng xm nhap vao cdc phong thi nghiém thiét ké cia trugng trung hoc, trudng dai hoc va cdc céng ty dién tit. Vao nam 1976 Intel gidi thiéu bo vi didu khién ( microcontroller ) j 8748, mot chip tuong ty nhu cdc b@ vi xt ly va 1a chip dau tién trong ho vi diéu khién MCS-48. 8748 1a mét vi mach chiéa trén 17000 transistor bao gdm mét CPU, 1 K byte EPROM, 64 byte RAM, 27 chan xudt nhap bg dinh thai 8-bit. IC nay va ede IC khac tiép theo cia ho MCS- app hanh chong tré thanh chudn cong nghiép trong cdc ding dung Z diéu khién ( control-oriented application ). Viéc thay thé cdc think phan co dién trong cde sin phdm nhv cde may gidt va cde bd dibu khign dén giao thong 14 mét ting dung phé bién ban dau. Cac sin phém khac ma trong dé bé vi diéu khién dugc tim thay bao gém xe 6 té, thiét bi céng nghiép, cdc san phém tiéu ding va cdc ngoai vi cia may tinh (ban phim cia IBM-PC 1a mét thi du sit dung bd vi diéu khién trong cde thiét ké téi thiéu thanh phan ). va Dé phic tap, kich thuge va kha nding ciia cde bé vi diéu khién duge tdng thém mt bac quan trong vao ndm 1980 khi Intel céng bé chip 8051, bé vi diéu khién dau tién ciia ho vi diéu khién MCS-51. So véi 8048, chip 8051 chita trén 60000 transistor bao gém 4 K byte ROM, 128 Me Ho vi diéu khién 8051 byte RAM, 32 dudng xudt nh4p, 1 port néi tiép va 2 bé dinh thoi 16-bit mét sé lugng mach dang chu y trong mét IC don. Cac thanh vién méi dufgc thém vao cho ho MCS-51 va cdc bién thé ngay nay gan nhu cd. gap doi cde dac trumg nay. Tap doan Siemens, nguén sin xuat thi hai ode Bi vi diéu khién thude ho MCS-51 cung cap chip SAB80515, mot cai tién clia 8051 chia trong mét vé 68 chan, cé 6 port xudt nhap 8-bit, 13 ngudn tao ra ngdt va mét bé bién déi A/D 8-bit vdi 8 kénh ngé vao. Ho 8051 1a mét trong nhiing b6 vi diéu khién 8-bit manh va linh hoat nhat, da tré thanh bé vi diéu khién hang dau trong nhiing gan day. Quyén sdch nay khdo sat ho vi diéu khién MCS-51. Cac chuong theo gidi thiéu cdu tric phdn cing va phan mém cia ho MCS-51, déng thai ching minh qua nhiéu thi dy thiét ich ma ho vi diéu khién y c6 thé tham gia vao cdc thiét ké dién tit véi sé thanh phan thém vao t6i thiéu. Trong cdc muc sau cua chuong nay, thong qua viée gidi thiéu vat tat ve cdu tric may tinh, ta sé phat trién tir ving cia nhiéu tir dude cau tao tit chit déu ciia cdc tit khde va cdc tir dang duge sit dung phé bién nhung dé nhém Jan trong linh vuc nay. Do nhiéu thugt ngi cé dinh nghia mo hé va tring lap phu thudc vao dinh kién cua cdc tap doan Jén va cdc ¥ chot nay ra ciia nhiéu tdc gid khde nhau, cdch gidi quyét cua ching ta mang tinh thuc tién hon 1a tritu tvgng. Méi mot thudt ngit duge gidi thiéu trong khung canh chung nhét cling véi sy gidi thich r6 rang. 12 THUAT NGU Mot may tinh ( computer ) duge dinh nghia bdi hai diém chinh - kha nang dugc \ap trinh dé thao tdc trén dir liéu ma khong cdn dén sy can thiép cia con ngudi. - kha nang luv tri va khéi phye dir ligu Téng quét hon, mot hé may tinh ( computer system ) cling bao gdm cdc thiét bi ngoai vi ( peripheral device ) dé truyén théng véi con ngudi cing nhv cdc chuong trinh ( program ) dé xi ly dif ligu. Thiét bi la phan cting ( hardware ) va chvong trinh 18 phan mém ( software ). Ching ta hay bat dau vdi phan cing cia may tinh bang edéch khdo sét hinh 1.1 Hinh 1.1 1a so dé khéi don gidn, khéng chi tiét mét cdch od ¥ nham muc dich tiéu biéu cho tat cd cde loai may tinh. Nhv ta da thay, mot hé méy tinh bao gém mét don vi xi ly trung tam CPU ( central processing unit ), don vi nay két néi vdi bé nhé truy xudt ngdu nhién RAM ( ran- dom access memory ) va bé nhé ghi dec ROM ( read only memory ) thong qua bus dja chi ( address bus ), bus dif ligu ( data bus ) va bus diéu Chuong 1 : Gidi thigu 3 khién ( control bus ). Céc mach giao tiép ( interface circuit ) két ndi cde bus cia hé thong ( goi tat 14 bus hé théng ) véi cdc thiét bi ngoai vi. Ta sé dé cp chi tiét cdc don vj vita néu trén. bata ing Hit it LUIGI ont Peripheral Hinh 1.1: So dé khéi cia mgt hé may vi tinh CPU : don vi xitly trung tam RAM : b@ nhé truy xudt ngdu nhién ( hay bé nhé doc / ghi ) ROM : b§ nhé chi doe Interface circuitry : mach giao tiép Peripheral devices : cfc thiét bi ngoai vi Address bus : bus dia chi Data bus : bus da liéu Control bus : bus diéu khién 1.3 DON VI XU LY TRUNG TAM CPU, tréi tim cia hé may tinh, quan ly tat cd cde hoat dong ciia hé va thyc hign tat cd cde thao téc trén dif liu. Hau hét cdc CPU chi bao gém mét tap cde mach logic thyc hién lién tuc hai thao téc : tim nap Ignh va thyc thi lénh. CPU cé kha nang hiéu va thye thi cdc lénh dya trén mot ma nhi phan, mdi mét ma nhi phan biéu thi mét thao tée din gidn. Céc lénh nay thudng la cdc lénh sO hoc ( nhv cong, tri, nhén, chia ), céc lénh Jogic ( nhy AND, OR, NOT, v.v.. ), cdc lénh di chuyén dif ligu hoac cdc lénh ré nhénh, duge biéu thi béi mét tap cde ma nhj phan va duge goi la t4p Iénh ( instruction set ) Hinh 1.2 cho ta mét ci nhin rat don gidn bén trong cia CPU. Hinh nay trinh bay mét tap cdc thanh ghi ( register ) cé nhi¢m vu hm gitt tam thdi cdc thing tin, mét don vi sé hoc logic ALU ( arithmetic-logic unit ) Ho vi diéu khién 8051 : gidi ma lénh va diéu khién ( instruction decode and control unit ) c6 nhiém vu xdc dinh thao tac cain thye hién va thiét lap cdc hoat dong can thiét dé én thao téc. CPU con ¢6 hai thanh ghi nia : thanh ghi enh IR ( instruction register ) lu gitt ma_ohi phan cia lenh_ dé duge thye thi va bé dém chuong trinh PC ( program counter ) liu gitr dia chi cua Ignh ké tiép trong bd nhé edn duge thyc thi cou | Reiser Hinh 1.2 : Don vi xr ly trung tam CPU CPU : don vi xis ly trung tam Instruction register (IR ) : thanh ghi lénh (IR ) Instruction decode and control unit : don vi gidi ma lénh va diéu khién Program counter ( PC ) ; bé dém chuong trinh ( PC ) Registers : cdc thanh ghi Viéc tim nap mt lénh tit RAM hé thong la mét trong cdc thao tac co ban nhat ma CPU thyc hién. Viéc tim nap lénh duge thyc hién theo cdc buée sau ; n@i dung cia PC duge dat len bus dia chi - tin hiéu diéu khién READ dugc xéc lap ( chuyén sang: trang thai tich cue ) - dif ligu ( opcode ciia lénh ) duge doc tit RAM va dua lén bus di liéu - opcode duge chét vao thanh ghi lénh bén trong CPU - PC duge tang dé chudn bj tim nap lénh ké tir bd nhé Chuong 1 : Gidi thiéu Hinb 1.3 minh hoa luéng théng tin cho viéc tim nap lénh. Address ban ¥ Program Data bos Opa Tstrction eater Cowrot Tw _ ia Hinh 1.3 : Hoat déng cia bus cho chu ky tim nap lénh CPU : don vj xit ly trung tam Program counter : b6 dém chuong triah Instruction register : thanh ghi lénh Clock : chan xung clock Read : chan diéu khién doc Address bus : bus dia chi Data bus : bus dit ligu Control bus : bus diéu khién Giai doan thy thi lénh bao gém viéc gidi ma opcode va tao ra ede tin hiéu diéu khién, cdc tin hiéu nay diéu khién viée xudt nhap giita ede thanh ghi néi véi ALU va thong bdo dé ALU thuc hién thao tac di duge xde dinh. Do cdc thao tdc cé tdm thay déi réng, pham vi danh cho cdc gidi thich vita néu trén cé phan nao bi gidi han, chi 4p dung duge cho cdc thao tée don gidn nhu tang noi dung cia mét thanh ghi. Cac lénh phiic tap hon ddi héi thém nhiéu bude nita, chang han nhu doc byte dit ligu tht hai va byte dit Li¢u thir ba dé thuc hién thao téc Mét chuéi cdc lénh duge két hop dé thuc hién mét cong viée cd ¥ nghia duge goi 14 mét chuong trinh ( program ) hay phan mém ( soft- ware ). Mie do ma nhitng céng viée duge thue hién ding va c6 hiéu qua phan lén duge xde dinh béi chit lvgng cia phan mém, khong phdi bdi su phitc tap cia CPU. Vay thi ede chuong trinh “ diéu khién * CPU trong khi lam viéc déi khi din dén sai nhém, chinh Ja do nhitng nhuge diém cilia cde tde gid chuong trinh. Cac cau nhu la “ mdy tinh tao ra mde 16i la sai. Mac di thiét bj cd su c6’ la diéu khéng thé trdnh duge, cdc 16i duge tao ra thudng 1a ddu hiéu cia ede chuong trinh téi hode 16i cia ngudi diéu khién. Ho vi diéu ihién 8051 1.4 BO NHG BAN DAN: RAM VA ROM Cée chuong trinh va dir ligu duge luu gitt trong bd nhd. Cac cua bé nhd mdy tinh va cdc thanh phan kém theo rat da dang, nghé thudng bj dot pha nén viée nghién cdu lién tuc va bao quat. bo nhé doi hoi phai theo kip cdc phat trién méi nhat. Cac b nhé duge truy xuat true tiép béi CPU bao gém cdc IC ban dan goi la RAM va ROM. Cé hai dac trimg ding dé phan biét RAM va ROM : thi nhat RAM la bé nhé doc / ghi trong khi ROM 1a bé nhé chi doc, tht hai RAM khéng tiép tuc luu gid ngi dung khi bi mat nguén céip dién trong khi ROM thi nguge lai. Hau hét cdc hé may tinh déu cé 6 dia va mét dung lugng ROM nhé chi can du dé lvtu git cde chuong trinh ngén, thudng sit dung, nhim thue hién cdc thao tdc xudt nhdp. Cac chuong trinh va dit liéu cia ngudi sit dung duge lu trén dia va dugc nap vao RAM dé thuc thi. Véi gid thanh lién tuc duge gidm thap, cdc hé may tinh nhé thudng chita bg nhé RAM tit hang triéu byte dén hang tram triéu byte. 1.5 CAC BUS : DIA CHi, DU LIEU VA DIEU KHIEN Mét bus IA mét t4p cdc day mang thong tin cé cing mot muec dich. Viee truy xudt tdi mot mach xung quanh CPU sit dung ba bu: us dja chi, bus dit liéu va bus diéu khién. V6éi méi thao tdc doc hoae ghi, CPU xde dinh ré vi tri cia dif ligu ( hoac lénh ) bing céch dat mét dia chi lén bus dia chi, sau 46 tich cuc mét tin hiéu trén bus diéu khién dé chi ra thao tdc li doc hay ghi, Thao tae doc lay mét byte dif ligu tir b6 nhé ¢ vi tri da xdc dinh va dat byte nay len bus di ligu. CPU doc dit ligu va dat ‘di ligu Ten bus dit ligu. Nh& vao tin higu diéu khién, b6 nhé nhén biét day 1A thao tac ghi va lun dif ligu vao vi tri da duge xdc dinh Hau hét cdc may tinh nho cé tit 16 dén 32 dubng chi va c6 kha nang truy xudt 2” vi tri nhé. Mét bas _dia chi 16-bit do va: é truy xudt mét bé nhé cé 64 K vi tri nhé, mét bus dia chi 20-bit cé kha nang truy xudt 1 M vi tritnhé va mét bus dia chi 32-bit cé kha nding truy xuat dén 4 G vi tri nhé (1 K = 1024, 1 M = 1024 K va 1G = 1024 M). Bus dit ligu mang théng tin gitta CPU va bé nhé cing nhu giita CPU va cde thiét bi xuat nhap. Viée cd ging nghién cifu bao qudt phan lén duge ding vao viée xdc dinh loai cdc hoat dong lam mat nhiéu théi gian thuc thi dang gid cia may tinh. Hién nhién la may tinh sit dung dén 2/3 thdi gian vao cdc viée di chuyén dit liéu. Vi da sé cdc thao tée di chuyén dit ligu xdy ra gitta mot thanh ghi cia CPU véi ROM va RAM ngoai, 56 dung ( hay d@ rng ) cia bus dir ligu rét quan trong déi véi hiéu suat téng thé cua may tinh. Gidi han béi do rong nay 6 dang cé chai : ¢6 thé ee Chuong 1 : Gidi thiéu 7 6 mét lugng rat dn bé nhé trong hé théng va CPU cé thé c6 kha nang tinh todn rat }én nhung viée truy xudét div lieu ~ di chuyén dif liéu gitta ' b@ nhé va CPU théng qua bus di liéu — thuéng bj nghén nhu cé chai do | 46 rong ciia bus di liéu Diéu nay rat quan trong nén ngudi ta thvdng thém mét tién to ( trong tiéng Anh ) dé chi ra sy mé rong dé trdnh hién tugng cé chai. Cau may tinh 16-bit chi ra ring may tinh c6 16 duéng dit liéu. Cac may tinh duge phan loai 4-bit, 8-bit, 16-bit, 32-bit c6 kha nang tinh todn téng thé tang khid6 rang ctia bus dir liéu tang. Luu ¥ 1a bus dir liéu, nhu duge chi ra trong hinh 1.1, 14 bus hai chiéu con bus dja chi la _bus mét chiéu. Cac théng tin dia chi ludn lubn duse cung cap boi CPU ( duge chi béi mii tén trong hinh 1.1 ) trong khi dv ligu di chuyén theo cd hai hudng tay thudc-Vao thao tac duge du dinh 1a doc hay ghi. Ciing lu y 1A thudt ngit “ dif Jigu “ duge sit dung thee nghia téng quat : “ thong tin “ di chuyén trén bus dif liéu cé thé la lénh cua chuong trinh, dia chi theo sau lénh hoae dit ligu duge sit dung bdi chong trinh. Bus diéu khién la mét hén hgp ede tin hiéu, méi mat tin hiéu cd mi vai trd riéng trong viée diéu khién cé trat ty hoat déng cia hé théng. thudng, cdc tin hiéu diéu khién Ja cdc tin hiéu dinh thai dugc cung cap béi CPU dé déng bé viée di chuyén thang tin trén cdc bus dia chi va di liéu. Mac da théng thugng cé ba tin hiéu nh la CLOCK, READ va WRITE déi véi viée di chuyén dit ligu co ban gitta CPU va be uhé, tén va hoat dong cia cde tin hiéu diéu khién phu thudc nhiéu vao CPU cu thé. Ta can nghién cttu chi tiét cde tham khdo ky thudt cua cdc nha sdn xuat. 1.6 CAC THIET BI XUAT NHAP Cac thiét bi xuat nhap hay cde thiét bj ngoai vi cua may tinh cho ta duéng truyén thong gitta hé méy tinh vdi thé gidi bén ngoai. Khéng cd cdc thiét bj ngoai vi, cde hé may tinh chi la nhing chiéc may bi thu hep va it duge sit dung. Téng quat cé ba loai thiét bi xudt nhap la ede thiet bj luu trir 1én, cde thist bi giaa khién / kiém tra, vdi con ngudi va cdc thiét bi diéu 1.6.1 Cac thiét bi luu tr@ lon Cang nhu cde b6 nh bin dan RAM va ROM, cdc thiét bi luu trit lén luén luén tang truéng va phat trién. Nhu tén goi, cde thiét bi luu triz len hum trv cde lugng Idn théng tin ( chuong trinh hoac dit liéu ) ma cde thong tin nay khéng thé chia du trong RAM tuong déi mhé ( con goi 1 bé nhé chinh ) ciia may tinh. Thong tin nay phdi dug nap vao trong bé Ho vi diéu khién 8051 nhé chinh truéc khi CPU truy xudt ching. Néu ta phan loai theo su truy xudt, cde thiét bi luu tré lén hode thuge loai online hodc thudc loai archival. Bé luu trit loai online thuting 1a dia tiv thich hep vai CPU khong cé sy can thiép cia con ngudi khi yéu c4u mét chuong trinh, b6 luu trir archival thuémg 1a dia hoac bang tit mac di cdc dia quang nhu 1A CD-ROM hoac céng nghé WORM hién dang duge va chuéng va cé thé thay thé cdc bo hm tri? archival do a6 tin cay, kha ndag luu tri va gid thanh thdp. 16.2 Céc thiét bj giao tiép véi con ngutti Vige lien két con ngudi va may duve thye hién qua nhiéu thiét bf giao tiép vdi con ngudi ma théng thuing nhat la thiét bj dau cudi hién thi video VDT ( video display terminal ) va mdy in. My in la thiét bi xuat con cde VDT thuc ra la 2 thiét bi vi ching chita mot ban phim dé nhap va m6t dén tia am cuc CRT ( cathode ray tube ) dé xuat. Mot linh vue ky thudt, duge goi 1a “ cde nhan t6 con ngutri “, 4a phat trién tu abu cu thiét ké cdc thiét bj ngoai vi cho con nguéi véi muc dich la an toan, tién nghi va hiéu qua cing vdi cdc dac tinh cia con ngudi déi vdi nhiing may ma con ngvdi sit dung. Ti dé ta thay cé nhiéu céng ty sn xudt ra cde thiét bi ngoai vi hon 1a cde cong ty sdn xudt ra mdy tinh. iu hét cdc hé may tinh, thudng ta cé toi thiéu 3 thiét bi : mét ban phim, mot CRT va mét may in, Cac thiét bj khdc giao tiép véi con ngudi bao gom : can diéu khién trd choi, but sdng, con chudt, ong néi, loa v.v. 1.6.8 Cac thiét bj digu khién / kiém tra Nha vao cde thiét bj diéu khién / kiém tra, ede may tinh c6 thé thye dc tac vu huéng diéu khién cing nhu thuc hién ching khong nggi nghi, khong mét méi va diéu nay vugt xa kha nang ciia con ngudi. Nhiéu ting dung trong déi séng hodc trong cong nghiép st dung ede thiét bj nay, hién vo Cae thiét bj didu khién 1a cdc thiét bj xudt hoac ede b6 kich thtch ( actuator ), ede thiét bj kiém tra 13 ede thiét bj nhap hoae ede cdm bién bién déi cdc dai lugng phi dién nhv nhiét, anh sang, dp suét, v-v.. thanh cdc dai lugng dién nhu dién dp hay ding 48 may tinh doc. Mach giao tiép bién déi dién dp hay dong dién nay thanh cde ma nhj phan hoa&e nguge lai va thong qua phan mém, mét quan hé du¢c thiét lap gita cde thiét bj nhap va céc thiét bi xuat. Viée giao tiép bing phan cing va phan mém giita cdc thiét bi nay yéi cdc bG vi diéu khién la mot trong cc chii dé chinh ca quyén séch nay. Chuong 1 : Giéi thiéu 9B 1.7 CHUONG TRINH : LON VA NHO Cac thdo Juan 6 trén tap trung vao phan eding cia cdc hé may tinh, cde chuong trinh ho&c phan mém diéu khién phan eting lam viéc chi méi dé cap qua. Tam quan trong tuong déi cia phan eving so véi phn mém da duoc dich chuyén mét cdch ro rét trong thap nién cudi cia thé ky 20. Trong khi trude day gid san xudt va bao tri phan cing cia may tinh rat dat so véi gid thanh cia phén mém, ngdy nay véi cdc chip c6 d6 tich hgp cao LSI ( large scale integrated ) va rat cao VLSI ( very large scale integrated ) gid thanh cia phan cing gidm di rat nhiéu. Cac cong viée doi héi nghién edu sau nhu viét, cung cap va thu thap tu ligu, bao tri, cap nhat va phan phéi phan mém chiém phan lén gid thanh trong viéc ty dong héa qué trinh sit dung cde may tinh. (command ang, tein apuciput satin toceeny 1 Bara Hinh 1.4; Céc ep phén mém Applications software : phdn mém ting dung User interface : giao dién vai ngudi si dung Operating system : hé diéu haah Command language, utilities : ngon ngif lénh, cfc tidn ich ij Input/output subroutines : cdc chuong trinh con xudt nhap | Access to hardware ; truy xuit dén phan dng | Hardware : phan cting — Ta hay khao sét cdc loai phan mém khdc nhau. Hinh 1.4 miah hoa ba cap phén mém cé vi tri ¢ gitta ngudi sti dung va phan cing ciia mot hé m4y tinh : phdn mém ung dung ( application software ), iéu hanh ( operating system ) vA cde chugng trinh con xudt nhép ( input/output subroutine ). G cap thap nhat cde chung trinh con xuat nhdp true tiép quin ly phén céing cia hé thong, doc cdc ky ty tit ban phim, dua cdc ky ty lan CRT, doc mét khéi théng tin tit dia va v.v.. Do cdc chuong trinh con nay as, 4 Ho vi diéu khién 8051 ién két mat thiét vdi phan cting, ching duge viét béi cdc chuyén gia thiét ké phan cting va thuéng duge liu git trong ROM ( chting 18 hé xuat nhap co ban BIOS [ basic input output system J trén may tinh cd nhan PC [ personal computer ] cia IBM chang han ) Dé gitip cho ngudi lap trinh dé dang truy c4p dén phan cing cia hé thong. cde diéu kién nhap va thodt duge xde dinh mét cach ro rang déi cde chuong trinh con xuat nhap. Nguéi lép trinh chi edn khéi dong cdc gid tri cho cde thanh ghi cia CPU ya gei chuong trinh con : thao téc can thiét duge thuc thi va két qua sé tra vé trong cdc thanh ghi cia CPU hoae iuu lai trong RAM he thong. Dé bé sung day di cho cde chung trinh con xudt nhép, ROM chia mét chuong trinh khdi déng ( start-up program ), chuong trinh nay duge thuc thi khi hé théng duge cap dién hoac dugc thiét lap lai ( reset ) bang tay. Ban chat khong bi mat néi dung cia ROM duse st dung @ day vi chuong trinh khéi dong phdi hién hitu trong théi gian khéi dong hé théng. Chuong trinh nay kiém tra cdc tay chon, khdi dong bé nhé, thyc hién viée kiém tra chan dodn hu héng v.v.. Cudi cing nhung khong kém quan trong, mét trinh nap bootstrap ( bootstrap loader ) doe érack dau tién ( mét chung trinh nhé ) tif dia vao RAM va chuyén diéu khién tdi chuong trinh nhé nay dé nap phan thudng tra trong RAM cia he dieu hanh ( mét chuong trinh Ién ) tif dia va chuyén diéu khién téi chuong trinh ldn nay, hoan tat viée khdi dong hé thong. Hé diéu hanh 1a mét tap hgp Idn cde chuong trinh duge nap vao trong mét hé mdy tinh nhim cung cAp cdc co ché truy xudt, quan ly va sit dung mt cdch c6 hiéu qua cdc tai nguyén ( resource ) cia may tinh, Céc kha ndng nay dugc thé hién thong qua ngdn ngi lénh diéu khién (command language ) va cdc chuong trinh tién ich ( utility program ) cla hé diéu hanh, va dén luot ching tao diéu kién thudn loi cho viée phat trién cdc phan mém tng dung. Néu mét phan mém ting dung duge thiét ké tét, ngudi sit dung tac dong tuong hé voi may tinh ma khong can co kién thie nhiéu vé hé diée hanh. Cung cap mét giao dién vdi ngudi sir dung mét cach an toan, hiéu qua 14 mt trong cde muc tiéu co ban cia viéc thiét ké cdc phan mém ting dung. 1.8 MICRO, MINI VA MAINFRAME Ching ta phan loai may tinh dya theo do In va kha nang tinh todn : may vi tinh ( microcomputer ), may tinh mini ( minicomputer ) va mdy tinh mainframe ( mainframe computer ). Dac diém chinh cia may vi tinh la kich thude va khd nang déng géi cia CPU. May vi tinh chtta bén trong mét vi mach tich hop don goi la bé vi xif ly ( microprocessor ). Cac may tinh mini va mainframe thi phitc tap hon trong ting chi tiét cdi Chuong 1: Gidi thiéu tric, chting cé cdc CPU chia nhiéu vi mach tich hgp, tir vai 1C doi voi méy tinh mini d€n vai board chia cdc IC déi vdi may tinh mainframe. Day la diéu can thiét dé cé duge téc A$ cao va khd nang tinh todn manh. Cée may vi tinh dién hinh cia IBM-PC, Apple Macintosh va Commo- dore Amiga st dung mét b9 vi xi ly lam CPU. RAM, ROM va cdc mach giao tiép yéu cdu nhiéu vi mach véi sé thanh phan thuéng tang theo kha nang tinh todn. Cée mach giao tiép co dé phitc tap thay déi tay thudc vao cdc thiét bi xudt nhap. Chang han dé diéu khién mét loa chifa trong hau hét cdc méy vi tinh ta chi can mé6t cap céng logic, tuy nhién mach giao ti’p va diéu khién 6 dia can nhiéu vi mach 6 dang LSI. C6 mét dic trung khac phan biét may vi tinh, may tinh mini va may tinh mainframe. Cac may vi tinh la cdc hé théng chi danh cho mot ngudi su’ dung va thudc loai don tdc vu, chting chi tac dong tuong hé vdi mot nguéi si dung va ching chi thyc thi mét chuong trinh é mét théi diém. Cae may tinh mini va mainframe la cdc hé théng danh cho nhiéu ngui st¢ dung va thudc loai da tac vu, chting cé thé tac dong tuong ho véi nhiéu ngudi sit dung va thuc thi déng théi nhiéu chuong trinh. Thuc 46, vide thuc thi déng théi nhiéu chuong trinh 1a do gidc duge tao ra tir vide chia xé thdi gian sit dung cdc tai nguyén cia CPU. Tuy nhieén, vdi cdc hé da xit ly c6 whiéu CPU cde tac vu duge thyc thi déng théi. 19 TU BO VI XU LY DEN BO VI DIEU KHIEN Nhu 4a dé cap @ cdc phan trén, cde bé vi xit ly 1a cde CPU don chip duge sit dung trong cdc may vi tinh. Vay thi dau la sy khdc nhau giita mét bé vi didu khién va mét bé vi xi ly. Cau hoi nay e6 thé duge tra lei til 8 phdi cdnh : cau tric phan cing ( hardware architecture ), cdc ung dung va cdc dac trung cua tap lénh ( instruction set feature ). 1.9.1 Cau tric phan cing Dé chi ré su khdc nhau gitta cde bd vi diéu khién va cdc bo vi xtt ly, hinh 1.2 duge vé lai chi tit hon ¢ hinh 1.5 ‘Trong khi bé vi xt ly 14 mot CPU don chip, mot bé vi diéu khién 13 mét vi mach don chia bén trong mt CPU va ede mach khdc dé tao nén mét hé may vi tinh day du. Cac thanh phan ¢ bén trong cia khung vé bing cdc duéng khéng lién tuc 6 hinh 1.5 14 phan chi yéu oda hadu hét cdc bé vi diéu bhién Ngoai CPU, cdc b@ vi diéu khién cdn chifa bén trong ching cde RAM, ROM, mach giao tiép néi tiép, mach giao tiép song song, bé dinh thai va cdc mach diéu khién ngat, tat cd hién dién bén trong mét vi mach. Di Ho vi diéu khién 8051 nhién dung lugng cia RAM trong chip khong thé dat bing véi dung lugng RAM 6 cdc may vi tinh nhung nhu ta sé khdo sdt sau, diéu nay khéng phi 1A mét han ché vi cdc bé vi diéu khién duge thiét ké voi dv djnh danh cho nhing ting dung hoan toan khdc. Internal External Sena Parallel socks interrupts Levee devin Toterrapt Sonal Parallel Timers ff contrat interface || interface cpu ‘Aaldrees, data, and contol buses RAM ROM Hinh 1.5 ; So dé kh6i chi tiét cia mot hé my vi tinh CPU : don vi xit ly trung tam ‘Timers : ede bé dinh thdi Interrupt control ; diéu khién ng&t. Serial interface : gino tiép néi tiép Parallel interface : giao tiép song song Address, data and control buses : cdc bus dia chi, dé liéu va diéu khién RAM : bg nhé doe / ghi ROM : bé wh chi doc External clocks : ede xung clock bén ngoai External interrupts : cde ngdt ngodi Serial device : thiét bi ndi tiép Parallel device : thiét bj song song Mot dac trung quan trong cua bé vi diéu khién la hg thong ngat duge thiét n trong chip. Ciing nhv cdc thiét bi hudng diéu khién, cde bo vi diéu khién dap tng véi cdc tac dong bén ngoai ( cde ng&t ) theo thei gian thyc, Chting phai thc hién viée chuyén déi ngit cdnh rat nhanh, — EE ae Chuong 1 : Gidi thigu 13 treo mOt qua trinh trang khi dang thyc thi mét qua trinh khdc theo yéu cau cua mét su kién. Di nhién hau hét cdc bé vi xit ly déucé khd nang hién thuc cdc so dd ng&t ( interrupt scheme ) nhung phi sit dung cdc thanh phén bén ngoai trong khi dé mach bén trong cia mét chip vi diéu khién bao gém cde mach quan ly ngdt can thiét. 1.9.2 Céc ung dung Cac bé vi xtt ly hau hét duge ding lam céc CPU trong cdc hé may vi tinh trong khi cdc bé vi diéu khién dugc tim thay trong cdc thiét ké nhé, vdi sé thanh phan thém vao tdi thiéu nh’m thuc hién cdc hoat déng huGng diéu khién, Trong qué khit cde thiét ké nhu vay yéu cdu hang ctive bake tham-cht hang tram vi mach sé. Bé vi diéu khién gidp ta giam thiéu sé lugng téng thé cdc thanh phan. Tat ca chi cin mét bd vi diéu khién, mét sé it cdc thanh phan hé tro va mét chung trinh diéu khién chtta trong ROM. Cac bé vi diéu khién thich hgp véi cde ting dung diéu khién thiét bi xuat nhap trong cdc thiét ké yéu cdu sé thanh phdn Si thiéu, trong khi dé cdc bd vi xtt ly thich hgp vdi cae ting dung xtt ly thong tin trong cdc hé may tinh. 1.9.3 Céc diac trung eda tip 1énh Ti cde khde nhau vé tng dung, cdc bé vi diéu khién c6 cde yéu cau khdc déi véi tap lénh cia ching so véi ede bd vi xif ly. Cae tap Iénh cia ede bé vi xit ly bao gém céc lénh xtt ly bao quét nén ching manh vé cdc kiéu dinh dia chi véi cdc lenh cung cap cde hoat dong trén cdc lugng dit “Tigulén. Cac Ténh cia ching cé thé hoat dong trén cdc % byte, byte, ti, tir kép. Cae kiéu dinh dia chi cng cap kha_nang truy xudt cde day dir ligwlén bang cdch si dung edc con tré dia chi yA cde offset. Cac kiéu ting va gidm ty dong lam don gian héa cdc bude thuc thi trén cdc day dit liéu 6 cdc gidi han byte, tit va tit kép. Céc lénh dac quyén khong thé thue thi trong cdc chuong trinh cua nguéi sit dung va viée liét ké con tiép tuc nifa néu ta muén Cac bé vi diéu khién c6 cde tap lénh cung céip cdc diéu khién xuat nhap. Mach giso tiép cho nhiéu ngo nhép va ngd xua¢ chi sif dung mot bit. Thi du mot déng co cé thé dugc diéu khién chay hoac dimg bing cach cung cap tin hiéu diéu khién tir mét port 1-bit. Cac bé vi diéu khién 6 cdc lénh set va x6a cdc bit don va thuc thi cdc thao tac huéng bit ( bit oriented operation ) nhu 14 AND, OR, XOR, nhay néu bit duge set hoac duge xéa, v.v. Dac trung manh nay hiém khi thay trong cdc bé vi xt ly thugng duge thiét ké dé hoat dong trén cdc byte hodc ede don vi dif ligu Ién hon. ee 14 Ho vi diéu khién 8051 Trong cdc thiét bi diéu khién va kiém tra, ede b vi_diéu khién cd ede mach bén trong va cdc lénh danh cho cdc thao téc xudt nhap, dinh thoi sy kign, cho phép va thiét lap cde mde im tién cho ede At duge ta ¥4.bdi ede kich thich bén ngoai. Cac bd vi xit ly thudng yéu cdu thém cde migeh phy Tee HE no Hp nd He, cde Ic diéu khién ngét, cde ic bo dinh nang trfn chip — digu nay tra gid cho kha nang xi ly. Do Rét edu phan cing bén trong cdc bé vi diéu khién, cdc lénh phai that cd dong va hau hét dugc thuc thi trén ting byte. Mét tiéu chudn thiét ké la chuong trinh diéu khién can phai dat vita trong ROM néi vi viée thém ROM bén ngoai sé lam tang gid thanh cia sin phdm thiét k trén bé vi diéu khién. Mot so dé ma héa chat ché luén lun can thiét cho tap lénh. Dac trung nay hiém thay 6 cde 64 vi xit ly; ede kiéu dinh dja chi manh cia ching lam cho viée ma héa ede lénh it cht ché han: 1.10 KHAI NtEM MOI Cac bé vi diéu khién khéng duge ding trong cdc may tinh nhung lai duge sit dung trong cdc sin phdm tiéu ding va cic sin phdm cong nghiép. Nhdng ngudi sit dung cdc sin phdm nay thugng khong nhan biét su hign dién cia cdc bd vi didu khién; vdi ho, céc thanh phan ben trong [a nhiing chi tiét khong quan trong trong thiét ké. Khong giéng nhu cdc hé may tinh duge xde dinh béi kha nang duge Jap trinh va duge tai lap trinh ciia ching, cde bd vi diéu khién duge lap trinh thu@ng tryc cho cong vigc. Su so sdnh nay din dén sy khée biét hoan toan vé cau trie gitta edc hé may tinh va cdc bd vi diéu khién. Cac hé may tinh cé ti 1¢ RAM-ROM rat cao sao cho céc chuong trinh ciia nguéi sit dung duge thyc thi trong mét khong gian RAM tuong doi Ién va cdc chuong trinh giao tiép véi phan ettng duge thyc thi trong mot khong gian ROM nhé. Cac bé vi diéu khién nguge lai c6 ti.sé ROM-RAM cao._ Qhuong trinh_diéu khién tuong déilénduge lu trong ROM trong khi RAM chi dh it-du hu mét bé _nhé tam thé chuong trinh diéw khién duge luu thutng tryc trong ROM, chuong trinh nay edn duge goi la firmware. Dyfa vao mite dé bén ving, chuong trinh diéu khién chia trong ROM nam ¢ khodng giita phan mém ~ cdc chung trinh trong RAM bi mat khi ta khong cung cap dién nita — va phan eding — cde mach vat ly Su khéc nkau vé phan mém va phan cing hoi gidng vdi sy khde nhau gia mét trang gidy ( phan cing ) véi cde chit duge viét lén trang gidy nay ( phan mém ). Ta cé thé xem firmware nhu la mét bie thu cé dang chuan, duge thiét ké va duge in ra cho mét muc dich duy nhat. Chuong 1 : Gidi thiéu 1.11 UU VA KHUYET DIEM : MOT THI DU THIET KE Cac cong viée duge thuc hién béi cdc bé vi diéu khién thi khéng mdi. Diéu mdi la cdc thiét ké dugc hién thyc véi it thanh phan hon so véi ede thiét ké trude dé. Cac thidét ké trude dé yéu cdu vai chuc hodc tham chi vai tram IC dé hién thuc nay chi cé mét it thanh phan trong d6 bao gém bé vi diéu khién. Sé thanh phan duge gidm bét, hau qua truc tiép cia tinh kha lap tinh cia cde bé vi diéu khién va d6 tich hgp cao trong céng nghé ché tao vi mach, thudng chuyén thanh thai gian phat trién ng&n hon, gid thanh khi san xuat thap hon, céng suat tiéu thu thaép hon va d6 tin cay cao hon. Cac hoat dong logic yéu cdu vai IC thudng duge hién thuc bén trong bé vi diéu khién cing véi mét chuong trinh diéu khién thém vao. Vain dé ¢ day Ja tée dd. Cac gidi phdp dya trén b6 vi diéu khién khéng bao gid nhanh bing gidi phdp dua trén cdc thanh phan ri rac. Nhang tinh huéng d3 hoi phai dap tng that nhanh di vdi ode su kien (_ chiém thigu sé trong cdc ting dung ) sé dugc quan ly téi khi dya vao cdc bé vi diéu khién. Lay thi dy ta khdo sdt hinh 1.6, thi dy nay hién thye mot céng NAND bing cach sit dung chip vi diéu khién 8051. Khong phi hoan toan hién nhién ma mét bé vi diéu khién cé thé duge sit dung cho mot hoat dong nhu vay, nhung lai cé thé dugc. Phin mém phi thuc hién céc thao tée duge chi ra trong lu dé 6 hinh 1.7. Chuong trinh hgp neif cia 8051 cho hoat dng logic nay nhu sau : LOOP: MOV C, P14 ; doc bit P14 vao cb nh ©, PLS ; AND véi P15 C, P16 ; AND véi P16 c 346i thanh két qua NAND PL7,C ; #01 két qua vao PL7 LOOP 5 Map lai Néu chuong trinh nay duge thue thi trén bé vi diéu khién 8051, chic nang céng NAND 3-ngo vao duge thye hin. Théi gian tri hodn truyén tinh tit khi c6 su chuyén trang thdi 6 ngo vao cho dén khi xudt hién logic ding ¢ ngé ra khé lav, it nhat cing g¢ sinh duge vdi cdc mach TTL tuong duong. Tay thuéc vdo lic ngé vdo duge chuyén trang thdi va chuong trinh biét duge su chuyén trang thdi nay, théi gian tri hodn cé thé tir 3 dén 17 nsec ( gid sit 8051 hoat dong vdi tan so xung clock chudn la 12 MHz ). Thai gian tri hodn truyén cia mach TTL tuong duong vao Ais Ho vi diéu khién 8051 khodng 10 nsec. Hién nhién la khéng cé tranh cdi khi so sinh téc d6 cua cdc bé vi diéu khién vdi cdc hien thue TTL c6 cing chite nang. ‘Trong nhiéu tng dung, dac biét 14 cdc tng dung c6 lién quan dén con ngudi, cdc khoang théi gian tré tinh bing nsec, psec hode tham chi msec la khong quan trong. Thi du ve cong logic ¢ trén minh hoa rang cdc bo vi diéu khién cé thé hien thyc cde thao tac logic. Hon nifa, khi cde thiet ké (rd nén phic tap hon, ede Igi ich cia thiét ké dua trén cde bo vi diéu khién duge thay rd hon. Viée gidm bét cdc thanh phan 1a mét diéu lgi nhu da dé dp, ede thae tée trang chuong trinh diéu khién Iam cho thiét ké c6é thé thay doi bing cdch thay déi phdn mém. Diéu nay cé anh hudng téi thiéu dén chu ky san xuat. itt ba 1 2051 AND, eh ba LG pis vas. lp pa Puc Hinh 16: Hién thue mét céng logic Hinh 1.7 : Luty dé cho chuong trinh ding b vi diéu khién 8031 hién thuc céng logic Enter : diém nhdp Read bit P14 : doe bit P14 AND with bit P13 : AND véi bit P15 AND with bit P16 : AND véi bit P16 Complement result : ly bir két qua Send bit to P17 : gai bit dén P17 ———— Chuong 2 : Tém tat phan cing 17 @ 2 TOM TAT PHAN CUNG 2.1 TONG QUAT MCS-51 1 ho vi diéu khién cita Intel. Céc nha san xudt IC khéc nhu Siemens, Advanced Micro Devices, Fujitsu va Philips duge cp phép lam cde nha cung cp thit hai cho cdc chip cia ho MCS-51. Chuong nay gidi thiéu vé cau tric phén cing cia ho MCS-51. Tham khao ky thuat ciia Intel cho cde chip cla ho MCS-51 duge tim thay 6 phu luc B. Ta cdn biét thém nhiéu chi tiét trong phu luc nay, thi du nhu cdc dac tinh dién chdng han. Nhiéu dac trung phan cing duge minh hoa bang cdc chudi lénh ngdn, cdc mé ta vin t&t cling duge cung cap cho tig thi du cdn cde chi tiét day di cia t4p lénh duoc danh lai cho chuong 3. Ta cé thé tham khdo phy luc A ( t6m tat tap Iénh cia 8051 ) va phy luc C ( cde dinh nghia cho ting Iénh cia 8051 ). Vi mach téng quét cia ho MCS-51 1a chip 8051, linh kign dau tien cia ho nay duge dua ra thi truéng. Chip 8051 6 cde dac tring duge tém tt nhu sau : - 4KBROM - 128 byteRAM. ~ - 4 port xu&t nhap ( /O port ) 8-bit. VW - 2b6 dinh thai 16-bit. ~~ - Mach giao tiép néi tiép. - Khéng gian nhé chuong trinh ( ma ) ngoai 64K. v - Khong gian nhé dif ligu ngoai 64K. - Bé xir ly bit ( thao tac trén cdc bit riéng ré ) - 210 vi tri nhé duge dinh dia chi, méi vi tri 1 bit. a - Nhan/chia trong 4ys. Cée thanh vién khde cia ho MCS-51 cé cdc t6 hgp ROM ( EPROM ), RAM trén chip khdc nhau hoac cé thém bé dinh thdi tht ba ( xem bing 2.1 ), Méi mot IC cia ho MCS-51 cing cé phién ban CMOS céng sudt thap. Chip 8051 8031 8751 8052 8032 8752 B6 nbé chuong trinh B6 nhé di ligu Cac bé dinh trén chip 4K ROM oK 4K EPROM 8 K ROM oK 8K EPROM trén chip 128 byte 128 byte 128 byte 256 byte 286 byte 256 byte thai 2 ee owe Bang 2.1 : So s4nh cde chip cia ho MCS-51 Hinh 2.1: So dé khdi cia chip 8051 xp" XD Chuong 2 : Tém tat phan cing Interrupt control : digu khién ngdt Other registers ; cfc thanh ghi khéc 128 bytes RAM : RAM 128 byte Timer 2, 1,0: bé dinh thai 2, 1, 0 CPU : don vi diéu khign trung tam Oscillator : mach dao dong Bus control : diéu khién bus VO ports : c&e port Serial port : port ni Address/data : dia chi/da 1i¢u Thudt ngi “ 8051 * duge ding dé chi réng rai ede chip ciia ho MCS- 51. Khi viée thao luan t4p trung vao mét cdi tién tir chip 8051 co ban, chip cai tién duge chi ra ro rang. Cac dac trung vita néu trén duge trinh bay trong so dé khéi é hinh 2.1. foo BODF qy oe xralt ww xrate oa Loge nie m ‘te ao INES 1 rx 2 pt axe EY pte vss Hinh 2.2 : So dé chén cia 8051 B20 Ho vi diéu khién 8051 2.2 CAC CHAN ( PINOUT ) Hinh 2.2 cho ta so dé chan ciia chip 8051. M6 ta tém tt chute nang cia titng chén nhu sau. Nhu ta thay. trong hinh 2.2, 32 trong sé 40 chan ciia 8051 6 cong dung xudt/nhap, tuy nhién 24 trong 32 dudng nay cé 2 muc dich ( cong dung ) [ 26/32 déi véi 8032/8052 J. Méi mot dudng co thé hoat dong xudt/nhdp hoae hoat déng nhu mét dudng diéu khién hodc hoat déng nhu mot dugng dja chi/dit liéu cia bus dia chi/dit ligu da hgp. Cae dac trung da dé cap 6 trén dugc trinh bay trong so dé khéi & hinh 2.1. 32 chan néu trén hinh thanh 4 port 8-bit. Vdi cdc thiét ké yéu cdu mét miic t6i thiéu bé nhd ngoai hodc cdc thanh phan bén ngodi khde, ta c6 thé sit dung cdc port nay lam nhiém vu xudt/nhap. 8 duéng cho méi Port cé thé duge xt ly nhut mét don vj giao tiép véi cdc thiét bj song song nhu mdy in, bé bién déi D-A, v.v.. hodc méi duéng cé thé hoat dong d6c lap giao tiép v6i mét thiét bi don bit nhu chuyén mach, LED, BJT, FET cugn day, déng cs, loa, v.v. 2.2.1 Port 0 Port 0 ( cdc chan tif 32 dén 39 trén 8051 ) c6 2 cong dung. Trong cdc thigt ké ¢6 ti thidu thanh phan, port 0 duge sit dung lam nhiém vu xudt/nbap. Trong cdc thiét ké lén hon c6 bo nhé ngoai, port 0 tré thanh bus dia chi va bus dit ligu da hgp [ byte thap ciia bus dja chi néu la dia chi } ( xem 2.6 : BO nhé ngoai ). 2.2.2 Port 1 Port_1 chi-cé_mét.cdng dung la xudt/nhdp ( ede chan tir } dén 8 trén 8051 ). Cae chan cia port 1 duge ky hiéu la P1.0, P11, .., PLT va duge ding dé giao i bén ngoai khi cé yéu cdu. Khéng e6 chttc nang nao khdc nifa gén cho cde chan ciia port 1, nghia la chting chi duge sit dung dé giao tiép véi cdc thiét bi ngoai vi.[ Ngoai lé : véi 8032/8052, ta co thé sit dung P1.0 va P1.1 hoac lam cdc dudng xudt/nhdp hoac lam cde ngo vao cho mach dinh thdi thi ba }. 2.2.3 Port 2 Port 2 ( cde chan tit 21 dén 28 trén 8051 ) cd 2 céng dung, hoac lam nhiém vu xudt/nhap hofc 1a byte dia chi cao cia bus dia chi 16-bit cho cde thiét ké cé bo nhd chung trinh ngoai hodc cdc thiét ké cd nhiéu hon 256 byte bo nhé dit ligu ngoai. Chuong 2 : Tom tat phan ong 2 @ 2.2.4 Port 3 Port 8 ( cde chan tif 10 dn 17 trén 8051 ) c6 2 cong dung. Khi khéng hoat déng xudt/nhdp, ede chan cia port 8 c6 nhiéu chic nang riéng ( méi chan cé chifc nang riéng ién quan dén cde dic trung cu thé cilia 8051 ) Bang 2.2 duéi day cho ta chic nang ciia cdc chan cia port 3 va 2 chan P1.0, P1.1 cua port 1 Bit Tén Djachibit Chic nang P30 RxD BOH Chan nhan dat liéu cia port néi tiép , Pal TD BIH Chan phat dit ligu cia port néi tiép P3.2 INTO B2H Ngo vao ngat ngoai O pad INTL B3H Ngé vao ngt ngoai 1 P34 TO BaH Ngo vao ciia bé dinh thai/dém 0 P35 (Tl BSH Ngo vac etia b dinh thai/dém 1 P36 WR Be6H Diéu khién ghi bé nhé dif liéu ngoai P3.7 RD B7H Diéu khién doc bé nhé di liéu Lay PLO 12 90H Ngé vio cila bé dinh thai/dém 2 Pll T2EX 91H Nap lai/thu nhén cia _bé djnh thoi 2 Bang 2.2 : Chute nang cilia cdc chan ciia port 3 va port 1 2.2.5 Chan cho phép b6é nhé chifong trinh PSEN 8051 cung cap cho ta 4 tin hiéu diéu khién bus. Tin higu cho phép bo nhé chuong trinh P: ( program store enable ) la tin hiéu xudt trén trén chan 29. Day la tin hiéu diéu khién cho phép ta truy xuat bo nhé chuong trinh ngoai. Chan nay thudng néi véi chan cho phép xudt OF ( output enable ) cia EPROM ( hoc ROM ) dé cho phép doc cac byte lénh. Tin hiéu PSEN @ logic 0 trong suét thai gian tim-nap lénh. Cac ma nhj phan cia chuong trinh hay opcode ( ma thao tac ) duge doc tir EP- ROM, qua bus dif ligu va duge chét vao thanh ghi Jénh IR eta 8051 dé duge gidi ma. Khi thyc thi mét chuong trinh chita ¢ ROM néi logic khong tich cue ( logic 1 ). SS a PSEN duge duy tri ¢ Mee Ho vi diéu khién 8051 2.2.6 Chan cho phép chét dia chi ALE 8051 sii dung chén 30, chan xudt tin higu cho phép chét dia chi ALE ( address latch enable ) dé gidi da hgp ( demultiplexing ) bus di ligu va bus dia chi. Khi port 0 duge su dung lam bus dia chi/dir ligu da hop, chan ALE xudt tin hiéu dé chét dia chi ( byte thap ciia dia chi 16-bit ) vao mot thanh ghi ngoai trong sudt % dau ciia chu ky bd nhé ( memory cycle }. Sau bhi diéu nay da duge thyc hién, ede chin cia port 0 sé xudt¥nhap dir lieu hop hé trong sudt % thi hai cia chu ky bé nhé. Tin higu ALE 6 tdn sé bing 1/6 tan sd cia mach dao dong bén trong chip vi diéu khién va c6 thé duge ding lam xung clock cho phan cén lai cua hé théng. Néu mach dao dong cé tan sé 12 MHz, tin hiéu ALE c6 tan sé 2 MHz. Ngoai he duy nhat la trong théi gian thuc thi Jenh MOVX, mot xung ALE sé bj bé qua ( xem hinh 2.10 ). Chan ALE con duge ding dé nhan xung ngo vao lap trinh cho EPROM tren chip adi véi cdc phién ban cia 8051 cé EPROM nay. \/ 7 Chan truy xudt ngoai Ngo vao nay ( chan 31 ) c6é thé duge néi vei 5 V ( logic 1 ) hoac vdi GND ( logic 0 ). Néu chan nay néj lén_5 V, 8051/8052 thuc thi chyong << oe i trinh trong ROM néi ( chuong trinh nho hon 4K/8K ). Néu chan nay néi voi GND+(Va chan » cig ¢ logic 0 ), chuong trinh can thuc thi chuta ba whe agen ‘DSi vi 8031/8082 chair TA-phéi-dtogic dw ching khéng’té bo nhé chuong trinh trén chip. Néu chan EA 6 logic 0 déi vai 8051/8052, ROM néi bén trong chip duge vé hiéu héa va chuong trinh can thyc thi chtta 6 EPROM bén ngoai | Cac phién bin EPROM ciia 8051 con sti dung chan EA lam chan 0 \ phan dién dp cp dién 21V ( Vyp ) cho viée lap trinh EPROM néi ( nap VEPROM ). 2.2.8 Chin RESET ( RST) Ngd vao RST ( chin 9 ) 1A ngd vao x6a chinh ( master reset ) cua 8051 ding dé thiét lap lai trang thai ban dau cho hé théng hay gai tt la reset he théng. Khi ngo vao nay duge treo logic 1 ti thiéu hai chu ky may, cdc thanh ghi bén trong ciia 8051 duge nap cac gid trj thich hop cho viée khdi dong lai hé théng ( xem muc 2.8 ). 2.2.9 Cac chan XTALI va XTAL2 Nhu duge vé trén hinh 2.2, mach dao dang bén trong chip 8051 duce ghép véi thach anh bén ngoai ¢ hai chan XTALI va XTAL2 ( chan 18 va Chuong 2: Tém tat phan cing 23 & 19 ). Cdc tu 6n dinh cing duge yéu cau nhu trén hinh nay. Tan sé danh dinh cia thach anh la 12 MHz cho hau hét ede chip cia ho MCS-51 ( 80C31BH-1 sit dung thach anh 16 MHz bén trong, mach dao dong trong chip khéng cdn thach anh bén ngoai ). O hinh 2.3, i nguén xung clock TTL cé thé duge néi vdi cde chan XTAL1 va XTAL2., ‘8051 ren " Oscillator XTAL Sf rane Hinh 2.3 8051 ghép véi mach dao déng TTL bén ngoai ‘TTL oscillator : mach dao dong TTL 2.3 CAU TRUC CUA PORT XUAT/NHAP So dé mach bén trong cho ede chan cia port xudt/nhap duge vé don gidn nhu ¢ hinh 2.4. Viée ghi dén 1 chan ctia port sé nap dit lieu vao bo chét cia port, ngé ra Q cua bé chét diéu khién mét transistor truéng va transistor nay ndi vdi chan cia port. Kha nang fanout ctia cde port 1, 2 va 314 4 tdi vi mach TTL loai Schottky céng suat thap ( LS ) con cia port 0 la 8 tai loai LS ( xem thém chi tiét 6 phy luc E ). Luu y 14 dign tré kéo lén ( pull up ) s® khong cé 6 port 0 Ctrit khi port nay tam nhiém vu ciia bus dja chi/dit liéu da hgp ), do vay mot dién trd kéo lén bén ngoai phai duge edn dén Gid tri cua dién tré nay phu thudc vao dac tinh ngé vao ctia thanh phan ghép néi véi chan cua port. ‘8051 internal bus Internal Port| pin Write fateh = to hateli % Open drain output for > Port 0 when operating as an 1/0 port Hinh 2.4 : Mach bén trong cita ede port xudt nhap Ho vi diéu khién 8051 8051 internal bus : bus ni cia 8051 Read latch : doc bg chot Internal pull up : kéo lén bén trong Read pin : doc chan port Port pin: chan port * Port latch : b@ chét cba port Write to latch : ghi vao bd chot G day ta thay c6 cd 2 kha nang : “doc bd chét” va “doc chan port”. Céc Iénh yéu edu thao téc doc-sifa-ghi ( nhu lénh CPL P1.5 ) doc bd chét dé trénh sy hiéu nhdm mic dién dp do su kién dong tai tang. Cac Ienh nhép 1 bit cia port (nhy MOV C, P15 ) doc chan port. Trong truéng hgp nay bé chét cia port phéi chia 1 néu khong FET sé duge kich bao hoa va diéu nay kéo ngé ra xuéng mic thap. Viée reset hé thong sé set tat cd cdc bé chét port, do vay cdc chan port od thé duge ding lam cdc ngo nhap ma kh6ng can phi set cdc b6 chét port mot cdch tuong minh. Tuy nhién néu mot bd chét port bi x6a ( nhu CLR_P1.5 ), chan port khéng thé lam RIVER ve tidy theo Ia ng nhap trir khi trude tién ta phdi set bo chét (nhu SETB P1.5 ). Hinh 2.4 khong trinh bay mach cho cde chife nang khdc cia cde port 0, 2 va 3. Khi cde chite nang khde duge sit dung, ede mach kich ngo ra duge chuyén dén mét dia chi néi ( port 2 ), dia chi/dir liéu ( port 0 ) hoac tin higu diéu khién ( port 3 ) tung tng. 2.4 TO CHUC BO NHG Hau hét cdc b@ vi xit ly ( CPU ) déu cé khong gian nhé chung cho di ligu va chuong trinh. Diéu nay cing hgp ly vi cde chuong trinh thuéng duge lu trén dia va duge nap vao RAM dé thyc thi; vay thi ca hai, di va chuong trinh, déu luu tr trong RAM. Cée chip vi diéu khién hiém khi duge sit dung gidng nhu cde CPU trong cdc hé mdy tinh, thay vao dé chung duge ding lam thanh phan trung tam trong cdc thiét ké hudng diéu khién, trong dé bé nhé cé dung lugng gidi han, khong cé 6 dia va hé diéu hanh. Chuong trinh diéu khién phai thuéng tri trong ROM. Do ly do trén, 8051 cé khéng gian bé nh¢ riéng cho chuong trinh va dir ligu. Nhu ta da thay trong bang 2.1 & muc 2.1, cd 2 bé nhé chuong dit ligu. NV trinh va di liu déu dat bén trong chip, tuy nhién ta cd thé mé r6ng bd nhé chuong trinh va bé nhé dif ligu bing cdch sit dung ede chip nhé ben ngoai véi dung lugng téi da 1a 64 K cho bé nhé chuong trinh ( hay bé nhé ma ) va 64 K cho bé ahd dif ligu. — _ _ _ —__ I —_- Yrv__—— Chuang 2: Tém tat phan cing Bg nhé néi trong chip bao gém ROM ( chi cé ¢ 8051/8052 ) va RAM RAM trén chip bao gom ving RAM da chic nang ( nhiéu cong dung ). ving RAM vdi ting bit duoc dinh dia chi ( goi tat 1a ving RAM dinh dja chi bit ), edic day ( bank ) thanh ghi va cdc thanh ghi chic nang dac biét SFR ( special function register ). Hai dac tinh dang luu ¥ la = (a) cdc thanh ghi va cde port xudt/nhap duge dinh dja chi theo kiéu dniXxa_be nhd (memory mapped ) va duge truy xuat nhu rong bé nhs. — ib) ving stack thuting tri trong RAM trén chip ( RAM néi ) thay vi é trong RAM ngoai nhvi déi vdi cdc bé vi xit ly Hinh 2.5 tom tt cdc khong gian nhé cho chip 8031 khong e6 ROM noi, khéng trinh bay chi tiét vé bé nhé dif liéu trén chip ( ede cai tien cla 8032/8052 sé dugc tom tat sau ). Hinh 2.6 cho ta chi tiét cia bo nhé dir liéu trén chip. Ta thay ring khong gian nhé néi nay duge chia thanh : cdc day thanh ghi ( 00H AFH ), ving RAM dinh dia chi bit ( 20H + 2FH ), ving RAM da muc dich (30H + 7FH ) va cdc thanh ghi chic ndng dac biét ( 80H + FFH ). 1 epee rere ' ' cote Data t ' enabled enobleg ! via PSEN vio RD i ana Wee { TT ' ' 0 1 o000 000 On-chip! External Hinh 2.5 : Tém tdt cdc khéng gian nhé cia chip 8031 16 nhé trén chip External memory : bé nhé ngoai On-chip memory : Code memory : bé nhé cheng trinh (nd ) Enabled via PSEN : duge cho phép bai PS Data memory : bé nhé dit liéu Enabled via RD and WR : duge cho phép bsi RD va WR B26 Ho vi diéu khién 8051 2.4.1 Vang RAM da muc dich Mac di hinh 2.6 trinh bay ving RAM da muc dich cé 80 byte dat ¢ dja chi tir 30H dén 7FH, bén dudi ving nay tit dia chi OOH dén 2FH la ving nhé cé thé duge sit dung tuong tu ( mac di cdc vi tri nhé nay c6 cde muc dich khdc nhu sé thdo luan duéi day ). Bat ky vi tri nhé nao trong ving RAM da muc dich déu cé thé duge truy xudt tu do bing cach sit dung ede kiéu dinh dia chi tryc tiép hodc gidn ti€p. Thi du dé doc ndi dung tai dia chi 5FH cia RAM néi vao thanh chia A, ta ding lénh sau : MOV A, 5FH Lenh trén di chuyén 1 byte dit ligu bing each ding kiéu dink dja chi tryc tigp 46 xdc dinh vi tri nguén ( nghia 1A dia chi 5FH ). Dich cia dir ligu duge xde dinh r6 rang trong opcode ciia lénh 14 thanh chifa A ( cde kiéu dinh dia chi sé duge dé c4p trong chuong 3 ), se ome stdmee __Bitattres diy Bin atc » FREER] » ye = © FREE EREBG ace Et) oo TR RTAADT rw we _| as EET pelea 1 » FFE ae Pafolro oo Baga aeaapal vs 20 [efor Sesser xc enfoxfes oo REE RST) ve 2s rfpelof| EET ZB] om av Papas v2 z| | Gama —} sar Z| 2 efsfeobefaitabps] vx (roeonfooeafeopa] scox £ | 2 be|stofsfo ee cheap oo RRR RPE » S| ae (Brees spoof as fehebopchahabshal © sy [antaiaean] 1m a Giapehspepefehr fo) ac [Maxntatienane —] 145 21 Pexpeloopcfanfospafoe! a | “ert aamnatie TL1 a» forfoohfsabsfeofrfa) = an [Mearmcumesane | a w 7 5 | Cittcaatteeate 600 w Sank v6 Re pO]sclerpeapo pa] toon wv = «feb aaareabe cone w sage oF a » & (eevee oa 2 o. | Bintegaer 7], 8 ” to | borbeton? » fl Ba] ran SPECIAC FUNCTION REGISTERS Hinh 2.6 : Bo nhé dit liéu trén chip 8051 Chuong 2 : Tém tat phan cing 27 Byte address, bit address : dia chi byte, dia chi bit General purpose RAM : ving RAM da mue dich Bank : day . Default register bank for RO — R7 : day thanh ghi mac dinh RO — R7 Special function registers : cde thanh ghi chic ning dac biét Not bit addressable : khong dinh dia chi bit Vang RAM da muc dich con cé thé duge truy xudt bang cach ding kiéu dinh dia chi gidn tid; ec thanh ghi RO, RI. Thi du hai lénh sau thyc hién cing’cong viée nhu lénh 6 thi du trén : MOV Ro, #5FH MOV A, @RO Lénh dau tién sit dung kiéu dinh dja chi tic thoi di chuyén gid tri 5FH vao thanh ghi RO, lénh tiép theo sit dung kiéu dinh dja chi gidn tiép di chuyén dit ligu #13 béi RO vao thanh chifa A. 2.4.2 Vang RAM dinh dja chi bit 8051 chia 210 vj tri bit dugc dinh dja chi trong dé 128 bit chifa trong céc byte & dia chi tir 20H dén 2FH [ 16 byte x 8 bit = 128 bit J va phan con lai chifa trong cdc thanh ghi chiic nding dac biét. Y tudng truy xudt cdc bit riéng ré thong qua phan mém la mét dac tring manh cia hau hét ede bo vi diéu khién. Cac bit c6 thé duge set, xéa, AND, OR, v.v.. bing mét lénh. Hau hét cdc bé vi xif ly yeu cdu mot chuéi lenh doc-sita-ghi dé nhan duge cing mét két qua. Ngodi ra 8051 con cé cde port xudt/nhap cé thé djnh dia chi timg bit, diéu nay lam don gidn viéc giao tiép bing phan mém véi cdc thiét bj xudt/nhap don bit. Nhu vita dé cp 4 trén, 8051 c6 128 vj tri bit duge dinh dia chi va cé nhiéu mue dich 6 cdc byte cé dja chi tir 20H dén 2FH. Céc dja chi nay duge truy xudt nhu la cdc byte hay cdc bit tiy vao lénh cy thé. Thi dy dé set bit 67H bang 1 ta ding lénh sau : Sy SETB 67H ae chigu hinh 2.6 ta thay bit é dia chi 67H la bite y nghia ln nhat cua byte aja chi 2CH. Lénh vita néu trén khong anh hudng dén cdc bit khdc trong byte nay. Hau hét cdc bé vi xit ly muén thyc hién cong viée nhu trén phdi ding cdc lénh cé dang tuong ty hy sau : Von A, 2CH 3 doc cd byte ORL A, #10000000B —; set bit 6 ¥ nghia ln nhat MOV 2CH, A ; ghi tré lai cd byte 2s Ho vi diéu khién 8051 2.4.3 Cade day thanh ghi 82 vi tri thap nhat cua bo nhé noi chifa cdée-day thanh ghi. Cac lénh cua 8051 hé tro 8 thanh ghi tix RO dén R7 thudc day 0 ( bank 0 }. Day la day mac dinh sau khi reset _hé théng. Cac thanh ghi nay ¢ cde dia chi tit 00H dén 07H. Lenh sau day doc noi dung tai dja chi 05H vao thanh aia — MOV A, RS Lénh nay la lénb 1-byte ding kiéu-dinh dia'chi thanh ghi. Di nhién thao tac tl c6 thé duge thuc hién véi 1 lénh 2-byte bing cach uc tiép dimg kiéu Gobdinch MO" Cac lenh st dung cdc thanh ghi tit RO dén R7 1a cdc lenh ngdn va thue hign nhanh hon so véi cdc enh tong duong su dung kiéu dinh dia chi truc tiép. Cac gid tri di liéu thuéng duge sit dung nén cha ¢ mot trong cdc thanh ghi nay. Day thanh ghi dang duge sit dung duge goi 1 ay thanh shi ti tich cue. Day thanh ghi tich cue v6 thé duge thay déi doi bing cfich thay i cde bit_chon-day_trong tis trang thdi chu ong _trinh, 1h_ PSW { se dé cap sau ). Gid sw rang day thank ghi 3 ( bank 3 ) tich cuc, enh sau day ghi ndi dung cua thanh chifa A vio vj tri 18H : MOV Ro, A ¥ tudng “cde day thanh ghi” cho phép “chuyén déi ngif canh” nhanh va cé hiéu qua ¢ nhimg noi ma cde phdn riéng ré cia phdn mém si dung mot tap thanh ghi riéng, déc lap vdi cde phan khac cua phan mém. 2.5 CAC THANH GHi CHUC NANG DAC BIBT ( SFR) Cée thank ghi néi cia hau hét esc bg vi xis Iy déu duge tay xust v6 sow mot td h. Thi du lénh INCA ctia chip 6809 tang noi dung cua thanh chia A bdi 1. Thao tac duge xde dinh ré rang trong opcode cia lénh. Viée truy xuat cdc thanh ghi cing duge sit dung trén 8051. Léenh INC A thuc hién cing céng viée tren. Cac thanh ghi néj cia 8051 duge cu hinh thanh mét phan cia RAM trén chip, do vay mai mot thanh ghi cing cé mot dia chi, Diéu nay hgp 3¥ vdi 8051 vi chip nay cé rat nhiéu thanh ghi. Cang nhu céc thanh ghi tir RO dén R7, ta cé 21 thaph ghi chic ning dac biét SFR chiém phan trén cia RAM néi tir dja chi 80H dén FFH ( xem hinh 2.6 ) eae Luu ng phai tat « dja chi tir 80h dén FFH déu duge dinh nghia ma chi cé 21 dia chi duge dinh nghia { 26 trén 8032/8052 } Chuong 2 : Tém t&ét phan cing 20 @ Thanh chia A 6 thé duge truy xudt ro rang nhu duge minh hoa trong cdc thi du 6 cdc phan trén. Hau hét cde thanh ghi chic nang dac bist duge truy xudt bing kiéu dinh dia chi truc tiép. Trong hinh 2.6 ta can Try Ta mot so thanh ghi chic nang dac biet dugc dinh dia chi ting bit va dinh dja chi ting byte. Thi du ta cé lénh sau: SETB 0EOH sé set bit 0 cda thanh chia A lén 1, cdc bit khde ctia thanh chia khong thay 46i. Ta nhén thay rang tai dia chi EOH cé thé la : dia chi byte cho cd thanh chia va dia chi bit cua bit cé y nghia thap nhat trong thanh cmia. Vi lénh SETB thao tic trén cde bit va khong thao tée trén cde byte, chi cé bit duge dinh dia chi bj anh huéng. Luu'y 1a cdc bit d dinh dja chi trong mot thanh ghi chic nang dac biét c6 5 bit cao cla dia chi gidng nhau cho tat ed cdc bit cia thanh ghi nay. Lay thi du port 1 cé “Gia chi byte 1a 90H ( hay 100100008 ) V8 cae Bit trong port nay c6 cde dja chi tit 90H tdi 97H hay 10010xxxB. Tix trang thdi chuong trinh PSW ( program status word ) sé duge thdo ludn chi tiét trong muc sau. Cac thanh ghi chic nang dc biét khde ciing duge gidi thiéu vin tat, cdc chi tiét vé chiing sé duge dé cAp trong ede chudng tiép theo. 2.8.1 Tw trang théi chuong trinh PSW Bit Ky higu Diachi M6 ia bit Psw.7 CY D7H Ce nh PSW.6 = AC Dé6H Ce nhé phy PSW.5. FO DsH cro Psw.4 [ RSi DAH Chon day thanh ghi ( bit 1) Psw. | RSO D3H Chon day thanh ghi ( bit 0 ) 00 = bank 0 : dia chi tit OOH dén 07H 1 = bank 1: dia chi tt 08H dén OFH 10 = bank 2: dia chi tir 10H dén 17H 11 = bank 3; dia chi tir 18H dén 1FH PsW2 OV D2H Ca tran PSWi - Din Dy tra Pswo PP DoH Ce kiém tra chin 18 Bang 2.8 : Thanh ghi PSW 20 Ho vi diéu khién 8051 PSW cé dja chi 1a DOH chia ede bit trang thai e6 chite nang duge tém tat trong bang 2.3. Tung bit ciia PSW duge khdo sdt duéi day : C8 nhé C& nhé CY ( carry flag ) cé 2 céng dung. Cong dung truyén thong trong cdc phép todn sé hoc la dude set bing 1 néu cd sé nhé tit phép cong bit 7 hoac cé sé mugn mang dén bit 7. Thi du néu thanh chifa A c6 nai dung la FFH, lénh : ADD A, #1 sé lam cho thanh chifa A cé ni dung 1a 00H va cd CY trong PSW duge sct bing 1. Cé nhé CY cén 1a thanh chifa logic duge dang nhu mét thanh bit déi vdi cdc lenh-logic thao tae trén cic bit. Lay thi du lénh sau AND bit 25H véi cd nhé CY va dat két qué tré vé co nhd : ANL C, 25H __ ; AND bit 6 dia chi 25H véi cd nho Va nhé pha Khi cong ede gid tri BCD, c& nhé phu AC ( auxiliary carry flag ) dugc set bing 1 néu cé mét sé nhd duve tao ra tit bit 3 chuyén sang bit 4 hoac neu két qua trong dé-cdt thap nim trong tam tit OAH dén OFH. Néu cdc git tri duge cong 1a gid tri BCD, lenh cong phdi duge tiép theo béi lenh DA A (hiéu chinh thap phan thanh chia A ) dé dua cdc két qué ln hon 9 vé gid tri ding. cao Day la ¢& e6 nhiéu muc dich danh cho ede ting dung cia ngudi lap trinh. Cac bit chen day thanh ghi Cée bit chon day thanh ghi RSO, RS1 ding dé xéc dinh day thanh ghi tich cue. Cac bit nay duge xéa sau khi c6 thao tae reset hé thong va doi mii logic bai phan mém_khi can. Thi du ba Iénh sau cho phép day thanh ghi 3 ( bank 3 ) tich cyc, sau dé di chuyén ndi dung cia R7 ( dja chi byte 1FH ) vao thanh chifa A + SETB RS1 SETB RSO MOV A, R7 Khi doan chuong trinh trén duge dich, cdc dia chi bit sé thay thé cho cde ky hiéu RSO va RS1, vay thi lenh SETB RSI tuong duong vdi lenh SETB OD4H. Chuong 2: Tém tét phan cing C@ tran Cé tran OV ( overflow flag ) duge set bang 1 sau phép todn cong hoac trif néu cé xuat hién mét tran sé hoe. Khi cdc sé c6 dau duge cong hoac duoc tri, phan mém c6 thé kiém tra bit tran OV dé xac dinh xem két qua c6 nam trong tam hay khong. Voi phép cong cdc s6 khong dau, c& trian OV duge bé qua. Két qui Ién hon +128 hoac nho hon ~127 sé set c&é OV bang 1. Thi du phép cong sau day gay ra J tran va set cé OV trong PSW : SO hex : oF Sé thap phan : 15 +18 +127 8E 142 8EH biéu dién sé 4m ~116, nhu vay khong ding voi két qua mong muén 1a 142 nén cd OV duge set bang 1 Co chén 1é Bit chdn 1é P tu dong duge set bing 1 hay xa bing 0 6 méi chu ky indy dé thiét 4p kiém tra chan cho thanh chifa A. Sé cdc bit 1 trong thanh chita céng vdi bit P luén Iuén la s6 chan. Thi dy neu thanh chia 6 noi dung 101011018, bit P sé la 1 dé cé sé bit 1 la 6. Bit chan le duge sit dung nhiéu dé ket hop vai ede chuong trinh xuat/nhap ni tiép trudce khi truyén dé lidu hoac dé kiém tra chan le sau khi nhan dit liéu 2.5.2 Thanh ghi B Thanh ghi B 6 dja chi FOH duge dimg chung véi thanh chia A trong ce phép todn nhan, chia. Lenh MUL AB nhan 2 s6-8-bit khong dau chifa trong A va B va chtfa két qua 16-bit vao cap thanh ghi B:A ( thanh chita A cat byte thap va thanh ghi B cat byte cao ). Lenh chia DIV AB chia A bdi B. thuong s6 cat trong thanh chia A va du sé cat trong thanh ghi B. Thanh ghi B cdn duge xu ly nhw 1 thanh ghi nhdp. Cac bit duge dinh dja chi cia thanh ghi B cé dia chi tir FOH dén F7H. 2.5.3 Con tré stack Con tré stack SP ( stack pointer ) 14 1 thank ghi 8-bit 6 dia chi 81H. SP chita dio chi ciia dit Jiguhign dang ¢_dinh cia stack. Cac lenh lin quan dén stack bao gém lénh cat div lieu vao Stack va Téuh lay dit lieu ra Kh6i stack. Viée cat vao stack lam_ting SP tric khi ghi dit li¢u va viec a3 ra khdi stack sé gidm SP. Viing stack ela 8051 duge gid! trong RAM néi.va duge gidi han dén cdc dja chi truy xuat duge béi kiéu dinh Bae Ho vi diéu khién 8051 dia chi gidn tidp. Vang RAM ni cé 128 byte trén 8031/8051 hode 256 byte trén 8032/8052; néu ta khéi dong SP dé bit dau ving stack 6 dja chi 60H bang lénh : MOV SP, #5FH ving stack duge gidi han 14 32 byte trén 8031/8051 vi dja chi cao nhat cia RAM trén chip 14 7FH. Gid trj SFH duge ding 6 day vi SP tang len 60H trudc khi thao tc cat vao stack ddu tién duge thye thi. Néu ta khéng khdi dng SP, ndi dung mac djnh cia thanh ghi nay 1a 07H nhim duy tri sy tuong thich véi 8048, b6 vi diéu khién tién nhiém cia 8051. Két qua 1a thao tac cat vao stack ddu tién sé hm dit ligu vo vi tri nhé ¢6 dja chi 08H. Nhu vay néu phan mém ting dung khong khéi dong SP, day thanh ghi 1 ( va cé le 2 va-3 ) khong cdn hgp 1é vi ving nay duge sit dung lam stack. Céc lgnh PUSH va POP sé cat dit ligu vao stack va lay dit liu tix stack, cdc lenh goi chuong trinh con ( ACALL, LCALL ) va lénh tré vé ( RET, RETI ) ciing cat va phuc héi néi dung cia bé dém chuong trinh PC ( program counter ). 2.5.4 Con tré da ligéu DPTR Con tré dit isu DPTR ( data pointer ) duge ding dé truy xudt bo nhé chuong trinh ngodi hoac bé nhé dit liéu ngoai. DPTR la 1 thanh ghi 16- bit c6 dia chi 14 82H ( DPL, byte thdp ) va 83H ( DPH, byte cao ). Ba lénh sau day ghi 55H vao RAM ngodi ¢ dia ci:i 1000H : MOV A, 55H } MOV DPTR, #1000H MOV @DPTR, A Lenh dau tién sit dung kiéu dink dia chi tuc thoi dé nap hing dit ligu (58H vao thanh chia A. Lénh thit hai cing stt dung kiéu dinh dia chi tite thdi, lan nay nap hang dia chi 16-bit 1000H cho con tré dit liéu DPTR. Lénh thé ba sit dung kiéw dink dia chi gidn tiép di chuyén gid tri 55H chia trong thanh chia A dén RAM ngoai tai dja chi chita trong DPTR ( 1000H ). ee 2.5.5 Cac thanh ghi port Cée port xudt nh4p cia 8051 bao gém port 0 tai dia chi 80K, port 1 tai dia chi 90H, port 2 tai dja chi AOH va port 3 tai dia chi BOH. Cac port 0, 2 va 3 khéng duge ding dé xudt/nhép néu ta sit dung thém bé nhé ngoai hoc néu cé mat sé dac tinh dic biét eka 8052 duge sit dung ( nhu 1a ngat, port néi tiép, ... ). P1.2 dén P1.7, nguge lai, luén luén 1a cdc dutng xudt/nhap da muc dich hop le. Chuyng 2: Tém tt phan cing 33 Tat cd port déu duse dinh dia chi i cung céip cdc kha nang giao tiép manh. Thi du ta cé mét déng co ni qua mét cudn day va jt mach kich ding transistor ndi téi bit 7 cua port 1, dong co cé thé ngung hay chay chi nhé vao mét lénh don cia 8051 : SETB P1.7 lam dong co chay va CLR P17 lam dong co ngung. Cac lénh trén sit dung todn tit . ( dot ) 48 dinh dia chi 1 bit trong 1 byte, cho phép dinh dia chi timg bit. ‘Trinh dich hdp ngi thuc hién bién déi dang ky hiéu thanh dia chi thye té, nghia la hai Jénh sau tuong duong : CLR PL7 CLR 97H Viée sit dung cdc ky hiéu dugc dinh nghia truéc ( tién dinh nghia ) cia trinh djch hgp ngit sé dugc thdo ludn chi tiét trong cdc tai liéu vé lap trinh hgp ngit trén ho MCS-51 hode 6 chuong 7. Thi du sau day khdo sit vide giao tiép véi 1 thiét bi cd bit trang théi goi la BUSY, bit nay duge set bing 1 khi thiét bi dang ban va duge xéa khi thiét bj da siin sang. Néu BUSY duge n6i v6i bit 5 cia Port 1, vong lap sau day duge ding dé ché cho dén khi thiét bi sin sang : WAIT: JB P1.5, WAIT i Lénh trén 06 nghia 18 néu bit P15 duge set, nhdy dén nhain WAIT ( cling c6 nghia 1a nhay vé va ném tra Man nffa ). 25.6 Cac thanh ghi djnh thi 8051 c6 2 bo dém/djnh théi ( timer/counter ) 16-bit dé dinh cdc Khong thai gian hode dé dém cdc sy kin. BO dinh théi 0 6 dja chi 8AH ( TLO, byte thap ) va 8CH ( THO, byte cao }; be dinh thai 1 <6 dia , chi 8BH ( TL1, byte théip ) va 8DH ( TH, byte cao ). Hoat dong cia bé dinh théi duge thiét lap bdi thanh ghi ché dé dinh thai TMOD ( timer mode register ) d dia chi 89H va thanh ghi diéu khién dink thai TCON ( timer control register) dia chi 88H. Chi 6 TCON duge dinh dia chi ting bit. _ Cae dinh thai sé duge thdo ludn chi tiét sau. Ass Ho vi diéu khién 8051 2.5.7 Cac thanh ghi cua port néitié} Bén trong 8051 cé mét port néi tiép dé truyén thong véi cde thiét bi néi tiép nhu cdc thiét bi dau cudi hoac modem, hoac dé giao tiép vdi cdc IC khde c6 mach giao tiép néi tiép ( uhw cdc thanh ghi dich chang han ). Mot thanh ghi duge goi la bo dém dif liéu néi tiép SBUF ( serial data buffer ) é dia chi 99H luu gitr dir ligu truyén di va du ligu nhan vé. Viee ghi lén SBUF sé nap dit liéu dé truyén va viée doc SBUF sé lay dit ligu da nhan duge Cae ché d@ hoat dong khac nhau duge lap trinh théng qua thanh ghi diéu khién port néi tiép SCON ( serial port control register ) 6 dia chi 98H. thanh ghi nay duge djnh dja chi timg bit. Hoat: dong chi tiét cia port néi tiép sé mé ta sau 2.5.8 Cac thanh ghi ngét 8051 cd mét cau tric ngdt vdi 2 mic wu tién va 5 nguyén nhan ngait. (5 source, 2 priority leve) interrupt structure ). Cac ngdt bj vé hiéu héa sau khi reset hé théng va sau dé duge cho phép bing cach ghi vao thanh ghi cho phép ngat IE ( interrupt enable register ) 6 dia chi ASH. Mute wu tien ngdt duge thist l4p qua thanh ghi w tién ngdt IP ( interrupt priority register ) é dja chi B8H. Ca 2 thanh ghi nay déu duge dinh dia chi ting bit Cie ngdt sé duge dé cap chi tiét sau. 2.5.9 Thanh ghi diéu khién nguén Thanh ghi diéu khién nguén PCON ( power control register ) ¢6 dia chi 87H chita cdc bit diéu khién duoc tém tat trong bang 2.4 Bit SMOD tang gap d6i toc do band cua port noi hoat dong ¢ cde ché dé 1, 2 hoae 3. Cac bit 4. duge dinh nghia. Céc bit 2 va 2 la cic bit co ing dung cua ngudi sit dung. ip khi port nay 5 va 6 cua PCON khong ja muc dich danh cho ede ~Cuie bit diéu khién nguén, nguén giam PD va nghi IDL, hgp le trong tat edehip thude ho MCS-51, nhung chi duse hién thye trong cde phién ban CMOS cia MCS-51. PCON khéng duge dinh dia chi bit. Ché dé nguén giam Lénh thiét lap bit PD bing 1 sé 1a lénh sau cing dug thyc thi truée khi di vao ché d6 nguén gidm. O ché dé nguén gidm : (1) mach dao dong trén chip ngimg hoat dong Chuong 2 : Tom t&t phan cing 35 (2) moi chic nang ngiing hoat dong (3) ngi dung cia RAM trén chip duge duy tri (4) cde chan port duy tri mde logic cia ching (5) ALE va PSEN duge git 6 muc thap. Chi ra khéi ché do nay bing cdch reset hé thong. Trong suét thdi gian ¢ ché dé ngudn giam, Vee co dién dp la 2V. Can phai gitt cho Vec khong thap hon sau khi dat duge ché dé nguén gidm va cn phue héi Vec = 5V t6i thiéu 10 chu ky dao dong truéc khi chan RST dat mic thap lan nifa. Bit Ky higu M6 ta 7 SMOD Bit tang gap déi téc do baud, bit nay khi set lam cho téc do baud tang 2 6 cde ché dé 1, 2 va 3 cia port ndi tiép 6 - Khong dinh nghia 3 - Khong dinh nghia 4 - Khong dinh nghia a GF1 Bit cd da mue dich 1 2 GFO Bit c da mue dich 2 a PD Ngudn gidm; thiét lap dé tich cyc ché do ngudn gidm, chi ra khéi ché do bing reset 0 IDL Ché dé nghi; thiét lap dé tich cue ché d6 nghi, chi ra khéi ché d@ bing 1 ngét hoae reset hé thong Bang 2.4: Thanh ghi PCON Ché d6 nghi Lenh thiét lap bit IDL bang 1 sé la lenh sau cing duge thye thi “truée khi di vio ché dé nghi. G ché do nghi, tin hiéu clock noi duge khéa khéng cho dén CPU nhung khong khéa doi véi cde chic nang ngat, dinh thei va port néi tigp. Trang thai cua CPU duge duy tri va ndi dung cia tat cd cdc thanh ghi cing duge gitt khong déi dc chan port cing duge duy tri cde mic logic cua ching. ALE va duge gitt ¢ mifc cao. Ché dé nghi két thc bang cach cho phép ng&t hoac bang cach reset hé théng. Ca hai cach vita néu déu xéa bit IDL. ~ —anbeeepgiemmemantiae + We Ho vi diéu khién 8051 2.6 BO NHG NGOAI Céc bé vi diéu khién cén cé kha nding mé rong céc tai nguyén trén chip ( ’8 nhé, 1/0, v.v.. dé trénh hién tugng cé chai trong thiét ké. Cau tric cia MCS-51 cho ta khé nding mé rong khong gian bo nhé chuong trinh dén 64K va khéng gian bé nhé di ligu dén 64K. ROM va RAM ngoai duge thém vao khi edn. C&c IC giao tiép ngoai vi cing cé thé dugc thém vao dé mé rong kha nang xudt/nhap. Ching tré thanh 1 phan cia khéng gian bé nhé dit liéu ngoai bing cach sit dyng cdch dinh dja chi kiéu I/O dnh xa b6 nhé. Khi bé nhé ngodi duge sit dung, port 0 khong lam nhiém vu cia port xudt/nhép, port nay tré thanh bus dja chi ( AO - A7 ) va bus dit ligu ( DO D7 ) da hgp. Ngo ra ALE chét byte thap ciia dja chi ¢ thei diém bat ddu méi mot chu ky bé nhé ngoai. Port 2 thudng ( nhung khong phai luén luén ) duge ding lam byte cao ciia bus dia chi. Truéc khi thdo ludn cdc chi tiét cu thé vé cdc bus dia chi va di liéu da hop, y tudng téng quét duge trinh bay ¢ hinh 2.7. |} 17 exle-—$—$+ A0-A15, ‘Addcess bo.D7 Data (2) Nonnvultiplexed (24 pins) }-— Memory eye —-| ABALS Address 1) Multiplexed (16 pins) \ Hinh 2 Da hgp bus dja chi ( byte thé’p ) va bus di ligu (a) khong da hop ( 24 chan ) (b) da hgp ( 16 chan ) Memory cycle : chu ky bj nhé Address : dia chi Data : di ligu Nonmultiplexed : khong da hyp Multiplexed : da hyp Chuong 2: Tom t&t phan cting 37 Sdp xép khong da hgp sit dung 16 dudng dja chi va 8 duéng dit lieu, tong cong 24 dudng. Sip xép da hgp két hgp 8 dudng cua bus dir ligu va byte thap ctia bus dia chi, do vay ta chi cin 16 dudng. Viéc tiét kiem cdc chan cho phép ta déng géi bo vi diéu khién ho MCS-51 trong 1 vé 40 chan. Sdp xép da hop cé hoat dong nhu sau : trong % chu ky dau cia chu ky bo nhd, byte thap ciia dia chi duge cung cap bai port 0 va duge chét nhé tin higu ALE. Mach chét 74HC378 gitt cho byte thap ctia dia chi on- dinh trong cd chu ky bé nhé. Trong % sau cia chu ky bo nhé, port 0 duge sit dung lam bus dit ligu va dit liéu duge doc hay ghi. 2.6.1 Truy xudt bo nhé chuong trinh ngoai B@ nhé chuong trinh ngoai 1a bé nhé chi doc, duge cho phép bei tin higu PSEN. Khi cé 1 EPROM ngoai duge sit dung, ea hai port 0 va port 2 déu khong con 1a cde port xudt/nhap. Két néi phan eting vdi bo nhé ngoai EPROM duge trinh bay @ hinh 2.8 7aHIC373 ~ Hinh 2.8 : Truy xudt bé nhé chuong trinh ngoai Mét chu kj mdy ciia 8051 6 12 chu ky dao dong. Néu bé dao dong trén chip 6 tin sé 12 MHz, mét chu ky méy dai 1 4s. Trong 1 chu ky may dién hinh, ALE c6 2 xung va 2 byte ciia lenh-duge doc tir bo nhé chuong trinh ( néu lénh chi cé 1 byte, byte thit hai duge loai bé ). Gian dé thai gian cia chu ky may nay, duge goi la chu ky tim-nap lénh duge trinh bay 6 hinh 2.9. ' Ass Ho vi diéu khién 8051 [batt st 82 va ou 2 so} ss ) sy soy st vs [ea |e fea] ve fre | ex fea [os fe2 » FULL mt OS) 4) |p Hinh 2.9 : Gidn dé thdi gian cia chu ky tim-nap lénh 4 bé nhé ngoai One machine cycle : mot chu ky may Program counter high byte : byte cao cuia PC 2.6.2 Truy xudt bé nhé dw liéu ngoai Bé nh¢é di Liéu ngoai 1a bd mhé doc/ghi duge cho phép béi cde tin higu RD va WR6 ede chan P3.7 va P3.6. Lénh ding dé truy xudt bo nh di ligu ngoai 14 MOVX, str dung hoac con tré dif ligu 16-bit DPTR hoac RO, Ri lam thanh ghi chia dia chi. RAM cé thé giao tigp véi 8051 theo ciing cach nh EPROM ngoai tris duéng RD ni véi duing che phép xudt ( OF ) cia RAM va WR néi vdi dudng ghi (W) cia RAM. Céc két néi v6i bus dif ligu va bus dja chi gidng nhu EPROM. Bang cédch sit dung cdc port 0 va port 2 nhu 6 phan én, ta c6 1 dung lugng RAM ngoai lén dén 64 K-duge két néi véi 8051. Gién dé thdi gian cia thao téc doc dit ligu 6 bé nhé dit ligu ngoai duge trinh bay & hinh 2.10 cho lénh MOVX. A, @DPTR. Luu ¥ 18 cd 2_ xung ALE va_PSEN-duye bi qua ¢ ngi ma-xung_RD_cho phén dec RAM{— néu Iénh MOVX va RAM ngoai khéng bao gid duge ding, ede xung ALE luén cé tén 36 bling 1/6 tan sé cia mach dao dong J. Gidn dé thdi gian cia chu ky ghi ( lénh MOVX @DPTR, A ) cing tuong tu ngoai trit cdc xung WR d mtic thap va dit liéu duoc xudt ra 6 port 0(RD van 6 mic cao ). Chuong 2 : Tom tat phan citing p [p—emnenn ss [> tn ie I> [=| s|s[o[s|s|e] ip . .! | = Ke Ce A T tT 1 i rie {Ces {08) ED) Hinh 2.10 : Gidn dé thai gian cia 1anh MOVX One machine cycle : mot chu ky may Data pointer high byte : byte cao cia DPTR. External data in : nhdp dir ligu ti bd nhé ngoai Opcode : ma thao tae — Port 0 DO-D7 i Hinh 2.11 : Giao tiép véi 1 K RAM Bao Ho vi diéu khién 8051 Port 2 gidm bét. duge chite nang lam nhiém vu cung cap byte cao cia dia chi trong ede he thong téi thiéu thanh phan, hée thong khong ding bo nhé chuong trinh ngoai va chi co 1 dung Iveng nho bé nhé dit eu ngoai. Cac dia chi 8 bit cé thé truy xudt bo nhé dir ligu ngoai vdi cau hinh bé nhé nhé huéng trang ( page-oriented ). Néu cé nhiéu hon 1 trang 256-byte RAM, 1 vai bit tir port 2 ( hoae 1 port khdc ) c6 the chon 1 trang. Thi du vdi 1 RAM 1KB (nghia Ta 4 trang 256 byte ), ta cé thé kétnéi RAM nay vdi 8051 nhu ¢ hinh 2.11 Cée bit 0 va 1 cua port 2 phai dugc khéi dong dé chon 1 trang. réi lenh MOVX duge ding dé doc hoac ghi trén trang nay. Thi du ta gid su P2.0 = P2.1 = 0, ede lénh sau c6 thé ding dé doc cdc noi dung cua RAM ngoai ¢ dja chi 0050H vae thanh chia A : MOV RO, #50H MOVX A, @RO Dé doc ¢ dja chi cudi cing cia RAM nay, 03FFH, trang 3 duge chon nghia la ta phai set cho ede bit P2.0 va P2.1 bing 1. Chudi lénh sau duge dung : SETB P20 SETB P21 MOV RO, #0FFH MOVX A, @RO Mot dac trung ciia thiét ké nay la cdc bit tir 2 dén 7 cua port 2 khong con can lm bit dia chi nifa, cdc bit cdn lai nay cé thé sit dung cho myc fich xudt/nhp. 2.6.3 Gidi ma dia chi Néu cé nhiéu EPROM hoae nhiéu RAM hoac ca 2 giao tiép vdi 8051 ta cdn phai gidi ma dja chi. Viée gidi ma nay cing can cho-hau hét cde bé vi xit ly. __Thi dy néu cdc RAM va ROM 8 KB duge sit dung, dia chi phi duge gidi ma dé chon cdc IC nhé nay trén cdc gidi han 8 K : OOOOH ~ 1FFFH, 2000H ~ 3FFFH, Mot IC gidi ma dién hinh la 74HC138 duge ding véi cde ng ra duge néi vi ede ngo vao chon chip CS cia edc IC ahé nhu duge mé ta 6 hinh 2.12 cho mgt bé nhé 6 nhiéu EPROM 2764 ( 8K ) ya RAM 6264 ( 8K ). Can luu ¥ la do cde duéng cho phép riéng ré (PSEN cho b@ nhé ! Chuong 2 : Tém tat phan cing a @ chuong trinh, RD va WR cho bé nhé dif liéu ), 8051 c6 thé quan ly khéng gian nhé dén 64K cho bé nhé EPROM va 64K cho bo nhé RAM. if |_ [bor Fa OE 276s Woe axes EPROM we—]w ram (84 bytes (8H byten soare | aate foam is es kCIs8 aly cb Ae 7 AA 5 "3 i HT Hinh 2.12 : Gidi ma dia chi 2.6.4 Cdc khéng gian nhé chuong trinh va d@ ligu géi nhau Vi bé nhé chuong trinh 14 bé nhé chi doc, mét tinh huéng khé xt duge phat sinh trong qué trinh phat trién phan mém cho 8051. Lam thé di di ligu ngoai géi Ién nhau. Vi PSEN duge ding dé doc bé nhé chuong trinh va RD dugc ding dé doc bé nhé dit ligu, mot RAM co thé chiém khéng gian nhé chuong trinh va dif ligu bing edch néi chan C ra céng AND cé cde ngé vao la PSEN va RD. Mach trinh bay & hinh 2.13 cho phép IC RAM duge ghi nhy 1a b6 nhé dit ligu va duge doc nhu 1a b nhé chuong trinh hoac dit ligu. Vay thi mét chuong trinh cé thé duge nap vao RAM ( bing cach ghi vao Ho vi diéu khién 8051 RAM nhu 1a bé nh¢ dif ligu ) va duge thye thi (bang each truy xudt nhu bé nhé chuong trinh }. RAM al 1 a Hinh 2.13 : Géi 2 khéng giqn nhé ehuong trinh va dit liéu 2.7 CAC CAI TIEN CUA 8032 / 8052 Cée vi mach 8032 / 8052 ( va cde phién ban CMOS ) cé6 hai cai tién so véi 8081/8051. Mot la cé them 128 byte RAM trén chip tir dia chi 80H dén FFH. Diéu nay khong xung d6t véi cde thanh ghi chic nang dac biét (c6 cing dia chi ) vi 128 byte RAM thém vao chi cé thé truy xudt bang cach ding kiéu dinh dia chi gidn tiép. Mét lénh nhut sau : MOV A, OFOH di chuyén néi dung ctia thanh ghi B tdi thanh chifa A trén cdc IC cua ho MCS-51. Chui lénh : MOV Ro, #0FOH MOV A, @RO doc vao thanh ghi A noi dung tai dja chi FOH trén cdc IC 8032/8052 nhung khéng duge dinh nghia trén 8031/8052. To chic bo nhé noi cia 8032/8052 duge tém tat d hinh 2.14 _ eeu ' 5 ee | ee ert Teamtieet | byt > ae ont son! }S0H FH secon raed by dire fanetion oe and indirect Sana bytes addressing, Hinh 2.14 : Khong gian nhé n6i cisa 8032/8052 — —— ee Chuong 2 : Tém t&t phan cing Upper 128 bytes : 128 byte trén Lower 128 bytes : 128 byte dui Accessible by indirect addressing only : chi duge truy xudt bing kiéu dinh dja chi gidn tiép Accessible by direct addressing oaly : chi duge truy xudt bing kiéu dinh dia chi truc tigp Accessible by direct and indirect addressing : truy xudt bing kiéu dinh dia chi truc tiép va gidn tiép Thanh ghi Diachi M6 ta Dia chi bit T2CON C8H Diéu khién co RCAP2L CAH Nhén byte thép Khong RCAP2H —- CBH Nhan byte cao Khéng TL2 CCH Byte thép cia bé dinh thi 2 Khéng TH2 CDH Byte cao ciz b6 dinh thti2 © Khéng Bang 2.5 : Céc thanh ghi cia bé dinh thi 2 Cai tién thi 2 1a cé thém bé dinh théi 16-bit. BO dinh théi 2 nay duge lap trinh nhé vao 5 thanh ghi chic nang dic biét thém vao. Ching duge t6m tat trong bang 2.5 va sé duge mé ta chi tiét sau trong chuong 4 (hoat dng dinh thai ). 2.8 HOAT DONG RESET 8051 duge reset bing cdch gitt chan RST 6 mtic cao t u 2 chu may va sau dé chuyén vé mic thap. RST 06 thé duge tie dong bing tay hoae duge tdc dong khi cap nguén bing cdch ding mot mach RC nhu duge trinh bay é hinh 2.15. Trang thdi cia tat cd cdc thanh ghi sau khi reset hé thong duge tém tat trong bang 2.6. Quan trong nhat trong cdc thanh ghi nay cé lé la thanh ghi PC ( bo dém chuong trinh ), duge nap 0000H. Khi RST tré lai mic thap, viée thyc thi chuong trinh luén luén bat dau ¢ vi tri dau tién trong bé nhé chuong trinh: dia chi 0000H. N@i dung ctia RAM trén chip khong bi auh Thanh ghi Noi dung BO dém chuong trinh 0000H, ‘Thanh chia A 00H ‘Thanh ghi B 00H PSW 00H B44 8051 SP DPTR Port 0-3 ag IE Céc thanh ghi dinh thei SCON SBUF PCON ( HMOS ) PCON ( CMOS ) o7H 0000H FFH x«x00000B ( 8031/8051 ) xx000000B ( 8032/8052 ) 0xx00000B ( 8031/8051 ) 0x000000B ( 8032/8052 ) 00H ooH ooH OxxxxxxxB 0xxx0000B Bang 2.6 : Gid tri cia cdc thanh ghi sau khi reset hé théng 48 100 o Reset (b) Power-on reset Hinh 2.15 ; Hai mach ding reset hé théng (a) reset bang tay (b) reset khi cép nguén Reset : nuit nhi't reset Manual reset : reset bing tay Power-on reset: : reset khi céip nguén —— ) Absolute addressing : dinh dia chi tuyét déi ( thi dy : AJMP Long addressing : dinh dia chi dai ( thi du: LIMP ) Indexed addressing : dinh dia chi chi sé ( thi du: MOVC A, @A+PC ) as Ho vi diéu khién 8051 Mét so lénh dac biét lién quan dén 1 thanh ghi xdc dinh nao dé nh la thanh chita A, con tré dif ligu, .. khong cén cdc bit dia chi, ban than opcode ciia lenh 44 chi ra thanh ghi can thiét. Céc lénb dac biét lien quan dén thanh ghi nay tham chiéu aén thanh chifa bang ky hiéu “A ”, con tré dif ligu bing ky “ DPTR ”, bo dém chuong trinh bing ky hiéu “ PC”, cd nhé bing ky higu “C” va cap thanh ghi AB bing ky hiéu “ AB”. Lay thi du: INC DPTR la lénh 1-byte, lénh nay céng 1 vao néi dung cia con tré dit liéu 16-bit. Opcode cia lénh nay duge cho & phu luc C. 3.2.2 Dinh dia chi tre tiép Kiéu dinh dia chi tryc tiép duoc sit dung dé truy xudt cde bién nh hoac cdc thanh ghi tren chip. Mot byte thém vao tiép theo opcode ding dé xdc dinh dia chi ( xem hinh ). a xdc dinh dia Phy thuge vae bit c6 gid tri vi tri (hay trong sé ) cao cita dia chi tryc tiép, mt trong hai khong gian nhé trén chip duge chon. Khi bit 7 bing 0, dia chi truc tiép 6 trong tam tix 0 dén 127 ( OOH - 7FH ) va 128 byte thap cia RAM trén chip duge tham chiéu. Tat ed cdc port xudt/nhap va cdc thanh ghi chic nang dac biét, diéu khién, trang thdi dugc gan dia chi trong tam tit 128 dén 255 ( 80H — FFH ). Khi byte dia chi theo sau opcode cé néi dung nam trong gidi han nay ( vdi bit 7 bing 1 ), thanh ghi chic nang dac biét due truy xudt. Thi du port 0 va port 1 duge gan dia chi truc tiép 1a 80H va 90H. Ta khong nhat thiét phdi biét dja chi céa cdc thanh ghi nay, trinh dich hop ngit cho phép ta sit dung ma goi nhé viét tét dé hiéu nhu 1a “ PO ” cho port 0, “ TMOD ” cho thanh ghi ché d6 dinh thai ( timer mode register ) v.v.. Lénh sau day 18 mét thi dy cho kiéu dinh dia chi tryc ss MOV P1,A Ienh nay chuyén ngi dung cia thanh chifa A vao port 1. Dia chi truc tiép cia port 1 1a 90H duge xéc dinh béi trinh dich hop ngir va trinh dich nay dat 90H vao byte 2 cia lénh. Nguén cia dt ligu, thanh chia, duge xdc dinh ro rang trong.opcode Bang cach si dung phu luc C, ta thay lénh via néu trén cé ma la: 10001001 = byte 1 : opcode 10010000 - byte 2: dia chi cia P1 ( 90H ) — Chuong 3 : Tom tat tap lenh 3.2.3 Dinh dia chi gidn tiép Lam cdch nao nh§n biét 1 bién kbi dia chi cia bién da duge xde dinh, duge tinh todn hoac duge sia déi trong khi mét chuong trinh dang chay ? Tinh huéng nay phat an khi ta quin Ay ee i tnt abd Len th chinh xdc hoac cdc chudi ky _ty. ace kiéu dinh aa chi thanh ghi hoac true tiép khéng sit dung duge cho cdc tinh hudng nay, do vay ta can cd cdc dia chi togn hang dugc biét trong théi gian hgp dich. Gidi phdp cia 8051 1a ding kiéu dinh dia chi gidn tiép. Cac thanh ghi RO va Rl cé thé hoat dng nhw la cdc con tré ( pointer ) va ndi dung ciia chiing chi ra dja chi trong RAM, noi ma dir ligu duge doc hay duge ghi. Bit 6 ¥ ap nhat ci xde dinh thanh ghi nao (‘RO hay Ri ) duge sit dung lam con tré ( xem hinh 3.1. ). Trong op ngif cia 8051, kiéu dinh dia chi gidn tiép duge nhdn biét nha vao ky tu @ dat truéc RO hoac R1. Lay thi du néu R1 chita 40H va dia chi 40H ciia bé nhé néi chita 55H, lénh : MOV A, @R1 nap 55H cho thanh chifa A. Ta cdn dén kiéu dinh dia chi gidn tiép khi ta_duyét cde vj tri lien E Thi du sau thuc hién viéc tun tu x6a RAM néi tir is bé nh Chi GOH adn TPR MOV Ro, #60H LOOP: MOV @Ro, #9 INC RO CINE Ro, #80H, LOOP (tiép tuc ) Lénh dau tién khéi dong RO véi ndi dung 1A 60H, dia chi bdt dau cua kh6i nhé trong RAM; lénh thit hai sir dung kiéu dinh dja chi tiep dé nap QOH cho vj tri dugc tré bdi RO; 1énh thit ba tang con tro ( RO) de tré dén dia chi tiép theo va lénh cuéi cing kiém tra con tro xem da két thtic khéi nhé chua. Viée kiém tra sit dung hing sé 80H thay vi la 7FH vi lénh tang xudt hién sav Jénh di chuyén. Diéu nay dam bdo vi tri nhé sau cing ( 7FH ) due ghi 00H trude khi két thic. 3.2.4 Dinh dia chi tive thdi Khi todn hang nguén la mét hing sé-thay vi 14 mét bién ( nghia 1a lénh sit dung 1-gid tri da biét truéc 6 thdi gian hgp dich ), hang so nay er 50 Ho vi diéu khién 8051 c6 thé dua vao lénh va day la byte dif liéu tte thai ( byte thém vao nay 06 gid St trudc ) (xem hinh 3.1.d ). Trong hgp ngit, cdc todn hang tic théi duge nhén biét nhé vao ky ty # dat truéc ching. Todn hang nay cé thé la mot hang s6 hoc, mét bién hoac mét biéu thtic sé hoc sit dung cdc hang 86, cdc ky hiéu va cdc todn tu. Trinh dich hgp ngi tinh gid tri va thay thé dit liu tic thdi vao trong Jenh, Thi du lenh : MOV A, #12 nap gid tri 12 ( OCH ) vao thanh chifa A. Tat cd cde lenh sit dung kiéu dink dja chi tife thai déu sit dung hing dit ligu 8-bit lam dif ligu tic thé Cé mét ngoai 1é khi ta khéi dong con fF dir ligu 16-bit DPTR, hang dia chi 16-bit duge cdn dén. Thi du : MOV DPTR, #8000H 1a mét lenh 3-byte, lénh nay nap hing dja chi 8000H vao con tré dif ligu DPTR. 3.2.5 Dinh dia chi tuong déi Kiéu dinh dja chi tuong déi chi duge sit dung cho cdc lénh nhay. Mot dia chi tuong déi ( hay cn goi 1a offset ) 1A mét gid trj 8-bit c6 ddu. Gid tri nay duge cong vdi be dém chuong trinh dé tao ra dia chi cia lénh tiép_theo can duge thyc thi. Do ta sit dung mét offset 8-bit cé dau, tam Shay dagegT han la 128 byte dén_127 byte. Byte dia chi tuong déi 1a byte thém vao tiép theo byte opcode cia lénh ( xem hinh 3.Le ). oe sou os oa at on Fe ag 5 Relative omer 2640 [80 MP 2oss ‘o108 4 from address 203F oust —]3 SRS Ooo wep —]3 ms ost: fad ae oa . oie a APE dion fae pSIMP exon sof] 9) fama, oor a ene ER aa fn cs eer | Oe Hinh 3. : Tinh offset cho kiéu dinh dia chi tuung déi (a) nhdy toi va ngifn (b) nhdy lai va ngdn Chuong 3 : Tom tat tap lénh a @ Short jump ahead in memory : nhdy téi va ngdn Short jump back in memory : nhdy fui va ngkn Relative offset from address 0102H is 5 : offsc! tuong déi tit dia chi 0102H la 5 Relative offset from address 2042H is -10 ( F6H ) : offset tuong déi tt dia chi 2042H 1a ~10 ( F6H ) Nhé vao phép cong, bé dém chuong trinh duge tang dén dia chi theo sau _lenh_nhdy; vay thi dia chi mdi lien quan dén lenh ké tiép, khong én quan dén dja chi cia Jénh nhdy ( xem hinh 3.2 ). Thong thudng chi tiét nay khéng lién quan dén ngudi l4p trinh do béi cde dich nhay thudng duge xic dinh bing cd4c nhan va trinh dich hop ngit s8 x4c dink offset tuong doi tuong ung. Thi du néu nhin THERE dat trude lénh é dja chi 1040H, lénh : SJMP THERE @ trong bé nhé tai dia chi 1000H va 1001H, trinh dich hop ngit sé gin offset tuong déi 1a 3EH cho byte 2 cia lénh ( 1002H + 3EH = 1040H_) Dinh dia chi tuong déi cé diém lgi 14 cung cap cho ta ma khong phu_ thugc vao vj tri ( vi cdc dia chi tuyét déi khong duge ding ), nhung lai c6 diém bat Tei Ta cde dich nhdy bi gidi han trong tam. 3.2.6 Dinh dja chi tuyét déi Kiéu dinh dja chi tuyét déi chi duge sit dung véi cdc lénh ACALL va AJMP. Day 1a cdc lénh 2-byte cho phép ré nhdnh chugng trinh trong trang 2K hién hanh cia bé nhé chuong trinh bang cdch cung cap 11 bit thap cia dja chi dich, trong dé 3 bit cao ( AB — A10 ) dua vao opcode va 8 bit thé’p ( AO - AT) thanh lap byte thi 2 cia lénh. ( xem hinh 3.1f ). ee yee 5 bit cao cia dia chi dich 1 5 bit cao hién hanh trong bé dém chuong trinh, do vay lénh theo sau lénh ré nhdnh va dich cia lénh ré nhanh phai & trong cang 1 trang 2K, bdi vi All — A15 khong thay déi ( xem hinh 3.3 ). Lay thi dy néu nhan THERE dat trude [enh 6 dja chi OF 46H, Jénh : AJMP THERE 6 trong bé nhé tai dja chi 0900H va 0901H, trinh dich hyp ngit s ma héa énh nhu sau: 11100001 = ~—_—sibyte 1 ( A10 ~ A8 + opcode ) 1000110 - ~—swbyte 2( A? - AO) (v) Cae bit duge gach dudi la 11 bit thép cia dja chi dich, OFA6H = 0000111101000110B. Nam bit cao 6 trong bd dém chuong trinh sé khong

Potrebbero piacerti anche