code thí nghiệm vi xử lý

24 1.2K 7
code thí nghiệm vi xử lý

Đ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Í NGHIỆM VI XỬ LÝ BÀI 1: IN/OUT Giới thiệu chung IC 89C51 họ vi điều điều khiển hãng Intel Mỹ sản xuất có đặc điểm sau: Bộ nhớ chương trình bên trong: 4KB (ROM) Bộ nhớ liệu bên trong: 128 byte Bộ nhớ chương trình bên ngoài: 64KB Bộ nhớ liệu bên ngoài: 64KB port xuất nhập liệu: bit định thời: 16 bit Mạch giao tiếp nối tiếp Bộ xử lý bit 210 vị trí nhớ định địa chỉ, vị trí bit Nhân chia 4s Thực hành: Mạch nguyên lý có sử dụng công tắc tắt/ mở led đơn Code cho mạch nguyên lý trên: ORG 00H MAIN: MOV P3,#0FFH PACK: MOV A,P3 MOV P2,A SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ SJMP PACK END Mạch nguyên lý hiển thị led đơn Viết đoạn code sang dần với thời gian delay 100ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#9,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000011B DB 00000111B DB 00001111B DB 00011111B DB 00111111B DB 01111111B DB 11111111B DELAY: SVTH: NGUYỄN MINH HIẾU Viết đoạn code tắt dần với thời gian delay 100ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#9,AAA SJMP MAIN BANG: DB 11111111B DB 11111110B DB 11111100B DB 11111000B DB 11110000B DB 11100000B DB 11000000B DB 10000000B DB 00000000B DELAY: THÍ NGHIỆM VI XỬ LÝ MOV R1,#100 LAP1: MOV R1,#100 LAP1: MOV R2,#100 MOV R2,#100 LAP2: LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END Viết đoạn code sang dần, tắt dần với thời gian delay 10ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#17,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000011B DB 00000111B DB 00001111B DB 00011111B DB 00111111B DB 01111111B DB 11111111B DB 01111111B Viết đoạn code làm cho led sang dần từ ngoài, tắt dần từ vào với thời gian delay 10ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#17,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000010B DB 00000100B DB 00001000B DB 00010000B DB 00100000B DB 01000000B DB 11111111B SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ DB 00111111B DB 00011111B DB 00001111B DB 00000111B DB 00000011B DB 00000001B DB 00000000B DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END DB 01111111B DB 00111111B DB 00011111B DB 00001111B DB 00000111B DB 00000011B DB 00000001B DB 00000000B DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END Bài 2: LED ĐOẠN Giới thiệu chung Có loại led đoạn: Cathode chung: sáng mức vào Vcc SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ Anode chung: sang mức vào GND IC giải mã led đoạn anode chung IC 7447 Thực hành Mạch nguyên lý hiển thị led đoạn Quét led đoạn ORG 00H MAIN: Đoạn code hiển thị từ 0-99 sử dụng kỹ thuật tra bảng ORG 00H SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ MOV TMOD ,# 01100000B MOV TL1 , #0 MOV TH1 , #0 LOOP: SETB TR1 MOV A ,TL1 CJNE A, #10,AAA MOV TL1,#0 AAA: MOV DPTR , #BANG MOVC A,@A+DPTR MOV P2,A JNB TF1,LOOP CLR TR1 CLR TF1 SJMP LOOP BANG: DB 11000000B DB 11111001B DB 10100100B DB 10110000B DB 10011001B DB 10010010B DB 10000010B DB 11111000B DB 10000000B DB 10010000B DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: MOV R3,#100 LAP3: NOP NOP NOP NOP NOP MAIN: MOV R4,#0 AAA: MOV A,R4 MOV B,#10 DIV AB MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A MOV A,B MOVC A,@A+DPTR MOV P0,A ACALL DELAY INC R4 CJNE R4,#100,AAA SJMP MAIN BANG: DB 11000000B ;0 DB 11111001B ;1 DB 10100100B ;2 DB 10110000B ;3 DB 10011001B ;4 DB 10010010B ;5 DB 10000010B ;6 DB 11111000B ;7 DB 10000000B ;8 DB 10010000B ;9 DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: MOV R3,#100 LAP3: NOP NOP NOP NOP NOP NOP NOP NOP SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ NOP NOP NOP DJNZ R3,LAP3 DJNZ R2,LAP2 DJNZ R1,LAP1 RET END Code hiển thị từ 0-99 sử dụng IC 7447 ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV B,#10 DIV AB SWAP A ORL A,B MOV P2,A ACALL DELAY INC R4 CJNE R4,#100,AAA SJMP MAIN DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: MOV R3,#100 LAP3: NOP NOP NOP NOP NOP NOP NOP DJNZ R3,LAP3 DJNZ R2,LAP2 DJNZ R1,LAP1 RET DJNZ R3,LAP3 DJNZ R2,LAP2 DJNZ R1,LAP1 RET END Led đoạn dùng chức counter ORG 00H MAIN: MOV TMOD,#01100000B MOV TL1,#0 MOV TH1,#0 SETB P3.5 LOOP1: SETB TR1 MOV A,TL1 CJNE A,#100,LOOP MOV TL1,#0 LOOP: MOV DPTR,#BANG MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P2,A MOV A,B MOVC A,@A+DPTR MOV P1,A JNB TF1,LOOP1 CLR TF1 CLR TR1 SJMP LOOP1 BANG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,8 0H,90H RET END SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ END Bài 3: LED MA TRẬN Giới thiệu chung Led ma trận IC dịch 74HC595 Thực hành Mạch nguyên lý hiển thị led ma trận SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ Code hiển thị chữ A ORG 00H MAIN: MOV A,#10000000B MOV R0,#0 LOOP: RL A MOV P2,A MOV R1,A MOV DPTR,#BANG MOV A,R0 MOVC A,@A+DPTR MOV P3,A CALL DELAY MOV A,R1 INC R0 CJNE R0,#8,LOOP SJMP MAIN BANG: DB 0FFH,87H,0EBH,0EDH,0EBH,87H,0 FFH,0FFH SVTH: NGUYỄN MINH HIẾU Code hiển thị chữ A dùng IC dịch ORG 00H SJMP MAIN CLK EQU P3.1 LATCH EQU P3.2 SERIAL EQU P3.0 MAIN: MOV A,#0FFH MOV DPTR,#BANG MOV R1,#0 MOV R2,#00000001B MOV P2,#00000000B LOOP: MOV P2,R2 MOV A,R1 MOVC A,@A+DPTR CALL DICH MOV R3,#200 DJNZ R3,$ INC R1 MOV A,R2 CJNE R1,#6,LOOP THÍ NGHIỆM VI XỬ LÝ RET DELAY: MOV TMOD,#01H MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET END SJMP MAIN DICH: MOV R7,#8 LAP: RRC A MOV SERIAL,C CLR CLK NOP NOP NOP SETB CLK CLR LATCH NOP NOP NOP SETB LATCH DJNZ R7,LAP RET BANG: DB 83H,0F5H,0F6H,0F5H,083H,0FFH END Code chạy chữ A dùng IC dịch ORG 00H SJMP MAIN CLK EQU P3.1 LATCH EQU P3.2 SERIAL EQU P3.0 MAIN: MOV A,#0FFH MOV DPTR,#BANG MOV R2,#200 MOV R4,#00000001B LOOP: MOV R1,#6 MOV P2,R4 CALL HIENTHI MOV A,R4 MOV R6,A RL A MOV R4,A CJNE A,#10000000B,BBB LJMP MAIN BBB: SVTH: NGUYỄN MINH HIẾU 10 THÍ NGHIỆM VI XỬ LÝ MOV R1,#6 MOV P2,R6 CALL HIENTHI MOV A,R4 MOV R5,A LAPLAI: MOV A,R5 RR A MOV R5,A CJNE A,#10000000B,AAA DJNZ R2,BBB LJMP LOOP AAA: MOV P2,R5 DEC R1 CALL HIENTHI LJMP LAPLAI DICH: MOV R7,#8 LAP: RRC A MOV SERIAL,C CLR CLK NOP NOP NOP SETB CLK CLR LATCH NOP NOP NOP SETB LATCH DJNZ R7,LAP RET HIENTHI: MOV A,R1 MOVC A,@A+DPTR CALL DICH MOV R3,#200 DJNZ R3,$ RET BANG: DB SVTH: NGUYỄN MINH HIẾU 11 THÍ NGHIỆM VI XỬ LÝ 83H,0F5H,0F6H,0F5H,83H,0FFH,0FFH END Bài 4: ADC 0804/ LCD 16x2 Giới thiệu chung LCD 16x2 Khi sản xuất LCD, người ta tích hợp chip điều khiển bên lớp vỏ đưa chân giao tiếp Chức chân LCD Chân Vss: chân nối đất Chân Vee: điều chỉnh độ tương phản Chân RS: chân chọn ghi RS = chọn ghi liệu Chân RW: chân đọc/ ghi liệu Chân E: cho phép Chân D0-D7: đường liệu để trao đổi thông tin Thực hành Hiển thị chữ HAVE A GOOD DAY ORG 30h EN BIT P3.7 RS BIT P3.6 Hiển thị chuỗi ORG 30h EN BIT P3.7 RS BIT P3.6 LJMP MAIN SVTH: NGUYỄN MINH HIẾU LJMP MAIN 12 THÍ NGHIỆM VI XỬ LÝ LCD_INIT: MOV A,#3CH CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM MOV A,#01H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100D DEL1:MOV R6, #250D DJNZ R6, $ DJNZ R7, DEL1 RET WRITE_TEXT: LCALL WAIT_LCD MOV P2,A SETB RS SETB EN CLR EN RET WRITE_COM: LCALL WAIT_LCD MOV P2,A CLR RS SETB EN CLR EN RET BANG: DB 'HAVE A GOOD DAY' RET MAIN: CALL LCD_INIT MOV DPTR,#BANG CLR A LOOP: MOVC A,@A+DPTR CJNE A,#'*',AAA SJMP KETTHUC AAA: SVTH: NGUYỄN MINH HIẾU LCD_INIT: MOV A,#3CH CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM MOV A,#01H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100D DEL1:MOV R6, #250D DJNZ R6, $ DJNZ R7, DEL1 RET WRITE_TEXT: LCALL WAIT_LCD MOV P2,A SETB RS SETB EN CLR EN RET WRITE_COM: LCALL WAIT_LCD MOV P2,A CLR RS SETB EN CLR EN RET BANG1: DB 'TDT *' RET BANG2: DB 'I LOVE TDT*' RET MAIN: CALL LCD_INIT MOV A,#87H CALL WRITE_COM MOV DPTR,#BANG1 CLR A LOOP: 13 THÍ NGHIỆM VI XỬ LÝ CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP KETTHUC: SJMP $ END MOVC A,@A+DPTR CJNE A,#'*',NEXT SJMP LAN2 NEXT: CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP LAN2: MOV A,#0C3H CALL WRITE_COM MOV DPTR,#BANG2 CLR A LOOP2: MOVC A,@A+DPTR CJNE A,#'*',NEXT2 SJMP KETTHUC NEXT2: CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP2 KETTHUC: SJMP $ END BÀI 5:GIỚI THIỆU VỀ KÍT THÍ NGHIỆM Giới thiệu chung SVTH: NGUYỄN MINH HIẾU 14 THÍ NGHIỆM VI XỬ LÝ Thành phần kít thí nghiệm • • • • • • • • • • • • • • • • • MicroTRAK Carrier Board MINI-MAX/51-C2 Microcontroller board TB-1 Training Board PROTO-1 Prototyping Board (RTC & MMC Reader) 8051 I/O Module LCD242 LCD KP1-4X4 Keypad Demo versions of BASCOM BASIC Compiler Demo versions of Micro C Compiler/Linker/Assembler Full version of SDCC C Compiler (open-source) Micro-IDE Integrated Development Environment/Simulator/Offline Debugger Over 70 example projects Labbook Cables Adapter Training Manuals Serial downloader (WinLoad) Các bước thực viết chạy chương trình kit Sửa chữa chương trình có sẵn hay chương trình trình biên tập Micro-IDE Program Editor Biên dịch chương trình sử dụng ASM51 Assembler for 8051-8052 Toolkit (công cụ biên dịch Assembler) Nạp chương trình vào vi điều khiển kit thí nghiệm sử dụng công cụ MINI- MAX/51-C Loader Chạy gỡ rối chương trình kit thí nghiệm sử dụng công cụ MINIMAX/51-C Debugger Thực hành Viết code chuyển từ port sang port ORG 00H LJMP MAIN MAIN: SVTH: NGUYỄN MINH HIẾU 15 THÍ NGHIỆM VI XỬ LÝ MOV P3,#0FFH MOV A,P3 MOV P2,A STOP: AJMP $ END Viết đoạn code sang dần với thời gian delay 100ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#9,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000011B DB 00000111B DB 00001111B DB 00011111B DB 00111111B DB 01111111B DB 11111111B DELAY: MOV R1,#100 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP SVTH: NGUYỄN MINH HIẾU Viết đoạn code tắt dần với thời gian delay 100ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#9,AAA SJMP MAIN BANG: DB 11111111B DB 11111110B DB 11111100B DB 11111000B DB 11110000B DB 11100000B DB 11000000B DB 10000000B DB 00000000B DELAY: MOV R1,#100 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP 16 THÍ NGHIỆM VI XỬ LÝ NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END Viết đoạn code sang dần, tắt dần với thời gian delay 10ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#17,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000011B DB 00000111B DB 00001111B DB 00011111B DB 00111111B DB 01111111B DB 11111111B DB 01111111B DB 00111111B DB 00011111B DB 00001111B DB 00000111B DB 00000011B DB 00000001B DB 00000000B DELAY: Viết đoạn code làm cho led sang dần từ ngoài, tắt dần từ vào với thời gian delay 10ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#17,AAA SJMP MAIN BANG: DB 00000000B DB 00000001B DB 00000010B DB 00000100B DB 00001000B DB 00010000B DB 00100000B DB 01000000B DB 11111111B DB 01111111B DB 00111111B DB 00011111B DB 00001111B DB 00000111B DB 00000011B DB 00000001B DB 00000000B SVTH: NGUYỄN MINH HIẾU 17 THÍ NGHIỆM VI XỬ LÝ MOV R1,#10 DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END BÀI 7: LCD 24x2 CHẾ ĐỘ BIT Giới thiệu chung LCD 24x2 chế độ bit Chế độ bit: sử dụng đường liệu DB4-DB7 Chức chân LCD 24x2 Chân Vss: chân nối đất cho LCD Chân Vdd: chân cấp nguồn Chân Vee: điều chỉnh độ tương phản Chân RS: chân chọn ghi RS=1: ghi liệu, RS=0: chế độ lệnh Chân R/W: điều khiển đọc/ghi RW=1: ghi liệu, RW=0: đọc liệu Chân E: trạng thái liệu/ điều khiển Thực hành Hiển thị chuỗi chữ lên LCD ORG 00H EN EQU P0.2 SVTH: NGUYỄN MINH HIẾU 18 THÍ NGHIỆM VI XỬ LÝ RW EQU P0.1 RS EQU P0.0 LJMP MAIN WRITE_COM: MOV R3,A ANL A,#0F0H CLR C ORL A,#00000100B ;EN=1,RW=0,RS=0 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#1 ACALL DELAY1MS MOVA,R3 SWAP A ANLA,#0F0H CLR C ORL A,#00000100B ;EN=1,RW=0,RS=0 MOVP0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#1 ACALL DELAY1MS RET WRITE_TEXT: MOV R3,A ANL A,#0F0H CLR C ORL A,#00000101B ;EN=1,RW=0,RS=1 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#11 ACALL DELAY1MS MOV A,R3 SWAP A ANL A,#0F0H CLR C ORL A,#00000101B ;EN=1,RW=0,RS=1 MOV P0,A SVTH: NGUYỄN MINH HIẾU 19 THÍ NGHIỆM VI XỬ LÝ MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#1 ACALL DELAY1MS RET DELAY1MS: MOV TMOD,#01H LOOP: MOV TH0,#0FCH MOV TL0,#18H SETB TCON.4 JNB TCON.5,$ CLR TCON.4 CLR TCON.5 DJNZ R1,LOOP RET DELAY100U: MOV R2,#10 LAP: NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP RET INIT_LCD: MOV R1,#50 ACALL DELAY1MS MOV A,#30H CLR C ORL A,#00000100B ;EN=1,RW=0,RS=0 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#5 ACALL DELAY1MS MOV A,#30H CLR C SVTH: NGUYỄN MINH HIẾU 20 THÍ NGHIỆM VI XỬ LÝ ORL A,#00000100B ;EN=1,RW=0,RS=0 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN ACALL DELAY100U MOV A,#30H CLR C ORL A,#00000100B ;EN=1,RW=0,RS=0 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV A,#32H ACALL WRITE_COM MOV A,#28H ACALL WRITE_COM MOV A,#08H ACALL WRITE_COM MOV A,#06H ACALL WRITE_COM MOV A,#01H ACALL WRITE_COM MOV A,#0CH ACALL WRITE_COM RET BANG1: DB 'TON DUC THANG *' RET BANG2: DB 'HAVE A GOOD TIME *' RET MAIN: MOV P0,#0FFH CLR RW ACALL INIT_LCD MOV DPTR,#BANG1 AGAIN: CLR A MOVC A,@A+DPTR CJNE A,#'*',AAA SJMP LAN2 AAA: CALL WRITE_TEXT INC DPL SVTH: NGUYỄN MINH HIẾU 21 THÍ NGHIỆM VI XỬ LÝ SJMP AGAIN LAN2: MOV A,#0C0H CALL WRITE_COM MOV DPTR,#BANG2 AGAIN2: CLR A MOVC A,@A+DPTR CJNE A,#'*',BBB SJMP $ BBB: CALL WRITE_TEXT INC DPL SJMP AGAIN2 END BÀI 8: GIAO TIẾP VỚI MẠCH CÒI BUZZER Giới thiệu chung Cái còi hay loa đơn giản tạo tiếng nhạc chuỗi sóng vuông tác động vào ngõ dương ( ngõ vào âm nối đất) Tần số song vuông tạo tiếng nhạc khác Cái còi kit nối với chân P1.2 vi điều khiển Chân cần lập trình ngõ song vuông với tần số chu kỳ thay đổi cần tạo Thực hành Đoạn code nốt nhạc ORG 00H MAIN: MOV R0,#05FH N1: LCALL DO DJNZ R0,N1 MOV R0,#05FH N2: LCALL RE DJNZ R0,N2 MOV R0,#05FH N3: LCALL MI DJNZ R0,N3 SVTH: NGUYỄN MINH HIẾU FA: CPL P1.2 MOV R1,#5 LCALL DELAY RET SO: CPL P1.2 MOV R1,#4 LCALL DELAY RET LA: 22 THÍ NGHIỆM VI XỬ LÝ MOV R0,#05FH N4: LCALL FA DJNZ R0,N4 MOV R0,#05FH N5: LCALL SO DJNZ R0,N5 MOV R0,#05FH N6: LCALL LA DJNZ R0,N6 MOV R0,#05FH N7: LCALL SI DJNZ R0,N7 MOV R0,#05FH N8: LCALL DOO DJNZ R0,N8 SJMP MAIN DO: CPL P1.2 MOV R1,#8 LCALL DELAY RET RE: CPL P1.2 MOV R1,#7 LCALL DELAY RET MI: CPL P1.2 MOV R1,#6 LCALL DELAY RET SVTH: NGUYỄN MINH HIẾU CPL P1.2 MOV R1,#3 LCALL DELAY RET SI: CPL P1.2 MOV R1,#2 LCALL DELAY RET DOO: CPL P1.2 MOV R1,#1 LCALL DELAY RET DELAY: LOOP1: MOV R2,#100 LOOP2: NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LOOP2 DJNZ R1,LOOP1 RET END 23 THÍ NGHIỆM VI XỬ LÝ SVTH: NGUYỄN MINH HIẾU 24 [...]... dịch Assembler) Nạp chương trình vào vi điều khiển trên kit thí nghiệm sử dụng công cụ MINI- MAX/51-C Loader Chạy và gỡ rối chương trình trên kit thí nghiệm sử dụng công cụ MINIMAX/51-C Debugger Thực hành Vi t code chuyển từ port 3 sang port 2 ORG 00H LJMP MAIN MAIN: SVTH: NGUYỄN MINH HIẾU 15 THÍ NGHIỆM VI XỬ LÝ MOV P3,#0FFH MOV A,P3 MOV P2,A STOP: AJMP $ END Vi t đoạn code sang dần với thời gian delay... CJNE A,#'*',NEXT2 SJMP KETTHUC NEXT2: CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP2 KETTHUC: SJMP $ END BÀI 5:GIỚI THIỆU VỀ KÍT THÍ NGHIỆM 1 Giới thiệu chung SVTH: NGUYỄN MINH HIẾU 14 THÍ NGHIỆM VI XỬ LÝ Thành phần của kít thí nghiệm • • • • • • • • • • • • • • • • • MicroTRAK Carrier Board MINI-MAX/51-C2 Microcontroller board TB-1 Training Board PROTO-1 Prototyping Board (RTC & MMC Reader) 8051 I/O Module... CLR A LOOP: 13 THÍ NGHIỆM VI XỬ LÝ CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP KETTHUC: SJMP $ END MOVC A,@A+DPTR CJNE A,#'*',NEXT SJMP LAN2 NEXT: CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP LAN2: MOV A,#0C3H CALL WRITE_COM MOV DPTR,#BANG2 CLR A LOOP2: MOVC A,@A+DPTR CJNE A,#'*',NEXT2 SJMP KETTHUC NEXT2: CALL WRITE_TEXT CLR A INC DPTR SJMP LOOP2 KETTHUC: SJMP $ END BÀI 5:GIỚI THIỆU VỀ KÍT THÍ NGHIỆM 1 Giới... NGUYỄN MINH HIẾU Vi t đoạn code tắt dần với thời gian delay 100ms ORG 00H MAIN: MOV R4,#0 AAA: MOV A,R4 MOV DPTR,#BANG MOVC A,@A+DPTR MOV P2,A ACALL DELAY INC R4 CJNE R4,#9,AAA SJMP MAIN BANG: DB 11111111B DB 11111110B DB 11111100B DB 11111000B DB 11110000B DB 11100000B DB 11000000B DB 10000000B DB 00000000B DELAY: MOV R1,#100 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP 16 THÍ NGHIỆM VI XỬ LÝ NOP NOP DJNZ... MOV SERIAL,C CLR CLK NOP NOP NOP SETB CLK CLR LATCH NOP NOP NOP SETB LATCH DJNZ R7,LAP RET HIENTHI: MOV A,R1 MOVC A,@A+DPTR CALL DICH MOV R3,#200 DJNZ R3,$ RET BANG: DB SVTH: NGUYỄN MINH HIẾU 11 THÍ NGHIỆM VI XỬ LÝ 83H,0F5H,0F6H,0F5H,83H,0FFH,0FFH END Bài 4: ADC 0804/ LCD 16x2 1 Giới thiệu chung LCD 16x2 Khi sản xuất LCD, người ta đã tích hợp chip điều khiển bên trong lớp vỏ và chỉ đưa các chân giao tiếp... liệu để trao đổi thông tin 2 Thực hành Hiển thị chữ HAVE A GOOD DAY ORG 30h EN BIT P3.7 RS BIT P3.6 Hiển thị chuỗi ORG 30h EN BIT P3.7 RS BIT P3.6 LJMP MAIN SVTH: NGUYỄN MINH HIẾU LJMP MAIN 12 THÍ NGHIỆM VI XỬ LÝ LCD_INIT: MOV A,#3CH CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM MOV A,#01H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100D DEL1:MOV R6, #250D DJNZ R6, $ DJNZ R7, DEL1...THÍ NGHIỆM VI XỬ LÝ MOV R1,#6 MOV P2,R6 CALL HIENTHI MOV A,R4 MOV R5,A LAPLAI: MOV A,R5 RR A MOV R5,A CJNE A,#10000000B,AAA DJNZ R2,BBB LJMP LOOP AAA: MOV P2,R5 DEC R1 CALL HIENTHI LJMP LAPLAI DICH: MOV R7,#8... 00001000B DB 00010000B DB 00100000B DB 01000000B DB 11111111B DB 01111111B DB 00111111B DB 00011111B DB 00001111B DB 00000111B DB 00000011B DB 00000001B DB 00000000B SVTH: NGUYỄN MINH HIẾU 17 THÍ NGHIỆM VI XỬ LÝ MOV R1,#10 DELAY: MOV R1,#10 LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1 RET END LAP1: MOV R2,#100 LAP2: NOP NOP NOP NOP NOP NOP NOP DJNZ R2,LAP2 DJNZ R1,LAP1... lệnh Chân R/W: điều khiển đọc/ghi RW=1: ghi dữ liệu, RW=0: đọc dữ liệu Chân E: trạng thái dữ liệu/ điều khiển 2 Thực hành Hiển thị chuỗi chữ lên LCD ORG 00H EN EQU P0.2 SVTH: NGUYỄN MINH HIẾU 18 THÍ NGHIỆM VI XỬ LÝ RW EQU P0.1 RS EQU P0.0 LJMP MAIN WRITE_COM: MOV R3,A ANL A,#0F0H CLR C ORL A,#00000100B ;EN=1,RW=0,RS=0 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#1 ACALL DELAY1MS MOVA,R3 SWAP A ANLA,#0F0H... A,#00000101B ;EN=1,RW=0,RS=1 MOV P0,A MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#11 ACALL DELAY1MS MOV A,R3 SWAP A ANL A,#0F0H CLR C ORL A,#00000101B ;EN=1,RW=0,RS=1 MOV P0,A SVTH: NGUYỄN MINH HIẾU 19 THÍ NGHIỆM VI XỬ LÝ MOV R1,#1 ACALL DELAY1MS CLR EN MOV R1,#1 ACALL DELAY1MS RET DELAY1MS: MOV TMOD,#01H LOOP: MOV TH0,#0FCH MOV TL0,#18H SETB TCON.4 JNB TCON.5,$ CLR TCON.4 CLR TCON.5 DJNZ R1,LOOP RET DELAY100U: ... MINH HIẾU THÍ NGHIỆM VI XỬ LÝ END Bài 3: LED MA TRẬN Giới thiệu chung Led ma trận IC dịch 74HC595 Thực hành Mạch nguyên lý hiển thị led ma trận SVTH: NGUYỄN MINH HIẾU THÍ NGHIỆM VI XỬ LÝ Code hiển... LOOP2 KETTHUC: SJMP $ END BÀI 5:GIỚI THIỆU VỀ KÍT THÍ NGHIỆM Giới thiệu chung SVTH: NGUYỄN MINH HIẾU 14 THÍ NGHIỆM VI XỬ LÝ Thành phần kít thí nghiệm • • • • • • • • • • • • • • • • • MicroTRAK...THÍ NGHIỆM VI XỬ LÝ SJMP PACK END Mạch nguyên lý hiển thị led đơn Vi t đoạn code sang dần với thời gian delay 100ms ORG 00H MAIN: MOV

Ngày đăng: 17/11/2015, 10:33

Từ khóa liên quan

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

Tài liệu liên quan