Tải bản đầy đủ (.doc) (27 trang)

LẬP TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SỬ DỤNG VI ĐIỀUKHIỂN HỌ 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (297.07 KB, 27 trang )

Bài 7.2. LẬP TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SỬ DỤNG VI ĐIỀU
KHIỂN HỌ 8051
7.2.1. Cấu trúc phần cứng
a. Cấu trúc led 7 đoạn
Vì led 7 đoạn chứa bên trong các led đơn, do đó khi kết nối cần đảm bảo dòng
qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V
có thể hạn dòng bằng điện trở trước các chân nhận tín hiệu điều khiển.
* Bảng mã hiển thị led 7 đoạn:
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn
sáng ở mức 0):
Số hiển thị trên
led 7 đoạn
Mã hiển thị led 7 đoạn
dạng nhị phân
Mã hiển thị led 7 đoạn
dạng thập lục phân
dp g f e d c b a
0 1 1 0 0 0 0 0 0 C0
1 1 1 1 1 1 0 0 1 F9
2 1 0 1 0 0 1 0 0 A4
3 1 0 1 1 0 0 0 0 B0
4 1 0 0 1 1 0 0 1 99
5 1 0 0 1 0 0 1 0 92
6 1 1 0 0 0 0 1 0 82
7 1 1 1 1 1 0 0 0 F8
8 1 0 0 0 0 0 0 0 80
9 1 0 0 1 0 0 0 0 90
A 1 0 0 0 1 0 0 0 88
B 1 0 0 0 0 0 1 1 83
C 1 1 0 0 0 1 1 0 C6
D 1 0 1 0 0 0 0 1 A1


Số hiển thị trên
led 7 đoạn
Mã hiển thị led 7 đoạn
dạng nhị phân
Mã hiển thị led 7 đoạn
dạng thập lục phân
E 1 0 0 0 0 1 1 0 86
F 1 0 0 0 1 1 1 0 8E
- 1 0 1 1 1 1 1 1 BF
b. Kết nối vi điều khiển với led 7 đoạn
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1
Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7 đoạn nhận một
dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led led đơn
trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường được gọi là "mã hiển thị
led 7 đoạn". Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode
(cực +) chung và mã dành cho led 7 đoạn có Cathode (cực -) chung.
- Phần cứng được kết nối với 1 Port bất kì của vi điều khiển, để thuận tiện cho
việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối
với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân dp.
- Dữ liệu xuất có dạng nhị phân như sau : dp g f e d c b a
Nếu kết nối mỗi một Port của Vi điều khiển với 1 led 7 đoạn thì tối đa kết nối
được 4 led 7 đoạn. Mặt khác nếu kết nối như trên sẽ hạn chế khả năng thực hiện các
công việc khác của Vi điều khiển. Cho nên cần phải kết nối, điều khiển nhiều led 7
đoạn với số lượng chân điều khiển từ Vi điều khiển càng ít càng tốt. Có hai giải pháp:
một là sử dụng các IC chuyên dụng cho việc hiện thị led 7 đoạn, hai là kết nối nhiều
led 7 đoạn vào cùng một đường xuất tín hiệu hiển thị.
7.2.2. Lập trình ứng dụng điều khiển led 7 đoạn
Bài toán 1: Lập trình nhận phím đơn từ cổng P1 điều khiển 1 led 7 đoạn tại cổng P0.
Yêu cầu:
- Nhấn phím 1 thì led 7 đoạn hiển thị số đếm tiến từ 0 đến 9

- Nhấm phím 2 thì led 7 đoạn hiển thị số đếm lùi từ 9 về 0
- Nhấn phím 3 thì led 7 đoạn hiển thị số 0
Bước 1: Xây dựng phần cứng.
Với yêu cầu của bài toán, phần cứng được thiết kế như sau:
Bước 2: Xây dựng lưu đồ thuật toán.
Bước 3: Xác định các lệnh sử dụng để xuất nhập cổng
Khai báo vào ra,
Khởi động hệ thống
Led hiển thị số đếm
từ 0 đến 9
Yes
No
Phim1 =0?
Led hiển thị đếm lùi
từ 9 về 0
Yes
No
Phím 2 = 0?
Led hiển thị số 0
Yes
No
Phím 3 = 0?
Kết thúc
Khởi động
Cấu trúc lệnh Ý nghĩa
Số chu
kỳ máy
JNB bit,rel Nhảy tới nhãn rel nếu bit = 0 2
pop direct Lấy nội dung của ô nhớ ngăn xếp trả cho ô nhớ có địa
chỉ direct, con trò ngăn xếp SP giảm đi 1 sau khi lấy

dữ liệu ra
2
inc a Tăng nội dung thanh ghi a lên 1 1
push direct Cất nội dung của ô nhớ có địa chỉ direct vào ô nhớ
ngăn xếp, con trỏ ngăn xếp SP tăng lên 1 trước khi lưu
nội dung
2
call rel Gọi chương trình con 2
clr bit Xóa bit: bit = 0 1
setb bit Thiết lập bit = 1 1
mov Dis,Souce Di chuyển dữ liệu từ nguồn “souce” tới đích “Dis” 2
cjne a,#data,rel Nội dung của A khác data 8 thì lệnh nhảy đến thực
hiện lện tại địa chỉ rel
2
djnz Rn,rel Nội dung của Rn giảm đi 1 và kết quả trong Rn giảm
khác 0 thì vì thực hiện chương trình rel
2
Ret Kết thúc chương trình con 2
Bước 4: Viết chương trình
a. Nguyên lý chung xây dựng chương trình
Các lệnh xuất dữ liệu:
MOV P0,#00H; Thiết lập cổng P0  P0= 5 v
MOV P0,#0FFH; Xóa cổng P0: P0 = 0  P0 = 0 V
Các lệnh nhảy không điều kiện:
JMP rel ; Nhảy tới nhãn rel trong phạm vi 128 byte
LJMP rel ; Nhảy tới nhãn rel trong phạm vi 256 byte
b. Xây dựng chương trình theo yêu cầu bài toán
- Khởi động hệ thống:
+ Do yêu cầu của bài toán là khi khởi động Led 7 đoạn tắt do đó cần phải gửi
dữ liệu ra Led là 0: do đó sử dụng lệnh:

Mov P0,#0C0H
+ Lưu bảng mã led 7 đoạn vào thanh ghi dptr
mov dptr,#bangma
+ Kiểm tra phím
kiemtra:
jnb SW1,CT1
jnb SW2,CT21
jnb SW3,CT3
- Chương trình đếm tiến từ 0 đến 9 thực hiện xuất dữ liệu ra led 7 đoạn
CT1:
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
inc a
cjne a,#10,CT1
ljmp kiemtra
- Chương trình đếm lùi từ 9 về 0 thực hiện xuất dữ liệu ra led 7 đoạn
CT21:
mov a,#10
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
dec a
cjne a,#0,CT21
ljmp kiemtra
- Chương trình led 7 đoạn hiển thị số 0

mov p0,#00h
call delay
ljmp kiemtra
- Chương trình delay
delay:
mov r5,#20
del1:
mov r6,#255
del2:
mov r7,#255
djnz r7,$
djnz r6,del2
djnz r5,del1
ret
* Như vậy, chương trình tổng thể như sau:
org 0000h
;======khai bao vao
SW1 bit p1.0
SW2 bit p1.1
SW3 bit p1.2
;======= khai bao ra
led equ p0
;======= khoi dong
mov a,#0
mov dptr,#bangma
kiemtra:
jnb SW1,CT1
jnb SW2,CT21
jnb SW3,CT3
movc a,@a+dptr

mov p0,a
ljmp kiemtra
;=====led dem tang tu 0 den 9
CT1:
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
inc a
cjne a,#10,CT1
ljmp kiemtra
;======led giam tu 9 xuong 0
CT21:
mov a,#10
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
dec a
cjne a,#0,CT21
ljmp kiemtra
;=======led hien thi so 0
CT3:
mov p0,#00h
call delay
ljmp kiemtra
;========= chuong trinh tre
delay:

mov r5,#20
del1:
mov r6,#255
del2:
mov r7,#255
djnz r7,$
djnz r6,del2
djnz r5,del1
ret
bangma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
- Dịch kiểm tra lỗi:
Các thao tác dịch:
B1: Ghi bài vừa làm: nhấn tổ hợp phín Ctrl + S
B2: Dịch: nhấn tổ hợp phím Ctrl +F2
B3: Đọc các thông báo lỗi nếu có và sửa lỗi
- Nạp chạy mô phỏng:
B1: Mở chương trình mô phỏng
B2: Nạp file.Hex
B3: Chạy mô phỏng kiểm tra nguyên lý hoạt động của mạch theo yêu cầu công
nghệ.
7.2.3 Phát triển các ứng dụng
Ví dụ: Kết nối với nhiều led 7 đoạn và ứng dụng hiện thị thời gian
Mạch điện mô tả một đồng hồ báo giờ, ở đây port1 (p1.0-p0.7) điều khiển các
cưc dương của led 7 đoạn, còn các chân p3.0-p3.3 sẽ điều khiển các cực âm chung của
led 7 đoạn (lưu ý: cả 4led trên đều là loại Catod chung).
Tóm tắt sự hoạt động của mạch
Trên các chân p3.0-p3.3 có hai đường nối vào đó; một đường nối đến transistor
và một đường nối đến phím nhấn (switch) với chân p3.4. điều đó có nghĩa là trong quá

trình hiển thị đồng thời vi điều khiển cũng kiểm tra xem có phím nào được nhấn hay
không. nếu có thì chân p3.4 sẽ xuống mức "thấp". lúc đó vi điều khiển sẽ xử lý theo
chức năng của phím mà chúng ta đã nhấn.trong 4 phím đó có 2 phím điều khiển giờ và
điều chỉnh phút, một khóa dùng để tắt mở đèn mà nó được điều khiển bởi chân p3.7
thông qua các rơ le và điểm L và N nối vào nguồn điện xoay chiều 220v, bóng đèn
cũng là loại 220v.
Mẫu số 7 ( Khổ 19x26,5)
Ban hành kèm theo Quyết định số 62/2008/QĐ-BLĐTBXH
BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
TRƯỜNG CAO ĐẲNG NGHỀ CƠ ĐIỆN VÀ XÂY DỰNG BẮC NINH
SỔ GIÁO ÁN
TÍCH HỢP
Môn học/ Mô-đun : Vi điều khiển
Lớp : CĐ – ĐT1 Khoá : 40
Họ và tên giáo viên :
Năm học: 2011 -2012

Mẫu số 7.
Ban hành kèm theo Quyết định số 62/2008/QĐ-BLĐTBXH
GIÁO ÁN SỐ:
Thời gian thực hiện: 01h
Tên bài học trước: 7.1. lập trình điều khiển led đơn
Thực hiện từ ngày đến ngày
TÊN BÀI:
7.2 LẬP TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN SỬ DỤNG VI ĐIỀU KHIỂN HỌ 8051
MỤC TIÊU CỦA BÀI:
Sau khi học xong bài này người học có khả năng:
- Trình bày chính xác các lệnh sử dụng để xuất dữ liệu và cấu trúc phần cứng cho vi
điều khiển 8051 điều khiển led 7 đoạn.
- Thiết kế được phần cứng và lập trình ứng dụng nhập, xuất dữ liệu ra các cổng của

vi điều khiển 8051 để điều khiển led 7 đoạn.
- Rèn luyện tính cẩn thận, chính xác trong quá trình xây dựng phần cứng và lập trình
điều khiển.
ĐỒ DÙNG VÀ TRANG THIẾT BỊ DẠY HỌC:
- Máy tính đã cài các phần mềm pinacle, proteus
- KIT thực hành vi điều khiển đa năng
- Bài giảng, tài liệu phát tay
HÌNH THỨC TỔ CHỨC DẠY HỌC:
- Hướng dẫn ban đầu: Tập trung theo ca
- Hướng dẫn thường xuyên: phân nhóm
- Hướng dẫn kết thúc: theo ca
I. ỔN ĐỊNH LỚP HỌC: Thời gian: 01’


II. THỰC HIỆN BÀI HỌC.

TT NỘI DUNG
HOẠT ĐỘNG DẠY HỌC
THỜI
GIAN
HOẠT ĐỘNG CỦA
GIÁO VIÊN
HOẠT ĐỘNG CỦA
HỌC SINH
1 Dẫn nhập
Giới thiệu nguyên lý hoạt
động của mạch xuất nhập
cổng trên mạch mô phỏng
vi điều khiển.
- Trình chiếu sơ đồ

nguyên lý mạch điện
- Hãy nêu nguyên lý
hoạt động của mạch
điện ?
- Giải thích nguyên lý
- Quan sát, suy nghĩ.
- Trả lời câu hỏi.
- Ghi chép những điều
cần thiết.
03‘
hoạt động của mạch xuất
nhập cổng trên mạch mô
phỏng vi điều khiển.
2 Giới thiêu chủ đề
- Giới thiệu tên và mục
tiêu của bài học.
- Nội dung khái quát bài
học:
+ Các lệnh, cấu trúc phần
cứng xuất nhập cổng.
+ Xây dựng phần cứng,
lập trình phần mềm ứng
dụng xuất nhập cổng đơn.
- Giải thích ý nghĩa, tầm
quan trọng của xuất nhập
cổng trên vi điều khiển
8051.
- GV ghi tiêu đề của bài
học.
- Trình bày mục tiêu của

bài học và các nội dung
khái quát cần lĩnh hội.
- Lắng nghe và ghi
chép những điều cần
thiết.
- Xác định đúng chủ
đề và các kỹ năng cần
thiết cần hình thành
trong bài học.
04‘
3 Giải quyết vấn đề
7.2.1 Cấu trúc phần cứng
a. Cấu trúc led 7 đoạn
- Led 7 đoạn Anode
chung;
- Led 7 đoạn Cathode
chung;
* Bảng mã hiển thị led 7
đoạn.
b. Kết nối vi điều khiển
với led 7 đoạn
- Trình chiếu hình ảnh
led 7 đoạn.
- Hãy nêu sự khác nhau
giữa cấu trúc led 7 đoạn
Anode chung và
Cathode chung?
- Nêu chú ý khi sử dụng
led 7 đoạn.
- Trình chiếu Powerpoint

- Giải thích bảng mã
hiển thị led 7 đoạn.
- Trình chiếu hình ảnh
kết nối vi điều khiển với
led 7 đoạn;
- Giải thích các phương
pháp kết nối vi điều
khiển với led 7 đoạn.
- Quan sát hình ảnh
Suy nghĩ và trả lời
câu hỏi.
- Ghi chép những điều
cần thiết.
- Quan sát và ghi nhớ.
Quan sát hình ảnh.
Ghi chép những điều
cần thiết.
05’
7.2.2 Lập trình ứng
dụng điều khiển led 7
đoạn.
Bài toán 1: Lập trình
nhận phím đơn từ cổng
P1 điều khiển 1 led 7
đoạn tại cổng P2.
Bước 1: Xây dựng phần
cứng
Bước 2: Xây dựng lưu đồ
thuật toán.
Bước 3: Xác định các

lệnh sử dụng để xuất
nhập cổng.
Bước 4: Viết chương
trình thực hiện yêu cầu
bài toán.
a. Nguyên lí chung xây
dựng chương trình;
b. Xây dựng chương trình
thực hiện yêu cầu bài
toán.
- Khởi động hệ thống
- Trình chiếu yêu cầu
của bài toán.
- Chia nhóm.
- Trình chiếu , giải thích
sơ đồ phần cứng thực
hiện yêu cầu bài toán.
- Hướng dẫn xây dựng
phần cứng bằng KIT đa
năng.
- Quan sát và hướng dẫn
các nhóm.
- Trình chiếu , giảng giải
lưu đồ thuật toán thực
hiện nhiệm vụ bài toán.

- Hãy giải thích các lệnh
để xuất nhập cổng dữ
liệu?
Nhận xét câu trả lời

- Giải thích các lệnh xuất
dữ liệu, các lệnh nhảy
không điều kiện.
- Phân tích cấu trúc
chương trình
- Nêu mục đích của câu
lệnh với yêu cầu bài toán
- Trình diễn viết đoạn
chương trình khởi động
hệ thống.
- Quan sát và hướng dẫn.
- Xác định đúng
nhiệm vụ và yêu cầu
của bài.
- Xác định sơ đồ phần
cứng phù hợp nhiệm
vụ bài toán.
- Xây dựng phần
cứng, kết nối phím
đơn, led 7 đoạn với vi
điều khiển trên KIT
đa năng.
- Quan sát, ghi nhớ và
ghi chép những điều
cần thiết.
- Suy nghĩ và trả lời
câu hỏi.
- Lắng nghe và ghi
chép bài.
- Quan sát, suy nghĩ

và ghi chép.
- Thực hiện viết
03’
05’
05’
05’
20’
- Chương trình đếm tiến
từ 0 đến 9 thực hiện xuất
dữ liệu ra led 7 đoạn.
- Chương trình đếm lùi từ
9 đến 0 thực hiện xuất dữ
liệu ra led 7 đoạn.
- Chương trình led 7 đoạn
hiển thị số 0.
- Chương trình delay.
- Dịch kiểm tra và sửa
lỗi
- Nạp chạy mô phỏng.
7.2.3 Phát triển các ứng
dụng
Kết nối với nhiều led 7
đoạn và ứng dụng hiển thị
thời gian.
- Giải thích mục đích của
đoạn chương trình;
- Hãy nêu ý nghĩa của
các câu lệnh trong đoạn
chương trình?
- Quan sát và hướng dẫn.

- Giải thích mục đích của
đoạn chương trình;
- Hãy nêu ý nghĩa của
các câu lệnh trong đoạn
chương trình?
- Quan sát và hướng dẫn
- Giải thích mục đích của
đoạn chương trình.
- Hãy nêu mục đích của
chương trình delay?
- Quan sát và hướng dẫn.
- Phân tích các lỗi,
phương pháp sửa lỗi
- Phân tích các bước nạp
chạy mô phỏng
- Trình diễn sản phẩm
của bài toán.
- Phân tích nguyên lý
xây dựng mạch ứng
dụng
chương trình khởi
động hệ thống.
- Quan sát, suy nghĩ
và ghi chép.
- Trả lời câu hỏi
- Viết chương trình
đếm tiến 0 – 9.
- Trả lời câu hỏi
- Viết chương trình
đếm lùi 9 – 0.

- Viết chương trình
hiển thị sô 0.
- Suy nghĩ và trả lời
câu hỏi.
- Viết chương trình
delay.
- Thực hiện dịch kiểm
tra lỗi.
- Thực hiện nạp chạy
chương trình.
- Trình diễn sản phẩn
của bài toán.
- Xác định mục đích,
ý nghĩa của bài toán
ứng dụng.
04’
4 Kết thúc vấn đề
- Kết nối vi điều khiển
với led 7 đoạn.
- Nhấn mạnh, khái quát
hóa nội dung bài học
- Lắng nghe
03’
- Xác định lưu đồ thuật
toán thực hiện yêu cầu bài
toán.
- Viết chương trình điều
khiển led 7 đoạn.
+ Nạp chạy mô phỏng
- Nhận xét và đánh giá

sản phẩm của các nhóm.
- Phân tích các lỗi
thường gặp trong quá
trình lập trình ứng dụng
- Nêu những lưu ý về an
toàn khi thực hiện giải
quyết nhiệm vụ bài toán.
- Đại diện nhóm trình
diễn sản phẩm thực
hiện.
- Lắng nghe và ghi
chép những điều cần
thiết.
5 Hướng dẫn tự học Xây dựng phần cứng, viết phần mềm điều khiển 2
led 7 đoạn với yêu cầu: 3 nút nhấn nối với cổng
P0; khi nút nhấn 1 được bật thì 2 led hiển thị đếm
00 đến 99, bật nút nhấn 2 thì hiển thị số 55, bật
nút nhấn 3 thì tắt hết các led về 00.
02’
VI. RÚT KINH NGHIỆM TỔ CHỨC THỰC HIỆN:



TRƯỞNG KHOA
Ngày tháng 05 năm 2012
GIÁO VIÊN
PHIẾU HƯỚNG DẪN THỰC HIỆN QUY TRÌNH
Bài học
7.2 Lập trình điều khiển led 7 đoạn sử dụng họ vi điều khiển 8051
Kỹ năng

Sử dụng 3 nút bấm để điều khiển 1 led 7 đoạn hiển thị các trạng thái sau: đếm tiến 0 đến
9; đến lùi từ 9 về 0, và chỉ hiển thị số 0 (môdul: vi điều khiển).
TT Bước Tiêu chuẩn Lưu ý, An toàn
1 Bước 1: Xác định phần cứng với yêu cầu của bài toán: Lựa chọn đúng loại
linh kiện theo yêu
cầu của bài toán.
Đặt chính xác tên các
linh kiện
Máy tính cần phải
cài phần mềm
Proteus 7.1 trở
lên.
2
Bước 2: Xây dựng lưu đồ thuật toán:
- Sử dụng đúng hình
dạng các khối trong
lưu đồ.
- Vẽ dạng lưu đồ
đúng yêu cầu bài tập
Có thể tạo một
hình rồi copy ra
những hình khác.
Khai báo vào ra,
Khởi động hệ thống
Led hiển thị số
đếm từ 0 đến 9
Yes
No
Phim1 =0?
Led hiển thị

đếm từ 9 về 0
Yes
No
Phím2 = 0?
Led hiển thị số
0
Yes
No
Kết thúc
Khởi động
Phím 3 = 0?
3 Bước 3: Xác định các lệnh sử dụng để xuất nhập cổng
- JNB bit,rel: Nhảy tới nhãn rel nếu bit = 0
- inc a: Tăng nội dung thanh ghi a lên 1
- dec a: Giảm nội dung thanh ghi a đi 1
- pop direct: Lấy nội dung của ô nhớ ngăn xếp trả cho ô nhớ
có địa chỉ direct, con trò ngăn xếp SP giảm đi 1 sau khi lấy
dữ liệu ra
- push direct: Cất nội dung của ô nhớ có địa chỉ direct vào ô
nhớ ngăn xếp, con trỏ ngăn xếp SP tăng lên 1 trước khi lưu
nội dung
- call rel: gọi chương trình con
- clr bit: thực hiện xóa bit =0
- setb bit : thiết lập bit =1
- mov Dis,Souce : Di chuyển dữ liệu từ nguồn “souce” tới
đích “Dis”
- cjne a,#data,rel : Nội dung của a khác data 8 thì lệnh nhảy
đến thực hiện lện tại địa chỉ rel
- djnz Rn,rel: Nội dung của Rn giảm đi 1 và kết quả trong
Rn giảm khác 0 thì vì thực hiện chương trình rel

- Ret : thoát chương trình con về chương trình chính
Đánh chính xác các
lệnh, đoạn code.
Các câu lệnh
đúng trong ngôn
ngữ asm.
4 Bước 4: Viết chương trình
a, Nguyên lý chung xây dựng chương trình:
Các lệnh xuất dữ liệu:
MOV P0,#00H; Thiết lập cổng P0  P0= 5 v
MOV P0,#0FFH; Xóa cổng P0  P0 = 0 V
Các lệnh nhảy không điều kiện:
JMP rel ; Nhảy tới nhãn rel trong phạm vi 128 byte
LJMP rel ; Nhảy tới nhãn rel trong phạm vi 256 byte.
b,Xây dựng chương trình theo yêu cầu bài toán.
- Khởi động hệ thống:
+ Do yêu cầu của bài toán là khi khởi động Led 7 đoạn tắt
do đó cần phải gửi dữ liệu ra Led là 0: do đó sử dụng lệnh:
Mov a,#0
Mov P0,a
+ Lưu bảng mã led 7 đoạn vào thanh ghi dptr
mov dptr,#bangma
+ Kiểm tra phím
kiemtra:
jnb SW1,CT1
jnb SW2,CT21
jnb SW3,CT3
- Chương trình đếm tiến từ 0 đến 9 thực hiện xuất dữ liệu ra
led 7 đoạn
CT1:

push acc
movc a,@a+dptr
- Kiểm tra tính năng
của các nút bấm;
- Thực hiện viết các
chương trình con,
ghép thành chương
trình điều khiển hoàn
chỉnh.
Đảm bảo chương
trình hoàn thiện,
chạy đúng yêu cầu
mov p0,a
call delay
pop acc
inc a
cjne a,#10,CT1
ljmp kiemtra
- Chương trình đếm lùi từ 9 về 0 thực hiện xuất dữ liệu ra
led 7 đoạn
CT21:
mov a,#10
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
dec a
cjne a,#0,CT21
ljmp kiemtra

- Chương trình led 7 đoạn hiển thị số 0
mov p0,#00h
call delay
ljmp kiemtra
- Chương trình delay
delay:
mov r5,#20
del1:
mov r6,#255
del2:
mov r7,#255
djnz r7,$
djnz r6,del2
djnz r5,del1
ret
PHIỀU BÀI TẬP
Bài 7.2. Xuất nhập cổng
Nhóm:…… Lớp:…… Thời gian hoàn thành: 4h Ngày thực hiện:……
Thành viên trong nhóm: …………………………………… Máy tính số: ………
Bài tập 1:
Xây dựng phần cứng, viết chương trình điều khiển 2 led 7 đoạn với yêu cầu: 3 nút
nhấn cho 3 chế độ: chế độ 1 hiển thị số 12, chế độ 2 hiển thị số từ 00 đến 99, chế độ 3 hiển
thị số 88 ; một nút nhấn tắt led. Các nút tác động ở mức logic 0, đầu ra tác động ở mức1.
Yêu cầu:
- Xây dựng phần cứng ứng dụng bao gồm các mạch giao tiếp
- Xây dựng lưu đồ giải thuật
- Viết chương trình ứng dụng
PHIỀU BÀI TẬP
Bài 7.2. Xuất nhập cổng
Nhóm:…… Lớp:…… Thời gian hoàn thành: 4h Ngày thực hiện:……

Thành viên trong nhóm:…………………………………… Máy tính số:………
Bài tập 2:
Xây dựng phần cứng, viết chương trình điều khiển Led 7 đoạn gắn tại P1 điều khiển
bởi phím gắn tại P2 với yêu cầu: Nhấn phím tại chân P2.0 các Led tăng lên 1 với thời gian
trễ 1s (timer 1).
Nhấn phím tại P2.1, Các Led giảm đi 1
Có thể nhấn phím thay đổi trạng thái tại tại bất kỳ thời điểm nào.
Yêu cầu:
- Xây dựng phần cứng ứng dụng bao gồm các mạch giao tiếp
- Xây dựng lưu đồ giải thuật
- Tính toán thời gian trễ, viết chương trình ứng dụng.
S W 1
R 1
1 0 K
+ 5 V
P o r t
S W 2
R 2
1 0 K
+ 5 V
P o r t
TÀI LIỆU PHÁT TAY
THIẾT KẾ ỨNG DỤNG XUẤT NHẬP CỔNG CHO VI ĐIỀU KHIỂN 8051
1. Kiến thức lý thuyết:
a, Các lệnh sử dụng để xuất nhập cổng:
Cấu trúc lệnh Ý nghĩa
Số chu
kỳ máy
JNB bit,rel Nhảy tới nhãn rel nếu bit = 0 2
pop direct Lấy nội dung của ô nhớ ngăn xếp trả cho ô nhớ có địa

chỉ direct, con trò ngăn xếp SP giảm đi 1 sau khi lấy
dữ liệu ra
2
inc a Tăng nội dung thanh ghi a lên 1 1
push direct Cất nội dung của ô nhớ có địa chỉ direct vào ô nhớ
ngăn xếp, con trỏ ngăn xếp SP tăng lên 1 trước khi lưu
nội dung
2
call rel Gọi chương trình con 2
clr bit Xóa bit: bit = 0 1
setb bit Thiết lập bit = 1 1
mov Dis,Souce Di chuyển dữ liệu từ nguồn “souce” tới đích “Dis” 2
cjne a,#data,rel Nội dung của A khác data 8 thì lệnh nhảy đến thực
hiện lện tại địa chỉ rel
2
djnz Rn,rel Nội dung của Rn giảm đi 1 và kết quả trong Rn giảm
khác 0 thì vì thực hiện chương trình rel
2
Ret Kết thúc chương trình con 2
b, Cấu trúc phần cứng:
+ Cấu trúc phần cứng nhập dữ liệu
+ Cấu trúc phần cứng xuất dữ liệu đầu ra:
Hình 01: Sơ đồ phần cứng giao tiếp nhập dữ liệu từ nút nhấn:
Hinh a: Nút nhấn tác động mức thấp
Hình b: Nút nhấn tác động nút cao
Hình 01: Sơ đồ phần cứng led 7 đoạn
Hinh a: led 7đoạn loại anot chung
Hình b: led 7đoạn loại catot chung
2. Kỹ năng
Thực hiện bài toán ứng dụng vi điều khiển 8051 như sau:

Bài toán : Lập trình nhận phím đơn từ cổng P1 điều khiển 1 led 7 đoạn tại cổng P0.
Yêu cầu:
- Nhấn phím 1 thì led 7 đoạn hiển thị số đếm tiến từ 0 đến 9
- Nhấm phím 2 thì led 7 đoạn hiển thị số đếm lùi từ 9 về 0
- Nhấn phím 3 thì led 7 đoạn hiển thị số 0
2.1. Thiết kế phần cứng:
Với yêu cầu của bài toán, phần cứng được thiết kế như sau:
2.2. Xây dựng lưu đồ thuật toán:
a, Cấu trúc chung của một chương trình xuất nhập dữ liệu
Trong đó:
+ các ô hình quả trám là các lệnh kiểm tra phím
+ Các ô xuất dữ liệu là các chương trình con
+ Các ô hình elip là khởi đầu và kết thúc chương trình
+ Các đường mũi tên là lệnh nhảy và rẽ nhánh: Chú ý các lệnh nhảy không điều kiện
(JMP, LJMP) và các lệnh rẽ nhánh có điều kiện.
Khai báo vào ra,
Khởi động hệ thống
Xuất dữ liệu theo
điều kiện 1
Yes
No
Phím nhấn 1 tác động ?
Xuất dữ liệu theo
điều kiện 2
Yes
No
Phím nhấn 2 tác động ?
Xuất dữ liệu theo
điều kiện n
Yes

No
Phím nhấn n tác động ?
Kết thúc
Khởi động
b, Lưu đồ giải thuật của bài toán
Khai báo vào ra,
Khởi động hệ thống
Khởi động
Yes
No
Yes
No
Yes
No
Kết thúc
Yes
3. Viết chương trình
a, Nguyên lý chung xây dựng chương trình nhận phím nhấn đơn:
- Khởi động hệ thống:
+ Do yêu cầu của bài toán là khi khởi động Led 7 đoạn tắt do đó cần phải gửi dữ
liệu ra Led là 0: do đó sử dụng lệnh:
Mov P0,#0C0H
+ Lưu bảng mã led 7 đoạn vào thanh ghi dptr
mov dptr,#bangma
+ Kiểm tra phím
kiemtra:
jnb SW1,CT1
jnb SW2,CT21
jnb SW3,CT3
- Các lệnh nhảy không điều kiện:

JMP rel ; Nhảy tới nhãn rel trong phạm vi 128 byte
LJMP rel ; Nhảy tới nhãn rel trong phạm vi 256 byte
- Chương trình đếm tiến từ 0 đến 9 thực hiện xuất dữ liệu ra led 7 đoạn
CT1:
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
inc a
cjne a,#10,CT1
ljmp kiemtra
- Chương trình đếm lùi từ 9 về 0 thực hiện xuất dữ liệu ra led 7 đoạn
CT21:
mov a,#10
push acc
movc a,@a+dptr
mov p0,a
call delay
pop acc
dec a
cjne a,#0,CT21
ljmp kiemtra
- Chương trình led 7 đoạn hiển thị số 0
mov p0,#00h
call delay
ljmp kiemtra

×