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

6 976 3
viết chương trình điều khiển 8 led sáng dồn, chương 7 pptx

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

Thông tin tài liệu

Chương 7: CHƯƠNG TRÌNH ĐẾM PHÚT - GIÂY HIỂN THỊ Ở 4 LED I. Mục đích u cầu: biết cách viết chương trình đếm phút giây, cách kiểm tra chương trình đếm. II. Trình tự thực hiện: 1. Giải thuật: Begin Khởi tạo vùng nhớ lưu trữ biến đếm hàng chục, đơn vò của phút, giây = 00 Khởi tạo vùng nhớ lưu trữ mã 7 đoạn từ 0 đến 9 Giải mã hàng chục, đon vò của phút giây (từ mã nhò phân sang7 đoạn) End Delay và hie ån thò đúng 1s Tăng biến đếm hàng chục,đơn vò giây-so sánh với 60 Đ S Tăng biến đếm hàng chục,đơn vò phút-so sánh với 60 S Đ 2. 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 chương trình ở hệ thống 2 . 3. Khởi động phần mềm, mở File mới và đặt tên file. 4. Vi ết chương trình với tên file vừa đặt : ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dem 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 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 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 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 mov phut,a ;tra lai cho phut cjne phut,#60h,main0 ;ss giay voi 60 sjmp main3 ;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 20h 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 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 20h 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 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 ;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,#23h,ht1 ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx ;chuong trinh con delay1 delay1: mov r7,#0fh del11: djnz r7,del11 ret end 5. 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. III. Câu hỏi và bài tập ứng dụng: 1. Hãy điều chỉnh chương trình đếm phút giây để đếm BCD từ 0000 đến 9999 hiển thị ở các led 5,6,7,8. 2. Hãy viết chương trình đếm số hex từ 0000H đến FFFFH. . Chương 7: CHƯƠNG TRÌNH ĐẾM PHÚT - GIÂY HIỂN THỊ Ở 4 LED I. Mục đích u cầu: biết cách viết chương trình đếm phút giây, cách kiểm tra chương trình đếm. II. Trình tự thực hiện: 1 gian. III. Câu hỏi và bài tập ứng dụng: 1. Hãy điều chỉnh chương trình đếm phút giây để đếm BCD từ 0000 đến 9999 hiển thị ở các led 5,6 ,7 ,8. 2. Hãy viết chương trình đếm số hex từ 0000H đến FFFFH. . 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

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