1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

viết chương trình điều khiển 8 led sáng dồn, chương 1 pps

7 2,7K 16

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 167,43 KB

Nội dung

Chương 1: CHƯƠNG TRÌNH ĐIỀU KHIỂN 8 LED SÁNG DỒN I.. Mục đích yêu cầu: hiểu cách sử dụng lệnh xoay kết hợp với lệnh logic để thực hiện chương trình điều khiển led sáng dồn.. Trình tự th

Trang 1

Chương 1: CHƯƠNG TRÌNH ĐIỀU

KHIỂN 8 LED SÁNG DỒN

I Mục đích yêu cầu: hiểu cách sử dụng lệnh xoay kết hợp với

lệnh logic để thực hiện chương trình điều khiển led sáng dồn

II Trình tự thực hiện:

1 Giải thuật:

2 Kết nối mạch theo trình tự :

- Dùng bus dây kết nối port 0 với một trong bốn PINHD của dãy 32 led

Begin Tắt 8 led

Mức 1 dịch chuyển từ led 1đến led 8

End

Mức 1 dịch chuyển từ led 1đến led 7

Mức 1 dịch chuyển từ led 1đến led 2 Mức 1 dịch chuyển về

led 1

Trang 2

- Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2

3 Khởi động phần mềm, mở File mới và đặt tên file Vd: bai1_4

4 Viết chương trình với tên file vừa đặt :

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

;chuong trinh dieu khien port 0 sang don va tat het - cach I

;su dung bo thi nghiem PE-1,ket noi port 0 den 8 led bang cap 8 soi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

org 0200h ;khai bao dia chi luu tru vung du lieu ma: db 00000000b ;byte du lieu nay luu vao o nho

co dia chi 0200H

;lan thu nhat la 8 byte

db 00000001b ;byte du lieu nay luu vao o nho

co dchi 0201H

db 00000010b ;tuong tu cho cac byte du lieu con lai

db 00000100b

db 00001000b

db 00010000b

db 00100000b

db 01000000b

db 10000000b

;lan thu hai la 7 byte

db 10000001b

db 10000010b

db 10000100b

db 10001000b

Trang 3

db 10010000b

db 10100000b

db 11000000b

;lan thu 3 la 6 byte

db 11000001b

db 11000010b

db 11000100b

db 11001000b

db 11010000b

db 11100000b

;lan thu 4 la 5 byte

db 11100001b

db 11100010b

db 11100100b

db 11101000b

db 11110000b

;lan thu 5 la 4 byte

db 11110001b

db 11110010b

db 11110100b

db 11111000b

;lan thu 6 la 3 byte

db 11111001b

db 11111010b

db 11111100b

;lan thu 7 la 2 byte

db 11111101b

db 11111110b

;lan thu 8 la 1 byte

db 11111111b ;byte du lieu cuoi cung = FFH

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

Trang 4

org 0000h ;khai bao dia chi chtr chinh

port0_44: mov dptr,#0200h ;nap dia chi luu du lieu vao thghi dptr

port0_4a: movc a,@a+dptr;lay du lieu tu bo nho dua vao A

mov p0,a ;goi ra port 0

lcall delay ;goi chtr con delay inc dptr ;tang dptr len o nho ke

cjne a,#0ffh,port0_4a ;ktra co phai la byte ket thuc hay chua

sjmp port0_44 ;quay tro lam lai tu dau khi da het

du lieu

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

;chuong trinh con delay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

delay: mov r6,#0ffh

de2 : mov r7,#0ffh

de1 : djnz r7,de1

djnz r6,de2 ret

end

5 Thực hiện các bước từ 5 đến 9 giống như các bài trước Theo cách viết 1 ta hãy quan sát dữ liệu trong chương trình đã được sắp xếp theo đúng trình tự và chương trình chỉ thực hiện

Trang 5

nhiệm vụ là di chuyển lần lược các byte dữ liệu có trong bộ nhớ đem gởi vào A và sau đó gởi ra port 0

Lệnh “ma: db dữ liệu “ có chức năng nạp các byte dữ liệu vào vùng nhớ có địa chỉ 0200H

Dữ liệu viết dưới dạng số nhị phân cho dễ nhìn thấy và có thể viết dưới dạng số hex – khi đó chương trình sẽ ngắn hơn rất nhiều Phần khai báo dữ liệu dưới dạng số hex như sau:

org 0200h ;khai bao dia chi luu tru vung du lieu

DB 01H,02H,04H,08H,10H,20H,40H,80H

DB 81H,82H,84H,88H,90H,0A0H,0C0H

DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H

DB 0E1H,0E2H,0E4H,0E8H,0F0H

DB 0F1H,0F2H,0F4H,0F8H

DB 0F9H,0FAH,0FCH

DB 0FDH,0FEH

DB 0FFH

Chương trình giống như trên nhưng viết theo cách II:

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

;chuong trinh dieu khien port 0 sang don va tat het - cach II

;ket noi port 0 den 8 led bang cap 8 soi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

org 0000h

port0_05: mov r2,#00h ;luu trng thai ban dau

mov r4,#08 ;goi bien dem so lan dich chuyen cua led

Trang 6

port0_05a: mov r5, 04h ;tuong duong 'mov r5,r4'

mov r3,#00h ;nap 00 vao r3 mov a,r3 ;chuyen r3 sang a orl a,r2 ;or voi noi dung chinh luu trong r2

mov p0,a ;goi ra port 0 de hien thi lcall delay ;goi chuong trinh con delay

port0_05b: mov a,r3

rlc a ;xoay noi dung thanh ghi A sang trai mov r3,a ;cat lai vao r3 de luu cho lan xu li ke orl a,r2 ;lay ket qua do or voi r2 roi goi

ra p0

mov p0,a

lcall delay clr c ;xoa Cy de chi dich 1 led di djnz r5,port0_05b ;giam r5 neu chua bang 0 thi quay ve lai

mov r2,a ;cat noi dung sau cung khi da dich chuyen 1 led

djnz r4,port0_05a ;giam bien dem de xu li lan ke sjmp port0_05 ;nhay ve lam lai tu dau

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

;chuong trinh con delay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx

Trang 7

delay: mov r6,#0ffh

de2 : mov r7,#0ffh

de1 : djnz r7,de1

djnz r6,de2 ret

end

Chương trình khá phức tạp, khó hiểu bạn hãy tự nghiên cứu thử xem sao?

Ngày đăng: 01/07/2014, 11:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w