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

6 1.5K 4
viết chương trình điều khiển 8 led sáng dồn, chương 4 docx

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

Thông tin tài liệu

Chng 4: IU KHIN LED 7 ON CC CHNG TRèNH IU KHIN LED 7 ON SNG I. Mc ớch yờu cu: bit c cỏch tỡm mó iu khin led 7 on , bit nguyờn lý iu khin led theo phng phỏp quột v cỏch vit chng tr ỡnh iu khin led 7 on. Sinh viờn phi hiu rng 1 yờu c u iu khin cú th thc hin bng nhiu chng trỡnh khỏc nhau. II. Trỡnh t thc hin: 1. Gii thut: 2. Kt ni mch theo trỡnh t : Beg in Gụỷi maừ hieồn thũ ra led 1 Gụỷi maừ queựt choùn led End Gụỷi maừ hieồn thũ ra led 2 Gụỷi maừ queựt choùn led Gụỷi maừ hieồn thũ ra led 8 Gụỷi maừ queựt choùn led - Dùng bus dây kết nối port 0 đến pinhd điều khiển các đoạn a,b,c,d, e,f,g,dp và kết nối port 2 đến pinhd điều khiển quét hàng . - 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: bai2_1 4. Vi ết chương trình với tên file vừa đặt : Ví dụ 1: ; chuong trinh thu led D1 sang so 9 org 0000h mov p2,#11111110b ; cho phep D1 sang mov p0,#10010000b ; ma cua so 9 sjmp $ end Chương trình trên chỉ có tác dụng thử cho một led sáng. Để có thể sáng 8 led từ số 0 đến số 7 ta hãy viết chương trình sau: Ví dụ 2: ; chuong trinh thu 8 led sang tu so 0 den so 7 org 0000h b11: mov p2,#11111110b ; cho phep D1 sang mov p0,#11000000b ; ma cua so 0 lcall delay mov p2,#11111101b ; cho phep D2 sang mov p0,#11111001b ; ma cua so 1 lcall delay mov p2,#11111011b ; cho phep D3 sang mov p0,#10100100b ; ma cua so 2 lcall delay mov p2,#11110111b ; cho phep D4 sang mov p0,#10110000b ; ma cua so 3 lcall delay mov p2,#11101111b ; cho phep D5 sang mov p0,#10011001b ; ma cua so 4 lcall delay mov p2,#11011111b ; cho phep D6 sang mov p0,#10010010b ; ma cua so 5 lcall delay mov p2,#10111111b ; cho phep D7 sang mov p0,#10000010b ; ma cua so 6 lcall delay mov p2,#01111111b ; cho phep D8 sang mov p0,#11111000b ; ma cua so 7 lcall delay sjmp b11 delay: mov r5,#1 del3: mov r7,#01h del2 : mov r6,#0ffh del1 : djnz r6,del1 djnz r7,del2 djnz r5,del3 ret 5. Th ực hiện các bước giống như bài chuẩn. Chú ý: Nếu khi chạy mà kết quả hiển thị không đúng thì hãy xem l ại chương trình, nếu chương trình hoàn toàn đúng thì hãy xem kết nối 2 port điều khiển với led có đúng [ trên bo mạch có ghi tên và th ứ tự các pinhhd. III. Bài tập ứng dụng: 1. Ở ví dụ 1, muốn sáng số 2 ở led D3 thì phải thay đổi gì trong chương trình? 2. Trong trường hợp nào thì nhiều led sáng cùng một lúc và cùng m ột dữ liệu? 3. Ở ví dụ 2, hãy cho biết led sáng như thế nào: a. T ừng led sáng các led còn lại tắt. b. Tất cả các led sáng . 4. Hãy thử trên máy, khi thay đổi thời gian delay: a. Muốn thời gian delay lớn nhất thì thông số đó là bao nhiêu? b. Mu ốn thời gian delay nhỏ nhất thì thông số đó là bao nhiêu? c. Trong t ừng trường hợp hãy cho biết cường độ sáng của led có thay đổi hay không và cho biết trong trường hợp n ào thì led sáng rõ? d. Hãy tìm thông s ố cho chương trình delay là bao nhiêu để 8 led sáng đều và rõ nhất. IV. Bài tập mẫu: Ở ví dụ 2, để sáng cùng 1 lúc 8 led ta sử dụng phương pháp quét led tức là tại một thời điểm chỉ có 1 led sáng và khi giảm thời gian delay vừa với thời gian lưu ảnh của mắt. Lúc này, chúng ta sẽ thấy 8 led sáng cùng một lúc. Bài tập mẫu sau giống ví dụ 2 nhưng được viết theo kiểu khác: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx ;chuong trinh thu 8 led sang tu so 0 den so 7 nhung duoc viet theo kieu khac ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxx org 0000h ;bat dau chuong trinh mov dph,#0500h b213: mov r4,#08h ;bien dem 8 lan goi mov r2,#00h ;quan ly addr byte thap mov r3,#20h b212: mov a,r2 ;dptr luu dia chi vung nho ma 7 doan movc a,@a+dptr;lay ma 7 doan mov p0,a mov a,r3 ;dptr luu dia chi vung nho ma quet movc a,@a+dptr;lay ma quet mov p2,a lcall delay mov p2,#0ffh ;tat het de chong lem inc r2 inc r3 djnz r4,b212 sjmp b213 ;quay lai lam lai tu dau delay: mov r5,#1 del3 :mov r7,#01h del2 :mov r6,#0ffh del1 :djnz r6,del1 djnz r7,del2 djnz r5,del3 ret org 500h ma7d: db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h org 520h maquet:db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh end . $ end Chương trình trên chỉ có tác dụng thử cho một led sáng. Để có thể sáng 8 led từ số 0 đến số 7 ta hãy viết chương trình sau: Ví dụ 2: ; chuong trinh thu 8 led sang tu so 0 den so 7 org 0000h b11:. cho biết cường độ sáng của led có thay đổi hay không và cho biết trong trường hợp n ào thì led sáng rõ? d. Hãy tìm thông s ố cho chương trình delay là bao nhiêu để 8 led sáng đều và rõ nhất. IV dụ 1, muốn sáng số 2 ở led D3 thì phải thay đổi gì trong chương trình? 2. Trong trường hợp nào thì nhiều led sáng cùng một lúc và cùng m ột dữ liệu? 3. Ở ví dụ 2, hãy cho biết led sáng như thế

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