Phần 1: Làm việc với Vi điều khiển 89C51Bài 1: Thí Nghiệm với nút nhấn và LED đơn Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng trạng thái của nút nhấn P1.0 và hiển
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
-BỘ MÔN ĐIỆN TỬ
BÁO CÁO THÍ NGHIỆM VI XỬ LÍ
Lớp : DD07TD Nhóm : 01
Trang 3Phần 1: Làm việc với Vi điều khiển 89C51
Bài 1:
Thí Nghiệm với nút nhấn và LED đơn
Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng trạng thái của nút nhấn P1.0 và hiển thị ra LED được nối tại chân P1.1
Trang 7Thí nghiệm 2: Viết chương trình hiển thị giá trị 1234 ra LED 7 đoạn.
Code:
ORG 2000H
;Bai 2, Thi nghiem 2
;Hien thi 1234 len 4 LED 7 doan
;Bai 2 Thi nghiem 2 mo rong
;Hien thi gia tri la ma BCD nen trong R7_R6 ra 4 LED
Trang 8;Bai 2 Thi nghiem 3
;Hien thi gia tri nhi phan trong R7 len LED 7 doan
MOV R7, #0A0H ;Example R7= 160
Trang 9MOV DPTR, #TABLE
MOVC A, @A+DPTRCJNE A, #0, NEXT
Trang 10PUSH DPHPUSH DPL
MOV DPTR, #8000HMOVX @DPTR, A
PUSH DPHPUSH DPL
MOV DPTR, #8000HMOVX @DPTR, A
MOV R6, #200
DJNZ R7, $DJNZ R6, DL1RET
END
Thí nghiệm thêm: viết chương trình hiển thị lên LCD chữ “DHBK TPHCM” dịch trái và dịch phải:
ORG 2000H
Trang 13Thí nghiệm giao tiếp qua cổng nối tiếp
Thí nghiệm 1: Viết chương trình phát chuỗi ký tự “Hello, world” lên máy tính thông qua Hyper Terminal với tốc
Trang 15Thí nghiệm 3: Viết chương trình nhận một ký tự từ cổng nối tiếp hiển thị lên LCD đồng thời phát ra cổng nối tiếp Tốc độ tuỳ chọn.
Trang 16BÀI TẬP THÊM : Viết chương trình nhận ký tự từ cổng nối tiếp, đông thới phát ra cổng nối tiếp, với điều kiện:
- Nếu ký tự nhân được là số thì xuất ra Led
- Nếu ký tự nhân được là chữ A-Z, a-z thì xuất ra LCD
- Nếu ký tự nhận được là Enter thì xuống hàng , là ESC thì xóa trong màn hình LCD Mã ASCII của Enter là 13, ESC là 27
ORG 2000H
EN BIT P3.4
RS BIT P3.5
MOV TMOD,#20HMOV TL1,#-3
Trang 17CJNE A,#7BH,THUONG ; kết thúc kiểm tra phím nhần là chữ thường
Trang 18Thí nghiệm điều khiển ADC
Thí nghiệm 1: Viết chương trình thực hiện đọc điện áp của biến trở trên kênh 0 và hiển thị ra led 7 đoạn
Trang 21MOV DPTR,#8000HACALL LCD_INIT
MOV A,#0MOVX @DPTR,AACALL DELAY_100USMOVX A,@DPTRMOV DPTR,#8000HACALL CHIAMOV A, #80HACALL WRITE_CMDSJMP LAP
ACALL WRITE_CMD MOV A, #0CH
ACALL WRITE_CMDMOV A, #04H
ACALL WRITE_CMDMOV A, #01H
ACALL WRITE_CMDRET
DJNZ R6,$
DJNZ R7, LOOPRET
MOVX @DPTR,ASETB EN
CLR ENACALL WAIT_LCDRET
MOVX @DPTR,ASETB EN
CLR ENACALL WAIT_LCDRET
Trang 22ACALL WRITE_CHARMOV A,#0A5H
ACALL WRITE_CHARMOV A,B
MOV B,#5DIV ABORL A,#30HACALL WRITE_CHARPOP B
POP ACC
RETEND
Bài 6:
Thí nghiệm với LED ma trận
Thí nghiệm 1: Viết chương trình hiển thị chữ A ra LED ma trận
Trang 24Thí nghiệm với động cơ DC
Thí nghiệm1: Viết chương trình cho phép động cơ chạy theo chiều thuận trong vòng 2s, nghỉ 2s, chạy theo chiều ngược 2s, nghỉ 2s và lặp lại
Code:
ORG 2000H
MAIN: MOV TMOD, #01H
Trang 26ic573 equ 0E000H
main: mov tmod, #11h
mov r1, #0 ;r1 la bien trang thai
Trang 28Bài tập làm thêm tại lớp:
1.Viết chương trình đếm số lần nhấn P1.0 và xuất ra LED hàng chục ,hàng đơn vị (giả sử số lần nhấn <100)
2.Viết chương trình thực hiện đồng hồ hẹn giờ với thời gian chờ là 3 phút (từ 2’59” đến 0’00” ) Kết quả từng lần nhảy được hiển thị ra LED 7 đoạn với Giờ - Phút – Giây tương ứng LED3- LED2- LED1
Phần 1: Làm việc với PIC 16F690
Bài 7:
Thí nghiệm với LED đơn
Thí nghiệm1: Viết chương trình chớp tắt LED được nối đến chân RC2 của PIC 16F690 với tần số chớp tắt là 1Hz
Trang 31Thí nghiệm1: Viết chương trình thực hiện mạch đếm lên từ 0 đến F (số Hex), kết quả xuất ra LED 7 đoạn, giá trị bộ đếm tăng lên 1 đơn vị cách nhau mỗi 0.5s.
Trang 32Thí nghiệm3: Viết chương trình thực hiện mạch đếm thoả các yêu cầu sau:
Đếm lên từ 0 đến F (số Hex) khi mạch vừa reset,
Đếm xuống từ F đến 0 (số Hex) ki SW1 được nhấn
Kết quả xuất ra led đơn , giá trị bộ đếm tăng lên (giảm xuống ) 1 đơn vị cách nhau mỗi 0.5s
Trang 33Thí nghiệm với ADC
Thí nghiệm1: Viết chương trình đọc giá trị điện áp của biến trở RP1 và xuất mức điện áp tương ứng với giá trị điện áp đọc được ra LED 7 đoạn ( dung ADC với độ phân giải 10 bits) được cho bởi bảng sau: