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

Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ

123 11 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

(NB) Giáo trình Lập trình vi điều khiển với mục tiêu giúp các bạn có thể trình bày được các khái niệm, kiến thức cơ bản về cấu trúc vi điều khiển. Mô tả được cấu trúc họ vi điều khiển chuẩn công nghiệp. Mời các bạn cùng tham khảo để nắm chi tiết nội dung phần 2 giáo trình.

66 BÀI 4: TẬP LỆNH TRONG VI ĐIỀU KHIỂN Mã bài: MĐ ĐTCN 21-04 Giới thiệu: Với kiến thức cấu trúc bên vi điều khiển để điều khiển hoạt động khối mạch điện giao tiếp phức tạp hệ thống Các khối bao gồm nhớ để chứa liệu chương trình thực hiện, mạch điện giao tiếp ngoại vi để xuất nhập điều khiển trở lại, khối liên kết với vi điều khiển thực cơng việc Để kết nối khối đòi hỏi người thiết kế phải hiểu biết tinh tường thành phần vi điều khiển, nhớ, thiết bị ngoại vi Sau kết nối vi điều khiển với thiết bị ngoại vi, ta phải tìm hiểu tập lệnh MSC-51 để điều khiển hoạt động hệ thống Bài giới thiệu cách thức lập trình MCS-51 giải thích hoạt động lệnh sử dụng cho họ MCS-51 Mục tiêu: - Phân biệt kiểu định địa liệu; - Trình bày đặc tính cơng dụng lệnh 8051; - Xác định độ lớn thời gian thực chương trình; - Kết hợp lệnh riêng lẻ để thực thao tác cho trước kỹ thuật; - Chủ động, sáng tạo an tồn q trình học tập Nội dung chính: Mở đầu 1.1.Cú pháp lệnh Một lệnh chương trình hợp ngữ có dạng sau: Nhãn Lệnh Tốn hạng Chú thích A: LED On_Led MOV EQU BIT A, #10h 30h 00h ; Đưa giá trị 10h vào ghi ;A Định nghĩa ô nhớ chứa ; Cờ trạng thái led llr43i’ọtr4kjofigkltjnfgoijkl Trường nhãn định nghĩa ký hiệu (có thể làled địa chương trình, ledllmã liệu, tên đoạn hay cấu trúc lập trình) Trường nhãn khơng bắt đầu số khơng trùng với từ khóa có sẵn Trường lệnh chứa từ gợi nhớ cho lệnh MCS-51 hay lệnh giả dùng cho chương trình dịch Trường tốn hạng chứa thông số liên quan đến lệnh sử dụng 67 Trường thích dùng để ghi chương trình hợp ngữ Trường phải bắt đầu dấu; chương trình dịch bỏ qua từ đặt sau dấu ; Lưu ý chương trình dịch khơng phân biệt chữ hoa chữ thường 1.2.Khai báo liệu Khi khai báo số, chữ h cuối xác định số số thập lục phân; chữ b cuối xác định số nhị phân chữ d cuối (hay khơng có) xác định số thập phân Lưu ý số thập lục phân, bắt đầu chữ A → F phải thêm số vào phía trước Ví dụ: 1010b; Số nhị phân 1010h; Số thập lục phân 1010; Số thập phân 0F0h ; Số thập lục phân bắt đầu chữ F nên phải thêm vào phía trước số Khi dùng dấu # phía trước số, liệu tức thời cịnnếu khơng dùng dấu # địa ô nhớ Lưu ý dùng RAM nội dùng địa từ 00 – 7Fh vùng địa từ 80h – 0FFh dùng cho ghi chức đặc biệt Đối với họ 89x52, RAM nội có 256 byte byte địa cao (từ 80h – 0FFh) truy xuất trực tiếp mà phải truy xuất gián tiếp Ví dụ: MOV A,30h ; Chuyển nội dung ô nhớ 30h vào A MOV A,#30h ; Chuyển giá trị 30h vào A MOV A,80h ; Chuyển nội dung Port vào A MOV R0,#80h ; Chuyển nội dung ô nhớ 80h vào A (chỉ MOV A,@R0 ; dùng cho họ 89x52) Để định nghĩa trước vùng nhớ nhớ chương trình, dùng dẫn DB (define byte – định nghĩa byte) hay DW (define word – định nghĩa byte) Ví dụ: Định nghĩa trước liệu cho led sau: Led: DB 01h,02h,04h,08h,10h,20h,40h,80h 68 Đoạn chương trình xác định nhãn Led có chứa giá trị từ 01h đến 80h Nếu nhãn Led đặt địa 100h giá trị tương ứng sau: Địa 100h 101h 102h 103h 104h 105h 106h 107h Giá trị 01h 02h 04h 08h 10h 20h 40h 80h Bảng 4.1 Mô tả liệu vùng nhớ từ 100h đến 107h Để dễ nhớ dễ hiểu lập trình, chương trình dịch cho phép dùng ký tự thay cho ô nhớ lệnh giả EQU, BIT Ví dụ: LED EQU 30h ON_LED BIT 00h Giả sử chương trình hợp ngữ có lệnh sau: MOV A,LED SETB ON_LED Khi biên dịch, chương trình dịch tự động chuyển thành dạng lệnh sau: MOV A,30h SETB 00h Các ký hiệu cần ý: Rn : ghi từ R0 – R7 (bank ghi hành) Ri : ghi từ R0 – R1 (bank ghi hành) @Rn : định địa gián tiếp bit dùng ghi Rn @DPTR : định địa gián tiếp 16 bit dùng ghi DPTR direct : định địa trực tiếp RAM nội (00h – 7Fh) hay SFR (80h – FFh) (direct) : nội dung nhớ địa direct #data8 : giá trị tức thời bit #data16 : giá trị tức thời 16 bit 69 : địa bit ô nhớ định địa bit (00h – 7Fh địa bit bit 20h – 2Fh địa byte) Các cách định địa Các kiểu định địa cho phép định rõ nơi lấy liệu nơi nhận liệu tùy thuộc vào cách thức sử dụng lệnh người lập trình Vi điều khiển 8051 có kiểu định địa sau: - Kiểu định địa dùng ghi - Kiểu định địa trực tiếp - Kiểu định địa gián tiếp - Kiểu định địa tức thời - Kiểu định địa tương đối - Kiểu định địa tuyệt đối - Kiểu định địa dài - Kiểu định địa chỉ số 2.1 Định địa ghi Hình 4.1 Định địa ghi Các ghi từ R0 – R7 truy xuất cách định địa trực tiếp hay gián tiếp Ngoài ra, ghi cịn truy xuất cách dùng bit mã lệnh để chọn ghi (8 ghi có địa trực tiếp thay đổi tuỳ theo bank ghi sử dụng) Các lệnh sử dụng kiểu định địa ghi mã hóa dùng bit thấp opcode (của lệnh) để ghi bên không gian địa logic Vậy : mã chức + địa toán hạng → lệnh ngắn byte Kiểu thường dùng cho lệnh xử lý liệu mà liệu lưu ghi Đối với vi điều khiển mã lệnh thuộc kiểu có byte 2.2 Định địa trực tiếp Hình 4.2 Định địa trực tiếp 70 Định địa trực tiếp (hình 3.2) dùng cho ghi chức đặc biệt RAM nội 8951 Giá trị địa trực tiếp bit thêm vào phía sau mã lệnh Nếu địa trực tiếp từ 00h – 7Fh RAM nội 8951 (128 byte), cònđịa từ 80h – FFh địa ghi chức đặc biệt Các lệnh sau có kiểu định địa trực tiếp: MOV A, P0 MOV A, 30h Trong 8051 có 128 byte nhớ RAM Bộ nhớ RAM gán địa từ 00H đến FFH phân chia sau: Các ngăn nhớ từ 00H đến 1FH gán cho băng ghi ngăn xếp Các ngăn nhớ từ 20H đến 2FH dành cho không gian định địa bít để lưu liệu theo bit Các ngăn nhớ từ 30H đến 7FH không gian để lưu liệu có kích thước byte Chế độ định địa trực tiếp truy cập tồn không gian nhớ RAM Tuy nhiên, chế độ thường dùng để truy cập ngăn nhớ RAM từ 30H đến 7FH, thực tế khơng gian nhớ danh cho băng ghi truy cập tên ghi R0- R7 chế độ định địa trực tiếp, địa ngăn nhớ RAM chứa liệu toán hạng lệnh Ví dụ: MOV R0, 40 ; nội dung ngăn nhớ 40H RAM vào R0 MOV R4, 7FH ; chuyển nội dung ngăn nhớ 7FH vào R4 Một ứng dụng quan trọng chế độ định địa trực tiếp ngăn xếp Trong họ 8051, có chế độ định địa trực tiếp phép cất lấy liệu từ ngăn xếp Lệnh chuyển nội dung từ Port vào ghi A Khi biên dịch, chương trình thay từ gợi nhớ P0 địa trực tiếp Port (80h) đưa vào byte mã lệnh Lệnh thứ hai chuyển nội dung RAM nội có địa 30h vào ghi A 2.3 Định địa gián tiếp (Indirect Addressing) Ở chế độ này, ghi dùng để trỏ đến liệu có nhớ Hình 4.3 Định địa gián tiếp 71 Nếu liệu có chip CPU ghi R0 R1 sử dụng, có nghĩa khơng thể dùng ghi R2-R7 để trỏ đến địa toán hạng chế độ định địa Ví dụ: MOV A, @R0 ; chuyển ngăn nhớ RAM có địa R0 vào A MOV @R1, B ; chuyển B vào ngăn nhớ RAM có địa R1 Chú ý: Kiểu định địa gián tiếp tượng trưng ký hiệu @,được đặt trước ghi R0, R1,SP cho địa bit (không sử dụng ghi R2 – R7 chế độ địa này) hay DPTR cho địa 16 bit R0 R1 hoạt động ghi trỏ, nội dung cho biết địa ô nhớ RAM nội mà liệu ghi đọc Còn DPTR dùng để truy xuất ô nhớ ngoại Các lệnh thuộc dạng có byte Tuy nhiên R0 R1 ghi bit, nên chúng phép truy cập đến ngăn nhớ RAM trong, từ địa 30H đến 7FH ghi SFR Trong thực tế, có nhiều trường hợp cần truy cập liệu cất RAM ngồi khơng gian ROM chip Trong trường hợp cần sử dụng ghi 16 bit DPTR Ví dụ: MOV A, @R1 ;copy noi dung o nho co dia chi dat ;trong ghi R1 vao ghi A 2.4 Định địa tức thời (Immediate Addressing) Khi toán hạng số thay biến, số đưa vào lệnh byte liệu tức thời Trong hợp ngữ, tồn hạng tức thời nhận biết nhờ vào ký tự ‘#‘ đặt trước chúng Tốn hạng số học, biến biểu thức số học sử dụng số, ký hiệu tốn tử Trình dịch hợp ngữ tính giá trị thay liệu tức thời vào lệnh Lệnh thường dùng để nạp giá trị số byte thứ (hoặc byte thứ 3) vào ghi nhớ Ví dụ: MOV A, #12 ;Nạp giá trị 12(OCH) vào ghi A MOV A, #30H ;nap du lieu 30H vao ghi A 72 Tất lệnh sử dụng kiểu định địa tức thời sử dụng liệu bit làm liệu tức thời Có ngoại lệ ta khởi động trỏ liệu 16-bit DPTR, địa 16 bit cần đến 2.5 Định địa tương đối Hình 4.4 Định địa tương đối Kiểu định địa tương đối sử dụng với lệnh nhảy Nơi nhảy đến có địa địa lưu ghi PC cộng với giá trị bit [còn gọi giá trị lệch tương đối: relative offset] có giá trị từ – 128 đến +127 nên vi điều khiển nhảy lùi [nếu số cộng với số âm] nhảy tới [nếu số cộng với số dương] Lệnh có mã lệnh byte, byte thứ giá trị lệch tương đối: Nơi nhảy đến thường xác định nhãn (label) trình biên dịch tính tốn giá trị lệch Định vị tương đối có ưu điểm mã lệnh cố định, khuyết điểm nhảy ngắn phạm vi -128÷127 byte [256byte], nơi nhảy đến xa lệnh khơng đáp ứng có lỗi Ví dụ: SJMP X1 ;nhay den nhan co tên X1 nằm ;tam vuc 256 byte 2.6 Định địa tuyệt đối Hình 4.5 Định địa tuyệt đối Kiểu định địa tuyệt đối (hình 4.5) dùng với lệnh ACALL AJMP Các lệnh có mã lệnh byte Định địa tuyệt đối có ưu điểm mã lệnh ngắn (2 byte), khuyết điểm mã lệnh thay đổi giới hạn phạm vi nơi nhảy đến, gọi đến khơng Ví dụ: AJMP X1 ;nhay den nhan co ten X1 nam tam vuc 2Kbyte 73 2.7 Định địa dài (Long Addressing) Hình 4.6 Định địa dài Kiểu định địa dài dùng với lệnh LCALL LJMP Các lệnh có mã lệnh byte – có byte (16bit) địa nơi đến Cấu trúc mã lệnh byte chứa địa đích 16 bit Định địa dài gọi chương trình nhảy đến vùng nhớ vùng nhớ 64KB Lợi ích kiểu định địa sử dụng hết tồn khơng gian nhớ chương trình 64K, lại có điểm bất lợi lệnh dài đến 3-byte phụ thuộc vào vị trí Ví dụ: LJMP X1 ;nhay den nhan co ten X1 nam ;tam vuc 64Kbyte 2.8 Định địa chỉ số (Index Addressing) Chế độ định địa chỉ số sử dụng rộng rãi truy cập phần tử liệu bảng không gian ROM chương trình 8051 Kiểu định địa chỉ số “dùng ghi bản: đếm chương trình PC đếm liệu DPTR” kết hợp với “một giá trị lệch (offset) gọi giá trị tương đối [thường lưu ghi]” để tạo địa ô nhớ cần truy xuất địa nơi nhảy đến Việc kết hợp minh họa sau: Base Registr PC (or PDTR) Offset + A Effective Address = Ví dụ: MOVC A, @A + DPTR ;lay du lieu o nho ;DPTR+A de nap vao ghi A Ở lệnh này, nội dung A cộng với nội dung ghi 16- bit DPTR để tạo địa 74 Các nhóm lệnh Tùy thuộc vào cách chức lệnh, chia thành nhóm lệnh sau: - Nhóm lệnh số học - Nhóm lệnh logic - Nhóm lệnh vận truyền liệu - Nhóm lệnh Boolean (thao tác bit) - Nhóm lệnh rẽ nhánh chương trình Cấu trúc chung lệnh: Mã_lệnh Tốn_hạng1, Tốn_hạng2, Tốn_hạng3 Trong đó: Mã_lệnh: Tên gợi nhớ cho chức lệnh (VD add cho addition) - Toán_hạng1, Toán_hạng2, Toán_hạng3: Là toán hạnh lệnh, tùy thuộc vào lệnh số tốn hạng khơng có, có 1, - Ví dụ: - RET (Kết thúc chương trình con) Lệnh khơng có tốn hạng - JZ TEMP (Chuyển trỏ chương trình đến vị trí TEMP) Chỉ có tốn hạng - ADD A, R3 - CJNE A, #20, LOOP (So sánh A với 20, khơng chuyển trỏ ; (A = A + R3) Có tốn hạng chương trình đến nhãn LOOP) Có tốn hạng Cần nắm rõ phần cứng, đặc biệt vùng nhớ Ram vi điều khiển Chú ý thuật ngữ sau: Các byte RAM bit vi điều khiển gọi "ô nhớ ", ô nhớ có chức đặc biệt thường gọi "thanh ghi", bit gọi "bit nhớ" Dữ liệu ô nhớ trạng thái (0 1) cần thiết lập cho bit ô nhớ (8 bit) Ký hiệu Mô tả A: Thanh ghi chứa (Accumulator) B: Thanh ghi B Thanh ghi R0 R1 băng ghi băng Ri: ghi RAM 75 Rn: ghi băng ghi băng ghi RAM Rn: Thanh ghi trỏ liệu (có độ rộng 16bit kết hợp từ ghi bit DPH DPL) Dptr: biến bit(hay ô nhớ ) RAM Direct: Direct: (trừ 32 ghi Rn đầu RAM) #data: Một số bit #data16: Một số 16 bit Địa nằm khoảng [PC-128; PC+127] : Địa nằm khoảng – 2Kbyte tính từ địa lệnh : : Địa không gian 64K (áp dụng cho không gian nhớ chương trình khơng gian nhớ liệu) Bit đánh địa (khơng dùng cho : bit không đánh địa chỉ) Bảng 4.2: Các ký hiệu sử dụng mô tả lệnh 3.1 Nhóm lệnh số học Cờ nhớ C: C=1 phép toán cộng xảy tràn phép trừ có mượn C=0 phép tốn cộng khơng tràn phép trừ khơng có mượn Phép cộng xảy tràn phép cộng mà kết lớn 255 (hay FFH hay 11111111b), lúc C=1 Ví dụ: Phép cộng khơng tràn Số cộng 38H 56 00111000b Số cộng +3AH 58 00111010b Kết 72H 114 01110010b Cờ nhớ C 0 174 JMP X2 ; NEU A = 0FFH THI NHAY VE X2 GHILENH: MOV DATA_LCD,A CLR RS CLR RW SETB E CALL DELAY CLR E CALL DELAY RET GHI_DULIEU: MOV DATA_LCD,A SETB RS CLR RW SETB E CALL DELAY CLR E CALL DELAY RET GHIDONG1: MOV DPTR,#DONG1 LAP1: CLR A MOVC A,@A+DPTR LCALL GHI_DULIEU INC DPTR CJNE A,#99H,LAP1 RET GHIDONG2: MOV DPTR,#DONG2 LAP2: CLR A 175 MOVC A,@A+DPTR LCALL GHI_DULIEU INC DPTR CJNE A,#99H,LAP2 RET ;*************************************************************** HIENTHI: MOV A,#0C0H CALL GHILENH CALL GHIDONG2 MOV DPTR,#MA_LCD ; TRO THANH GHI DPTR DEN MA_LCD MOV A,60H MOVC A,@A+DPTR ; CHUYEN DU LIEU CUA O NHO TRO BOI ;A+DPTR VAO A CALL GHI_DULIEU RET ; TRO VE CHUONG TRINH CHINH ;*************************************************************** QUETPHIM: MOV QUET,#50 X3: ; DAT THOI GIAN TRE KHI NHAN PHIM CALL KT_PHIM JC THOAT ; GOI CHUONG TRINH CON KT_PHIM ; NEU C = LA KHONG CO PHIM NHAN, NHAY VE THOAT DJNZ QUET,X3 ; GIAM QUET DI NEU QUET KHAC NHAY VE X3 MOV LUU_MAPHIM,A ; NEU QUET = THI LUU MA PHIM X4: MOV QUET,#50 ; DAT THOI GIAN TRE KHI NHAN PHIM X5: CALL KT_PHIM ; GOI CHUONG TRINH CON KT_PHIM JNC X4 ; NEU C = LA CO PHIM NHAN, NHAY VE X4 DJNZ QUET,X5 THOAT: ; GIAM QUET DI NEU QUET KHAC NHAY VE X5 176 MOV A,LUU_MAPHIM ; CHUYEN MAPHIM NHAN DUOC VAO ;THANH GHI A RET ; TRO VE CHUONG TRINH CHINH ;*************************************************************** KT_PHIM: MOV MAPHIM,#0 MOV MACOT,#0EFH X6: ;MA COT MOV P3,MACOT MOV R0,#3 DJNZ R0,$ MOV A,P3 ANL A,#0FH ;LAY MA HANG CJNE A,#0FH,LAPMA ;KIEM TRA CO NHAN PHIM KHONG ;NEU CO PHIM NHAN THI NHAY VE LAPMA MOV A,MAPHIM ; NEU KHONG CO PHIM NHAN THI CHUYEN ;MAPHIM VAO A ADD A,#4 ; CONG A VOI MOV MAPHIM,A ; MAPHIM = MAPHIM + MOV A,MACOT ; CHUYEN MACOT VAO A RL A ; DICH SANG COT KE TIEP MOV MACOT,A ; CHUYEN DU LIEU CUA A VAO MACOT CJNE A,#0FEH,X6 ;KIEM TRA DA DICH DEN COT THU CHUA ? SETB C ;KHONG CO PHIM BAM MOV A,#0FFH RET ; NEU CO PHIM BAM LAPMA: RRC A JNC X7 INC MAPHIM ;MA PHIM = MA PHIM + JMP LAPMA X7: MOV A,MAPHIM ;DA CO PHIM BAM 177 MOV 60H,A CLR C RET DELAY: MOV R5,#4 L1: MOV R6,#100 DJNZ R6,$ DJNZ R5,L1 RET ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ORG 0500H MA_LCD: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H DONG1: DB 'MA TRAN PHIM 4X4',99H DONG2: DB 'PHIM VUA NHAN:',99H END Lập trình điều khiển ADC 6.1 Cấu hình Chíp ADC 0804 Chân (chân CS : Chip Seclect) : chân chọn chíp tích cực mức thấp nghĩa muốn chân làm việc ta phải nối mass cịn khơng làm việc ta nối lên V+ Chân (chân RD : Read Data) : Đây chân cho phép đọc liệu tích cực mức thấp nghĩa tín hiệu tương tự đầu vào Vin (+) Vin(-) sau chuyển đổi 178 thành tín hiệu số lưu ghi chọn chíp chưa phép xuất chân DB0 đến DB7 điện áp từ chân từ mức cao xuống mức thấp liệu xuất chân 11 đến chân 18 để ta lấy Chân (chân WR : Write Data) :là chân ghi dư liệu,là chân cho phép thực chuyển đổi,chân tích cực mức thấp nghĩa chân mức cao kéo xuống mức thấp tín hiệu vào Vin phép chuyển đổi thành tín hiệu số.Chú ý thực chuyển đổi,tín hiệu đầu DB0 đến DB7 chốt thời điểm trước Chân 4, ( chân CLK IN CLK R ) : chân mạch dao động tạo xung clock.Với chíp sử dụng xung clock từ đưa vào dựa vào Ic timer 555 vào chân 4,khi chân nối mass.Nhưng để tiện cho người sử dụng ,nhà sản xuất lắp chíp dao động chân CLK IN CLK R nối tụ điện điện trở bên ngồi.Đây mạch thời mạch dao động định tần số Chân ( chân INTR : Interrupt) : Chân ngắt tích cực mức thấp Chân chân chip,nó báo cho ta biết q trình chuyển đổi kết thúc hay chưa ,bình thường chân mức cao trình chuyển đổi kết thúc chân xuống mức thấp để báo cho ta biết chuyển đổi xong cịn mức cao tức q trình chưa xong Chân 6,7 (chân Vin) : chân vào tín hiệu tương tự Chân 8,10 ( chân AGND ,DGND ) chân mass tín hiệu tương tự tín hiệu số : AGND (Analog GND),DGND(Digital GND) Chân (chân VREF/2) chân cấp điện áp tham chiếu điện áp chuyển đổi đưa vào đầu vào Vin từ 0V đến 5V chân có điện áp 2.5V Chú ý điện áp đưa vào đầu vào chuyển đổi Vin từ đến 5V chân bỏ hở nguồn cấp cho Ic 5V chân hiểu có điện áp 2.5V Chân 18,17,16,15,14,13,12,11 (chân DB0 đến DB7) chân dạng số Chân 20 (V+) chân cấp nguồn cho Ic Bất Ic muốn hoạt động ta phải cấp nguồn ni cho Ic DAC 0804 cấp nguồn 5V 179 6.2 Yêu cầu công nghệ Cho sơ đồ mạch kết nối hình sau Viết chương trình điều khiển hiển thị liệu ADC lên LCD P1 kết nối tới chân 18,17,16,15,14,13,12,11 (chân DB0 đến DB7) ADC0804 P2.3 P2.7 kết nối với WR INTR ADC0804 P0 kết nối với chân liệu từ D0 đến D7 LCD P2.0, P2.1, P2.2 Được kết nối với chân RS, RW, E LCD Tín hiệu ADC đưa vào chân VIN+ ADC0804 lấy từ nguồn thay đổi từ 0V đến 5V biến trở RV1 tương ứng hiển thị Ra LCD từ giá trị đến 255 Ví dụ: 2,7V hiển thị LCD ADC= 138 5V hiển thị LCD ADC= 255 6.3.Chương trình điều khiển $INCLUDE(REG51.INC) RS BIT P2.0 RW BIT P2.1 E BIT P2.2 DATA_LCD EQU P0 TRAM EQU 60H CHUC EQU 61H DONVI EQU 62H 180 ORG 0000H LJMP START ORG 0030H START: MOV DPTR,#0500H CLR P2.3 MOV A,#03H CALL GHILENH MOV A,#38H CALL GHILENH MOV A,#06H CALL GHILENH MOV A,#0CH CALL GHILENH MOV A,#01H CALL GHILENH LAP: CALL DOC_ADC CALL CHUYEN_MA CALL HIENTHI_ADC JMP LAP DOC_ADC: SETB P2.3 CALL DELAY CLR P2.3 CALL DELAY MOV A,P1 RET 181 GHILENH: MOV DATA_LCD,A CLR RS CLR RW SETB E CALL DELAY CLR E CALL DELAY RET GHI_DULIEU: MOV DATA_LCD,A SETB RS CLR RW SETB E CALL DELAY CLR E CALL DELAY RET CHUYEN_MA: MOV B,#10 DIV AB MOV 62H,B MOV B,#10 DIV AB MOV 61H,B MOV 60H,A RET HIENTHI_ADC: MOV A,#80H CALL GHILENH MOV A,#'A' CALL GHI_DULIEU 182 MOV A,#'D' CALL GHI_DULIEU MOV A,#'C' CALL GHI_DULIEU MOV A,#'=' CALL GHI_DULIEU MOV A,#' ' CALL GHI_DULIEU MOV DPH,#05H CLR A MOV DPL,60H MOVC A,@A+DPTR CALL GHI_DULIEU ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX CLR A MOV DPL,61H MOVC A,@A+DPTR CALL GHI_DULIEU CLR A MOV DPL,62H MOVC A,@A+DPTR CALL GHI_DULIEU RET DELAY: MOV R5,#4 L1: MOV R6,#100 DJNZ R6,$ DJNZ R5,L1 RET ORG 0500H BANGSO: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,0FFH 183 Lập trình điều khiển LED ma trận 8x8 7.1.Cấu tạo led ma trận 8x8 LED ma trận 8x8 đơn giản 64 LED đơn xếp với theo dạng ma trận, thành hàng cột, tức 16 chân Vì loại LED ma trận có sơ đồ chân riêng cần tra cứu datasheet LED ma trận Ví dụ sơ đồ chân LED ma trận Các chân 13, 3, 4, 10, 6, 11, 15, 16 điều khiển cột 1, 2, 3, 4, 5, 6, 7, led tác động mức thấp ( 0V) Các chân 9, 14, 8, 12, 1, 7, 2, điều khiển hàng 1, 2, 3, 4, 5, 6, 7, led tác động mức cao ( 5V) 7.2 Phương pháp quét led ma trận 8x8  Đầu tiên điều khiển LED thứ theo hàng ngang theo cột dọc  Sau tắt hết  Điều khiển tiếp LED  Tắt hết led  Điều khiển tiếp led … Cứ hết 64 LED lặp lại Lưu ý: tốc độ bật tắt nhanh, mắt người có lưu ảnh mắt tự ghép lại thành hình ảnh hồn chỉnh 184 7.3 u cầu cơng nghệ Cho sơ đồ mạch hình vẽ P0 điều khiển hàng Led ma trận 8x8 ( tác động mức thấp) P1 điều khiển cột Led ma trận 8x8 ( tác động mức cao) Viết chương trình điều khiển LED ma trận 8x8 hiển thị chữ A 7.4 Chương trình điều khiển $INCLUDE(REG51.INC) ORG 0000H LJMP START ORG 0030H START: MOV P1,#10000000B ; COT MOV P0,#11111111B ; HANG CALL DELAY MOV P1,#01000000B ; COT MOV P0,#11000000B ; HANG CALL DELAY MOV P1,#00100000B ; COT MOV P0,#10110111B ; HANG 185 CALL DELAY MOV P1,#00010000B ; COT MOV P0,#01110111B ; HANG CALL DELAY MOV P1,#00001000B ; COT MOV P0,#01110111B ; HANG CALL DELAY MOV P1,#00000100B ; COT MOV P0,#10110111B ; HANG CALL DELAY MOV P1,#00000010B ; COT MOV P0,#11000000B ; HANG CALL DELAY MOV P1,#00000001B ; COT MOV P0,#11111111B ; HANG CALL DELAY JMP START DELAY: MOV R5,#100 DJNZ R5,$ RET 186 CÁC BÀI TẬP MỞ RỘNG, NÂNG CAO VÀ GIẢI QUYẾT VẤN ĐỀ Bài 1: Viết chương trình điều khiển led kiểu A chung kết nối với cổng P0 vi điều khiển AT89C51 theo yêu cầu sau: LED hiển thị từ đến sau hiển thị từ Quá trình lặp lặp lại Bài 2: Viết chương trình điều khiển led ma trận 8x8 hiển thị chữ B Bài 3: Viết chương trình điều khiển Hiển thị LCD theo yêu cầu sau: Dòng hiển thị: TRUONG CDNKTCN Dòng hiển thị: KHOA DT – DL Sau giây Dòng hiển thị: Dòng hiển thị: LAP TRINH VDK NGHE DTCN Bài 3: Viết chương trình điều khiển Hiển thị LCD theo yêu cầu sau: Khi nhấn nút DEMTIEN hiển thị LCD tăng SP lên ( hiển thị SP = 01) Nhấn tiếp nút DEMTIEN hiển thị LCD tăng SP lên ( hiển thị SP = 02) Khi nhấn nút DEMLUI hiển thị LCD giảm SP ( hiển thị SP = 01) Số hiển thị SP tối đa 99 tối thiểu 00 Yêu cầu đánh giá kết học tập: Nội dung: + Về kiến thức: Vẽ sơ đồ mạch kết nối vi điều khiển với thiết bị ngoại vi + Về kỹ năng: 187 Xây dựng lưu đồ thuật toán viết chương trình theo lưu đồ thuật tốn Soạn, dịch nạp chương trình cho vi xử lý từ máy tính + Thái độ: Đánh giá phong cách, thái độ học tập Chủ động, sáng tạo an tồn q trình học tập Phương pháp: + Về kiến thức: Được đánh giá hình thức kiểm tra viết + Về kỹ năng: Đánh giá kỹ thực hành Mỗi sinh viên, nhóm thực cơng việc theo yêu cầu giáo viên Tiêu chí đánh giá theo nội dung: - Độ xác công việc - Thời gian thực công việc - Độ xác theo yêu cầu kỹ thuật + Thái độ: Tỉ mỉ, cẩn thận, xác 188 TÀI LIỆU THAM KHẢO [1] Đề cương môđun/môn học nghề Sửa chữa thiết bị điện tử công nghiệp”, Dự án Giáo dục kỹ thuật Dạy nghề (VTEP), Tổng cục Dạy Nghề, Hà Nội, 2003 [2] Microprocessor and IC families - Walter H Buchbaum Sc.D [3] Mikrocompute Lehrbuch - HPI Fachbuchreihen Pflaum Verlag Munchen [4] 8051 Development Boad, Rev - Paul Stoffregen [5] Họ vi điều khiển - Tống văn On - Đại học Bách khoa TP.HCM - 2005 ... thời vi điều khiển Mục tiêu: - Trình bày cấu tạo chế độ làm vi? ??c định thời 8051 theo nội dung học; - Thực khởi tạo nhớ yêu cầu kỹ thuật; - Thực đọc định thời hoạt động yêu cầu kỹ thuật; - Thực lập. .. dung: - Độ xác công vi? ??c - Thời gian thực công vi? ??c - Độ xác theo yêu cầu kỹ thuật + Thái độ: Tỉ mỉ, cẩn thận, xác 114 BÀI 5: BỘ ĐỊNH THỜI Mã bài: MĐ ĐTCN 21 -0 5 Giới thiệu: Trong trình vi? ??t... chương trình con, Vi điều khiển chuyển thực 106 đoạn chương trình chương trình con, sau thực chương trình Vi điều khiển tiếp tục trở thực câu lệnh chương trình Chương trình giúp cho chương trình

Ngày đăng: 31/12/2021, 09:24

Xem thêm:

HÌNH ẢNH LIÊN QUAN

2.7. Định địa chỉ dài (Long Addressing) - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
2.7. Định địa chỉ dài (Long Addressing) (Trang 8)
Hình 5.1. Hoạt động của Timer 3bit - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 5.1. Hoạt động của Timer 3bit (Trang 50)
2. Các thanh ghi chức năng của timer - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
2. Các thanh ghi chức năng của timer (Trang 52)
Bảng 5.4. Thanh ghi điềukhiển định thời TCON - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng 5.4. Thanh ghi điềukhiển định thời TCON (Trang 54)
Hình 5.2 Ngắt ngoài timer - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 5.2 Ngắt ngoài timer (Trang 57)
Bài 5: Viết các đoạn chương trình thực hiện các hàm logic như trên hình vẽ sau: - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
i 5: Viết các đoạn chương trình thực hiện các hàm logic như trên hình vẽ sau: (Trang 61)
Hình 6.2. Sơ đồ của khối truyền dữ liệu nối tiếp. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.2. Sơ đồ của khối truyền dữ liệu nối tiếp (Trang 65)
Hình 6.1. Ghép nối RS232 với 8051 - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.1. Ghép nối RS232 với 8051 (Trang 65)
1.2.2. Thanh ghi BDRCON (Baud Rate Control Register). - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
1.2.2. Thanh ghi BDRCON (Baud Rate Control Register) (Trang 67)
Bảng 6.1. Nội dung thanh ghi BDRCON - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng 6.1. Nội dung thanh ghi BDRCON (Trang 67)
Hình 6.3. Giản đồ thời gian. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.3. Giản đồ thời gian (Trang 70)
Hình 6.4. Biểu đồ thời gian truyền dữ liệu mod - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.4. Biểu đồ thời gian truyền dữ liệu mod (Trang 71)
Hình 6.5 Một ứng dụng kiểu để tăng thêm ngõ ra bằng thanh ghi dịch. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.5 Một ứng dụng kiểu để tăng thêm ngõ ra bằng thanh ghi dịch (Trang 71)
Hình 6.6. Cung cấp xung cho truyền dữ liệu nối tiếp. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.6. Cung cấp xung cho truyền dữ liệu nối tiếp (Trang 72)
Hình 6.7. Cờ báo phát xong dữ liệu TI. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.7. Cờ báo phát xong dữ liệu TI (Trang 73)
Hình 6.8. Kết nối nhiều vi điềukhiển - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.8. Kết nối nhiều vi điềukhiển (Trang 76)
Hình 6.9. Vi điềukhiển 89C52 có 6 nguồn ngắt. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.9. Vi điềukhiển 89C52 có 6 nguồn ngắt (Trang 77)
Hoạt động của từng bit trong thanh ghi IP được tóm tắt trong bảng sau: Thanh  - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
o ạt động của từng bit trong thanh ghi IP được tóm tắt trong bảng sau: Thanh (Trang 80)
2.3. Ưu tiên ngắt - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
2.3. Ưu tiên ngắt (Trang 80)
Các bit cờ của các nguồn ngắt được tóm tắt ở bảng sau: - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
c bit cờ của các nguồn ngắt được tóm tắt ở bảng sau: (Trang 81)
Hình 6.10. Cấu trúc ngắt của vi điều khiển. - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Hình 6.10. Cấu trúc ngắt của vi điều khiển (Trang 82)
Bảng hiển thị trong các trung tâm mua sắm, siêu thị, nhà hàng, quán cà phê ... - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng hi ển thị trong các trung tâm mua sắm, siêu thị, nhà hàng, quán cà phê (Trang 91)
Cho sơ đồ mạch như hình vẽ: - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
ho sơ đồ mạch như hình vẽ: (Trang 93)
Cho sơ đồ mạch như hình vẽ: - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
ho sơ đồ mạch như hình vẽ: (Trang 96)
 Bảng mã cho Led Anode chung - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
Bảng m ã cho Led Anode chung (Trang 98)
Cho sơ đồ mạch như hình vẽ: - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
ho sơ đồ mạch như hình vẽ: (Trang 100)
CẤU HÌNH LCD - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
CẤU HÌNH LCD (Trang 101)
6. Lập trình điềukhiển ADC - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
6. Lập trình điềukhiển ADC (Trang 112)
Cho sơ đồ mạch được kết nối như hình sau - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
ho sơ đồ mạch được kết nối như hình sau (Trang 114)
Cho sơ đồ mạch như hình vẽ - Giáo trình Lập trình vi điều khiển (Nghề: Điện tử công nghiệp): Phần 2 - Trường CĐ Nghề Kỹ thuật Công nghệ
ho sơ đồ mạch như hình vẽ (Trang 119)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w