ROM chứa các chương trình cơ sở cho phép người sử dụng điều khiển kit MDA - EMS51 bằng bàn phím Hex, khối hiển thị LCD để trao đổi dữ liệu.. SRAM dùng để chứa các chương trình ứng dụng d
Trang 2Ứng dụng: trong nhiều dụng cụ điện tử, thiết bị
điện, ôtô, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền
tự động, v.v.
1 Giới thiệu về 8051
Automobile - ôtô
truyền thông
Communication-Avionics- đ.tử hàng không
Trang 321 April 2009 L.T.Vinh 5
Today’s high-end automobile have > 80microprocessors:
4-bit microcontroller checks seat belt;
microcontrollers run dashboard devices;
16/32-bit microprocessor controls engine.
Millions lines of code
1 Giới thiệu về 8051
Một số thông số trên máy bay
Trang 521 April 2009 L.T.Vinh 9
Ngôn ngữ lập trình
Ví dụ:
ORG 2000HMOV SP,#50HMOV PSW,#00HCLR P1,00H ; LED on
; SETB P1,0FH ;LED offEND
Trang 621 April 2009 L.T.Vinh 11
3 Đảm bảo về phần cứng
1. Nạp chương trình dạng Hex cho VĐK
2. Cấp nguồn: Vcc=+5V; (40) GND=0V(20) (mass)
3. Cấp xung nhịp (Mạch dao động,18,19)
4. Tín hiệu khởi động (ban đầu, khi xảy
ra lỗi, 9)
4 Bộ thực tập MDA-EMS51
+ MDA - EMS51 là
TB thực hành VĐK 8051 (cty Midas
Engineering, Hàn Quốc).
+ Kit MDA - EMS51 gồm các khối giao tiếp cơ bản để tìm hiểu về bộ vi điều khiển 8051 + Có 2 chế độ làm việc: KIT và PC + Có phần cứng + mềm
Trang 721 April 2009 L.T.Vinh 13
+ CPU & MEMORY
CPU sử dụng bộ vi điều khiển 8051 với xung nhịp 11,0592 MHz.
Khối bộ nhớ gồm bộ nhớ ROM và SRAM ROM chứa các chương trình
cơ sở cho phép người sử dụng điều khiển kit MDA - EMS51 bằng bàn phím Hex, khối hiển thị LCD để trao đổi dữ liệu SRAM dùng
để chứa các chương trình ứng dụng do người dùng tạo ra
+ LED: 4 LEDs nối với các cổngn P1.0-P1.3 + Dot Matrix: Khối ma trận điểm sử dụng các LED để hiện thị Kích
thước của ma trận điểm là 8x8 Khối này giao tiếp với với bus hệ thống thông qua vi mạch 8255A Các bài tập tìm hiểu cấu trúc và nguyên lý hiển thị của ma trận điểm sẽ được thực hiện trên khối này.
+ Keyboard: Khối bàn phím có 25 phím gồm: 16 phím dữ liệu số Hex, 8
phím chức năng và 1 phím khởi động lại (RESET) Phím RESET nằm ở góc trên bên phải và tách rời với các phím khác Các thông tin điều khiển và dữ liệu được nhập vào hệ thống thông qua bàn phím.
4 Bộ thực tập MDA-EMS51
1 Bật máy tính
2 Mở nắp Bộ thực tập
3 Bật công tắc nguồn (off -> on)
4 Suy nghĩ về bài toán cần làm, viết ra giấy thuật toán
5 Viết mã lệnh (lập trình) trên Notepad
6 Dùng phần mềm (chương trình) MDA-EMS51 để chuyển mã lệnh sang mã hex, nạp vào VĐK, chạy thử
7 Quan sát kết quả trên Bộ thực hành
8 Xem xét, phân tích và sửa chương trình cho phù hợp (lặp lại các bước 4-8)
9 Làm bài tập khác (các bước 4-8)
10 Kết thúc buổi thực hành: Đóng phần mềm, Tắt Bộ thực đậy nắp hộp, Tắt máy tính
Trang 921 April 2009 L.T.Vinh 17
Một số giao diện: … F2, F3, - F5, F6.
4 Bộ thực tập MDA-EMS51
Một số giao diện: … F2, F3, - F5, F6.
Trang 11- Ph-ơng pháp triển khai các ứng dụng điều khiển
- Làm quen với lập trình cho 8051, xem xét, phân tích thuật toán, hình thành kỹ năng làm việc
- Rèn luyện ý thức chấp hành kỹ luật trong lao
động, học tập
Trang 1221 April 2009 L.T.Vinh 23
Mục đớch mụn học
Định h-ớng:
- Đối t-ợng nghiên cứu: VĐK 8051 và đối t-ợng cần
điều khiển: LED, LED ma trận, Bàn phím,…
- Công việc cần làm: Hiểu mục đích bài toán, lập trìnhcho VĐK, làm bộc lộ bản chất của quá trình điềukhiển
- Nghiên cứu: Dựa vào hoạt động của đối t-ợng cần
điều khiển, phân tích mối quan hệ, sự phụ thuộc thuậttoán, ảnh h-ớng đến kết quả mong muốn của bài toánntn? tốt hay ch-a tốt? dự đoán tại sao? và đ-a ra cácph-ơng án giải quyết
5 Một số bài tập thực hành
Giao tiếp với LED đơn
Bật
ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0
END
Tắt:
ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0
Trang 1321 April 2009 L.T.Vinh 25
Làm sao cho LED nhấp nháy?
ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0 LOOP: CLR P1.3 ; Led on CALL DELAY
SETB P1.3 ; Led off CALL DELAY
JMP LOOP DELAY: PUSH PSW MOV PSW,#18h ; Bank 3 MOV R7,#0
DLY1: MOV R6,#0 DLY2: NOP
NOP NOP DJNZ R6,DLY2 DJNZ R7,DLY1
RET END
Trang 1521 April 2009 L.T.Vinh 29
Bật sáng LED (0,0)
;- Khai bao Bien dia chi HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C TuDK EQU 0C017h ; Control Word Register
;- Khoi dong ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0
-; Khoi dong 8255A MOV DPTR,#TuDK MOV A,#80h ; Tu dieu khien MOVX @DPTR,A ; Khoi tao cho 8255A
-;- Dua gia tri DK ra Port A
-MOV A,#00000001B
MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh
;- Dua gia tri DK ra Port C MOV DPTR,#COTC ; DPTR tro vao PC
-MOV A,#11111110B ; Gia tri lieu cho PC MOVX @DPTR,A ; PC = A END
5 Một số bài tập thực hành
Bật sáng LED (7,7)
; chuong trinh: Bat LED (7,7)
;- Khai bao Bien dia chi HANGA EQU 0C014h ; Port A COTC EQU 0C016h ; Port C TuDK EQU 0C017h ; Control Word Register
;- Khoi dong ORG 2000h MOV SP,#50h MOV PSW,#0 ; Bank 0
-; Khoi dong 8255A MOV DPTR,#TuDK MOV A,#80h ; Tu dieu khien MOVX @DPTR,A ; Khoi tao cho 8255A
-;- Dua gia tri DK ra Port A
-MOV A,#10000000B
MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh
;- Dua gia tri DK ra Port C MOV DPTR,#COTC ; DPTR tro vao PC
-MOV A,#01111111B ; Gia tri lieu cho PC
Trang 1621 April 2009 L.T.Vinh 31
5 Một số bài tập thực hành
Bật sáng LED (0,0)
MOV A,#11111110B ; DL cho PC
MOVX @DPTR,A ; PC = A CALL DELAY ; Luu y Do dai
;- BAT LED (7,7)
-MOV A,#10000000B
MOV DPTR,#HANGA MOVX @DPTR,A ; PA = 0FFh MOV DPTR,#COTC ; DPTR tro vao PC
MOV A,#01111111B ; DL cho PC
MOVX @DPTR,A ; PC = A JMP LP
RET
Trang 1721 April 2009 L.T.Vinh 33
Cột LED chạy?
PA=1 màu đỏ PB=1 m xanh PA=PB=1 vàng
5 Một số bài tập thực hành
Lưu đồ thuật toán – Chương trình
Trang 181- Bật/tắt một điểm LEDbất kỳ, với các màu
đỏ, xanh, vàng Vídụ: LEDs (1,3);
(2,6); (5,5); v.v
2- Thử nghiệm thuật toánQUÉT cho 2 điểmLED bất kỳ khôngcùng hàng, cột vớithời gian trể nhanh –chậm khác nhau
5 Một số bài tập thực hành
KT Lập trình cho VĐK
Cấu trúc chương trình Định nghĩa, khai báo biến, hằng Bắt đầu: ORG 2000h
Chương trình chính Các chương trình con Kết thúc END
CALL Delay
Delay: ; chuong trinh delay
Trang 1921 April 2009 L.T.Vinh 37
KT Lập trình cho VĐK
CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3
CLR P1 Hoặc MOV a,#00000000h MOV P1,a
MOV DPTR,#MANG2 ; Tro vao mang
LAP:MOVC A,@B+DPTR ; Lay du lieu
Trang 21Hiện thị các chữ, số, biểu tượng khác tùy ý như chữ: B,
C, E … ; số 1, 2,
3 …; Quả tim v.v.
Hai chế độ: Tĩnh và động
Trang 22- Đọc dữ liệu hàng cho đến khi tìm được phím ấn thì dừng.
VD: D3 – D0 = 1110, phím được ấn nằm trên hàng D0
- Vậy đó là số 2
Trang 2321 April 2009 L.T.Vinh 45
Giao tiếp với Bàn phím
Dữ liệu đọc từ địa chỉ 0C004H có dạng:
1xxxxxxx, D 7 =1: là chưa có phím bấm.
0xxxxxxx, D 7 =0: có phím đã bấm, thì tổ hợp 5 bit thấp nhất trong đó chính là mã của phím được bấm.
Lưu ý: khi đã nhận được mã của phím, ta cần truy cập tới địa chỉ 0C000H để lập lại bit cờ I 7 (D 7 ) về 1 chuẩn bị cho quá trình kiểm tra phím tiếp theo.
5 Một số bài tập thực hành
Giao tiếp với Bàn phím
Trang 245 Một số bài tập thực hành
Lập trình cho VĐK 8051 – Vòng lặp
MOV A,B CJNE A,#2,Viec2
; Việc 1 Viec2: ; - Việc 2 -
-CJNE A,#3,Viec4
; Việc 3 Viec4: ; - Việc 4 -
Trang 25-21 April 2009 L.T.Vinh 49
MOV A,#10 MOV R1,#0 Viec1: INC R1
DJNZ A,Viec1 ;giam A, A#0 nhay
…
Vòng lặp FOR
5 Một số bài tập thực hành
Vòng lặp DO-WHILE
Trang 2721 April 2009 L.T.Vinh 53
Một số bài tập (3)
5 Một số bài tập thực hành
Một số bài tập khác (4)
Trang 2921 April 2009 L.T.Vinh 57
Chúc các bạn học tốt