1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đề cương ôn tập môn vi điều khiển

9 1,2K 12

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 287,5 KB

Nội dung

Hoạt động của một vi điều khiển:1. Khi không có nguồn điện cung cấp, vi điều khiển chỉ là một con chip có chương trình nạpsẵn vào trong đó và không có hoạt động gì xảy ra.2. Khi có nguồn điện, mọi hoạt động bắt đầu được xảy ra với tốc độ cao. Đơn vị điều khiểnlogic có nhiệm vụ điều khiển tất cả mọi hoạt động. Nó khóa tất cả các mạch khác, trừ mạch dao độngthạch anh. Sau mini giây đầu tiên tất cả đã sẵn sàng hoạt động.3. Điện áp nguồn nuôi đạt đến giá trị tối đa của nó và tần số dao động trở nên ổn định. Các bitcủa các thanh ghi SFR cho biết trạng thái của tất cả các mạch trong vi điều khiển. Toàn bộ vi điềukhiển hoạt động theo chu kỳ của chuỗi xung chính.4. Thanh ghi bộ đếm chương trình được xóa về 0. Câu lệnh từ địa chỉ này được gửi tới bộ giảimã lệnh sau đó được thực thi ngay lập tức

Trang 1

Câu 1: Trình bày hoạt động của vi điều khiển (2.5)

Hoạt động của một vi điều khiển:

1 Khi không có nguồn điện cung cấp, vi điều khiển chỉ là một con chip có chương trình nạp sẵn vào trong đó và không có hoạt động gì xảy ra

2 Khi có nguồn điện, mọi hoạt động bắt đầu được xảy ra với tốc độ cao Đơn vị điều khiển logic có nhiệm vụ điều khiển tất cả mọi hoạt động Nó khóa tất cả các mạch khác, trừ mạch dao động thạch anh Sau mini giây đầu tiên tất cả đã sẵn sàng hoạt động

3 Điện áp nguồn nuôi đạt đến giá trị tối đa của nó và tần số dao động trở nên ổn định Các bit của các thanh ghi SFR cho biết trạng thái của tất cả các mạch trong vi điều khiển Toàn bộ vi điều khiển hoạt động theo chu kỳ của chuỗi xung chính

4 Thanh ghi bộ đếm chương trình được xóa về 0 Câu lệnh từ địa chỉ này được gửi tới bộ giải

mã lệnh sau đó được thực thi ngay lập tức

5 Giá trị trong thanh ghi PC được tăng lên 1 và toàn bộ quá trình được lặp lại vài triệu lần trong một giây

Câu 2: Nêu cấu trúc chung của vi điều khiển Trình bày về ROM, RAM của vi điều khiển (2.5)

Bộ nhớ (Memory)

- Read Only Memory (ROM)

Read Only Memory (ROM) là một loại bộ nhớ được sử dụng để lưu vĩnh viễn các chương trình được thực thi

trường ngoại vi Kích thước của dãy ROM từ 512B đến 64KB

- Random Access Memory (RAM)

Random Access Memory (RAM) là một loại bộ nhớ sử dụng cho các dữ liệu lưu trữ tạm thời

và kết quả trung gian được tạo ra và được sử dụng trong quá trình hoạt động của bộ vi điều khiển Nội dung của bộ nhớ này bị xóa một khi nguồn cung cấp bị tắt

- Electrically Erasable Programmable ROM (EEPROM)

EEPROM là một kiểu đặc biệt của bộ nhớ chỉ có ở một số loại vi điều khiển Nội dung của nó

có thể được thay đổi trong quá trình thực hiện chương trình (tương tự như RAM), nhưng vẫn còn lưu giữ vĩnh viễn, ngay cả sau khi mất điện (tương tự như ROM)

Các thanh ghi chức năng đặc biệt (SFR)

Thanh ghi chức năng đặc biệt (Special Function Registers) là một phần của bộ nhớ RAM Mục đích của chúng được định trước bởi nhà sản xuất và không thể thay đổi được

Bộ đếm chương trình (PC: Program Counter)

Bộ đếm chương trình chứa địa chỉ chỉ đến ô nhớ chứa câu lệnh tiếp theo sẽ được kích hoạt

Central Processor Unit (CPU)

Đây là một đơn vị có nhiệm vụ điều khiển và giám sát tất cả các hoạt động bên trong vi điều khiển và người sử dụng không thể tác động vào hoạt động của nó

Các cổng vào/ra (I/O Ports)

Để vi điều khiển có thể hoạt động hữu ích, nó cần có sự kết nối với các thiết bị ngoại vi Mỗi

vi điều khiển sẽ có một hoặc một số thanh ghi (được gọi là cổng) được kết nối với các chân của vi điều khiển

Bộ dao động (Oscillator)

Bộ dao động làm nhiệm vụ đồng bộ hóa hoạt động của tất cả các mạch bên trong vi điều khiển

Bộ định thời/đếm (Timers/Counters)

Truyền thông nối tiếp

Truyền thông giữa các thiết bị ở khoảng cách xa

Chương trình

Câu 3: Chuyển từ hệ cơ số 10 các số: 34, 225, 143 sang hệ cơ số 2 và cơ số 16 (2.5)

Bài làm:

Chuyển sang nhị phân

34 : 100010

225: 11100001

143: 10001111

Chuyển sang hệ 16:

34: 22H

225: 0E1H

143: 8FH

Câu 4 : Chuyển các số sau sang hệ 10 : 23H, 110101B, 101011B, 4AH (2.5)

23H: 2x16 + 3 = 35

11010B = 2x2x2x2 + 2x2x2 + 2x1 = 26

101011B = 2x2x2x2x2 + 2x2x2 + 2x1 + 1 = 43

Trang 2

4AH = 4x16 + 10 = 74

Bài tập chương 4

Bài làm:

47 sang nhị phân là: 00101111

30 sang nhị phân là: 00011110

Thực hiện phép cộng:

00101111

+ 00011110

01001101

Vậy S1 = 00101111 + 00011110 = 01001101

Câu 6: Trình bày chuẩn 8051 (2.5)

Bài làm:

AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo công nghệ CMOS có các đặc tính như sau:

+ 4 KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả năng tới

1000 chu kỳ ghi xoá

+ Tần số hoạt động từ: 0Hz đến 24 MHz

+ 3 mức khóa bộ nhớ lập trình

+ 128 Byte RAM nội

+ 4 Port xuất /nhập I/O 8 bit

+ 2 bộ Timer/counter 16 Bit

+ 6 nguồn ngắt

+ Giao tiếp nối tiếp điều khiển bằng phần cứng

+ 64 KB vùng nhớ mã ngoài

+ 64 KB vùng nhớ dữ liệu ngoài

+ Cho phép xử lý bit

+ 210 vị trí nhớ có thể định vị bit

+ 4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân hoặc chia

+ Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm (Power-down)

+ Ngoài ra, một số IC khác của họ MCS-51 có thêm bộ định thời thứ 3 và 256

byte RAM nội

Câu 7: Vẽ sơ đồ chân của vi điều khiển 8051 Nêu ý nghĩa các chân.(3.0)

Bài làm:

Sơ đồ chân AT89C51:

Ý nghĩa các chân:

- Tín hiệu vào /EA trên chân 31 thường đặt lên mức cao ( +5V) hoặc mức thấp (GND) Nếu ở

mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K hoặc tối đa 8k đối với 89C52) Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ mở rộng (tối đa đến 64Kbyte)

- Các chân nguồn:

AT89C51 hoạt động ở nguồn đơn +5V Vcc được nối vào chân 40, và Vss (GND) được nối

Câu 5 : Thực hiện phép toán sau bằng thanh ghi 8 bít (2.5)

S1 = 47 + 30 ; S2 = 64 – 37 ; S3 = 28H + 33H ; S4 = 49H – 2CH ;

Trang 3

vào chân 20.

+ Chân 40: VCC = 5V± 20%

+ Chân 20: GND

/PSEN (chân 29) cho phép đọc bộ nhớ chương trình mở rộng đối với các ứng dụng sử dụng ROM ngoài

- ALE/ PROG (chân 30) cho phép tách các đường địa chỉ và dữ liệu tại Port 0 khi truy xuất

bộ nhớ ngoài

- EA (chân 31) dùng để cho phép thực thi chương trình từ ROM ngoài Khi nối chân 31 với

Vcc, AT89C51 sẽ thực thi chương trình từ ROM nội (tối đa 8KB), ngược lại thì thực thi từ ROM ngoài (tối đa 64KB)

- RST (chân 9) cho phép reset AT89C51 khi ngõ vào tín hiệu đưa lên mức 1 trong ít nhất là

2 chu kỳ máy

- X1, X2: Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối thêm thạch anh

và các tụ như hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho AT89C51 là

12Mhz.

Port 0 : có 2 chức năng ở các chân 32 – 39 của AT89C51:

- Chức năng I/O (xuất/nhập): dùng cho các thiết kế nhỏ

- Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi hỏi phải sử dụng bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit) vừa là bus địa chỉ (8 bit thấp)

Port 1: Port1 (chân 1 – 8) chỉ có một chức năng là I/O,

Port 2: Port 2 (chân 21 – 28) là port có 2 chức năng:

- Chức năng I/O (xuất / nhập)

- Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài có địa chỉ 16 bit Khi

đó, Port 2 không được dùng cho mục đích I/O

Port 3: Port 3 (chân 10 – 17) là port có 2 chức năng:

- Chức năng I/O Khi dùng làm ngõ vào, Port 3 phải được set mức logic 1 trước đó

- Chức năng khác mô tả như sau:

Câu 8: Trình bày các chế độ dịa chỉ của 8051 Lấy ví dụ minh họa (2.5)

1 Địa chỉ tức thời

Trong chế độ đánh địa chỉ này toán hạng nguồn là một hằng số, toán hạng đích là một thanh ghi

Ví dụ: MOV A, #20;

2 Địa chỉ thanh ghi: cả toán hạng đích và toán hạng nguồn là các thanh ghi

Ví dụ: MOV A, R1

3 Địa chỉ trực tiếp: Một toán hạng là thanh ghi, toán hạng còn lại là địa chỉ của ô nhớ

Ví dụ: MOV R1, 30H;

4 Địa chỉ gián tiếp: Một toán hạng là thanh ghi, toán hạng còn lại là thanh ghi R0 hoặc R1 chứa địa chỉ của ô nhớ

Ví dụ: MOV A, @R1

5 Địa chỉ theo chỉ số: Một toán hạng là thanh ghi tích lũy A, toán hạng còn lại là ô nhớ của bộ nhớ ROM

Ví dụ: MOVC A, @A + DPTR

Câu 9: Trình bày cấu trúc chung của một lệnh hợp ngữ Cho ví dụ.(2.5)

Bài làm:

Câu trúc chung của một lệnh hợp ngữ:

nhãn: từ gợi nhớ các toán hạng ; chú giải

Ví dụ:

- Nhãn: là tên chương trình con Kết thúc bằng dấu hai chấm (:)

- Từ gợi nhớ: là các câu lệnh của hợp ngữ.

- Các toán hạng: là các thanh ghi, giá trị, địa chỉ, …

- Chú giải: là phần giải thích ý nghĩa của câu lệnh Bắt đầu bằng dấu chấm

phẩy (;)

Câu 10: Viết chương trình ghi 40H vào ô nhớ 30H của RAM nội sử dụng 2 chế độ đánh địa chỉ trực tiếp và gián tiếp (3.0)

Trang 4

Bài làm:

1 Chế độ đánh địa chỉ trực tiếp

MOV A, #40H ; chuyển 40H vào thanh ghi A

MOV 30H, A ; chuyển nội dung thanh ghi A vào ô nhớ có địa chỉ 30H

2 Chế độ địa chỉ gián tiếp

MOV R0, #30H ; Dùng thanh ghi R0 chứa địa chỉ của ô nhớ RAM là 30H

MOV A, #40H ; Chuyển 40H vào thanh ghi A

MOV @R, A ; chuyển nội dung thanh ghi A vào ô nhớ có địa chỉ chứa trong thanh ghi R0

Câu 11: Viết chương trình chuyển một chuỗi dữ liệu gồm 10 byte trong RAM nội có địa chỉ đầu là 30H đến vùng RAM nội có địa chỉ đầu là 40H (3.0)

Bài làm:

MOV R0, #30H ; dùng thanh ghi R0 chứa địa chỉ đầu 30H

MOV R1, #40H ; dùng thanh ghi R1 chứa địa chỉ đầu 40H

MOV R2, #10 ; dùng thanh ghi R2 làm bộ đếm 10 lần

Lap:

MOV A, @R0 ; chuyển nội dung ô nhớ có địa chỉ trong R0 vào thanh ghi A

MOV @R1, A ; chuyển nội dung thanh ghi A vào ô nhớ có địa chỉ ô nhớ chứa trong R1 INC R0

INC R1

DJNZ R2, Lap ; vừa giảm R2 vừa kiểm tra xem R2 về 0 chưa nếu chưa về 0 thì lặp lại đoạn

; chương trình đánh dấu bởi từ Lap, nếu R2 về 0 thì kết thúc

Câu 12: Viết chương trình tính tổng sau: (3.0)

S = 1 + 2 + 3 + … + 10;

Bài làm:

MOV A, #0 ; ban đầu tổng trong thanh ghi A là 0

MOV R1, #1 ;

MOV R2, 10 ; chứa số đếm là 10 lần

Lap:

ADD A, R1 ;

INC R1 ;

DJNZ R2, Lap

Bài 13: Chương trình con tạo trễ 0.5ms dùng timer (Xtal = 11.0592MHZ)

MOV TMOD, #01H ; sử dụng Timer 0 chế độ 16 bít

Delay1:

MOV TH0, #0FDH ; TIMER TRỄ 0.5ms

MOV TL0, #0BH ; số đếm 0FFFFH – 0FD0BH = 2F4H = 500

SETB TR0 ;

LAP:

JNB TF0, LAP ;

CLR TF0 ;

CLR TR0 ;

Bài 14: Viết chương trình con tạo sóng vuông 1k HZ trên chân p1.0 (Xtal = 11.0592MHZ)

T = 1/f = 1ms

ORG 000H

MOV TMOD, #01H ; sử dụng timer0 chế độ 16 bít

ANSWER_BACK:

MOV TL0, # 08H ; số đếm 0FFFFH – 0FB08H = 3E7H = 999 (hệ 10)

MOV TH0, #FBH ;

CPL P1.0

ACALL PENDING

SJMP ANSWER_BACK

; chương trình tạo trễ sử dụng Timer 0

PENDING:

Trang 5

SETB TR0 ;

STANDBY:

JNB TF0, STANDBY ;

CLR TR0 ;

CLR TF0 ;

RET

END

Bài 15 Chương trình hiển thị led 7 thanh số từ 00 đến 99

Dùng Led 7 thanh Cathode chung

MOV 30H,#0

SJMP Hienthi

Main:

INC 30H ; Tăng ô nhớ 30h

MOV A,30H

CJNE A,#100,Hienthi ; Nếu giá trị ô nhớ 30h = 10

MOV 30H,#0 ; thì gán 30h = 0

SJMP Hienthi ; Hiển thị ma Led 7 đoạn

ACALL Delay

SJMP Main

; -

Hienthi:

MOV A,30H

MOV B,#10

DIV AB

MOV DPTR,#Maled7

MOVC A,@A+DPTR

MOV P2,A

CLR P1.1

SETB P1.1

MOV A,B

MOV DPTR,#Maled7

MOVC A,@A+DPTR

MOV P2,A

CLR P1.0

SETB P1.0

CALL Delay

SJMP Main

Maled7: DB

0C0H,0F9H,0A4H,0B0H,

99H,92H,82H,0F8H,80H,90H

; -Delay:

MOV R7,#255

DJNZ R7,$

RET

END

Câu 21: Thiết kế mạch, Viết chương trình hiển thị trên Led 7 thanh từ 0 đến 9 khi ấn nút tăng INC hay nút giảm DEC

Thiết kế mạch:

Trang 6

Chương trình:

MOV 30H,#0

SJMP Hienthi

Main:

JNB P1.0,Sw1 ; Nếu P3.0 = 0 thì nhấn SW1

JNB P1.1,Sw2 ; Nếu P3.1 = 0 thì nhấn SW2

SJMP Main

SW1:

INC 30H ; Tăng ô nhớ 30h

MOV A,30H

CJNE A,#10,Hienthi ; Nếu giá trị ô nhớ 30h = 10 MOV 30H,#0 ; thì gán 30h = 0

SJMP Hienthi ; Hiển thị ra Led 7 đoạn

; -

Sw2:

DEC 30H ; Giảm ô nhớ 30h

MOV A,30H

CJNE A,#255,Hienthi ; Nếu giá trị giảm = -1 (255) MOV 30H,#9

SJMP Hienthi ; thì gán 30h = 9

Hienthi:

MOV A,30H

MOV DPTR,#Maled7

MOVC A,@A+DPTR

MOV P2,A

CALL Delay

SJMP Main

Maled7: DB

0C0H, 0F9H, 0A4H, 0B0H,

99H, 92H,82H, 0F8H, 80H, 90H

; -Delay:

MOV R7,#255

DJNZ R7,$

RET

END

Câu 16: Chương trình khởi động động cơ qua 3 cấp điện trở phụ Main:

SETB P1.0 ; khởi động từ chính

ACALL Delay ; trễ 10s

SETB P1.1 ; khởi động từ loại Rf1

ACALL Delay ; trễ 10s

SETB P1.2 ; khởi động từ loại Rf2

ACALL Delay ; trễ 10s

SETB P1.3 ; khởi động từ loại Rf3

ACALL Delay

Delay:

PUSH 07h

PUSH 06h

PUSH 05H

MOV R6,#200

Delay1:

MOV R7,#250

Delay2:

MOV R5, # 200

DJNZ R5, $

DJNZ R7, Delay1

DJNZ R6, Delay1

POP 05h

POP 06h

POP 07h

RET

Trang 7

END

Bài 17: Viết chương trình điều khiển động cơ 1 chiều quay thuận, quay nghịch

- Vẽ sơ đồ

- Viết chương trình

MAIN:

MOV P0, #00h;

STAY:

JNB P1.0, THUAN

;JNB P1.1, NGUOC

;JNB P1.2, STOP ;

SJMP STAY

; -chương trình quay thuận

THUAN:

SETB P0.0

RET

; -chương trình quay ngược

NGUOC:

SETB P0.1

RET

; -chương trình dừng

STOP: ;

CLR P0.0

CLR P0.1

RET

;

END

Câu 18: Thiết kế mạch, viết chương trình điều khiển động cơ bước quay thuận nghịh Giải thích ý nghĩa các câu lệnh.

Thiết kế mạch:

Chương trình:

// Chuong trinh dieu khien dong co buoc don gian

ORG 0H

MAIN:

JNB P2.0, THUAN

JNB P2.1, NGUOC

JNB P2.2, STOP

SJMP MAIN

THUAN:

MOV P1, #00000001B

ACALL DELAY

MOV P1, #00000010B

ACALL DELAY

MOV P1, #00000100B

ACALL DELAY

MOV P1, #00001000B

Trang 8

ACALL DELAY

RET

NGUOC:

MOV P1, #00000001B

ACALL DELAY

MOV P1, #00000010B

ACALL DELAY

MOV P1, #00000100B

ACALL DELAY

MOV P1, #00001000B

ACALL DELAY

RET

DELAY:

MOV R1, #20 H1: MOV R2,#255

H2: MOV R3,#255

H3: DJNZ R3,H3

DJNZ R2,H2 DJNZ R1,H1 RET

END

Câu20 Viết chương trình điều khiển mạch đếm sản phẩm sử dụng Timer 1 chế độ 2 hiển thị trên một Led 7 thanh Giải thích ý nghĩa các câu lệnh (5.0)

MOV TMOD, #01100000B; Chọn bộ đếm 1, chế độ 2, bít C/T = 1 xung ngoài MOV TH1, #0 ; Xoá TH1

SETB P3.5 ; Lấy đầu vào T1

AGAIN: SETB TR1 ; Khởi động bộ đếm

BACK: MOV A, TL1 ; Lấy bản sao số đếm TL1

CALL Hienthi

JNB TF1, Back ; Duy trì nó nếu TF = 0

SJMP AGAIN ; Tiếp tục thực hiện

Hienthi:

MOV DPTR,#Maled7

MOVC A,@A+DPTR

MOV P2,A

CLR P1.2

SETB P1.2

CALL Delay

Maled7: DB

0C0H,0F9H,0A4H,0B0H,

99H,92H,82H,0F8H,80H,90H ; MÃ SỐ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

RET

; -Delay:

MOV R7,#255

DJNZ R7,$

RET

END

Câu 19 Thiết kế mạch, viết chương trình điều khiển dãy 8 led đơn sáng dần từ trái qua phải, nhấp nháy, sau đó sáng lần lượt từ phải qua trái Giải thích ý nghĩa các câu lệnh.

Bài làm:

Thiết kế mạch:

Trang 9

Chương trình:

Main:

MOV P0,#01h CALL Delay MOV P0,#03h CALL Delay MOV P0,#07h CALL Delay MOV P0,#0fh CALL Delay MOV P0,#1fh CALL Delay MOV P0,#3fh CALL Delay MOV P0,#7fh CALL Delay MOV P0,#0ffh CALL Delay

; nhấp nháy MOV P0, #00H;

CALL Delay

; sáng dần từ phải sang trái MOV P0,#80h

CALL Delay MOV P0,#40h CALL Delay MOV P0,#20h CALL Delay MOV P0,#10h CALL Delay MOV P0,#08h CALL Delay MOV P0,#04h CALL Delay MOV P0,#02h CALL Delay MOV P0,#01h SJMP main

Ngày đăng: 24/06/2014, 23:18

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân AT89C51: - Đề cương ôn tập môn vi điều khiển
Sơ đồ ch ân AT89C51: (Trang 2)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w