Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 73 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
73
Dung lượng
547,21 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN- ĐIỆN TỬ BÁO CÁO THÍ NGHIỆM MƠN VI Giáo viên hướng dẫn: Trần Văn Hồng Lớp: DD17KSTD Nhóm: TND1 (Thứ Tiết 2-5) Năm học: 2018-2019 Nhóm thí nghiệm: Nhóm 04 Thành viên nhóm: STT HỌ VÀ TÊN MSSV Nguyễn Huy Khiêm 1710138 Huỳnh Minh Khôi 1710149 Huỳnh Quốc Kiệt 1710156 Báo cáo Thí nghiện Vi xử lý BÀI THÍ NGHIỆM 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN MỤC TIÊU: Nắm cách sử dụng kit thí nghiệm, phần mềm lập trình Nắm cách lập trình giao tiếp IO port Nắm cách lập trình tạo thời gian trễ dùng lệnh CHUẨN BỊ: Đọc chương 1, chương chương tài liệu hướng dẫn Viết chương trình mơ thí nghiệm LÝ THUYẾT VỀ PHÍM NHẤN VÀ LED: Cấu tạo phần cứng phím đơn led: Báo cáo Thí nghiện Vi xử lý Tín hiệu phím nhấn Led: - Đối với phim nhấn đơn Kit thí nghiệm thiết kế theo cấu hình chế độ pull-up Nên nhấn phím chân port đọc giá trị Ngược lại chân port đọc giá trị - Đối với Led muốn Led sang phải cho port tín hiệu thiết kế phần cứng Kit thí nghiệm CÁC BÀI THÍ NGHIỆM: I THÍ NGHIỆM 1: Mục tiêu: Nắm cách thức điều khiển trực tiếp ngoại vi thông qua port I/O 8051 Yêu cầu: Viết chương trình thực việc đọc liên tục trạng thái nút nhấn nối đến P1.0 hiển thị led nối chân P3.0 (bit thứ led BL202) Code chương trình: ORG 2000H LOOP: MOV C, P1.0 MOV P3.0, C SJMP LOOP END Trả lời câu hỏi: - Giải thích có đến led bị tác động nhấn thả nút? Trả lời: Khi nhấn thả nút (nút ứng với P1.0) cấu cấu tạo phần cứng Kit thí nghiệm nên ta có Led tương ứng nói chung port với nút (P1.0) bị tác động đồng thời chịu tác động phần mềm mà ta nạp vào 8051 nên Led nói vào port quy định chương trình (P3.0) bị tác động Chính thấy có Led bị tác động nhấn thả nút - Tổng kết xem bit port dùng thí nghiệm giải thích sao? Trả lời: Các bit port sử dụng trừ bit P3.6 P3.7 Vì bit P3.6 P3.7 sử dụng để làm tín hiệu điều khiển cho chế độ bus mà kit thí nghiệm sử dụng cụ thể P3.6=nWR, P3.7= nRD nên LED nói vào bit port khơng sử dụng II THÍ NGHIỆM 2: Mục tiêu: - Nắm cách tạo trễ dùng vòng lặp lệnh u cầu: - Viết chương trình tạo xung vng Hz, chu kỳ nhiệm vụ 50% P1.0 Code chương trình: ORG 2000H Báo cáo Thí nghiện Vi xử lý SETB P1.0 MAIN: CPL P1.0 ACALL DELAY05S SJMP MAIN DELAY05S: MOV R7, #4 LOOP1: MOV R6, #224 LOOP2: MOV R5, #255 LOOP3: DJNZ R5, LOOP3 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END - Trả lời câu hỏi: Để tạo xung Hz, vòng trễ tạo Tính tốn xác dựa chương trình viết Trả lời: Dùng cách câu lệnh DJNZ để tạo vòng lặp tạo trễ cho chương trình Dựa thạch anh có tần số 11.0592 MHz chu kỳ máy MC=1,0851 µs Chương trình chu kỳ làm việc 50% tức ½ chu kỳ mức 1, ½ cịn lại chu kỳ mức Trong chu kỳ làm việc 0.5s xung mức 1, 0.5s xung mức Vì ta cần dùng chương trình tạo trễ thời gian 0.5s Thời gian xác mà chương trình DELAY05S là: (((255.2+1+2).224+1+2).4+2+1).MC=0,4988s |0,4988−0,5| 100 %=0,24 % Sai số chương trình DELAY05S: 0,5 - Sai số nhỏ đạt so với yêu cầu bao nhiêu? Trả lời: Sai số nhỏ đạt là: 0% III THÍ NGHIỆM 3: Mục tiêu: - Nắm cách viết chương trình để tạo trễ Yêu cầu: - Viết chương trình Delay1sIns dùng chương trình để chớp/tắt LED đơn gắn vào P1.0 sau khoảng thời gian 1s Code chương trình: a Chương trình Delay1sIns Báo cáo Thí nghiện Vi xử lý Delay1sIns: MOV R7, #8 LOOP1: MOV R6, #229 LOOP2: MOV R5, #250 LOOP3: DJNZ R5, LOOP3 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET b Dùng chương trình để chớp/tắt LED đơn gắn vào P1.0 sau khoảng thời gian 1s ORG 2000H SETB P1.0 MAIN: CPL P1.0 ACALL Delay1sIns SJMP MAIN Delay1sIns: MOV R7, #8 LOOP1: MOV R6, #229 LOOP2: MOV R5, #250 LOOP3: DJNZ R5, LOOP3 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END Trả lời câu hỏi: - Thời gian 1s tạo nào? Trả lời: Thời gian 1s tạo vòng lặp DJNZ long ghép vào Dựa vào chu kỳ máy lệnh ta tính số vịng lặp cần thiết cho lệnh DJNZ, tạo độ trễ 1s Đối với chường trình Display1sIns thời gian delay tính sau: (((250.2+1+2).229+1+2).8+2+1).MC=0,99992s MC chu kỳ máy (1MC= 1,0851 µs) Sai số cùa chương trình trên: %sai số= 0,00836% IV THÍ NGHIỆM 4: Báo cáo Thí nghiện Vi xử lý - Mục tiêu: Nắm cách hiển thị LED tạo hiệu ứng Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: LED đơn BARLED1 sáng từ trái sang phải sau thời gian 1s lặp lại Sử dụng chương trình 1s viết Code chương trình: ORG 2000H MOV A, #11111110B MAIN: RR A MOV P1, A ACALL DELAY1SINS SJMP MAIN DELAY1SINS: MOV R7, #8 LOOP1: MOV R6, #229 LOOP2: MOV R5, #250 LOOP3: DJNZ R5, LOOP3 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END - Trả lời câu hỏi: Led bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit) port 1? Trả lời: Led bên trái nối đến MSB port Báo cáo Thí nghiện Vi xử lý BÀI THÍ NGHIỆM 2: HIỂN THỊ LED ĐOẠN MỤC TIÊU: Nắm cách giao tiếp ngoại vi dạng ánh xạ nhớ, giao tiếp LED đoạn CHUẨN BỊ: Đọc chương chương tài liệu hướng dẫn Viết chương trình mơ thí nghiệm LÝ THUYẾT CƠ BẢN: LED đoạn : Cấu tạo led đoạn gồm led đơn nối chung cực anode (dạng led anode chung) nối chung cực cathode (dạng led cathode chung) Các đoạn led đơn đặt tên a, b, c, d, e, f, g dấu chấm dp Để hiển thị giá trị lên led đoạn, cần cấp điện áp lên chân chung tín hiệu điều khiển đoạn tương tự điều khiển led đơn Báo cáo Thí nghiện Vi xử lý Thiết kế phần cứng: CÁC BÀI THÍ NGHIỆM: I THÍ NGHIỆM 1: Mục tiêu: - Nắm cách thức hiển thị LED đoạn Yêu cầu: - Viết chương trình DisplayLed0 hiển thị lên LED đoạn số giá trị chứa ghi R0 - Viết chương trình hiển thị số lên LED đoạn số cách cho R0 gọi chương trình DisplayLed0 Báo cáo Thí nghiện Vi xử lý Code chương trình: ORG 2000H MOV R0, #9 ACALL DISPLAYLED0 SJMP KT DISPLAYLED0: MOV A, R0 ADD A, #0E0H MOV DPTR, #0000H MOVX @DPTR, A RET KT: NOP END II THÍ NGHIỆM 2: Mục tiêu: - Kết hợp chương trình con, hiển thị LED đoạn sử dụng lệnh tạo delay Yêu cầu: - Viết chương trình hiển thị lên LED đoạn số số từ đến sau khoảng thời gian 1s Code chương trình: ORG 2000H MAIN: MOV R0, #0 LOOP: ACALL DISPLAYLED0 ACALL DELAY INC R0 CJNE R0, #10, LOOP SJMP MAIN DISPLAYLED0: MOV A, R0 ADD A, #0E0H MOV DPTR, #0000H MOVX @DPTR, A RET DELAY: Báo cáo Thí nghiện Vi xử lý MOV R7, #7 LOOP1: MOV R6, #255 LOOP2: MOV R5, #255 LOOP3: DJNZ R5, LOOP3 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END III THÍ NGHIỆM 3: Mục tiêu: - Nắm cách dùng chương trình có truyền tham số để điều khiển ngoại vi Yêu cầu: - Viết chương trình DisplayLED xuất giá trị ghi R0 lên LED đoạn có số thứ tự ghi ghi R1 - Xuất giá trị lên LED số 3 Code chương trình VÀ GIẢI THÍCH Ý NGHĨA ORG 2000H MOV R0,#1 MOV R1,#3 ACALL DISPLAYLED SJMP $ DISPLAYLED: MOV B, R1 ; chuyển giá trị R1 sang B INC B ; tăng B đơn vị MOV A, #11110111B ; chuyển giá trị 11110111B sang A LOOP: RL A ; dịch trái ghi A DJNZ B, LOOP ; thực B lần vòng lặp LOOP ANL A, #11110000B ; AND A với 11110000B để giữ lại bit cao A PUSH ACC ; lưu giá trị A vào Stack MOV A, R0 ; chuyển giá trị từ R0 sang A ANL A, #00001111B ; AND A với 100001111B để lại bit thấp MOV R0, A ; chuyển giá trị A sang R0 POP ACC ; đưa giá trị A lưu Stack quay lại vào A ORL A, R0 ; OR A với R0 để bit thấp data; bit cao điều 10 Báo cáo Thí nghiện Vi xử lý ; TABLE: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H END III BÀI THÍ NGHIỆM 3: GIAO TIẾP LCD VÀ ADC ĐỀ: Viết chương trình xuất giá trị thực tế điện áp đọc từ kênh hàng 1, đồng thời xuất hàng thứ dòng chữ LOW, HIGH, NORMAL LCD tùy theo giá trị điện áp thỏa mãn bảng sau: Dòng thứ LCD LOW NORMAL HIGH Giá trị điện áp lúc 2.00 V 2.00 V Gía trị điện áp 4.00 V 4.00 V CODE: EN BIT P3.4 RS BIT P3.5 ORG 2000H MAIN: LCALL INIT_LCD LCALL CLEAR MOV R2, #0 MOV R3, #8 LCALL GOTOXY MOV A, #'V' LCALL WRITE_DATA LOOP_MAIN: LCALL READADC LCALL CALADC LCALL CT_HIENSOV LCALL CT_DK SJMP LOOP_MAIN ; INIT_LCD: MOV A, #38H LCALL WRITE_COM MOV A, #0CH LCALL WRITE_COM 59 Báo cáo Thí nghiện Vi xử lý MOV A, #06H LCALL WRITE_COM RET ; CLEAR: MOV A, #01H LCALL WRITE_COM RET ; WRITE_COM: MOV DPTR, #8000H SETB EN CLR RS MOVX @DPTR, A CLR EN LCALL DELAY_LCD RET ; -WRITE_DATA: MOV DPTR, #8000H SETB EN SETB RS MOVX @DPTR, A CLR EN LCALL DELAY_LCD RET ; DELAY_LCD: MOV R6,#10 DL1: MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 RET ; GOTOXY: PUSH ACC MOV A, R2 MOV DPTR, #TB MOVC A,@A+DPTR 60 Báo cáo Thí nghiện Vi xử lý ADD A, R3 LCALL WRITE_COM POP ACC RET ; CALADC: PUSH 05H MOV A, R0 MOV B, #51 DIV AB MOV 30H, A MOV A,B MOV B, #10 MUL AB MOV 31H, B MOV B, #51 DIV AB MOV 32H, B MOV R5, 31H CJNE R5, #01H, BANG0_1 ADD A, #5 BANG0_1: MOV 31H, A MOV A, 32H MOV B, #10 MUL AB MOV 33H, B MOV B, #51 DIV AB MOV R5, 33H CJNE R5, #01H, BANG0_2 ADD A, #5 BANG0_2: MOV 32H, A POP 05H RET ; READADC: MOV DPTR, #4000H MOVX @DPTR, A 61 Báo cáo Thí nghiện Vi xử lý ACALL DELAY_LCD MOVX A, @DPTR MOV R0, A RET ; ;CHUONG TRINH XET DIEU KIEN CT_DK: MOV R2, #1 MOV R3, #4 LCALL GOTOXY CJNE R0, #205, $+3 JNC HIGH1 CJNE R0, #103, $+3 JC LOW1 NORMAL: MOV A, #0 MAIN_LOOP1: MOV R5, A MOV DPTR, #MAIN_NORMAL MOVC A, @A+DPTR JZ KETTHUC LCALL WRITE_DATA MOV A, R5 INC A SJMP MAIN_LOOP1 HIGH1: MOV A, #0 MAIN_LOOP2: MOV R5, A MOV DPTR, #MAIN_HIGH MOVC A, @A+DPTR JZ KETTHUC LCALL WRITE_DATA MOV A, R5 INC A SJMP MAIN_LOOP2 LOW1: MOV A, #0 MAIN_LOOP3: MOV R5, A 62 Báo cáo Thí nghiện Vi xử lý MOV DPTR, #MAIN_LOW MOVC A, @A+DPTR JZ KETTHUC LCALL WRITE_DATA MOV A, R5 INC A SJMP MAIN_LOOP3 KETTHUC: RET MAIN_NORMAL: DB 'NORMAL',0 MAIN_HIGH: DB 'HIGH ',0 MAIN_LOW: DB 'LOW ',0 ; CT_HIENSOV: MOV R2, #0 MOV R3, #4 LCALL GOTOXY MOV A, 30H ADD A, #30H LCALL WRITE_DATA MOV A, #',' LCALL WRITE_DATA MOV A, 31H ADD A, #30H LCALL WRITE_DATA MOV A, 32H ADD A, #30H LCALL WRITE_DATA RET ; -TB: DB 80H, 0C0H ; END IV BÀI THÍ NGHIỆM 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ĐỀ: Viết chường trình thực đồng hồ LED đoạn LCD hiển thị phút giây Sử dụng Serial Port để điều chỉnh thời gian đồng hồi Cụ thể: 63 Báo cáo Thí nghiện Vi xử lý Nút nhấn S R P G CODE: Chức Dừng đồng hồ để chỉnh thời gian Cho phép đồng hồ chạy tiếp Nhập P sau nhập tiếp số để chỉnh phút Nhập G sau nhập tiếp số để chỉnh giây LCD_E BIT P3.4 LCD_RS BIT P3.5 ORG 2000H MAIN: MOV SCON,#01010010B MOV A,PCON SETB ACC.7 MOV PCON,A MOV TMOD,#20H MOV TH1,#-3 SETB TR1 ACALL INIT_LCD ACALL CLEAR MOV R3,#0;giay MOV R4,#0;phut SETB P1.0 SETB P1.3 SETB P1.5 SETB P1.1 ; -MAIN CODE -; LOOP: ACALL RECIEVE CJNE A,#52H,NEXT AJMP RUN NEXT: CJNE A,#47H,NEXT1 AJMP GIAY NEXT1: CJNE A,#50H,NEXT2 AJMP PHUT NEXT2: SJMP LOOP ; -; ; -CT NHAP SO GIAY -; GIAY: ACALL RECIEVE 64 Báo cáo Thí nghiện Vi xử lý ADD A,#-48 MOV 20H,A ACALL RECIEVE ADD A,#-48 MOV 21H,A MOV B,#10 MOV A,20H MUL AB ADD A,21H MOV R3,A SJMP LOOP ; -; PHUT: ACALL RECIEVE ADD A,#-48 MOV 22H,A ACALL RECIEVE ADD A,#-48 MOV 23H,A MOV B,#10 MOV A,22H MUL AB ADD A,23H MOV R4,A SJMP LOOP ; ; ; -CT CHAY GIA TRI DA NHAP ; RUN: JNB RI,RUN1 ACALL RECIEVE CJNE A,#53H,RUN1 AJMP LOOP RUN1: PUSH ACC ACALL DELAY CJNE R3, #60, DK_GIAY MOV R3, #0 INC R4 CJNE R4, #60, DK_GIAY MOV R4, #0 SJMP RUN DKGIAY MOV A,R3 65 Báo cáo Thí nghiện Vi xử lý MOV B,#10 DIV AB MOV 20H,A MOV 21H,B MOV A,R4 MOV B,#10 DIV AB MOV 22H,A MOV 23H,B ACALL LCD_DISPLAY INC R3 POP ACC SJMP RUN ; LCD DISPLAY ; LCD_DISPLAY: MOV A,#83H ACALL WRITECOM MOV A,22H ADD A,#30H ACALL WRITETEXT MOV A,23H ADD A,#30H ACALL WRITETEXT MOV A,#3AH ACALL WRITETEXT MOV A,20H ADD A,#30H ACALL WRITETEXT MOV A,21H ADD A,#30H ACALL WRITETEXT RET ; ; ; -NHAN DU LIEU TU SERIAL PORT -; RECIEVE: JNB RI,$ CLR RI MOV A,SBUF RET ; ; INIT_LCD: MOV A, #38H ACALL WRITECOM 66 Báo cáo Thí nghiện Vi xử lý MOV A, #0EH ACALL WRITECOM MOV A, #06H ACALL WRITECOM RET ; ; CLEAR: PUSH ACC MOV A, #01H ACALL WRITECOM POP ACC RET ; ; WRITECOM: MOV DPTR, #8000H SETB LCD_E CLR LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET ; -; WRITETEXT: MOV DPTR, #8000H SETB LCD_E SETB LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET ; ; WAIT_LCD: MOV R6,#10 DL1: MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 RET ; -; DELAY: MOV R1,#4 DELAY_0: MOV R2,#250 67 Báo cáo Thí nghiện Vi xử lý DELAY_1: MOV R5,#210 DELAY_2: DJNZ R5,DELAY_2 DJNZ R2,DELAY_1 DJNZ R1,DELAY_0 RET END V BÀI THÍ NGHIỆM 5: LẬP TRÌNH NGẮT ĐỀ: Viết chương trình thực nhiệm vụ sau: - Thực đồng hồ hiển thị phút giây LCD - Chỉnh thời gian Serial Port (Dùng ngắt Serial port) - Đồng thời LCD hiển thị giá trị đọc trực tiếp từ kênh (Thực chương trình chính) Cụ thể chương trình: nhập P sau nhập tiếp số để quy định phút, số quy định giây, sau đồng hồ LED tự động cập nhật giá trị CODE: EN BIT P3.4 RS BIT P3.5 ORG 2000H LJMP MAIN ORG 200BH LJMP DISPLAY ORG 2023H LJMP SP_ISR ORG 2030H MAIN: LCALL INIT_LCD LCALL CLEAR MOV R2, #0 MOV R3, #2 MOV A, PCON SETB ACC.7 MOV PCON, A MOV SCON, #01010000B MOV 26H, #00H MOV 24H, #0 ;24H 25H BIEN DEM PHAN TRAM GIAY 68 Báo cáo Thí nghiện Vi xử lý MOV 25H, #0 MOV 23H, #0 ;22H 23H GIAY MOV 22H, #0 ;20H 21H PHUT MOV 21H, #0 MOV 20H, #0 MOV R1,#0 MOV TMOD ,#21H MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) MOV TH1, #-3 SETB TR1 SETB TR0 SETB EA SETB ET0 SETB ES SETB IP.4 MAIN_LOOP: LCALL GOTOXY LCALL READADC LCALL DISPLAYADC SJMP MAIN_LOOP ; -DISPLAY: CLR TR0 CLR TF0 MOV TL0,#LOW(-10000) MOV TH0,#HIGH(-10000) SETB TR0 MOV R7, 26H CJNE R7, #01H, D_CHAY SJMP D_DUNG D_CHAY: MOV 30H, R0 MOV R0, #25H MOV A, @R0 CJNE A, #9, SKIP MOV 25H, #0 DEC R0 MOV A, @R0 CJNE A, #9, SKIP MOV 24H, #0 DEC R0 MOV A, @R0 69 Báo cáo Thí nghiện Vi xử lý CJNE A, #9, SKIP MOV 23H, #0 DEC R0 MOV A, @R0 CJNE A, #5, SKIP MOV 22H, #0 DEC R0 MOV A, @R0 CJNE A, #9, SKIP MOV 21H, #0 DEC R0 MOV A, @R0 CJNE A, #5, SKIP MOV 20H, #0 SJMP COUNTER_DONE SKIP: INC A MOV @R0, A COUNTER_DONE: MOV R0, 30H D_DUNG: MOV R0,#20H CJNE R1,#4,NEXT MOV R1,#0 NEXT: MOV A,R0 ADD A,R1 MOV R0,A MOV A,@R0 MOV R0,A ACALL DISPLAYLED INC R1 RETI ; DISPLAYLED: MOV B,R1 INC B MOV A,#11111110B SHIFTLOOP: RR A DJNZ B, SHIFTLOOP ANL A, #0F0H PUSH ACC 70 Báo cáo Thí nghiện Vi xử lý MOV A,R0 ANL A, #0FH MOV R0,A POP ACC ORL A,R0 MOV DPTR, #0000H MOVX @DPTR,A RET ; SP_ISR: CLR ES JNB TI, RI_ISR CLR TI LJMP RUN RI_ISR: CLR RI MOV A, SBUF CJNE A, #52H, SPNEXT LJMP RUN SPNEXT: CJNE A,#50H, RUN LCALL RECIEVE ADD A,#-48 MOV 20H, A LCALL RECIEVE ADD A,#-48 MOV 21H, A LCALL RECIEVE ADD A,#-48 MOV 22H, A LCALL RECIEVE ADD A,#-48 MOV 23H, A RUN: SETB ES RETI ; -RECIEVE: JNB RI,$ CLR RI MOV A,SBUF RET ; 71 Báo cáo Thí nghiện Vi xử lý READADC: MOV DPTR, #4000H MOVX @DPTR, A ACALL DELAY_LCD MOVX A, @DPTR MOV R0, A RET ; -DISPLAYADC: MOV A, R0 MOV B, #100 DIV AB ADD A, #30H LCALL WRITE_DATA MOV A,B MOV B,#10 DIV AB ADD A, #30H LCALL WRITE_DATA MOV A, B ADD A, #30H LCALL WRITE_DATA RET ; INIT_LCD: MOV A, #38H LCALL WRITE_COM MOV A, #0CH LCALL WRITE_COM MOV A, #06H LCALL WRITE_COM RET ; CLEAR: MOV A, #01H LCALL WRITE_COM RET ; WRITE_COM: MOV DPTR, #8000H SETB EN CLR RS MOVX @DPTR, A 72 Báo cáo Thí nghiện Vi xử lý CLR EN LCALL DELAY_LCD RET ; -WRITE_DATA: MOV DPTR, #8000H SETB EN SETB RS MOVX @DPTR, A CLR EN LCALL DELAY_LCD RET ; DELAY_LCD: MOV R6,#10 DL1: MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 RET ; GOTOXY: PUSH ACC MOV A, R2 MOV DPTR, #TB MOVC A,@A+DPTR ADD A, R3 LCALL WRITE_COM POP ACC RET ; TB: DB 80H, 0C0H END 73 ... Yêu cầu: - Vi? ??t chương trình READADC thực đọc giá trị kênh trả giá trị R0 22 Báo cáo Thí nghiện Vi xử lý - Vi? ??t chương trình hiển thị giá trị kênh ADC lên LCD dùng chương trình READADC vi? ??t Code... Thí nghiện Vi xử lý BÀI THÍ NGHIỆM 2: HIỂN THỊ LED ĐOẠN MỤC TIÊU: Nắm cách giao tiếp ngoại vi dạng ánh xạ nhớ, giao tiếp LED đoạn CHUẨN BỊ: Đọc chương chương tài liệu hướng dẫn Vi? ??t chương... 14 Báo cáo Thí nghiện Vi xử lý Lý thuyết ADC: Vi mạch ADC (Analog to Digital Converter) sử dụng để chuyển đổi tín hiệu từ dạng tương tự sang dạng số Kit thí nghiệm sử dụng vi mạch chuyển đổi ADC0809