Cấu trúc lệnh Ý nghĩa kỳ máy Số chuJNB bit,rel Nhảy tới nhãn rel nếu bit = 0 2pop 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 sa
Trang 1Bà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òngqua 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 đơnsáng ở mức 0):
Trang 2b 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 1Port 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 đơntrong 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áccô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ềuled 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:
Trang 3Bước 2: Xây dựng lưu đồ thuật toán.
Trang 4Cấu trúc lệnh Ý nghĩa kỳ máy Số chu
JNB bit,rel Nhảy tới nhãn rel nếu bit = 0 2pop 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
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ưunội dung
2
mov Dis,Souce Di chuyển dữ liệu từ nguồn “souce” tới đích “Dis” 2cjne 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
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 vMOV P0,#0FFH; Xóa cổng P0: P0 = 0 P0 = 0 VCá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 byteLJMP 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
kiemtra:
jnb SW1,CT1jnb SW2,CT21jnb 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
Trang 5push accmovc a,@a+dptrmov p0,a
call delaypop accinc acjne a,#10,CT1ljmp 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,#10push accmovc a,@a+dptrmov p0,a
call delaypop accdec acjne a,#0,CT21ljmp kiemtra
- Chương trình led 7 đoạn hiển thị số 0
mov p0,#00hcall delayljmp kiemtra
- Chương trình delay
delay:
mov r5,#20del1:
mov r6,#255del2:
mov r7,#255djnz r7,$
djnz r6,del2djnz r5,del1ret
* Như vậy, chương trình tổng thể như sau:
org 0000h
;======khai bao vao
SW1 bit p1.0SW2 bit p1.1SW3 bit p1.2 ;======= khai bao ra
led equ p0 ;======= khoi dong
mov a,#0mov dptr,#bangma kiemtra:
jnb SW1,CT1
Trang 6jnb SW2,CT21jnb SW3,CT3movc a,@a+dptrmov p0,a
ljmp kiemtra
;=====led dem tang tu 0 den 9
CT1:
push accmovc a,@a+dptrmov p0,a
call delaypop accinc acjne a,#10,CT1ljmp kiemtra ;======led giam tu 9 xuong 0
CT21:
mov a,#10push accmovc a,@a+dptrmov p0,a
call delaypop accdec acjne a,#0,CT21ljmp kiemtra ;=======led hien thi so 0
CT3:
mov p0,#00hcall delayljmp kiemtra ;========= chuong trinh tre
delay:
mov r5,#20del1:
mov r6,#255del2:
mov r7,#255djnz r7,$
djnz r6,del2djnz r5,del1ret
bangma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hend
- Dịch kiểm tra lỗi:
Các thao tác dịch:
Trang 7B1: Ghi bài vừa làm: nhấn tổ hợp phín Ctrl + S
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áccư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ủaled 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 haykhô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ý theochứ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
Trang 8thô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
Trang 10Mẫu số 7.
Ban hành kèm theo Quyết định số 62/2008/QĐ-BLĐTBXHGIÁ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
- 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ềucần thiết
03‘
Trang 11hoạt động của mạch xuấtnhậ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
- GV ghi tiêu đề của bàihọc
- Trình bày mục tiêu củabài học và các nội dungkhái quát cần lĩnh hội
- Lắng nghe và ghichép những điều cầnthiết
- Xác định đúng chủ
đề và các kỹ năng cầnthiết cần hình thànhtrong 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
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ềucầ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
Trang 12dụng điều khiển led 7
Bước 4: Viết chương
trình thực hiện yêu cầu
- 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ảilư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
- Giải thích mục đích của
- 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 chương trình khởi
Trang 13liệu ra led 7 đoạn.
- Chương trình led 7 đoạn
- 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
- 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ểmtra 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
- Kết nối vi điều khiển
với led 7 đoạn
- Xác định lưu đồ thuật
- Nhấn mạnh, khái quát hóa nội dung bài học
- Nhận xét và đánh giá
- Lắng nghe
- Đại diện nhóm trình
03’
Trang 14toá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
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
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
Trang 15PHIẾU HƯỚNG DẪN THỰC HIỆN QUY TRÌNH
9; đến lùi từ 9 về 0, và chỉ hiển thị số 0 (môdul: vi điều khiể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êucầu của bài toán
Đặt chính xác tên cáclinh kiện
- Vẽ dạng lưu đồđúng yêu cầu bài tập
Có thể tạo mộthình rồi copy ranhững hình khác
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?
Trang 16- 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
lệnh, đoạn code. đú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
- 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:
- 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 accmovc a,@a+dptrmov p0,a
call delay
- Kiểm tra tính năngcủa các nút bấm;
- Thực hiện viết cácchương trình con,ghép thành chươngtrình điều khiển hoànchỉnh
Đảm bảo chươngtrình hoàn thiện,chạy đúng yêu cầu
Trang 17pop accinc acjne a,#10,CT1ljmp 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,#10push accmovc a,@a+dptrmov p0,a
call delaypop accdec acjne a,#0,CT21ljmp kiemtra
- Chương trình led 7 đoạn hiển thị số 0
mov p0,#00hcall delayljmp kiemtra
- Chương trình delay
delay:
mov r5,#20del1:
mov r6,#255del2:
mov r7,#255djnz r7,$
djnz r6,del2djnz r5,del1ret
Trang 18PHIỀ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útnhấn cho 3 chế độ: chế độ 1 hiển thị số 12, chế độ 2 hiển thị số từ 00 đến 99, chế độ 3 hiểnthị 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
Trang 19PHIỀ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ểnbở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 giantrễ 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
Trang 20push 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ưunội dung
2
mov Dis,Souce Di chuyển dữ liệu từ nguồn “souce” tới đích “Dis” 2cjne 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
Trang 21Hì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:
Trang 22Với yêu cầu của bài toán, phần cứng được thiết kế như sau: