Bài giảng môn kỹ thuật điện tử - Chương 4

142 742 10
Bài giảng môn kỹ thuật điện tử - Chương 4

Đ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

Đây là bài giảng môn kỹ thuật điện chuyên đề về mạch điện, mạch điện ba pha, máy biến áp gửi đến các bạn độc giả tham khảo. Kĩ thuật điện là một lĩnh vực kĩ thuật nghiên cứu và áp dụng

VI ĐIỀU KHIỂN 89C51 GV: LÊ THỊ KIM LOAN KHOA : ĐIỆN Chương GIỚI THIỆU PHẦN CỨNG • • • • • • 89C51 thuộc họ MCS51 4Kbyte EPROM (1000 chu kỳ ghi/xóa) 128 byte RAM 32 I/O timer/counter 16bit nguồn ngắt SƠ ĐỒ CHÂN MÔ TẢ CÁC CHÂN • Port 0: port bit có chức – Là I/O port thiết kế cỡ nhỏ ( không sử dụng nhớ mở rộng) – Là byte thấp address/data bus thiết kế có sử dụng nhớ mở rộng • Port 1: I/O port bit • Port 2: port bit có chức – Là I/O port thiết kế cỡ nhỏ ( không sử dụng nhớ mở rộng) – Là byte cao address/data bus thiết kế có sử dụng nhớ mở rộng • Port 3: port bit có nhiều chức – Là I/O port – Có cơng dụng chuyển đổi có liên hệ với tính đặc biệt 89C51 mơ tả bảng sau: CÁC TÍN HIỆU ĐIỀU KHIỂN • PSEN ( Program Store Enable) – Là tín hiệu phép đọc nhớ chương trình mở rộng ( nhớ ngoài) – Khi 89C51 đọc mã lệnh từ nhớ chương trình mở rộng PSEN tích cực (mức thấp) lần chu kỳ máy – Khi 89C51 thi hành chương trình ROM nội PSEN mức cao • ALE/PROG ( Program Store Enable) – ALE ( Address Latch Enable) tín hiệu chốt byte thấp địa suốt trình truy xuất nhớ ngồi – Chân làm ngõ vào xung lập trình (PROG) cho EPROM – Ở chế độ họat động bình thường xung ALE có tốc độ 1/6 tần số dao động chip dùng làm nguồn xung nhịp cho phần khác hệ thống NGẮT TIMER • Ngắt timer xảy ghi timer (THx / TLx) bị tràn cờ báo tràn (TFx) lên mức Khi chương trình phục vụ ngắt timer thực cờ TFx tự động xóa Ví dụ 1: Viết chương trình tạo sóng vng 50% có tần số 10KHz ngõ P1.0 sử dụng ngắt timer Biết dao động chip sử dụng thạch anh có tần số 12MHz – Phân tích u cầu: • Bộ dao động sử dụng thạch anh 12MHz nên ta có chu kỳ ca xung nhp timer Ttimer =1às ã Súng vuụng cú tần số 10KHz nên chu kỳ sóng T=10-4 s =100às ã Do súng vuụng 50% nờn ta cú tlow = thigh =50às ã Vy ta s s dng timer để tạo thời gian trì hỗn 50µs, chương trình phục vụ ngắt timer cần làm cơng việc lấy bù bit P1.0 Chương trình nạp giá trị thích hợp để khởi động cho timer chạy khởi động ngắt – Chương trình hịan chỉnh: ORG 0000H; địa bắt đầu chương trình LJMP MAIN ORG 000BH; Địa vectơ ngắt timer ISR-T0: CPL P1.0 ; chương trình phục vụ ngắt timer RETI ORG 0030H ; Bắt đầu chương trình điểm ngồi tất ngắt MAIN: MOV TMOD,#02H ; Timer mode MOV TH0,#-50 ; delay 50us SETB TR0 ; cho timer chạy MOV IE,#82H ; cho phép ngắt timer SJMP $ ; khơng làm END Ví dụ 2: Viết chương trình liên tục nhận liệu 8bit port chuyển liệu port 1, lúc tạo sóng vng 50% có chu kỳ 200µs ngõ P2.1 Sử dụng ngắt timer để tạo sóng vng Biết dao động chip sử dụng thạch anh có tần số 12MHz ORG 0000H LJMP MAIN ORG 000BH ISR-T0: CPL P2.1 RETI ORG 0030H MAIN: MOV TMOD,#02H MOV TH0,# -100 SETB TR0 MOV IE,#82H LOOP: MOV A, P0 MOV P1, A SJMP LOOP END NGẮT PORT NỐI TiẾP • Ngắt port nối tiếp xảy cờ ngắt phát TI cờ ngắt thu RI đặt lên mức – Ngắt phát xảy truyền xong ký tự vừa ghi vào ghi SBUF – Ngắt thu xảy ký tự nhận xong đợi ghi SBUF để đọc • Khác với ngắt timer, cờ gây ngắt port nối tiếp khơng xóa phần cứng CPU chuyển đến ngắt • Nguồn ngắt xác định chương trình phục vụ ngắt phải xóa cờ tạo ngắt phần mềm • Ví dụ: Viết chương trình dùng ngắt port nối tiếp để thu liên tục ký tự cất vào 10byte ô nhớ RAM nội có địa đầu 20H Tốc độ baud 1200bps, tần số thạch anh 12MHz ORG 0000H; địa bắt đầu chương trình LJMP MAIN ORG 0023H; Địa vectơ ngắt port nối tiếp LJMP ISR-SP; nhảy đếnchương trình phục vụ MAIN: ngắt port nối tiếp ORG 0030H ; Bắt đầu chương trình điểm ngồi tất ngắt MOV SCON,#50H; Port nối tiếp nhận liệu UART 8bit MOV TMOD,#20H ; Timer mode MOV TH1,#-26 ; tạo tốc độ baud 1200bps SETB TR1 ; cho timer chạy MOV IE,#90H ; cho phép ngắt port nối tiếp MOV R0, #20H; gánđịa đầu vào R0 SJMP $ ; khơng làm ISR-SP : CLR RI;xóa cờ ngắt thu MOV A, SBUF;đọc liệu thu vào A MOV @R0,A; chuyển liệu vào ô nhớ ram nội INC R0; tăng địa ô nhớ CJNE R0,#2AH,EXIT; kiểm tra xem đủ 10byte liệu hay chưa, đủ thóat EXIT: RETI END NGẮT NGỒI • Ngắt ngồi xảy có mức thấp cạnh xuống chân INT0 hay INT1 Các cờ tạo ngắt bit IE0 IE1 ghi TCON • Sự lựa chọn ngắt tích cực mức thấp hay cạnh xuống lập trình qua bit IT0 hay IT1 ghi TCON – Nếu ITx =0 ngắt ngồi kích khởi mức thấp – Nếu ITx = ngắt ngịai kích khởi cạnh xuống • Khi ngắt ngồi sử dụng cạnh xuống lần có cạnh xuống cờ IE lên mức 1, cờ tự động xóa vào ISR • Sử dụng ngắt mức thấp cờ IE ln ngõ INTx mức thấp trở INTx lên mức cao Ví dụ: Ngõ INT1 nối đến cơng tắc bình thường mức cao Đèn led nối đến chân P1.3 Viết chương trình điều khiển đèn led sáng công tắc bật xuống mức thấp Khi led sáng phải sáng 500µs ORG 0000H LJMP MAIN ORG 0013H LJMP ISR-EX1 ORG 0030H MAIN: MOV IE,#10000100B SJMP $ ISR-EX1: SETB P1.3 MOV R3,#250 DJNZ R3,$ CLR P1.3 RETI END ... sáng c Viết chương trình cho led D3-D4 Bài 5: a Viết chương trình cho led sáng b Viết chương trình cho led D1-D4 sáng c Viết chương trình cho led D3-D4 Chương TIMER- BỘ ĐỊNH THÌ GIỚI THIỆU • 89C51... 50H • Bài 3: Hãy cho viết chương trình thực cổng logic sau: MOV C, P1 .4 ORL C, P1.5 CPL C MOV P1.7, C Bài 4: a Viết chương trình cho led sáng b Viết chương trình cho led D1-D4 sáng c Viết chương. .. MOV A, @R1 • Nội dung A FFH; Nội dung R1 40 H; Nội dung ô nhớ 40 H FFH – MOV A, 40 H • Nội dung A FFH; Nội dung R1 40 H; Nội dung ô nhớ 40 H FFH – MOV A, #40 H NHĨM LỆNH SỐ HỌC VÀ LUẬN LÝ • ADD, ADDC

Ngày đăng: 16/10/2012, 10:04

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan