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

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

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

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

Thông tin tài liệu

Khảo sát vi điều khiển 8951 C C h h ư ư ơ ơ n n g g 7 7 : : C C a a ù ù c c c c h h u u o o ã ã i i k k y y ù ù t t ư ư ï ï ( ( C C h h a a r r a a c c t t e e r r S S t t r r i i n n g g ) ) Chuổi dùng một hay 2 ký tự có thể dùng như các toán hạng trong các biểu thức. Các mã ASSCII được biến đổi thành nhò phân tương đương bởi sự biên dòch. Các hằng được đi kèm theo sau 1 dấu ngoặc kép (‘). dụ : CJNZ A , # ‘Q’, AGAIN 4 4 . . 3 3 C C a a ù ù c c k k y y ù ù h h i i e e ä ä u u s s o o á á h h o o ï ï c c ( ( A A r r i i t t h h m m e e t t i i c c O O p p e e r r a a t t i i o o n n s s ) ) : : + : Cộng _ : Trừ . : Nhân / : Chia MOD :Phép lấy dư dụ lệnh MOV A, # 10 + 10H và lệnh MOV A, # 1AH tương tự 2 lệnh MOV A, # 25 MOD 7 và MOV A, # 4 cũng giống nhau. 4 4 . . 4 4 C C a a ù ù c c h h o o a a ï ï t t đ đ o o ä ä n n g g l l o o g g i i c c ( ( L L o o g g i i c c O O p p e e r r a a t t i i o o n n s s ) ) : : Các hoạt động logic là OR, AND, XOR, NOT. Hoạt động được áp dụng trên các bit tương ứng trong mỗi toán hạng. Sự hoạt động phải được phân ra từ các toán hạng bởi một khoảng cách ký tự hoặc nhiều khoảng ký tự. dụ 3 lệnh MOV sau đây giống nhau: THERE EQU Khảo sát vi điều khiển 8951 MINUS – THERE EQU- 3 MOV A, #(NOT THERE) + 1 MOV A, MINUS – THERE MOV A, #11111101B 4 4 . . 5 5 C C a a ù ù c c h h o o a a ï ï t t đ đ o o ä ä n n g g đ đ a a ë ë c c b b i i e e ä ä t t ( ( s s p p e e c c i i a a l l O O p p e e r r a a t t i i o o n n ) ) : : Các hoạt động đặc biệt là: SHR (dòch phải), SHL (dòch trái), HIGH (byte cao), LOW (byte thấp). dụ: lệnh MOV A, # HIGH 1234H và lệnh MOV A, 12H tương đương. 4 4 . . 6 6 C C a a ù ù c c h h o o a a ï ï t t đ đ o o ä ä n n g g l l i i e e â â n n q q u u a a n n : : Khi một hoạt động có liên quan được dùng giữa hai toán hạng thì kết qủa hoặc sai (0000h) hoặc đúng (FFFFH). Các hoạt động là: EQ = : Equals (bằng) NE <> : Not equals (không bằng) LT < : Less than (nhỏ hơn) LE <= : Less than or equal (nhỏ hơn hoặc bằng) GT > : Greater than (lớn hơn) GE >= : Greater than or equal (lớn hơn hoặc bằng) dụ: MOV A, #5 MOV A, 100 GE 50 MOV A, 5 NE 4 Cả ba lệnh trên đều đúng nên cả ba tương đương với lệnh sau: MOV A,# 0FFH Khảo sát vi điều khiển 8951 5 5 . . C C a a ù ù c c c c h h ỉ ỉ t t h h ò ò b b i i e e â â n n d d ò ò c c h h : : ASM51 cung cấp các chỉ thò sau: Sự điều khiển trạng thái biên dòch (ORG, AND, USING) Sự xác đònh ký hiệu (SEGMENT, EQU, SET, DATA, NDATA, BIT, CODE) Sự khởi gán lưu trữ hay để dành trước sự lưu trữ (DS, DBIT, DB, DW) Sự kết nối chương trình (PUBLIC, EXTRN, NAME) Sự chọn segment (PSEG, CSEG, DSEG, ISEG, BSEG, XSEG) 5 5 . . 1 1 S S ư ư ï ï đ đ i i e e à à u u k k h h i i e e å å n n t t r r a a ï ï n n g g t t h h a a ù ù i i b b i i e e â â n n d d ò ò c c h h : : 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ò ORG là: ORG Expression 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 ASM51 dãy thanh ghi tích cực hiện hành. Dạng chỉ thò của nó là USING Expression Việc dùng đòa chỉ các thanh ghi ký hiệu được đònh nghóa trước AR0-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. dụ : USING 3 : Dùng Bank 3 trong dãy thanh ghi. PUSH AR7 : Push R7 (R7=1FH) PUSH AR7 : Push R7 (R7=0FH) Khảo sát vi điều khiển 8951 5 5 . . 2 2 Đ Đ ò ò n n h h n n g g h h ó ó a a k k y y ù ù h h i i e e ä ä u u ( ( S S y y m m b b o o l l D D e e f f i i n n i i t t i i o o n n ) ) : : Dạng chỉ thò của segment như sau: symbol SEGMENT segmenttype Trong đó symbol là tên của segment có thể đổi chỗ được. Các kiểu segment có thể CODE (segment mã), XDATA (vùng dữ liệu ngoài), DATA (vùng dữ liệu nội) có thể truy xuất bằng sự đònh vò trực tiếp từ (00H-7FH), IDATA (toàn bộ vùng dữ liệu nội), BIT (vùng BIT từ 20H-2FH dữ liệu nội). dụ : EPROM SEGMENT CODE cho biết EPROM của một segment kiểu code. Dạng chỉ thò EQU : symbol EQU Expression Dạng chỉ thò BIT : symbol BITExpression Lưu ý rằng nếu ta dùng chỉ thò BIT như FLAGS BIT 05H thì ta có thể SETB FLAGS mà không được dùng lệnh MOV. 5 5 . . 3 3 S S ư ư ï ï k k h h ơ ơ û û i i g g a a ù ù n n / / d d a a ø ø n n h h l l ư ư u u t t r r ư ư õ õ t t r r ư ư ơ ơ ù ù c c ( ( S S t t o o r r a a g g e e I I n n i i t t i i l l i i z z a a t t i i o o n n / / R R e e s s e e r r v v a a t t i i o o n n ) ) Các chỉ thò của Storage Initilization khởi gán và Storage Reservation để dành một vùng nhớ trong từ, byte hoặc các đơn vò bit. Vùng được dành trước khi bắt đầu tại vùng nhớ được chỉ rõ bởi giá trò hiện hành của bộ đếm vùng nhớ trong segment tích cực đang hiện hành. Các chỉ thò này có thể đứng trước một nhãn. 5.3.1 Khai báo lưu trữ DS (Define Storage) Dạng phát biểu DS là : [label:]DS Expression Phát biểu DS dành một vùng nhớ trong đơn vò byte. Nó có thể được dùng trong bất kỳ phát biểu segment nào ngoại trừ BIT. Khi phát biểu DS được bắt gặp trong chương trình thì bộ đếm vò trí Khảo sát vi điều khiển 8951 location của segment hiện hành được tăng lên một khoảng bằng giá trò của biểu thức. Tổng của bộ đếm location và biểu thức đã được đònh rõ sẽ không vược quá sự hạn chế của vùng hiện hành. Phát biểu sau tạo ra một vùng đệm 40 byte trong segment dữ liệu nội. DSEG AT 30 : Đặt vào segment data nội. LENGTH EQU 40 BEFFER : DS LENGTH : 40 byte được dành trước Nhãn BUFFER tượng trưng cho đòa chỉ của location đầu tiên của vùng nhớ được lưu trữ. Trong dụ trên buffer đắt đầu ở đòa chỉ 30H bởi từ “AT 30” được đònh rõ bởi DSEG. Vùng đệm này có thể xoá như sau: MOV R7,#LENGTH : R7 chứa con số LENGTH là 40 MOV R0,#BUFFER : R0 chứa đòa chỉ tại buffer là 30H LOOP : MOV @R0,#0 : Lần lượt xoá DJNZ,R7,LOOP (continue) Để tạo ra vùng đệm 1000 byte trong RAM ngoại bắt đầu tại đòa chỉ 4000H, các chỉ thò sau đây có thể được dùng: XSTART EQU 4000H XLENGTH EQU 1000H XSEG AT XSTART : Phân đoạn data ngoài bắt đầu ở 4000H XBUFFER: DS XLENGTH : Tạo ra một vùng đệm có độ dài 1000byte Các lệnh sau đây có thể dùng để xoá vùng đệm trên : MOV DPTR,#BUFFER: Đưa đòa chỉ 4000H và DPTR Khảo sát vi điều khiển 8951 LOOP : CLR A MOVX @DPTR : Xoá nội dụng từ đòa chỉ 4000H trở đi INC DPTR : Tăng thêm 1 ( trường hợp đầu trở thành 4001H) MOV A,DPL CJNZ A,#LOW (XBUFFER=LENGTH+1),LOOP MOV A,DPH CJNZ A,HIGH (XBUFFER=XLENGTH+1),LOOP (Continue) Nếu so sánh hai cách dùng trên dành cho byte thấp và byte cao DPTR, lệnh CJNZ chỉ làm nhiệm vụ đối với thanh ghi A hoặc thanh ghi Rn, do đó byte thấp hoặc byte cao của bộ đếm dữ liệu phải được MOV vào A trước khi đến lệnh CJNZ. Vòng lặp chỉ kết thúc khi bộ đếm dữ liệu đã được đọc đòa chỉ XBUFFER+XLENGTH+1 5.3.2 Khai báo DBIT (Define Bit) Sự thành lập : [label:] DBIT expression Chỉ thò DBIT dành trước vùng nhớ các đơn vò bit, nó có thể được dùng trong 1 segment bit. Khi phát biểu này được bắt gặp trong chương trình thì bộ đếm vò trí của segment hiện hành được cộng thêm giá trò của biểu thức. 5.3.3 Khai báo byte DB (Define Byte) Sự thành lập chỉ thò ĐẶC BIỆT : [label:] ĐẶC BIỆT Expression [,Expression][ .] Chỉ thò DB khởi gán bộ mã nên segment CODE phải tích cực. Danh sách biểu thức là một chuỗi của một hay nhiều giá trò byte (mỗi cách có thể là một biểu thức) được phân ra bởi dấu phẩy. Chỉ thò DB cho phép các chuỗi ký tự (được kèm trong dấu ngoặc kép đơn) dài hơn 2 ký tự. Mỗi ký tự trong chuỗi được biến thành mã Khảo sát vi điều khiển 8951 ASCII tương ứng. Nếu một nhãn được dùng thì nhãn đó đã được ấn đònh đòa chỉ của byte đầu tiên. dụ : CSEG AT 0100H DSQUARES : DB 0,1,4,9,16,25 :Bình phương từ 0-5 Kết quả của sự phân chia bộ nhớ hexa của bộ nhớ mã ngoài như sau : Addres s Conte nt Note 0100H 00H Cửa số 0 0101H 01H Cửa số 1 0102H 04H Cửa số 4 0103H 9H Cửa số 9 0104H 10H Cửa số 16 0105H 19H Cửa số 25 5.3.4 Khai báo từ DW (Define Word) Sự thành lập : [label:]DW Expression [,Expression][ .] Chỉ thò giống chỉ thò DB ngoại trừ hai vò trí nhớ 16 bit được chia làm mỗi khoảng dữ liệu. dụ : CSEG AT 200H Khảo sát vi điều khiển 8951 DW 1234H,2 Addres s Conte nt Note 0200H 12H Byte cao 1234H 0201H 34H Byte thấp 1234H 0202H 00H Byte cao của 2 0203H 02H Byte thấp của 2 Khaûo saùt vi ñieàu khieån 8951 Khảo sát vi điều khiển 8951 I I . . C C a a á á u u t t r r u u ù ù c c p p h h a a à à n n c c ư ư ù ù n n g g I I C C 8 8 2 2 7 7 9 9 Sơ đồ chân và sơ đồ logic Tên các chân và chức năng: Tên I/O Chức nă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 U1 8279 12 13 14 15 16 17 18 19 10 11 22 3 9 21 4 38 39 1 2 5 6 7 8 36 37 23 32 33 34 35 27 26 25 24 31 30 29 28 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 RD WR CS CLK RESET A0 IRQ RL0 RL1 RL2 RL3 RL4 RL5 RL6 RL7 SHFT CN/ST BD SL0 SL1 SL2 SL3 OA0 OA1 OA2 OA3 OB0 OB1 OB2 OB3 DATA RL7-RL10 SHIFT CNTR/STB SL0-SL3 SCAN KEY DATA RD WR CS RESET A0 CLK OUT A3-A0 OUT B3-B0 BD DISPLAY DATA CPU Interface [...]...Khảo sát vi điều khiể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 A 3-0 0 Display (A) output OUT B 3-0 0 Display (B) output BD\ 0 Blank Display Output 8 279 kết nối với vi điều khiển thông qua 3 bus gồm bus dữ liệu D7-D0, bus đòa chỉ có một đường A0, bus điều khiển RD\, WR\,... Reset, CLK Tín hiệu chọn CS\ được kết nối đến một ngõ ra của IC giải mã đòa chỉ Nếu xem bộ nhớ thì bộ nhớ này có 2 ô nhớ II Cấu trúc phần mềm của 8 279 IC 8 279 có 1 đường đòa chỉ A0 có chức năng lựa chọn như sau: A0 =0 : 8 279 xem dữ liệu từ vi điều khiển gởi đến là dữ liệu để hiển thò A0 =1 : 8 279 xem dữ liệu từ vi điều khiển gởi đến là dữ liệu của lệnh điều khiển 8 279 . Blank Display Output 8 279 kết nối với vi điều khiển thông qua 3 bus gồm bus dữ liệu D7-D0, bus đòa chỉ có một đường A0, bus điều khiển RD, WR, CS, Reset,. c c u u û û a a 8 8 2 2 7 7 9 9 IC 8 279 có 1 đường đòa chỉ A0 có chức năng lựa chọn như sau: A0 =0 : 8 279 xem dữ liệu từ vi điều khiển gởi đến là dữ liệu

Ngày đăng: 28/10/2013, 23:15

Từ khóa liên quan

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

Tài liệu liên quan