1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thực hành vi xử lý trong điều khiển

19 601 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 2,35 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chức năng của các chân trên Port 3- Port 0 khi được dùng làm Port xuất nhập cần phải sử dụng điện trở kéo lên bên ngoài Port0 như hình H.2.2.. Do đó ta có mã hiển thị số 5 như sau: Đối

Trang 1

BÀI 1

THIẾT KẾ VÀ MÔ PHỎNG MẠCH ĐIỂN TỬ BẰNG PHẦN MỀM PROTEUS

- SỬ DỤNG PHẦN MỀM KEIL C LẬP TRÌNH VI ĐIỀU KHIỂN

File mô phỏng

BÀI 2

TẬP LỆNH CỦA AT89C51 VÀ PORT XUẤT NHẬP

I Tóm tắt lý thuyết

1 Các Port xuất nhập của AT89C51

AT89C51 có 4 Port xuất nhập tương ứng P0, P1, P2, P3 như hình H.2.1.

Trang 2

Bảng 2.1 Chức năng của các chân trên Port 3

- Port 0 khi được dùng làm Port xuất nhập cần phải sử dụng điện trở kéo lên bên ngoài

Port0 như hình H.2.2

- Port P1, P2, P3 có thể cấu hình làm port xuất nhập mà không cần dùng điện trở kéo lên do bên trong đã tích hợp sẵn điện trở

- Port P0, P2, P3 ngoài chức năng làm Port xuất nhập còn có thêm các chức năng khác

(Hình H.2.1 và Bảng 2.1)

2 Tập lệnh của AT89C51

Lệnh của AT89C51 có độ dài 8bit, tương ứng có 256 câu lệnh, được chia thành các nhóm

cơ bản như sau:

• Nhóm lệnh di chuyển dữ liệu

• Nhóm lệnh số học

• Nhóm lệnh logic

• Nhóm lệnh nhảy

• Nhóm lệnh xử lý bit

II Nội dung thực hành:

Bài2.1: Cấu hình port P1 là Port đầu vào, port P0 là Port đầu ra Khi ấn Button (P1.0) thì gửi ra P0 giá trị bằng 45

Khi ấn Button 2 (P1.1) thì gửi ra một xung từ cao xuống thấp lên chân P0.0

org 0000H

main:

jnb p1.0,nhan1

jnb p1.1,nhan2

sjmp main

nhan1: mov p0,#45

ret

nhan2:

clr p0.0

ret

end

Trang 3

Khi ấn buton1

Khi ấn button2

Trang 4

Bài 2.2 Sử dụng lệnh nhảy và lặp viết chương trình để led ở chân P0.0 nhấp nháy.

org 0000H

main:

clr p0.0

call delay

setb p0.0

call delay

jmp main

delay:mov r5,#20

d1:mov r6,#20

d2: mov r7,#255

djnz r6,d2

djnz r5,d1

ret

end

Tín hiệu xuất ra chân p0.0

Trang 5

Bài 2.3 Viết chương trình để các Led trên Port 0 sáng xen kẽ nhau: led 1,3,5,7 sáng – 2,4,6,8 tắt

và ngược lại

Quá trình được lặp đi lặp lại

org 0000H

mov a,#01010101b

main:

mov p0,a

delay: mov r0,#255

agin: mov r1,#255

here: nop

djnz r1,here

djnz r0,agin

rl a

sjmp main

end

Tín hiệu xuất ra mạch mô phỏng

Trang 6

Bài 2.4 Viết chương trình để các led trên Port 0 lần lượt sáng từ 1-8 Quá trình trên lặp lại không ngừng.

org 0000H

main:

mov a,1fh

mov p0,a

rl a

call delay

call delay

sjmp main

delay: mov r0,#250

loop1: mov r1,#250

loop2: djnz r1,loop2

djnz r0,loop1

ret

end

Tín hiệu xuất ra mạch mô phỏng

Trang 7

BÀI 3

GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED7 THANH

I.Tóm tắt lý thuyết

1 Giới thiệu về Led 7 thanh

Hình 3.1 Led 7 đoạn

Led 7 thanh gồm 2 loại: loại có anot chung và loại có catot chung

Đối với loại có anot chung, chân COM phải được đưa lên mức logic 1 và muốn led nào

áng phải đặt các chân tương ứng từ a-f xuống mức thấp

Ví dụ: Muốn hiển thị số 5 bằng Led 7 đoạn có anot chung, các led a – f – g – c – d phải sáng

Để thực hiện được điều này thì các chân a – f – g – c – d phải được đặt ở mức logic 0

Do đó ta có mã hiển thị số 5 như sau:

Đối với Led7 thanh có catot chung ta làm ngược lại, chân COM được đặt ở mức 0 và

muốn một led nào đó sáng phải đặt chân tương ứng với Led đó lên mức cao

Ví dụ muốn hiển thị số 6 bằng led 7 thanh có catot chung, ta phải đặt các chân a – f – g – c – d-

e lên mức cao Tương ứng có mã hiển thị như sau:

Bảng 3.1 Bảng mã hiển thị của Led 7 thanh có anot chung:

Trang 8

Bảng 3.2 Bảng mã hiển thị của Led 7 thanh có catot chung:

2 Hiển thị nhiều Led 7 đoạn:

Trang 9

a Phương pháp quét Led:

Phương pháp này dựa trên hiện tượng lưu ảnh trên võng mạc, tức là nếu một hình ảnh

xuất hiện tối thiểu 24 lần/s sẽ tạo cho người quan sát cảm giác là một hình ảnh liên tục Khi nhiều led cùng dùng chung một đường dữ liệu như Hình 3.3, dữ liệu từ vi xử lý sẽ

đồng thời được gửi đến tất cả các Led, do đó ta không thể để các Led sáng cùng một lúc Tại mỗi thời điểm chỉ có duy nhất một led sáng, các led còn lại sẽ tắt Sau thời gian duy trì, Led đó

sẽ tắt và Led tiếp theo sẽ sáng Do hiện tượng lưu ảnh trên mắt nên người quan sát sẽ nhìn thấy các led sẽ hiển thị đồng thời với các số khác nhau Quá trình quét LED được hiển thị như sau: Bật led sáng – Hiển thị dữ liệu  TrTrễ  TrTắt Led xóa dữ liệu

Phương pháp quét Led

Do đó có thể tính được thời gian duy trì cho từng led sáng như sau:

Giả sử có n Led cần hiển thị

-Tần số cho một chu kỳ quét n led = 25hz X n

-Thời gian duy trì cho một lần sáng của từng led = 1/Tần số chu kỳ quét led

Phương pháp này tiện dụng ở phần cứng lẫn phần mềm, tuy nhiên nếu số lượng led qu

nhiều thì thời gian sáng trung bình dành cho mỗi led giảm đi Điều này kéo theo các led sẽ su giảm độ sáng Mặt khác phải tích hợp thêm IC giải mã, nhiều việc phát sinh cho thiết kế mạch lẫn lập trình Phương pháp này ứng dụng cho các hiển thị thông tin ít, khoảng 20 led bảy đoạ trở xuống nhưng thông tin nhiều như bảng tỉ giá ngoại tệ cần vài trăm led thì không được

b Phương pháp chốt Led:

Trang 10

Vẫn chia sẻ bus dữ liệu cho tất cả các led như phương pháp quét , đồng thời các led đều

có chân A (hoặc C) chung nối sẵn lên nguồn (hoặc đất) nghĩa là các Led lúc nào cũng sẵn sàng hiển thị Mỗi led bảy đoạn kết hợp với 1 IC chốt, vi xử lý điều khiển chốt dữ liệu cho chính xác Dữ liệu cho từng led sẽ lần lượt đưa lên Bus, ứng với dữ liệu của led nào thì IC chốt của led đó sẽ chốt dữ liệu lại, động tác này do vi xử lý thực hiện Sau một lượt dữ liệu sẽ xuất hiện đầy đủ trên tất cả các led bảy đoạn, kể từ đó vi xử lý không cần mất công hiển thị nữa, các led sẽ sáng liên tục chứ không như phương pháp quét Như vậy hình ảnh của phương pháp chốt sáng hơn và không nhấp nháy

Hạn chế của phương pháp này là tốn nhiều IC chốt, mạch điều khiển chốt phức tạp (có thể dùng IC giải mã 74138, 74154 như phương pháp quét)

II Nội dung thực hành:

Bài 3.1 Chương trình đếm số xung được đưa vào chân P1.0 và hiển thị lên Led đoạn Khi đếm đến 9 thì reset về 0 Quá trình được lặp đi lặp lại.

org 0000h

main:

mov P2,#0C0h

call delay

mov p2,#0F9h

call delay

mov p2,#0A4h

call delay

mov p2,#0B0h

call delay

mov p2,#99h

call delay

mov p2,#92h

call delay

mov p2,#82h

Trang 11

call delay

mov p2,#0F8h

call delay

mov p2,#80h

call delay

mov p2,#90h

call delay

jmp main

delay:

mov r0,#200

gain: mov r1,#200

loop: djnz r1,loop

djnz r0,gain

ret

end

Tín hiệu xuất ra mạch mô phỏng

Trang 12

Bài3.2 Chương trình đếm từ 0-99

org 0000h

main:

mov dptr,#maled mov r0,#00 lap:

call ht call delay call delay call delay call delay call delay call delay inc r0 cjne r0,#100,lap jmp main ht:

quay:

mov a,r0 mov b,#10 div ab movc a,@a+dptr mov p2,a setb p1.1 setb p1.1

call delay clr p1.1 mov a,b movc a,@a+dptr mov p2,a setb p1.0 clr p1.0 ret maled: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h delay:

mov tmod,#01h mov th0,#0b1h mov tl0,#0e0h setb tr0 here:

jnb tf0,here clr tr0 clr tf0 ret end

Tín hiệu xuất ra

Trang 13

Bài3 chương trình hien thi so 56

org 0000h

main:

setb p1.1 mov p2,#82h call delay clr p1.1 setb p1.0 mov p2,#92h

call delay clr p1.0

sjmp main

delay:

mov tmod,#01h mov th0,#0b1h

Trang 14

mov tl0,#0e0h setb tr0 here:

jnb tf0,here clr tr0 clr tf0 ret end

Tín hiệu xuất ra.

BÀI 4

TIMER /COUNTER – NGẮT

I.Tóm tắt lý thuyết

1 Timer/Counter:

a Thanh ghi định thời

- 8051 có hai bộ điều khiển định thời là Timer 0 và Timer 1

- Mỗi Timer có một thanh ghi định thời 16bit, và được chia thành hai thanh ghi 8bit: Timer high (TH) và Timer Low (TL)

b.Thanh ghi điều khiển TCON:

- TFx: Cờ tràn Timerx Được set và clear bởi phần cứng

Dùng khi ngắt Timer 0,1

- TRx: bit điều khiển Timerx: TRx=0  Trdừng Timerx

TRx=1  Trbật Timerx

Trang 15

- IEx: Ngắt ngoài 0,1

- ITx:Ngắt nối tiếp 0,1

c.Thanh ghi chế độ định thời TMOD:

Để thiết lập chế độ làm việc của các Timer ta sử dụng thanh ghi TMOD 8bit Cả Timer

0 và Timer 1 đều dùng chung thanh ghi TMOD để điều khiển, trong đó: 4bit thấp thiết lập chế

độ điều khiển cho Timer 0 và 4bit cao thiết lập chế độ điều khiển cho Timer 1

-Gate: Khi Gate =1 thì Timer/Counter chỉ làm việc khi cả TRx =1 và INTx=1

Khi Gate = 0 thì Timer/Counter làm việc được khi TRx=1

- C/T: Bit lựa chọn chế độ đếm (counter) hay định thời (Timer)

C/T = 0: chế độ Timer

C/T=1: chế độ định thời

- M0,M1: Lựa chọn chế độ định thời

2 Ngắt:

89C51 có 5 nguồn ngắt: 2 ngắt ngoài, 2 ngắt timer và ngắt nối tiếp

Thanh ghi điều khiển ngắt IE:

- EA: =1 cho phép ngắt toàn cục

=0 không cho phép ngắt

- ES: cho phép ngắt nối tiếp

- ET1, ET0: cho phép ngắt Timer 1, Timer0

- EX1, EX0: cho phép ngắt ngoài 1, ngắt ngoài 0

Muốn cho phép một ngắt nào xảy ra phải set 2 bit: Bit cho phép ngắt toàn cục và bit cho phép từng ngắt riêng rẽ

Dưới đây là các vector ngắt và vị trí ngắt tương ứng:

II Nội dung thực hành:

Bài4.1 Chương trình đếm từ 0-9 dùng Timer/counter.

org 0000h

main:

mov P2,#0C0h

call delay

mov p2,#0F9h

call delay

mov p2,#0A4h

call delay

mov p2,#0B0h

call delay

mov p2,#99h

Trang 16

call delay

mov p2,#92h

call delay

mov p2,#82h

call delay

mov p2,#0F8h

call delay

mov p2,#80h

call delay

mov p2,#90h

call delay

jmp main

delay:

mov tmod,#01h

mov th0,#03ch

mov tl0,#0b0h

setb tr0

here: jnb tf0,here

clr tr0

clr tf0

ret

end

Tín hiệu xuât ra

Bài4.2 Chương trình tạo một xung vuông có tần số 4Khz trên chân P3.7 dùng ngắt Timer

org 0000h

main:

setb p3.7 call delay clr p3.7 call delay sjmp main

Trang 17

delay:

mov tmod,01h mov th0,#0ffh mov tl0,#06h setb tr0 here:

jnb tf0,here clr tr0 clr tf0 ret end

Bài4.3 Chương trình tạo đàn điện tử với các phím tạo ra âm thanh có tần số như sau:

Các phím tương ứng từ button 1  Button 8.Button Button 8.8.

org 0000h

main:

jnb p1.0,nhan1

jnb p1.1,nhan2

jnb p1.2,nhan3

jnb p1.3,nhan4

jnb p1.4,nhan5

jnb p1.5,nhan6

jnb p1.6,nhan7

jnb p1.7,nhan8

sjmp main

nhan1:setb p3.7

call delay1

clr p3.7

call delay1

sjmp main

nhan2: setb p3.7

call delay2

clr p3.7

call delay2

sjmp main

nhan3: setb p3.7

call delay3

clr p3.7

call delay3

sjmp main nhan4: setb p3.7

call delay4

clr p3.7

call delay4

sjmp main

Trang 18

nhan5: setb p3.7 call delay5 clr p3.7

call delay5

sjmp main nhan6: setb p3.7 call delay6 clr p3.7

call delay6

sjmp main nhan7: setb p3.7 call delay7 clr p3.7

call delay7

sjmp main nhan8: setb p3.7 call delay8 clr p3.7

call delay8

sjmp main delay1:

mov r1,#191 loop1:

call delaydv djnz r1 , loop1 ret

delay2:

mov r1,#170 loop2:

call delaydv djnz r1 , loop2 ret

delay3:

mov r1,#152 loop3:

call delaydv djnz r1 , loop3 ret

delay4:

mov r1,#143 loop4:

call delaydv djnz r1 , loop4 ret

delay5:

mov r1,#128 loop5:

call delaydv

Trang 19

djnz r1 , loop5

ret

delay6:

mov r1,#114

loop6:

call delaydv

djnz r1 , loop6

ret

delay7:

mov r1,#101

loop7:

call delaydv

djnz r1 , loop7

ret

delay8:

mov r1,#95

loop8:

call delaydv

djnz r1 , loop8

ret

delaydv:

mov TMOD,#02h

Mov TH0 , #246

setb TR0

loop9: JNB TF0 ,loop9

clr TR0

clr TF0

ret

end

Tín hiệu xuất ra là dạng âm thanh Đô rể mi pha son la si đố

Ngày đăng: 10/06/2016, 19:39

HÌNH ẢNH LIÊN QUAN

Bảng 2.1. Chức năng của các chân trên Port 3 - báo cáo thực hành vi xử lý trong điều khiển
Bảng 2.1. Chức năng của các chân trên Port 3 (Trang 2)
Hình 3.1. Led 7 đoạn - báo cáo thực hành vi xử lý trong điều khiển
Hình 3.1. Led 7 đoạn (Trang 7)
Bảng 3.2. Bảng mã hiển thị của Led 7 thanh có catot chung: - báo cáo thực hành vi xử lý trong điều khiển
Bảng 3.2. Bảng mã hiển thị của Led 7 thanh có catot chung: (Trang 8)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w