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 8 docx

6 772 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 6
Dung lượng 128,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục đích yêu cầu: biết cách viết chương trình đếm giờ phút giây, cách kiểm tra chương trình đếm.. Trình tự thực hiện: 1.. Kết nối mạch theo trình tự : - Dùng bus dây kết nối port 0 đến

Trang 1

Chương 8: CHƯƠNG TRÌNH ĐẾM GIỜ -PHÚT - GIÂY HIỂN THỊ Ở 6 LED

I Mục đích yêu cầu: biết cách viết chương trình đếm giờ phút

giây, cách kiểm tra chương trình đếm

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

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

- 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

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

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

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

;chuong trinh dem dong ho so gio phut giay

;su dung ngat timer t0 de dem chinh xac ve thoi gian

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

giay equ r2 ;gan bien dem giay la R2

phut equ r3 ;gan bien dem phut cho R3

gio equ r4 ;gan bien dem gio cho r4

bdn equ r1 ;gan bien dem ngat

org 200h ;dia chi khai bao ma 7 doan tu so '0' den so '9'

ma7doan: db

0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h

Trang 2

org 0000h ;bat dau chuong trinh ljmp main ;nhay den chtr chinh

org 000bh ljmp int_t0 ;nhay den chtr con ngat timer0

main: mov tmod,#01h ;timer0: mod 1 - dem 16 bit

mov dptr,#0200h ;dptr quan ly vung ma 7 doan

clr tf0 ;xoa co tran timer0 mov ie,#10000010b ;cho ngat timer0 mov th0,#3ch ;khoi tao timer delay 50ms mov tl0,#0b0h

setb tr0 ;cho timer0 bat dau dem

main4: mov gio,#00 ;gio=00

main3: mov phut,#00h ;phut=00

main0: mov giay,#00h ;giay=00

main1: mov bdn,#00 ;nap bien den so lan ngat

lcall gma main2: lcall hthi ;goi chtr con hien thi

cjne bdn,#2,main2 ;chua dung 20 lan [tuc 1 giay] mov a,giay ;chuyen giay sang A

add a,#1 ;tang giay len 1

da a ;hieu chinh so BCD trong A mov giay,a ;tra lai cho giay

cjne giay,#60h,main1 ;ss giay voi 60

mov a,phut ;chuyen phut sang A add a,#1 ;tang phut len 1

da a ;hieu chinh so BCD trong A

Trang 3

mov phut,a ;tra lai cho phut cjne phut,#60h,main0 ;ss phut voi 60

mov a,gio ;chuyen gio sang A add a,#1 ;tang gio len 1

da a ;hieu chinh so BCD trong A mov gio,a ;tra lai cho gio

cjne gio,#24h,main3 ;ss gio voi 24

sjmp main4 ;lam lai tu dau

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

; chuong trinh con giai ma

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

gma: mov a,giay

anl a,#0fh ;xoa 4 bit cao hang chuc giay movc a,@a+dptr;lay ma 7 doan

mov 27h,a ;cat ma vao o nho 27h

mov a,giay anl a,#0f0h ;xoa 4 bit thap hang dvi swap a ;chuyen 4 bit cao xuong vi tri thap

movc a,@a+dptr;lay ma 7 doan hang chuc mov 26h,a ;cat vao o nho 26h

mov a,phut anl a,#0fh ;xoa 4 bit cao hang chuc phut movc a,@a+dptr;lay ma 7 doan

mov 25h,a ;cat ma vao o nho 25h

Trang 4

mov a,phut anl a,#0f0h ;xoa 4 bit thap hang dvi phut swap a ;chuyen 4 bit cao xuong vi tri thap

movc a,@a+dptr;lay ma 7 doan hang chuc mov 24h,a ;cat vao o nho 24h

mov a,gio anl a,#0fh ;xoa 4 bit cao hang chuc gio movc a,@a+dptr;lay ma 7 doan

mov 23h,a ;cat ma vao o nho 23h

mov a,gio anl a,#0f0h ;xoa 4 bit thap hang dvi gio swap a ;chuyen 4 bit cao xuong vi tri thap

movc a,@a+dptr;lay ma 7 doan hang chuc mov 22h,a ;cat vao o nho 22h

ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

;chuong trinh delay co goi chuong trinh hien thi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

;chuong trinh con ngat timer0 sau khoang thoi gian 50ms

int_t0: inc bdn ;tang bien dem giay

mov th0,#3ch ;khoi tao lai timer mov tl0,#0b5h

clr tf0 reti

Trang 5

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

;chuong trinh con hien thi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

hthi: mov a,#01111111b ;ma quet

mov r0,#27h

ht1: mov p0,@r0

mov p2,a lcall delay1 mov p2,#0ffh dec r0

rr a ;chuyen sang led ke cjne r0,#21h,ht1

ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx

;chuong trinh con delay1

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx

delay1: mov r7,#0fh

del11: djnz r7,del11

ret end

1 Thực hiện các bước giống như bài chuẩn và xem kết quả mạch có đếm đúng phút và giây hay không, nếu không đúng thì hiệu chỉnh lại

Chú ý: thời gian trong chương trình này giảm nhỏ để giúp kiểm tra

nhanh hàng phút, sau khi đếm đúng thì hãy hiệu chỉnh lại lệnh so sánh bdn với số 20 thì mạch sẽ đếm đúng thời gian

Trang 6

III Bài tập ứng dụng:

1 Hãy điều chỉnh chương trình đếm giờ phút giây để đếm BCD từ 000000 đến 999999 hiển thị ở các led 3,4,5,6,7,8

2 Hãy cho biết sai số và cách làm giảm sai số

3 Chương trình trên luôn bắt đầu chạy tại 00 giờ 00 phút

00 giây Hãy viết chương trình quét phím để điều chỉnh giờ phút giây theo ý muốn

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

🧩 Sản phẩm bạn có thể quan tâm

w