Bài Tập Điều Kiện - Kỹ Thuật Vi Xử Lý
Trang 2Bài 1: Cho biết địa chỉ bắt đầu của một vùng nhớ RAM là 00000H và dung lượng của vùng
nhớ này là 645KB Hãy xác định đại chỉ vật lý cuối cùng của vùng nhớ này
Bài làm:
645KB645 2 660480byteA1400HĐịa chỉ vật lý cuối cùng của vùng nhớ là: A1400H-1=A13FFH
Bài 2: Thực hiện kết nối hệ thống 80286 với các dung lượng nhớ sau:
Cho biết vùng địa chỉ của từng bộ nhớ trong các bản đồ (các bộ nhớ đều có 16 bit dữ liệu)
Bài làm:
Câu a:
Ta có công thức: Dung lượng bộ nhớ = 2AD
Trong đó: A: đường địa chỉ; D: số bit dữ liệu
Trang 3Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (22 ) Vi xử lý 80286 có 24 đường địa 4chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ
Bảng phân vùng địa chỉ EFROM (4M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 3FFFFH
Bảng phân vùng địa chỉ EFROM (4M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 7FFFFH
Bảng phân vùng địa chỉ SRAM (4M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 80000H đến BFFFFH
Bảng phân vùng địa chỉ SRAM (4M)
Trang 4Câu b:
Ta có công thức: Dung lượng bộ nhớ = 2AD
Trong đó: A: đường địa chỉ; D: số bit dữ liệu
Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 1FFFFH
Bảng phân vùng địa chỉ SRAM (2M)
Trang 5Bảng phân vùng địa chỉ SRAM (4M)
Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 7FFFFH
Bảng phân vùng địa chỉ EPROM (8M)
Tương tự: với dung lượng nhớ 4M ta có A = 18 đường địa chỉ
Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (22 ) Vi xử lý 80286 có 24 đường địa 4chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ
Bảng phân vùng địa chỉ SRAM (8M)
Trang 6Bảng phân vùng địa chỉ EPROM (4M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 80000H đến BFFFFH
Bảng phân vùng địa chỉ EPROM (4M)
Tương tự: với dung lượng nhớ 2M ta có A = 17 đường địa chỉ
Để giải mã 8 vùng nhớ 2MB ta cần 3 đường địa chỉ (23 ) Vi xử lý 80286 có 24 đường địa 8chỉ, ta chỉ dùng 17+3 = 20 đường địa chỉ
Bảng phân vùng địa chỉ SRAM (2M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 00000H đến 1FFFFH
Bảng phân vùng địa chỉ SRAM (4M)
Trang 7Vậy vùng địa chỉ của bộ nhớ từ 20000H đến 5FFFFH
Bảng phân vùng địa chỉ SRAM (2M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 60000H đến 7FFFFH
Bảng phân vùng địa chỉ EPROM (8M)
Tương tự: với dung lượng nhớ 4M ta có A = 18 đường địa chỉ
Để giải mã 4 vùng nhớ 4MB ta cần 2 đường địa chỉ (22 ) Vi xử lý 80286 có 24 đường địa 4chỉ, ta chỉ dùng 18+2 = 20 đường địa chỉ
Bảng phân vùng địa chỉ EFROM (4M)
Trang 8Bảng phân vùng địa chỉ SRAM (8M)
Vậy vùng địa chỉ của bộ nhớ từ 40000H đến BFFFFH
Bảng phân vùng địa chỉ EFROM (4M)
Tương tự: với dung lượng nhớ 2M ta có A = 17 đường địa chỉ
Để giải mã 6 vùng nhớ 2MB ta cần 3 đường địa chỉ (23 ) Vi xử lý 80286 có 24 đường 8 6địa chỉ, ta chỉ dùng 17+3 = 20 đường địa chỉ
Bảng phân vùng địa chỉ SRAM (4M)
Trang 9Bảng phân vùng địa chỉ SRAM (2M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ 40000H đến 5FFFFH
Bảng phân vùng địa chỉ SRAM (4M)
Vậy vùng địa chỉ của bộ nhớ từ 60000H đến 9FFFFH
Bảng phân vùng địa chỉ EPROM (2M)
19
A A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Vậy vùng địa chỉ của bộ nhớ từ A0000H đến CFFFFH
Bài 3: Thực hiện cổng ra điều khiển 8 LED đơn có địa chỉ là F000H
Bài làm:
Ta có: địa chỉ F000H = 1111 0000 0000 0000H (16 đường)
Để giải mã chọn IC chốt ngõ ra tác động mức 0 tại địa chỉ F000H ta dùng cổng NAND và cổng đảo (NOT) ở ngõ vào các bit 0
Trang 101 LE11
Q0 2Q1 5Q2 6Q3 9Q4 12Q5 15Q6 16Q7 19
Ngoài ra mạch còn có 82284 để CPU hoạt động
Các nút bấm được cung cấp mức 0 khi bấm và mức 1 khi hở
Khi 80286 thực hiện lệnh OUT cung cấp địa chỉ F000H, ngõ
CMP AL, 0FFH JE,L1
Trang 11A7 24A8 23A9 22A10 21A11 20A12 19A13 18A14 17A15 16A16 15A17 14A18 13A19 12A20 11A21 10A22 8A23 7
S0 5S1 4
BHE 1COD/I NTA 66HLDA 65LOCK 68M/IO 67PEACK 6READY
C4 10uF
B7 11330x8
1 2
1 2
1 2
1 2
1 2
+5V
10K
1 2
U8 NAND16
1
2 4 6 8 10 12 14 16
1 2
1 2
1 2
1 2
1 2
1 2
RESET
U17 82284
Bài 5: Cho biết địa chỉ logic của ô nhớ là BA00H:D1AFH
a Hãy cho biết địa chỉ vật lý của ô nhớ này
b Hãy cho 5 ví dụ về các địa chỉ logic khác
Bài 7: Viết các lệnh hợp ngữ thực hiện các công việc sau:
a) Nạp số 3654H vào thanh ghi BP
b) Sao chép nội dung thanh ghi BP tới thanh ghi SP
c) Sao chép nội dung thanh ghi AX tới ô nhớ có địa chỉ offset=9876H
d) Tăng nội dung thanh ghi CX lên 1
e) Cộng 07H với DL
Trang 12i) Nhân giá trị trong AH với 08
j) Nghịch đảo 4 bit thấp của thanh ghi DX mà không làm ảnh hưởng tới các bit khác k) Lấy bù 2 nội dung thanh ghi BP
Bài làm:
a) mov BP,3654h ;Nạp số 3654H vào thanh ghi BP
b) mov SP,BP ;Sao chép BP vào SP
c) mov (9876h),AX ;Sao chép AX tới ô nhớ có địa chỉ offset 9876H
d) add CX,1 ;Tăng nội dung thanh ghi CX lên 1
e) add DL,07h ;Cộng 07h vào DL
f) or AX,10000000b ;MSB =1 không thay đổi các bit khác
g) or AX,00000001b ;LSB =1 không thay đổi các bit khác
h) and CL,0Fh ;Che 4 bit cao thanh ghi CL
j) xor DX,00001111b ;Nghịch đảo 4 bit thấp DX, không thay đổi các bit khác
Bài 11: Thiết kế hệ thống phần cứng vi xử lý thực hiện việc giám sát và đóng mở đèn quạt
cho một tòa nhà bao gồm 5 phòng (mỗi phòng có 8 đèn và 8 quạt) Khi một thiết bị chạy sẽ có một đèn LED tương ứng sáng Người sử dụng có thể tắt mở bất kỳ một thiết bị nào từ trung tâm hoặc đóng mở điện cho từng phòng
Trang 13 Đèn LED mắc song song cuộn dây Relay được cấp nguồn cùng lúc với Relay nên cũng sáng làm đèn giám sát thiết bị
Công tắc song song tiếp điểm Relay tạo thành cổng OR để người sử dụng bật tắt thiết
bị bằng tay
U1 8051
PSEN 29ALE 30
R1 10K
C1 10uF
+5V
XTAL 12MHz
C2 33p
C3
33p
RL1
4 3 1 2
Q1 2N2222
D1 LED
R2 R
1 2
Q2 2N2222
D2 LED
R3 R SW2
R4 R5
Bài 12: Thiết kế hệ thống một vi xử lý điều khiển động cơ bước có các thông số kỹ thuật:
12V/2A mỗi bước 1 Biết rằng động cơ có 4 cuộn dây cấp điện theo xung, để nó quay theo ochiều kim đồng hồ cần cung cấp dữ liệu vào 4 đầu dây theo dữ liệu trong bảng sau:
Dây 1 Dây 2 Dây 3 Dây 4 Hexa
Trang 14L1 L2 L3
DÂY 2
06 05 09
4 3 2 1 STEP
1 1
1 1
0 0 0 0
0 0
VCC (COMMON)
Phân tích nhiệm vụ và yêu cầu :
Động cơ quay thuận 1 bước được 1 => quay 1 vòng o 360 có 360 bước o
Vi điều khiển có 4 mã lệnh làm quay được 4 bước = 4 o
Như vậy, để động cơ quay 1 vòng = o
360 cần có 360 90
4 lần lặp lại 4 mã lệnh
Động cơ quay ngược 90 có 90 bước o
Vi điều khiển có 4 mã lệnh làm quay được 4 bước = 4 o
Như vậy, nếu 4 mã lệnh lặp lại 22 lần thì động cơ quay được o o
22 4 88Còn lại 2 ta cho quay thêm 2 bước nữa sẽ được o 90 o
Chương trình nguồn được viết như sau:
org 00h
ban_dau:
mov r7, #90 quay_thuan:
mov p0, #09h call delay mov p0, #05h call delay mov p0, #06h call delay mov p0, #0ah call delay djnz r7, quay_thuan mov r7, #22
quay_nguoc:
mov p0, #0ah call delay mov p0, #06h call delay mov p0, #05h call delay mov p0, #09h call delay djnz r7, quay_nguoc mov p0, #0ah call delay mov p0, #06h
Trang 15call delay jmp ban_dau delay:
Bài 13: Thiết kế hệ thống vi xử lý sử dụng vào ra song song PPI 8255 hoạt động ở chế độ 0
(mode 0) điều khiển bàn phím ma trận 16 phím và bộ hiển thị 8 led 7 đoạn điều khiển theo kiểu quét như hình vẽ Viết chương trình đọc các phím nhấn rồi hiển thị trên các led 7 đoạn, phím đầu tiên sẽ hiển thị tại led bên phải, khi nhấn thêm 1 phím giá trị của các led bên phải sẽ dịch chuyển về ben trái một vị trí
Bài làm:
org 0
;ghi chu phan cung
;PB -> control led 7 (add: F001h)
Trang 16mov dptr,#0F003h ;dia chi thanh ghi dieu khien
mov a,#10000001b ;PA PB out, PC low in, PC high out
call quetphim ;goi chuong trinh con quet phim , neu co phim an thi co c = 1
jc phiman4 ;kiem tra tiep neu c = 1
ret ;neu khong co phim an thi co c = 0 va quay ve
phiman4:
djnz r4,phiman1 ;quay ve lap lai 50 lan de chong doi co khi
mov b,a ;cat noi dung ma phim o thanh ghi a vua co duoc
;cho nha phim phiman2:
mov r4,#50 ;nhap so dem 50 lan cho nha phim
phiman3:
call quetphim ;goi chuong trinh con quet phim , neu co phim an thi co c = 1
jc phiman2 ;co thi kiem tra lai
djnz r4,phiman3 ;khong thi lap lai 50 lan va dam bao phim da duoc nha mov a,b ;lay lai noi dung ma phim vao thanh ghi a
ret
quetphim:
;doc trang thai ban phim , neu co phim an thi co c =1 , ma phim luu trong a
;khong co phim an thi co c = 0
mov a,#0feh ;bat dau o cot so 0 , cho 1 cot xuong muc 0
mov r6,#4 ;su dung r6 lam bo dem , 4 vi co 4 cot
Trang 17;doc lai port C de xu ly tiep movx a,@dptr
anl a,#0f0h ;cach ly hang , neu phim nhan thi hang = 0 , 0 and 1 = 0
cjne a,#0f0h,anphim ;hang co tich cuc khong , neu co phim an p2 <> 0f0h , dua den
mov a,r7 ;neu khong co phim an a = 0f0h , lay lai noi dung a
rl a ;xoay a de di chuyen den cot ke tiep
djnz r6,quetphim1 ;neu nhu 1 cot khong co phim nhan thi quay lai
quetphim1 de ktra cot ke tiep
clr c ;cho c= 0 neu khong co phim nhan
mov a,#0ffh ;cho a= 0ffh neu khong co phim nhan
ret
anphim:
;neu co phim an ta xu ly nhu sau :
;lay 4 - r6 duoc ma o hang dau tien ( trong so )
;neu nhu ktra thay so o hang ke tiep thi tuan theo quy luat sau :
;hang 1 se lan luot la : 0=0,1=1,2=2.4,3=3 ( cong 0 so 4 )
;hang 2 se lan luot la : 4=0+4,5=1+4,6=2+4,7=3+4 ( cong 1 so 4 )
;hang 3 se lan luot la : 8=0+4+4,9=1+4+4,a=2+4+4,b=3+4+4 ( cong 2 so 4 )
;hang 4 se lan luot la : c=0+4+4+4,d=1+4+4+4,e=2+4+4+4,f=3+4+4+4 ( cong 3 so 4 )
mov r7,a ;chua noi dung port 2 khi co phim an
mov a,#4 ;nhap so 4 vao a de chuan bi tinh toan
jnc anphim2 ;phat hien dung phim nhan
inc r6 ;moi lan dich co c neu chua bang 0 thi r6=4+r6 ( r6 la trong so cot ) inc r6 ;neu khong phai hang dang kiem tra thi tang len 4
inc r6
inc r6
djnz r5,anphim1 ;lap lai 4 lan
anphim2:
setb c ;c=1 khi da co phim an
mov a,r6 ;thanh ghi a chua ma phim nhan o 4 bit thap
Trang 19mov a,#11101111b ;chon led 5
Trang 20Bài 15: Thực hiện hế thống vi xử lý giao tiếp với bộ ADC loại xấp xỉ liên tiếp bằng vi mạch
vào ra 8255 viết chương trình điều khiển việc đọc dữ liệu từ ngõ vào ADC hiển thị lên 2 led
7 đoạn dưới dạng số HEX
Bài làm:
org 0
;ghi chu phan cung
;PA <- data ADC0804 (add: F000h)
;PB.0 -> write ADC (add: F001h)
mov dptr,#0F003h ;dia chi thanh ghi dieu khien
mov a,#10011001b ;PA PC in PB out
movx @dptr,a
repeat:
mov dptr,#0F001h ;dia chi PB
;tao xung /WR cho phep chuyen doi mov a,#0
Trang 21;kiem tra chuyen doi xong chua , thoi gian chuyen doi la
swap a ;nipple cao
anl a,#00001111b ;nipple thap
Trang 22djnz r5,del1
ret
end
Bài 16: Một công tắc 4 vị trí và một bộ LED 7 đoạn được nối với 8051 như hình vẽ:
Viết đoạn chương trình nhận dữ liệu từ công tắc cổng 3, rồi hiển thị giá trị nhị phân tương ứng của nó lên LED 7 đoạn
Trang 23Bài 17: Viết chương trình tạo ra xung tác động mức cao trong 4 s trên cổng P1.7 sau
mỗ200 s
Bài làm:
org 0
;ghi chu: Xtal 12MHz, moi lenh 1 micro second
mov tmod,#00000001b ;timer 0 mode 1
Bài 17: Thiết kế hệ thống vi điều khiển đóng mở đèn giao thông trên một ngã tư tự động với
các thời gian sáng đèn đỏ xanh vàng định trước
Bài làm:
R 220 x 6 D1
RED
D2
Y ELLOW
D3 GREEN
D4 RED
D5
Y ELLOW
D6 GREEN
XTAL 12MHz
C2 30p
C3 30p