Giao tiếp giữa KIT vi xử lý 8951 và máy tính, chương 7

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:12

0
83
lượt xem
37
download

Giao tiếp giữa KIT vi xử lý 8951 và máy tính, chương 7

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cho Phép Thu Bit cho phép bộ thu (REN=Rêcivẻ Enable) Trong SCON phải được đặt lên 1bằng phần mềm để cho phép thu các ký tự thông thường thực hiện việc này ở đầu chương trình khi khởi động cổng nối taếp, timẻ … Có thể thực hiện việc này theo hai cách. Lệnh: SETB REN ; đặt REN lên 1 Hoặc lệnh MOV SCON,#XXX1XXXXB ; đặt REN lên 1 hoặc xoá các bit khác trên SCON khi cần (các X phải là 0 hoặc 1 để đặt chế độ làm việc) Bit dữ liệu thứ 9: Bit dữ liệu...

Chủ đề:
Lưu

Nội dung Text: Giao tiếp giữa KIT vi xử lý 8951 và máy tính, chương 7

  1. Chương 7: Khôûi ñoäng vaø truy xuaát caùc thanh ghi coång noái tieáp  Cho Pheùp Thu Bit cho pheùp boä thu (REN=Receiver Enable) Trong SCON phaûi ñöôïc ñaët leân 1baèng phaàn meàm ñeå cho pheùp thu caùc kyù töï thoâng thöôøng thöïc hieän vieäc naøy ôû ñaàu chöông trình khi khôûi ñoäng coång noái taeáp, timer … Coù theå thöïc hieän vieäc naøy theo hai caùch. Leänh: SETB REN ; ñaët REN leân 1 Hoaëc leänh MOV SCON,#XXX1XXXXB ; ñaët REN leân 1 hoaëc xoaù caùc bit khaùc treân SCON khi caàn (caùc X phaûi laø 0 hoaëc 1 ñeå ñaët cheá ñoä laøm vieäc) Bit döõ lieäu thöù 9: Bit döõ lieäu thöù 9 caàn phaùt trong caùc cheá ñoä 2 vaø 3 phaûi ñöôïc naïp vaøo trong TB8 baèng phaàn meàm. Bit döõ lieäu thöù 9 thu ñöôïc ñaët ôû RB8. Phaàn meàm coù theå caàn hoaëc khoâng caàn bit döõ lieäu thöù 9, phuï thuoäc vaøo ñaëc tính kyõ thuaät cuûa thieát bò noái tieáp söû duïng (bit döõ lieäu thöù 9 cuõng ñoùng vai troø quan troïng trong truyeàn thoâng ña xöû lyù ) Theâm 1 bit parity: Thöôøng söû duïng bit döõ lieäu thöù 9 ñeå theâm parity vaøo kyù töï. Nhö ñaõ nhaän xeùt ôû chöông tröôùc, bit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1 hoaëc bò xoaù bôûi chu kyø maùy ñeå thieát laäp kieåm tra chaún vôùi 8 bit trong thanh tích luõy. Caùc côø ngaét: Hai côø ngaét thu vaø phaùt (RI vaø TI) trong SCON ñoùng moät vai troø quan troïng trong truyeàn thoâng noái tieáp duøng 8951/8051.
  2. Caû hai bit ñöôïc ñaët leân 1 baèng phaàn cöùng, nhöng phaûi ñöôïc xoaù baèng phaàn meàm. 2.7. Toác ñoä baud port noái tieáp Nhö ñaõ noùi, toác ñoä baud coá ñònh ôû caùc cheá ñoä 0 vaø 2. Trong cheá ñoä 0 noù luoân luoân laø taàn soá dao ñoäng treân chip ñöôïc chia cho 12. Thoâng thöôøng thaïch anh aán ñònh taàn soá dao ñoäng treân chip nhöng cuõng coù theå söû duïng nguoàn xung nhòp khaùc.
  3.  12 Dao ñoäng Xung nhòp treân chip toác ñoä baud  64 a. Cheá ñoä 0  32 SMOD=0 Xung nhòp toác b. Cheá ñoä 2 Dao ñoäng ñoä baud treân chip SMOD=1  32 SMOD=0 Dao ñoäng Xung nhòp toác treân chip ñoä baud  16 SMOD=1 c. Cheá ñoä 1 vaø 3 Caùc nguoàn taïo xung nhòp cho port noái tieáp Maëc nhieân sau khi reset heä thoáng, toác ñoä baud cheá ñoä 2 laø taàn soá boä dao ñoäng chia cho 64, toác ñoä baud cuõng bò aûnh höôûng bôûi 1 bit trong thanh ghi ñieàu khieån nguoàn cung caáp (PCON) bit 7 cuûa PCON laø bit SMOD. Ñaët bit SMOD leân 1 laøm gaáp ñoâi toác ñoä baud trong caùc cheá ñoä 1, 2 vaø 3. Trong cheá ñoä 2, toác ñoä baud coù theå bò gaáp ñoâi töø giaù trò maëc nhieân cuûa 1/64 taàn soá dao ñoäng (SMOD=0) ñeán 1/32 taàn soá dao ñoäng (SMOD=1)
  4. Vì PCON khoâng ñöôïc ñònh ñòa chæ theo bit, neân ñeå ñaët bit SMOD leân 1 caàn phaûi theo caùc leänh sau: MOV A,PCON ; laáy giaù trò hieän thôøi cuûa PCON SETB ACC.7 ; ñaët bit SMOD leân 1 MOV PCON,A ; ghi giaù trò ngöôïc veà PCON Caùc toác ñoä baud trong caùc cheá ñgä 1 vaø 3 ñöôïc xaùc ñònh baèng toác ñoä traøn cuûa timer 1. Vì timer hoaït ñoäng ôû taàn soá töông ñoái cao, traøn timer ñöôïc chia theâm cho 32 (hoaëc 16 neáu SMOD =1 ) tröôùc khi cung caáp toác ñoä xung nhòp cho port noái tieáp. 3. Toå chöùc ngaét trong 8051 Vi Ñieàu Khieån coù 5 nguoàn ngaét:2 nguoàn ngaét ngoaøi,2 ngaét timer vaø 1 ngaét Port noái tieáp, taát caû caùc nguoàn ngaét bò caám sau khi reset heä thoáng vaø cho pheùp bôûi phaàn meàm 3.1.Cho Pheùp vaø Khoâng Cho Pheùp Ngaét Moãi nguoàn ngaét ñöôïc cho pheùp hoaëc khoâng cho pheùp thoâng qua thanh ghi chöùc naêng ñaëc bieät coù caùc bit ñöôïc ñòa chæ hoùa IE (Interrupt Enable) taïi ñòa chæ 0A8H. BIT SYMBO BIT DESCRIPTION L ADDRESS (1:ENABLE,0:DISABLE) IE.7 EA AFH Global Enable/Disable IE.6 EA AEH Undefined IE.5 ET2 ADH Enable Timer 2 Interrupt IE.4 ES ACH (8052) IE.3 ET1 ABH Enable Serial Port Interrupt IE.2 EX1 AAH Enable Timer 1 Interrupt IE.1 ET0 A9H Enable External 1 Interrupt IE.0 EX0 A8H Enable Timer 0 Interrupt Enable External 0 Interrupt 3.2. VeùcTô Ngaét
  5. Khi ngaét ñöôïc chaáp nhaän giaù trò ñöôïc ñöa vaøo PC (Program Counter) goïi laø vector ngaét (Interrupt Vector) INTERRUPT FLAG VECTOR ADDRESS System Reset RST 0000 H External 0 IE0 0003 H Timer 0 TF0 000B H External 1 IE1 0013 H Timer 1 TF1 001B H Serial Port RI OR TI 0023 H Timer 2 TF2 OR 002B H EXF2 3.3. Ngaét Port noái Tieáp Ngaét Port noái tieáp xaûy ra khi caû 2 côø ngaét truyeàn (TI) hoaëc côø ngaét nhaän (RI) ñöôïc ñaët. Ngaét truyeàn xaûy ra khi bit cuoái cuøng trong SBUF truyeàn xong töùc laø luùc naøy thanh ghi SBUF roãng .Ngaét nhaän xaûy ra khi SBUF ñaõ hoaøn thaønh vieäc nhaän vaø ñang ñôïi ñeå ñoïc töùc laø luùc naøy thanh ghi SBUF ñaày. Caû hai côø ngaét naøy ñöôïc ñaêt bôûi phaàn cöùng vaø xoùa baèng phaàn meàm. II. TOÙM TAÉT TAÄP LEÄNH CUÛA 8951: - Caùc chöông trình ñöôïc caáu taïo töø nhieàu leänh, chuùng ñöôïc xaây döïng logic, söï noái tieáp cuûa caùc leänh ñöôïc nghó ra moät caùch hieäu quaû vaø nhanh, keát quaû cuûa chöông trình khaû quan. - Taäp leänh hoï MSC-51 ñöôïc söï kieåm tra cuûa caùc mode ñònh vò vaø caùc leänh cuûa chuùng coù caùc Opcode 8 bit. Ñieàu naøy cung caáp khaû naêng 28= 256 leänh ñöôïc thi haønh vaø moät leänh khoâng ñöôïc ñònh nghóa. Vaøi leänh coù 1 hoaëc 2 byte bôûi döõ lieäu hoaëc ñòa
  6. chæ theâm vaøo Opcode. Trong toaøn boä caùc leänh coù 139 leänh 1 byte, 92 leänh 2 byte vaø 24 leänh 3 byte. 1. Caùc cheá ñoä ñònh vò ñòa chæ (addressing mode): - Caùc mode ñònh vò laø moät boä phaän thoáng nhaát cuûa taäp leänh. Chuùng cho pheùp ñònh roõ nguoàn hoaëc nôi gôûi tôùi cuûa döõ lieäu ôû caùc ñöôøng khaùc nhau tuøy thuoäc vaøo traïng thaùi cuûa ngöôøi laäp trình. 8951 coù 8 mode ñònh vò ñöôïc duøng nhö sau:  Thanh ghi.  Tröïc tieáp.  Giaùn tieáp.  Töùc thôøi.  Töông ñoái.  Tuyeät ñoái.  Daøi.  Ñònh vò. 1.1 Söï ñònh vò thanh ghi (Register Addressing): - Coù 4 daõy thanh ghi 32 byte ñaàu tieân cuûa RAM döõ lieäu treân Chip ñòa chæ 00H  1FH, nhöng taïi moät thôøi ñieåm chæ coù moät daõy hoaït ñoäng caùc bit PSW3, PSW4 cuûa töø traïng thaùi chöông trình seõ quyeát ñònh daõy naøo hoaït ñoäng. - Caùc leänh ñeå ñònh vò thanh ghi ñöôïc ghi maät maõ baèng caùch duøng bit troïng soá thaáp nhaát cuûa Opcode leänh ñeå chæ moät thanh ghi trong vuøng ñòa c`æ theo logic naøy. Nhö vaäy 1 maõ chöùc naêng vaø ñòa chæ hoaït ñoäng coù theå ñöôïc keát hôïp ñeå taïo thaønh moät leänh ngaén 1 byte nhö sau: Opcode n n n
  7. Register Addressing. - Moät vaøi leänh duøng cuï theå cho 1 thanh ghi naøo ñoù nhö thanh ghi A, DPTR … maõ Opcode töï noù cho bieát thanh ghi vì caùc bit ñòa chæ khoâng caàn bieát ñeán. 1.2 Söï ñònh ñòa chæ tröïc tieáp (Direct Addressing): - Söï ñònh ñòa chæ tröïc tieáp coù theå truy xuaát baát kyø giaù trò naøo treân Chip hoaëc thanh ghi phaàn cöùng treân Chip. Moät byte ñòa chæ tröïc tieáp ñöôïc ñöa vaøo Opcode ñeå ñònh roõ vò trí ñöôïc duøng nhö sau: Opcode Direct Addressing - Tuøy thuoäc caùc bit baäc cao cuûa ñòa chæ tröïc tieáp maø moät trong 2 vuøng nhôù ñöôïc choïn. Khi bit 7 = 0, thì ñòa chæ tröïc tieáp ôû trong khoaûng 0127 (00H7FH) vaø 128 vò trí nhôù thaáp cuûa RAM treân Chip ñöôïc choïn. - Taát caû caùc Port I/O, caùc thanh ghi chöùc naêng ñaëc bieät, thanh ghi ñieàu khieån hoaëc thanh ghi traïng thaùi bao giôø cuõng ñöôïc quy ñònh caùc ñòa chæ trong khoaûng 128255 (80FFH). Khi byte ñòa chæ tröïc tieáp naèm trong giôùi haïn naøy (öùng vôùi bit 7 = 1) thì thanh ghi chöùc naêng ñaëc bieät ñöôïc truy xuaát. Ví duï Port 0 vaø Port 1 ñöôïc quy ñònh ñòa chæ tröïc tieáp laø 80H vaø 90H, P0, P1 daø daïng thöùc ruùt goïn thuaät nhôù cuûa Port, thì söï bieán thieân cho pheùp thay theá vaø hieåu daïng thöùc ruùt goïn thuaät nhôù cuûa chuùng. Chaún
  8. haïn leänh: MOV P1, A  söï bieân dòch seõ xaùc ñònh ñòa chæ tröïc tieáp cuûa Port 1 laø 90H ñaët vaøo hai byte cuûa leänh (byte 1 cuûa port 0). 1.3 Söï ñònh vò ñòa chæ giaùn tieáp (Indirect Addressing): - Söï ñònh ñòa chæ giaùn tieáp ñöôïc töôïng tröng bôûi kyù hieäu @ ñöôïc ñaët tröôùc R0, R1 hay DPTR. R0 vaø R1 coù theå hoaït ñoäng nhö moät thanh ghi con troû maø noäi dung cuûa noù cho bieát moät ñòa chæ trong RAM noäi ôû nôi maø döõ lieäu ñöôïc ghi hoaëc ñöôïc ñoïc. Bit coù troïng soá nhoû nhaát cuûa Opcode leänh seõ xaùc ñònh R0 hay R1 ñöôïc duøng con troû Pointer. i Opcode 1.4. Söï ñònh ñòa chæ töùc thôøi (Immediate Addressing): - Söï ñònh ñòa chæ töùc thôøi ñöôïc töôïng tröng bôûi kyù hieäu # ñöôïc ñöùng tröôùc moät haèng soá, 1 bieán kyù hieäu hoaëc moät bieåu thöùc soá hoïc ñöôïc söû duïng bôûi caùc haèng, caùc kyù hieäu, caùc hoaït ñoäng do ngöôøi ñieàu khieån. Trình bieân dòch tính toaùn giaù trò vaø thay theá döõ lieäu töùc thôøi. Byte leänh theâm voâ chöùa trò soá döõ lieäu töùc thôøi nhö sau: Opcode Immediate Data 1.5 Söï ñònh ñòa chæ töông ñoái: - Söï ñònh ñòa chæ töông ñoái chæ söû duïng vôùi nhöõng leänh nhaûy naøo ñoù. Moät ñòa chæ töông ñoái (hoaëc Offset) laø moät giaù trò 8
  9. bit maø noù ñöôïc coäng vaøo boä ñeám chöông trình PC ñeå taïo thaønh ñòa chæ moät leänh tieáp theo ñöôïc thöïc thi. Phaïm vi cuûa söï nhaûy naèm trong khoaûng -128  127. Offset töông ñoái ñöôïc gaén vaøo leänh nhö moät byte theâm vaøo nhö sau: Opcode Relative Offset - Nhöõng nôi nhaûy ñeán thöôøng ñöôïc chæ roõ bôûi caùc nhaõn vaø trình bieân dòch xaùc ñònh Offset Relative cho phuø hôïp. - Söï ñònh vò töông ñoái ñem laïi thuaän lôïi cho vieäc cung caáp maõ vò trí ñoäc laäp, nhöng baát lôïi laø chæ nhaûy ngaén trong phaïm vi - 128127 byte. 1.6 Söï ñònh ñòa chæ tuyeät ñoái (Absolute Addressing): - Söï ñònh ñòa chæ tuyeät ñoái ñöôïc duøng vôùi caùc leänh ACALL vaø AJMP. Caùc leänh 2 byte cho pheùp phaân chia trong trang 2K ñang löu haønh cuûa boä nhôù maõ cuûa vieäc cung caáp 11 bit thaáp ñeå xaùc ñònh ñòa chæ trong trang 2K (A0A10 goàm A10A8 trong Opcode vaø A7A0 trong byte)vaø 5 bit cao ñeå choïn trang 2K (5 bit cao ñang löu haønh trong boä ñeám chöông trình laø 5 bit Opcode). Addr 10  Addr Opcode Addr 7  Addr 0
  10. - Söï ñònh vò tuyeät ñoái ñem laïi thuaän lôïi cho caùc leänh ngaén (2 byte), nhöng baát lôïi trong vieäc giôùi haïn phaïm vi nôi gôûi ñeán vaø cung caáp maõ coù vò trí ñoäc laäp. 1.7 Söï ñònh vò daøi (Long Addressing) : - Söï ñònh vò daøi ñöôïc duøng vôùi leänh LCALL vaø LJMP. Caùc leänh 3 byte naøy bao goàm moät ñòa chæ nôi gôûi tôùi 16 bit ñaày ñuû laø 2 byte vaø 3 byte cuûa leänh.
  11. Opcode Addr 15  Addr 8 Addr 7  Addr 0 - Öu ñieåm cuûa söï ñònh daøi laø vuøng nhôù maõ 64K coù theå ñöôïc duøng heát, nhöôïc ñieåm laø caùc leänh ñoù daøi 3 byte vaø vò trí leä thuoäc. Söï phuï thuoäc vaøo vò trí seõ baát lôïi bôûi chöông trình khoâng theå thöïc thi taïi ñòa chæ khaùc. 1.8 Söï ñònh ñòa chæ phuï luïc (Index Addressing): - Söï ñònh ñòa chæ phuï luïc duøng moät thanh ghi cô baûn (cuõng nhö boä ñeám chöông trình hoaëc boä ñeám döõ lieäu) vaø Offset (thanh ghi A) trong söï hình thaønh 1 ñòa chæ lieân quan bôûi leänh JMP hgaëc MOVC. Base Register Offset Effective Address PC (or PDTR) ACC Index Address - Caùc baûng cuûa leänh nhaûy hoaëc caùc baûng tra ñöôïc taïo neân moät caùch deã daøng baèng caùch duøng ñòa chæ phuï luïc.
Đồng bộ tài khoản