Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 7

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

0
88
lượt xem
48
download

Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 7

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

Chỉ thị ORG thay đổi bộ đếm vùng nhớ để đặt sự khởi đầu một chương trình mới bởi trạng thái theo sau đó, dạng của chỉ thị ỎG là: ỎG Êpsion Chỉ thị END đặt ở cuối cùng trong file nguồn. Dạng của nó là END. Chỉ thị USING cung cấp cho ATM51 dãy thanh ghi tích cực hiện hành. Dạng chỉ thị của nó là USING Êpsion Việc dùng địa chỉ các thanh ghi ký hiệu được định nghĩa trước ARO-AR7 sẽ biến thành địa chỉ trực tiếp phù hợp của dãy thanh ghi tích cực. ...

Chủ đề:
Lưu

Nội dung Text: Thiết kế mạch ghi - đọc EPROM cho Vi Điều Khiển 8951, chương 7

  1. Khaûo saùt vi ñieàu khieån 8951 Chương 7: Caùc chuoãi kyù töï (Character String) Chuoåi duøng moät hay 2 kyù töï coù theå duøng nhö caùc toaùn haïng trong caùc bieåu thöùc. Caùc maõ ASSCII ñöôïc bieán ñoåi thaønh nhò phaân töông ñöông bôûi söï bieân dòch. Caùc haèng ñöôïc ñi keøm theo sau 1 daáu ngoaëc keùp (‘). Ví duï : CJNZ A , # ‘Q’, AGAIN 4.3 Caùc kyù hieäu soá hoïc (Arithmetic Operations): + : Coäng _ : Tröø . : Nhaân / : Chia MOD :Pheùp laáy dö Ví duï leänh MOV A, # 10 + 10H vaø leänh MOV A, # 1AH töông töï 2 leänh MOV A, # 25 MOD 7 vaø MOV A, # 4 cuõng gioáng nhau. 4.4 Caùc hoaït ñoäng logic (Logic Operations): Caùc hoaït ñoäng logic laø OR, AND, XOR, NOT. Hoaït ñoäng ñöôïc aùp duïng treân caùc bit töông öùng trong moãi toaùn haïng. Söï hoaït ñoäng phaûi ñöôïc phaân ra töø caùc toaùn haïng bôûi moät khoaûng caùch kyù töï hoaëc nhieàu khoaûng kyù töï. Ví duï 3 leänh MOV sau ñaây gioáng nhau: THERE EQU
  2. Khaûo saùt vi ñieàu khieån 8951 MINUS – THERE EQU- 3 MOV A, #(NOT THERE) + 1 MOV A, MINUS – THERE MOV A, #11111101B 4.5 Caùc hoaït ñoäng ñaëc bieät (special Operation): Caùc hoaït ñoäng ñaëc bieät laø: SHR (dòch phaûi), SHL (dòch traùi), HIGH (byte cao), LOW (byte thaáp). Ví duï: leänh MOV A, # HIGH 1234H vaø leänh MOV A, 12H töông ñöông. 4.6 Caùc hoaït ñoäng lieân quan: Khi moät hoaït ñoäng coù lieân quan ñöôïc duøng giöõa hai toaùn haïng thì keát quûa hoaëc sai (0000h) hoaëc ñuùng (FFFFH). Caùc hoaït ñoäng laø: EQ = : Equals (baèng) NE : Not equals (khoâng baèng) LT < : Less than (nhoû hôn) LE : Greater than (lôùn hôn) GE >= : Greater than or equal (lôùn hôn hoaëc baèng) Ví duï: MOV A, #5 MOV A, 100 GE 50 MOV A, 5 NE 4 Caû ba leänh treân ñeàu ñuùng neân caû ba töông ñöông vôùi leänh sau: MOV A,# 0FFH
  3. Khaûo saùt vi ñieàu khieån 8951 5. Caùc chæ thò bieân dòch: ASM51 cung caáp caùc chæ thò sau: Söï ñieàu khieån traïng thaùi bieân dòch (ORG, AND, USING) Söï xaùc ñònh kyù hieäu (SEGMENT, EQU, SET, DATA, NDATA, BIT, CODE) Söï khôûi gaùn löu tröõ hay ñeå daønh tröôùc söï löu tröõ (DS, DBIT, DB, DW) Söï keát noái chöông trình (PUBLIC, EXTRN, NAME) Söï choïn segment (PSEG, CSEG, DSEG, ISEG, BSEG, XSEG) 5.1 Söï ñieàu khieån traïng thaùi bieân dòch: Chæ thò ORG thay ñoåi boä ñeám vuøng nhôù ñeå ñaët söï khôûi ñaàu moät chöông trình môùi bôûi traïng thaùi theo sau ñoù, daïng cuûa chæ thò ORG laø: ORG Expression Chæ thò END ñaët ôû cuoái cuøng trong file nguoàn. Daïng cuûa noù laø END. Chæ thò USING cung caáp cho ASM51 daõy thanh ghi tích cöïc hieän haønh. Daïng chæ thò cuûa noù laø USING Expression Vieäc duøng ñòa chæ caùc thanh ghi kyù hieäu ñöôïc ñònh nghóa tröôùc AR0-AR7 seõ bieán thaønh ñòa chæ tröïc tieáp phuø hôïp cuûa daõy thanh ghi tích cöïc. Ví duï : USING 3 : Duøng Bank 3 trong daõy thanh ghi. PUSH AR7 : Push R7 (R7=1FH) PUSH AR7 : Push R7 (R7=0FH)
  4. Khaûo saùt vi ñieàu khieån 8951 5.2 Ñònh nghóa kyù hieäu (Symbol Definition): Daïng chæ thò cuûa segment nhö sau: symbol SEGMENT segmenttype Trong ñoù symbol laø teân cuûa segment coù theå ñoåi choã ñöôïc. Caùc kieåu segment coù theå CODE (segment maõ), XDATA (vuøng döõ lieäu ngoaøi), DATA (vuøng döõ lieäu noäi) coù theå truy xuaát baèng söï ñònh vò tröïc tieáp töø (00H-7FH), IDATA (toaøn boä vuøng döõ lieäu noäi), BIT (vuøng BIT töø 20H-2FH döõ lieäu noäi). Ví duï : EPROM SEGMENT CODE cho bieát EPROM cuûa moät segment kieåu code. Daïng chæ thò EQU : symbol EQU Expression Daïng chæ thò BIT : symbol BITExpression Löu yù raèng neáu ta duøng chæ thò BIT nhö FLAGS BIT 05H thì ta coù theå SETB FLAGS maø khoâng ñöôïc duøng leänh MOV. 5.3 Söï khôûi gaùn/daønh löu tröõ tröôùc (Storage Initilization/Reservation) Caùc chæ thò cuûa Storage Initilization khôûi gaùn vaø Storage Reservation ñeå daønh moät vuøng nhôù trong töø, byte hoaëc caùc ñôn vò bit. Vuøng ñöôïc daønh tröôùc khi baét ñaàu taïi vuøng nhôù ñöôïc chæ roõ bôûi giaù trò hieän haønh cuûa boä ñeám vuøng nhôù trong segment tích cöïc ñang hieän haønh. Caùc chæ thò naøy coù theå ñöùng tröôùc moät nhaõn. 5.3.1 Khai baùo löu tröõ DS (Define Storage) Daïng phaùt bieåu DS laø : [label:]DS Expression Phaùt bieåu DS daønh moät vuøng nhôù trong ñôn vò byte. Noù coù theå ñöôïc duøng trong baát kyø phaùt bieåu segment naøo ngoaïi tröø BIT. Khi phaùt bieåu DS ñöôïc baét gaëp trong chöông trình thì boä ñeám vò trí
  5. Khaûo saùt vi ñieàu khieån 8951 location cuûa segment hieän haønh ñöôïc taêng leân moät khoaûng baèng giaù trò cuûa bieåu thöùc. Toång cuûa boä ñeám location vaø bieåu thöùc ñaõ ñöôïc ñònh roõ seõ khoâng vöôïc quaù söï haïn cheá cuûa vuøng hieän haønh. Phaùt bieåu sau taïo ra moät vuøng ñeäm 40 byte trong segment döõ lieäu noäi. DSEG AT 30 : Ñaët vaøo segment data noäi. LENGTH EQU 40 BEFFER : DS LENGTH : 40 byte ñöôïc daønh tröôùc Nhaõn BUFFER töôïng tröng cho ñòa chæ cuûa location ñaàu tieân cuûa vuøng nhôù ñöôïc löu tröõ. Trong ví duï treân buffer ñaét ñaàu ôû ñòa chæ 30H bôûi töø “AT 30” ñöôïc ñònh roõ bôûi DSEG. Vuøng ñeäm naøy coù theå xoaù nhö sau: MOV R7,#LENGTH : R7 chöùa con soá LENGTH laø 40 MOV R0,#BUFFER : R0 chöùa ñòa chæ taïi buffer laø 30H LOOP : MOV @R0,#0 : Laàn löôït xoaù DJNZ,R7,LOOP (continue) Ñeå taïo ra vuøng ñeäm 1000 byte trong RAM ngoaïi baét ñaàu taïi ñòa chæ 4000H, caùc chæ thò sau ñaây coù theå ñöôïc duøng: XSTART EQU 4000H XLENGTH EQU 1000H XSEG AT XSTART : Phaân ñoaïn data ngoaøi baét ñaàu ôû 4000H XBUFFER: DS XLENGTH : Taïo ra moät vuøng ñeäm coù ñoä daøi 1000byte Caùc leänh sau ñaây coù theå duøng ñeå xoaù vuøng ñeäm treân : MOV DPTR,#BUFFER: Ñöa ñòa chæ 4000H vaø DPTR
  6. Khaûo saùt vi ñieàu khieån 8951 LOOP : CLR A MOVX @DPTR : Xoaù noäi duïng töø ñòa chæ 4000H trôû ñi INC DPTR : Taêng theâm 1 ( tröôøng hôïp ñaàu trôû thaønh 4001H) MOV A,DPL CJNZ A,#LOW (XBUFFER=LENGTH+1),LOOP MOV A,DPH CJNZ A,HIGH (XBUFFER=XLENGTH+1),LOOP (Continue) Neáu so saùnh hai caùch duøng treân daønh cho byte thaáp vaø byte cao DPTR, Vì leänh CJNZ chæ laøm nhieäm vuï ñoái vôùi thanh ghi A hoaëc thanh ghi Rn, do ñoù byte thaáp hoaëc byte cao cuûa boä ñeám döõ lieäu phaûi ñöôïc MOV vaøo A tröôùc khi ñeán leänh CJNZ. Voøng laëp chæ keát thuùc khi boä ñeám döõ lieäu ñaõ ñöôïc ñoïc ñòa chæ XBUFFER+XLENGTH+1 5.3.2 Khai baùo DBIT (Define Bit) Söï thaønh laäp : [label:] DBIT expression Chæ thò DBIT daønh tröôùc vuøng nhôù caùc ñôn vò bit, noù coù theå ñöôïc duøng trong 1 segment bit. Khi phaùt bieåu naøy ñöôïc baét gaëp trong chöông trình thì boä ñeám vò trí cuûa segment hieän haønh ñöôïc coäng theâm giaù trò cuûa bieåu thöùc. 5.3.3 Khai baùo byte DB (Define Byte) Söï thaønh laäp chæ thò ÑAËC BIEÄT : [label:] ÑAËC BIEÄT Expression [,Expression][...] Chæ thò DB khôûi gaùn boä maõ neân segment CODE phaûi tích cöïc. Danh saùch bieåu thöùc laø moät chuoãi cuûa moät hay nhieàu giaù trò byte (moãi caùch coù theå laø moät bieåu thöùc) ñöôïc phaân ra bôûi daáu phaåy. Chæ thò DB cho pheùp caùc chuoãi kyù töï (ñöôïc keøm trong daáu ngoaëc keùp ñôn) daøi hôn 2 kyù töï. Moãi kyù töï trong chuoãi ñöôïc bieán thaønh maõ
  7. Khaûo saùt vi ñieàu khieån 8951 ASCII töông öùng. Neáu moät nhaõn ñöôïc duøng thì nhaõn ñoù ñaõ ñöôïc aán ñònh ñòa chæ cuûa byte ñaàu tieân. Ví duï : CSEG AT 0100H DSQUARES : DB 0,1,4,9,16,25 :Bình phöông töø 0-5 Keát quaû cuûa söï phaân chia boä nhôù hexa cuûa boä nhôù maõ ngoaøi nhö sau : Addres Conte Note s nt 0100H 00H Cöûa soá 0 0101H 01H Cöûa soá 1 0102H 04H Cöûa soá 4 0103H 9H Cöûa soá 9 0104H 10H Cöûa soá 16 0105H 19H Cöûa soá 25 5.3.4 Khai baùo töø DW (Define Word) Söï thaønh laäp : [label:]DW Expression [,Expression][...] Chæ thò gioáng chæ thò DB ngoaïi tröø hai vò trí nhôù 16 bit ñöôïc chia laøm moãi khoaûng döõ lieäu. Ví duï : CSEG AT 200H
  8. Khaûo saùt vi ñieàu khieån 8951 DW 1234H,2 Addres Conte Note s nt 0200H 12H Byte cao 1234H 0201H 34H Byte thaáp 1234H 0202H 00H Byte cao cuûa 2 0203H 02H Byte thaáp cuûa 2
  9. Khaûo saùt vi ñieàu khieån 8951
  10. Khaûo saùt vi ñieàu khieån 8951 I. Caáu truùc phaàn cöùng IC 8279 CPU Interface U1 12 38 13 DB0 DB1 RL0 RL1 39 DATA RL7-RL10 14 1 DB2 RL2 15 16 DB3 RL3 2 5 KEY DB4 RL4 17 18 DB5 RL5 6 7 SHIFT DATA 19 DB6 RL6 8 DB7 RL7 CNTR/STB 10 36 11 RD SHFT 37 22 WR CN/ST 23 3 CS BD RD 9 CLK RESET SL0 32 SL0-SL3 SCAN 21 33 A0 SL1 4 IRQ SL2 34 35 WR SL3 27 OA0 26 CS OA1 OA2 25 OUT A3-A0 24 OA3 OB0 31 30 A0 DISPLAY OB1 OB2 29 28 DATA OB3 RESET 8279 OUT B3-B0 CLK BD Sô ñoà chaân vaø sô ñoà logic Teân caùc chaân vaø chöùc naêng: Teân I/O Chöùc naêng DB7 - DB0 I/O Data bus (Bi-Direction) CLK I Clock input RESET I Reset input CS\ I Chip select RD\ I Read input
  11. Khaûo saùt vi ñieàu khieån 8951 WR\ I Write input A0 I Address IRQ 0 Interrupt Request input SL0 - SL3 0 Scan Lines RL0 - RL7 I Return Lines SHIFT I Shift input CNTL/STB I Control/Strobe input OUT A3-0 0 Display (A) output OUT B3-0 0 Display (B) output BD\ 0 Blank Display Output 8279 keát noái vôùi vi ñieàu khieån thoâng qua 3 bus goàm bus döõ lieäu D7-D0, bus ñòa chæ coù moät ñöôøng A0, bus ñieàu khieån RD\, WR\, CS\, Reset, CLK. Tín hieäu choïn CS\ ñöôïc keát noái ñeán moät ngoõ ra cuûa IC giaûi maõ ñòa chæ. Neáu xem boä nhôù thì boä nhôù naøy coù 2 oâ nhôù. II. Caáu truùc phaàn meàm cuûa 8279 IC 8279 coù 1 ñöôøng ñòa chæ A0 coù chöùc naêng löïa choïn nhö sau: A0 =0 : 8279 xem döõ lieäu töø vi ñieàu khieån gôûi ñeán laø döõ lieäu ñeå hieån thò. A0 =1 : 8279 xem döõ lieäu töø vi ñieàu khieån gôûi ñeán laø döõ lieäu cuûa leänh ñieàu khieån 8279.

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản