You are on page 1of 15

BÁO CÁO BÀI TẬP LỚN MÔN HỌC VI XỬ LÝ

(nhóm 6_điện tử 11_k49_đh bách khoa hà nội)  Tên đề tài : đồng hồ điện tử  Các thành viên trong nhóm : • NGUYỄN HOÀNG AN(nhóm trưởng) • LÊ THANH BÌNH • NGUYỄN VIẾT ĐÔNG (nhóm phó) • PHẠM MINH ĐỨC • BÙI LƯU QUỲNH • NGHIÊM XUÂN QUYỀN  Tóm tắt đề tài : Thiết kế chiếc đồng hồ điện tử hiển thị thời gian thông qua vi điều khiển 89S052 sử dụng ngôn ngữ lập trình Assembly (cái này vẫn phải viết tiếp).  Chức năng của sản phẩm :  Hoạt động như một chiếc đồng hồ điện tử bình thường hiển thị bằng LED 7 thanh :  Hiển thị giờ, phút, giây.  Hiển thị ngày, tháng, năm.  Hẹn giờ.  Chỉnh giờ.  Có 4 phím chức năng :  Phím thứ nhất : Có chức năng RESET vào chân 9 của IC  Phím thứ hai : Chọn chế độ hiển thị ( giờ, phút, giây_ngày, tháng, năm_chỉnh giờ_hẹn giờ). Vào chân INTO Ban đầu khi cấp nguồn các LED sẽ hiển thị giờ, phút, giây. Nhấn lần 1 sẽ chuyển sang chế độ hiển thị ngay, tháng, năm. Nhấn lần 2 sẽ chuyển sang chế độ hiệu chỉnh giờ. Nhấn lần thứ 3 sẽ chuyển sang chế độ hẹn giờ.  Phím thứ ba :Vào chân INT1. Có chức năng tăng giá trị hiển thị lên một đơn vị khi nhấn vào.  Phím thứ tư :vào chân P1.0 o Tắt chuông hẹn giờ. o Chuyển chế độ chỉnh : ngày -> tháng -> năm, giờ-> phút. 1 LED đơn 7 thanh và 2 LED 4( 7 thanh) : LED đơn hiện chữ cho các chế độ: 8 LED do hai thanh 4 LED ghép lại : o Dùng để hiển thị : giờ, phút, giây_ngày, tháng, năm_giờ hẹn_giờ chỉnh. o Giữa mỗi giá trị có dấu ghàch ngang để phân cách.  Sơ đồ khối :

5 / T 11 6 P 3 .2 . 2 / I N T103 P 3 .0 .7 /A /A /A /A /A /A /A /A 21 D P0 2 .7 . M ay 06. 2 / A 12 04 D P 3 2 . 0 / A 28 2 D P1 2 .7 /A 1 5 10 P 3 . 3 / I N T114 P 3 . 4 / A 12 26 D P 5 2 . 4 / T 01 5 P 3 .6 .5 . 6 / W R1 7 P 3 . 1 / T X 1D 2 P 3 . 1 / A 29 3 D P 2 2 .2 . 6 / A 12 48 DP 7 2 .6 .4 . 0 / R X 1 D1 P 3 . g f e d c b a 5 10 9 1 2 4 6 7 1 1 9 D IR O E R 7 V C C 3 8 vcc 10 N C 74H C 245 GND LS 1 S P E A K E R < T itle > S unday.0 .3 .5 .7 /R D 2 3 4 5 6 7 8 9 V C C U 2 20 1 1 1 1 1 1 1 1 A A A A A A A A 0 1 2 3 4 5 6 7 B B B B B B B B 0 1 2 3 4 5 6 7 8 7 6 5 4 3 2 1 VCC S W 1 U 3 .1 .1 .3 .2 1 1 1 3 7 9 3 V C C D 2 LE D R 3 R E S 4 10 2 8 1 7 22 16 5 11 3 9 2 2 2 6 1 1 1 led7thanh 1 U 4 4m a c h 1 0 8 5 4 2 V C C V C C U 1 3 3 3 3 3 3 3 3 1 2 3 4 5 6 7 8 V C C 9 8 7 6 5 4 3 2 40 P P P P P P P P P P P P P P P P 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 .4 .2007 S heet 1 R E S C 2 LE D 7S E G M E N T C A3 P Y 1 19 30 1 8 X T A L 1 A L E / P R O2 9 G X TA L2 P S E N 31 9 E A /V P P R S T S W 3 S W 4 D 1 V C C R 2 C 1 S W 2 A T89C 51 20 R 1 R RE E S S GND LE D + T itle S iz e D o c u m e n t N u m b e r A <D oc> D a te : of 1 VCC . 5 / A 12 37 D P 6 2 . 3 / A 12 15 D P 4 2 .

#00H.#10H mov 64H.ngay mov 62H.#11111101B.#00000001B.#00H.0 mov 31H.#00H.phut.#01001001B.#00H.4 mov 35H.#10011111B.#2.#00001101B.#00011111B.8 mov 39H.thang mov 65H.chuc phut mov 45H.#10011001B.#10H.5 mov 36H.#00000011B.#00H mov 53H.dv giay . Chương trình Assembly : #include <sfr51.3 mov 34H.inc> org 0000H ljmp main org 0003H ljmp ngat0 org 0013H ljmp ngat1 org 0100H main: mov 30H.1 mov 32H.giay mov 41H.dau .cac o nho ghi lai gio hen mov 51H.o giua gio va phut mov 44H.6 mov 37H.phut mov 55H.dau .don vi gio mov 43H.#01H mov 56H.#00H.#00001001B.#00H.chuc giay mov 48H.o giua phut va giay mov 47H.#0 mov 63H.dv phut mov 46H.7 mov 38H.#10H.#00H mov 58H.#01000001B.#00H.#10H mov 57H..#00H.#0.chuc gio mov 42H.#2 .9 mov 40H.gio mov 52H.cac o nho ghi lai gio.2 mov 33H.#10H mov 54H.#00100101B.#00H mov 61H.

#20.eeee.#high(-48820).20 x 50ms = 1s mov IE.bien dieu khien chuong mov r4.2.#0.ooo.r4=0 thi hien gio .#10H.#1 mov 71H.#1.bien chon che do mov r5.bien chon chinh gio hay phut mov r3.#80H.nap gia tri ban dau cho timer0 mov tl0.#2 mov 6CH.cho phep ngat ngoai 0 = suon am setb tcon.#2H.timer0 co tac dung dem giay setb tr0.#20 mov 6BH.#10H mov 67H.#88 mov 6EH.led 8 sang mov 79H.mov 66H.led 2 sang mov 73H.#1.#8H.led 5 sang mov 76H.#0.#1H.che do 1 mov th0.led 7 sang mov 78H.#4H.cho phep ngat ngoai 1 = suon am mov tmod.#85H.#8.#0.led 1 sang mov 72H.r4=1 thi hien ngay lcall chiangay lcall hienngay lcall chuyengiophutngay sjmp kkk .ngung timer1 (cho co tran bang 1) LOOP: lcall sosanhgiohen lcall dochuong lcall tatchuong cjne r4.0.#40H.led 4 sang mov 75H.bien dieu khien chuong khi nao tang 1 gio thi chuing keu 1 tieng mov r2.khoi dong timer0 setb tf1.bien lap de dem giay --.#20H.#11H.#1.nam mov 68H.led 3 sang mov 74H.cho phe ngat ngoai 0 va 1 setb tcon. khac 0 nhay den eeee de so sanh tiep lcall hiengio sjmp kkk eeee:cjne r4.#1 mov r6.led 6 sang mov 77H.#8 mov 6AH.#low(-48820).timer0 va timer1 --.

thoat_tang.#21 mov a.roi tang 45H(dv_giay) .khi 47H khac 6 thi quay lai hien thi mov 47H.LOOP.roi tang 47H(chuc giay) len 1 mov a.phut lcall hienchinhgio lcall chuyengiophutngay sjmp kkk ppp: cjne r4.ppp .nap lai gia tri ban dau cho timer0 mov tl0.so sanh 42H voi 4 --.ngung timer0 clr tf0.44H(chuc phut) mov a.khi do ta tang len 1 giay mov a..#0 inc 42H.neu dv_gio bang 10 thi cho no = 0 roi tang 41H(chuc gio) SSCG: mov a.thoat_tang mov 42H.khi 48H(dv_giay) khac 10 thi quay lai loop de hien thi mov 48H.SSV10.xoa c0 tran timer0 de chuan bi dem tiep mov th0.#3.loop.#high(-50000)..42H cjne a.neu bang thiso sonh chuc gio(41H co bang 2 khong ?) SSV10: cjne a.r6 chua bang 0 thi quay lai loop hien thi tiep mov r6.42H .#0 inc 44H.#10.#10.44H cjne a. mov a.neu co tran timer0 = 0 thitip tuc hien thi clr tr0.LOOP mov 45H.#0.#2.#6.LOOP mov 44H.48H cjne a.kkk.#2.#low(-50000) setb tr0.neu khac thi tiep tuc so sanh voi 10 sjmp SSCG.r4=2 thi hien chinh gio.khoi dong lai timer0 djnz r6.45H cjne a..41H cjne a.#6.#0..47H cjne a.neu r6 = 0 thi nap lai r6=20 inc 48H.42H(dv_gio) mov 79H.neu 41H khac 2 thi quay lai hien thi mov a.neu 48H = 10 thi cho no=0 inc 47H.loop.#10.#4.ooo: cjne r4.neu 47H = 6 thi cho no bang 0 inc 45H.LOOP.#0 inc 41H.#20.r4=3 thi hien chinh gio hen lcall hienhengio lcall chuyengiophutngay kkk:jnb tf0..

neu thay tf0=1 thi thoat(de khoi dong lai bo dem) cjne r3.#1.neu thay tf0=1 thi thoat(de khoi dong lai bo dem) cjne r5.nst mov p1.#71H.#1.nhay2.thoat_tang.#00110001B nst: mov b.#41H mov r1..CTC con cho phep hien gio.cho p1 gia tri de hien chu C sst:cjne r5.nhay1.neu 41H =2 thi so sanh 42H(dv_gio) voi 4 mov 41H.#00010011B..nap gia tri 41H (dia chi cua o nho chuc gio) vao thanh ghi B lcall hiencacled nhay0: ret hienngay:.#2.het 24H thi tang ngay len thoat_tang: ljmp LOOP hiengio:.cjne a.chuc_phut.r0=#41H mov a.#41H.goi ham hien led inc b.@r0.neu thay tf0=1 thi thoat(de khoi dong lai bo dem) mov p1.#3.dia chi cua o nho cho phep sang led 1(ngoai cung ben trai) lap1: mov r0.CTC hien thi ngay jb tf0.CTC hien chinh gio co nhap nhay jb tf0.#2.nam mov p1.tang r1 denap cho no dia chi cua o nho cho phep sang led ke tiep mov a.#0 mov 42H.cho p1 gia tri de hien chu g mov b.b.cho p1 gia tri de hien chu n thang: cjne r3.61H-dia chi cua chuc ngay lcall hiencacled nhay1: ret hienchinhgio:.#00001001B.chuyen noi dung o nho 41H vao thanh ghi A lcall hienled.sst mov p1.#4.) inc r1.thang mov p1.phut giay jb tf0.#11010101B ntn: mov b..#0.tang B de hien gia tri cua o nho tiep theo(dv_giay.#00011111B nam: cjne r3.neu dv_gio bang 4 thi ta cho gio =00 roi quay lai loop lcall tangngay.#01100011B.nhay0.#61H.b .ntn mov p1.

#1.neu thay tf0=1 thi thoat(de khoi dong lai bo dem) djnz r7.khi nao B=60H thi thoat .#60H.CTC cho hien lan luot 8 led jb tf0.CTC cho phep hien thi gio hen jb tf0.#200 gg:jb tf0. neu chua = thi tiep tuc hien thi nhay2: ret hienhengio:.neu thay tf0=1 thi thoat(de khoi dong lai bo dem) mov r1.chu H sjmp mmmm minute: mov p1.lap.#10010001B.nhay3.A chua gia tri cua so can hien.b.@r1.copy dia chi cua o nho chua gio(phut.#71H.gg nhay6: ret .@r0.=>A chua gia tri cua so can hien thi lcall hienled inc b.=>dua gia tri luu trog o nho co dia chi r0 vao p0 de hien led mov p2.neu thay tf0=1 thi thoat(de khoi dong lai bo dem) cjne r5.r1 cjne a.CTC cho phep hien led jb tf0. inc r1..dia chi cua o nho chuc gio lcall hiencacled nhay3: ret hiencacled:.neu r1 = 79 thi thoat.nhay6.#51H.cho phep hien 1 led da dinh san trong cac o nho tu 71H den 78H lcall delay nhay5: ret delay: mov r7.tang r1 denap cho no dia chi cua o nho cho phep sang led ke tiep mov a.giay) vao r0 mov a.=>r0 chua dia chi cua so can hien tren led mov p0.a.tang B de hien gia tri cua o nho tiep theo(dv_giay.cjne a.nhay5.#00110001B mmmm:mov b.@r0.chuc_phut..#30H..neu thay tf0=1 thi thoat(de khoi dong lai bo dem) add a.minute mov p1.#79H.lap1.dia chi cua o nho cho phep sang led dau tien lap: mov r0.nhay4.sau khi cong 30H thi se la dia chi cua o nho luu so do mov r0.neu khac thi tiep tuc hien led nhay4: ret hienled:.

CTC chinh gio hen => tuong tu nhu chinh gio (chi khac la gia tri cua cac o nho) inc 52H mov a.ttt1 inc 51H mov 52H.t2 inc 44H mov 45H.#0 mov a.#0.ttt mov 41H.CTC tang phut => xem LOOP de biet ve cac lenh trong CTC nay inc 45H mov a.( xem lai doan chuong trinh chinh LOOP) sjmp ccc ddd: cjne a.#10.#2.#6.41H cjne a.ddd.ttt1 ..ttt mov a.42H cjne a.#4.#0 ret chinhphut:.44H cjne a.42H cjne a.#10.#0 ttt: mov 47H.#2.#0 mov 42H.#0 ccc:mov a.neu 42H=4 thi.chinhgio:.#4.52H cjne a.#4.cho giay = 0 ret chinhgiohen:.#10.cho giay = 0 mov 48H.#0 t2: mov 47H.ddd1 sjmp ccc1 ddd1: cjne a.#0 mov 48H.CTC tang gio inc 42H.51H cjne a.#0 ccc1:mov a.#0.45H cjne a.ttt inc 41H mov 42H..t2 mov 44H.tang dv_gio mov a.

52H cjne a.55H jnz thoat3 mov a.41H subb a.79H cjne a.thoat5 mov a.#0 ttt1: ret chinhphuthen:.#10.57H jnz thoat3 mov a.51H jnz thoat3 mov a.neu dung gio phut giay=00 thi tang r2(bien dieu khien chuon) thoat3: ret dochuong:.CTC chinh phut hen inc 55H mov a.42H subb a.CTC xem khi nao thi den gio hen mov a.t21 inc 54H mov 55H.t2 mov 54H.52H jnz thoat3 mov a.#0 t21: ret sosanhgiohen:.#0.#0 mov 52H.55H cjne a.45H subb a.48H subb a.44H subb a.58H jnz thoat3 inc r2 .mov a.CTC do chuong dai khi r2 khac 1 va do chuong ngan khi 79H khac 1 jb tf0.#0 mov a.#6.#4.54H cjne a.eeff .54H jnz thoat3 mov a.47H subb a.ttt1 mov 51H.

0 lcall khoidongtimer1 thoat5: ret khoidongtimer1:.#1.#3.#3.CTC : khi nao p1.kc0 inc r3 cjne r3.#1 kc1:cjne r4.khongtat clr tr1 mov r2.:ngoai ra cho phep chuyen tu chinh ngay => thang => nam => ngay mov a.sjmp ass eeff: lcall khoidongtimer1 cpl p3.#low(-1250) setb tr1 ret tatchuong:.0 dec 79H ass: cjne r2.#1 setb tf1 khongtat: ret chuyengiophutngay:.thoat4 sjmp thoat5 thoat4: jnb tf1.#1.kc2 .6EH cjne a.#2.#0 cjne r4.#high(-1250) mov tl1.#1 kc0:cjne r4.kc1 inc r5 cjne r5.CTC : khi nao p1.0 = 0 thi ngat chuong jb p1.kc3 mov 6EH.0.0 = 0 thi cho phep chuyen tu chinh phut sang chinh gio va nguoc lai jb p1.#1.0.kc0 mov r3.CTC cho phep xac dinh tan so chuong reo(=500Hz) clr tr1 clr tf1 mov th1.thoat5 cpl p3.#4.kc3 .kc1 mov r5.

6.5.kt11 sjmp kt30 kt11:cjne a.#1 sjmp tkt kt2: mov a.neu khac thi kiem tra thang co bang 6 0? sjmp kt30.cho a=b cjne a.10.#4.tang ngay mov a.kt31.#3.6BH.#9.12 c0 = 31 0? cjne a.#6.6.6AH.tkt inc 6BH mov 6AH.kiem tra thang co bang 2 0?.CTC tang ngay inc 6AH.konhuan.chia a cho b.b=4 div ab.6CH.6AH cjne a.gan A = nam mov b.#1 sjmp tkt kt30:mov a.#1 sjmp kc3 kc2: mov 6EH.#30.#0.8.kt4.kiem tra thang 4.neu khac thi nhay toi kt4 dekiem tra than co bang 4 0? sjmp kt2.luc nay sau khi thay thang khac 2.11 co 30ngay kt6:cjne a.6AH cjne a.11 thi nhay toi kt31 sjmp kt30 kt31:mov a.#32.#11.tkt inc 6BH mov 6AH.kt9 sjmp kt30 kt9:cjne a.kc3 mov r5.#1 kc3: ret tangngay:.kt6.tkt inc 6BH mov 6AH.b.gan cho A thang cjne a.#2.phan du luu vao b mov a.#31.3.4.9.7.doan chuong trinh kt31 cho phep kiem tra nay cua cac thang 1.nhay den kt30 de kiem tra ngay ( thang 4.9.nhay toi konhuan neu a khac 0 mov a.inc r5 cjne r5.nhay den kiem tra thang hai co nhuan khong? kt4:cjne a.6AH .#4.#1 sjmp tkt konhuan: mov a.

6.ktkt mov 6AH.neu nhuan thi tang den 29 roi ve1.kkt6 sjmp kt30 kkt6:cjne a.cac thang con lai thi dem den 31 inc 6AH mov a.#9.knhuan mov a.tkt inc 6BH mov 6AH.kkt4 sjmp kkt2 kkt4:cjne a.6AH cjne a.cho phep chinh lai ngay cua 1 thang bat ki (tu 1=>12) .kkt31 sjmp kkt30 kkt31:mov a.#6.#0 thkt: ret chinhngay:.#1 sjmp ktkt kkt2: mov a.#2.kkt11 sjmp kt30 kkt11:cjne a.b cjne a.cac thang 4.#11.ktkt .#1 inc 6CH mov a.neu 0 thi den28 .#13.6AH cjne a.6BH cjne a.#1 tkt: mov a.thang 2 thi kiem tra co nhuan 0?.thkt mov 6CH.#30.11 thi den 30 thi nhay ve 1 .cjne a.6BH cjne a.9.#31.#29.6CH mov b.#4.#32.#100.#1 sjmp ktkt kkt30:mov a.ktkt mov 6AH.#4 div ab mov a.thkt mov 6BH.6CH cjne a.#0.6AH cjne a.kkt9 sjmp kt30 kkt9:cjne a.

b ret ngat0:.2 thi kich hoat CTC nay .#100.6AH cjne a.jj1 mov 6CH.CTC cho phep lua chon che do hien thi inc r4 mov r5.#1 jjj: ret chinhnam: inc 6CH mov a.#1 .#1 sjmp ktkt knhuan: mov a.#10 div ab mov 67H.mov 6AH.6BH mov b.a mov 68H.CTC ngat ngoai 0 : khi nao co suon am o p3.6CH cjne a.jjj mov 6BH.#13.ktkt mov 6AH.a mov 62H.#0 jj1: ret chiangay:.a mov 65H.b mov a.6AH mov b.6BH cjne a.CTC chia ngay mov a.b mov a.#1 ktkt: ret chinhthang: inc 6BH mov a.#29.#10 div ab mov 64H.#10 div ab mov 61H.6CH mov b.

#2.#0 quit: reti ngat1:.mov 6DH.#2.#2.#2.#4.aa1 lcall chinhngay aa1:cjne r3.yyy cjne r5.quit mov r4.yyy lcall chinhphuthen yyy: reti end  Phân công công việc :       NGUYỄN HOÀNG AN : Chỉnh giờ Chỉnh phút Chỉnh giờ hẹn Chỉnh phút hẹn LÊ THANH BÌNH: Tăng ngày NGUYỄN VIẾT ĐÔNG   Chỉnh ngày Chỉnh tháng .#1.bbb lcall chinhgiohen bbb: cjne r5.#1.2 cjne r4.#3.aa2 lcall chinhthang aa2:cjne r3.#1.fff lcall chinhphut fff: cjne r4.#3.yyy lcall chinhnam ff1:cjne r4.aaa lcall chinhgio aaa: cjne r5.ff1 cjne r3.CTC cho phep tang gia tri cua cac o nho (gio phut ngay thang nam) khi co suon am vao p3.fff cjne r5.#1.#1 cjne r4.

       PHẠM MINH ĐỨC: Xử lý ngắt  NGHIÊM XUÂN QUYỀN:  Hiện giờ  Hiện ngày  Hiệu chỉnh giờ  Hiện hẹn giờ  Delay BÙI LƯU QUỲNH: So sánh giờ hẹn Đổ chuông Khởi động timer 1 Tắt chuông Chỉnh năm Chia ngày .