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

Nội dung

BÀI 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ô BÀI TẬP LỆNH CỦA AT89C51 VÀ PORT XUẤT NHẬP I Tóm tắt lý thuyết Các Port xuất nhập AT89C51 AT89C51 có Port xuất nhập tương ứng P0, P1, P2, P3 hình H.2.1 Bảng 2.1 Chức chân Port - Port 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 Port0 hình H.2.2 - Port P1, P2, P3 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 bên tích hợp sẵn điện trở - Port P0, P2, P3 chức làm Port xuất nhập có thêm chức khác (Hình H.2.1 Bảng 2.1) Tập lệnh AT89C51 Lệnh AT89C51 có độ dài 8bit, tương ứng có 256 câu lệnh, chia thành nhóm sau: • Nhóm lệnh di chuyển 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 Port đầu vào, port P0 Port đầu Khi ấn Button (P1.0) gửi P0 giá trị 45 Khi ấn Button (P1.1) gửi 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 Khi ấn buton1 Khi ấn button2 Bài 2.2 Sử dụng lệnh nhảy 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 chân p0.0 Bài 2.3 Viết chương trình để Led Port sáng xen kẽ nhau: led 1,3,5,7 sáng – 2,4,6,8 tắt ngược lại Quá trình lặp 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 mạch mô Bài 2.4 Viết chương trình để led Port sáng từ 1-8 Quá trình lặp lại không ngừng org 0000H main: mov a,1f 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 mạch mô BÀI GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED7 THANH I.Tóm tắt lý thuyết Giới thiệu Led Hình 3.1 Led đoạn Led gồm loại: loại có anot chung loại có catot chung Đối với loại có anot chung, chân COM phải đưa lên mức logic muốn led phải đặt chân tương ứng từ a-f xuống mức thấp Ví dụ: Muốn hiển thị số Led đoạn có anot chung, led a – f – g – c – d phải sáng Để thực điều chân a – f – g – c – d phải đặt mức logic Do ta có mã hiển thị số sau: Đối với Led7 có catot chung ta làm ngược lại, chân COM đặt mức muốn led 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ố led có catot chung, ta phải đặt chân a – f – g – c – de lên mức cao Tương ứng có mã hiển thị sau: Bảng 3.1 Bảng mã hiển thị Led có anot chung: Bảng 3.2 Bảng mã hiển thị Led có catot chung: Hiển thị nhiều Led đoạn: a Phƣơng pháp quét Led: Phương pháp dựa tượng lưu ảnh võng mạc, tức hình ảnh xuất tối thiểu 24 lần/s tạo cho người quan sát cảm giác hình ảnh liên tục Khi nhiều led dùng chung đường liệu Hình 3.3, liệu từ vi xử lý đồng thời gửi đến tất Led, ta để Led sáng lúc Tại thời điểm có led sáng, led lại tắt Sau thời gian trì, Led tắt Led sáng Do tượng lưu ảnh mắt nên người quan sát nhìn thấy led hiển thị đồng thời với số khác Quá trình quét LED hiển thị sau: Bật led sáng – Hiển thị liệu  Trễ  Tắt Led xóa liệu Phương pháp quét Led Do tính thời gian trì cho led sáng sau: Giả sử có n Led cần hiển thị -Tần số cho chu kỳ quét n led = 25hz X n -Thời gian trì cho lần sáng led = 1/Tần số chu kỳ quét led Phương pháp tiện dụng phần cứng lẫn phần mềm, nhiên số lượng led qu nhiều thời gian sáng trung bình dành cho led giảm Điều kéo theo led 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 ứng dụng cho hiển thị thông tin ít, khoảng 20 led bảy đoạ trở xuống thông tin nhiều bảng tỉ giá ngoại tệ cần vài trăm led không b Phương pháp chốt Led: Vẫn chia sẻ bus liệu cho tất led phương pháp quét , đồng thời led có chân A (hoặc C) chung nối sẵn lên nguồn (hoặc đất) nghĩa Led lúc sẵn sàng hiển thị Mỗi led bảy đoạn kết hợp với IC chốt, vi xử lý điều khiển chốt liệu cho xác Dữ liệu cho led đưa lên Bus, ứng với liệu led IC chốt led chốt liệu lại, động tác vi xử lý thực Sau lượt liệu xuất đầy đủ tất led bảy đoạn, kể từ vi xử lý không cần công hiển thị nữa, led sáng liên tục không phương pháp quét Như hình ảnh phương pháp chốt sáng không nhấp nháy Hạn chế phương pháp 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 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 đưa vào chân P1.0 hiển thị lên Led đoạn Khi đếm đến reset Quá trình lặp 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 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 mạch mô 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 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 Tín hiệu xuất mov tl0,#0e0h setb tr0 here: jnb tf0,here clr tr0 clr tf0 ret end BÀI TIMER /COUNTER – NGẮT I.Tóm tắt lý thuyết Timer/Counter: a Thanh ghi định thời - 8051 có hai điều khiển định thời Timer Timer - Mỗi Timer có ghi định thời 16bit, chia thành hai ghi 8bit: Timer high (TH) Timer Low (TL) b.Thanh ghi điều khiển TCON: - TFx: Cờ tràn Timerx Được set clear phần cứng Dùng ngắt Timer 0,1 - TRx: bit điều khiển Timerx: TRx=0  dừng Timerx TRx=1  bật Timerx - IEx: Ngắt 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 Timer ta sử dụng ghi TMOD 8bit Cả Timer Timer dùng chung ghi TMOD để điều khiển, đó: 4bit thấp thiết lập chế độ điều khiển cho Timer 4bit cao thiết lập chế độ điều khiển cho Timer -Gate: Khi Gate =1 Timer/Counter làm việc TRx =1 INTx=1 Khi Gate = Timer/Counter làm việc 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 Ngắt: 89C51 có nguồn ngắt: ngắt ngoài, ngắt timer 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 1, ngắt Muốn cho phép ngắt xảy phải set bit: Bit cho phép ngắt toàn cục bit cho phép ngắt riêng rẽ Dưới vector ngắt 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 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 Bài4.2 Chương trình tạo xung vuông có tần số 4Khz chân P3.7 dùng ngắt Timer org 0000h main: setb p3.7 call delay clr p3.7 call delay sjmp main delay: mov tmod,01h mov th0,#0f 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 phím tạo âm có tần số sau: Các phím tương ứng từ button  Button 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 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 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 dạng âm Đô rể mi pha son la si đố [...]... 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... /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  dừng... 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

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

TỪ KHÓA LIÊN QUAN

w