Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
492 KB
File đính kèm
Soft+tool+file thuyet trinh.rar
(12 MB)
Nội dung
Xưa nay, hể nói đến vi xử lý hẳn hình dung mạch điện với nhiều LED, động cơ, ma trận phím hay ma trận LED, LCD… người nghĩ đến ứng dụng lạ dùng vi xử lý để PHÁT NHẠC đơn âm cao phát nhạc có lời từ USB hay thẻ nhớ Do thời gian có hạn, nên chúng em dừng lại ứng dụng nhỏ 89C51, ứng dụng độc đáo: DÙNG VI XỬ LÝ 89C51 ĐỂ PHÁT NHIỀU BÀI NHẠC ĐƠN ÂM Chúng ta sử dụng ứng dụng để kết hợp với ứng dụng khác như: • Kết hợp với cảm biến… ta mạch chống trộm với âm báo động tiếng nhạc hay tiếng hú…… • Làm đàn organ với đầy đủ nốt nhạc Do thời gian có hạn nên chúng em dừng lại việc phát nhạc đơn âm Nếu có điều kiện hoàn thiện CÁC KIẾN THỨC CƠ BẢN VỀ ÂM THANH VÀ NỐT NHẠC: ÂM THANH: Khái niệm chung âm Âm vật thể rung động, phát tiếng lan truyền không khí I – NGUỒN GỐC ÂM THANH: Lấy tay bật vào dây đàn, dây đàn rung lên phát tiếng Tiếng đàn ngân dài, dây đàn hết rung âm tắt Nếu ta gõ trống, mặt trống rung lên phát tiếng Lấy tay sờ vào màng loa kêu tay ta cảm thấy màng loa rung động Như ta kết luận: Âm vật thể rung động, phát tiếng lan truyền không khí Sở dĩ tai ta nghe âm nhờ màng nhĩ Màng nhĩ nối liền với hệ thống thần kinh Không khí môi trường truyền dẫn âm Âm truyền lan chất khí, chất lỏng, chất rắn, nhng không truyền lan khoảng chân không Một số chất truyền dẫn âm Các chất dẫn âm thờng loại mềm, xếp bông, dạ, cỏ khô… gọi chất hút âm Các chất dùng lót tường rạp hát, phòng cách âm … để hút âm, giảm tiếng vang Vận tốc truyền lan âm phụ thuộc vào môi trường truyền âm Thí dụ không khí 340m/s, nước 1.480m/s, sắt 5.000m/s Trong hành trình truyền lan, gặp phải vật chướng ngại tường, núi đá, hàng … phần lớn lượng âm bị phản xạ trở lại, phần nhỏ tiếp tục truyền lan phía trước Còn phần nhỏ lượng âm bị cọ sát với vật chướng ngại, biến thành nhiệt tiêu tán II – ĐẶC TÍNH CỦA ÂM THANH: Âm đặc trưng đặc tính sau: – Tần số: Khi ta gẩy nốt mi đàn dây rung 330 lần giây Ta gọi tần số âm mi 330 Héc (Hz) Tần số biểu thị độ cao âm thanh: tiếng trầm có tần số thấp tiếng bổng có tần số cao Tai người nghe thấy tần số thấp tới 16Hz tần số cao tới 20.000Hz Dải tần số 16Hz đến 20.000Hz gọi siêu âm Dòng điện có tần số khoảng 16Hz đến 20.000 Hz gọi dòng điện âm tần Trong dải âm tần, người ta chia ra: • Tiếng trầm từ 16 đến 300Hz, • Tiếng vừa (tiếng trung) từ 300 đến 3000Hz, • Tiếng bổng (hay tiếng thanh) 3000Hz đến 20.000Hz • Tiếng nói người thường có tần số từ 80Hz đến 8000Hz • Các nốt nhạc bát độ thứ ba có tần số: đồ: 262 Hz, rê: 294 Hz, mi: 300 Hz, pha: 349 Hz, son: 392 Hz, la: 440Hz, si: 494 Hz – Công suất âm thanh: Công suất âm lượng âm qua diện tích S thời gian giây Công suất âm P tính công thức: P = psv Trong p áp, v tốc độ dao động phần tử không khí S diện tích Công suất âm tính theo oát (W) Sau công suất âm số nguồn âm: • Máy bay phản lực: 10.000W, búa máy: 1W, ô tô vận tải phóng nhanh: 0,12W, nói chuyện bình thờng: 0,0003W – Cường độ âm thanh: Cường độ âm công suất âm qua đơn vị diện tích 1cm I =pv Ba đại lượng áp suất âm thanh, công suất âm thanh, cường độ âm gắn liền với nhau: P = IS – pvs Cả ba biểu thị độ lớn nhỏ âm Âm có lượng lớn công suất, cường độ áp suất âm lớn III –SỰ THỤ CẢM CỦA TAI NGƯỜI ĐỐI VỚI ÂM THANH: Người bình thường nghe âm dải tần số từ 20Hz đến 15.000 Hz Có người nghe âm có tần số cao hơn, có người lại nghe tần số thấp Người già nghe tiếng ngời trẻ Người ta phân biệt khoảng 130 mức áp khác nhau, mức cách 1dB Tai người nghe nhậy với tần số khoảng 500Hz đến 5000Hz Ở khoảng tần số cần nguồn âm có áp nhỏ, nghe rõ không khoảng tần số cao hay thấp có áp lớn … Hình biểu thị phạm vi nghe tai người Các đường cong đường đẳng âm, biểu thị mức nghe to Có đường đẳng âm O phôn, 20 phôn… 120 phôn Phôn đơn vị đo độ to nhỏ âm thông qua độ nhạy chủ quan tai ngời Khu vực giới hạn đường gạch đứt quãng khu vực âm thường gặp Các đường võng xuống khoảng giữa, hai đầu nâng lên Ta thấy mức áp có khác nhiều, tần số âm khác tai ta lại nghe to Chẳng hạn, tần số 1000 Hz có mức áp 40 dB nghe to tần số 70Hz có áp 70dB tần số 3000Hz có áp 35dB Tai người phân biệt âm sắc khác Âm sắc sắc thái riêng âm thanh, giúp ta phân biệt nguồn âm khác Hai loại nhạc cụ dạo nhạc nhau, nghe khác nhau, âm sắc khác Hai âm phức có âm giống tần số biên độ, hai âm có tần số biên độ khác … nên có âm sắc khác Tai người lại có khả ưu tiên nghe rõ tiếng mà nghe quen Chẳng hạn người Việt Nam nghe tiếng Việt thuyết minh phim, rõ tiếng ngoại quốc Người ta xác định hướng âm truyền tới, nhờ có hai tai Vì ta nghe âm lập thể CÁC BƯỚC CHUẨN BỊ LẬP TRÌNH 89C51 Dạng sóng nốt nhạc: Txung • Mỗi nốt nhạc có tần số riêng, chu kỳ T khác • Dựa vào chu kỳ T, ta viết chương trình tạo dạng xung có T tương ứng • Bảng giá trị tần số nốt nhạc nằm phần Sử dụng phần mềm Excell để tính toán giá trị: • ½ chu kỳ xung (us): 1 Txung = *106 (us) 2* f Do hàm delay chọn 10us (để đãm bảo xác cho nốt nhạc) nên ta có: • T Biến lặp r0: r = xung 10 • Tính số hàm nop chương trình delay: (10us) delay: mov r0,bienlap loop: nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us djnz r0,loop ;2us ret ;2us GIẢN ĐỒ THỜI GIAN CỦA HÀM DELAY TRÊN 2us (số hàm nop+2us)*bienlap mov| 2us ret| tổng thời gian delay Từ giản đồ thời gian trên, ta thấy: tổng thời gian delay = 2us + (số hàm nop + 2us) * bienlap + 2us Vậy số hàm nop phải viết là: số hàm nop: sohamnop = tongthoigiandelay − − 2* bienlap bienlap • Tính biến trường độ: (btd) Ta có: Trường độ _1 _2 _4 _8 _16 _32 Thời gian trễ 2s 1s 0.5s 0.25s 0.125s 0.0625s Thời gian trễ (phân số) 2/1 s 2/2 s 2/4 s 2/8 s 2/16 s 2/32 s Giá trị btd (biến trường độ) 32 16 Ta nhận thấy _32 có thời gian trễ nhỏ nhất, ta lấy làm thời gian chuẩn chung tất nốt nhạc (trường độ nốt = 0.0625s) Giã sử ta muốn trường độ nốt _1 ta cho gọi nốt 32 lần • Tính biến lặng: (bl) Tương tự trường độ, lặng có từ _1, _2……_,32 Ta lấy _32 làm chuẩn nên cần tạo thời gian delay là: 0.0625s Để nâng cao tính xác hàm lang, ta nhận thấy: Mỗi vòng lặp nhãn llang: dư 13us (do thời gian để thực câu lệnh mov (1us), setb (1us) , clr(1us), djnz (2us)……) nên ta chọn thời gian delay 0.0625s-13us = 62487 ; CHUONG TRINH LANG -lang: mov r4,bl llang: mov tmod,#01h mov th0,#high(-62487) mov tl0,#low(-62487) setb tr0 jnb tf0,$ clr tf0 clr tr0 djnz r4,llang ret Từ giá trị bảng Excell, ta bắt đầu viết chương trình: CHƯƠNG TRÌNH PHÁT NHẠC 89C51 org 00h bienlap equ 20h hieuchinhtruongdo equ 21h btd equ 22h ;bien truong bl equ 23h ;bien lang mov btd,#01h mov bl,#01h _32 equ _16 equ _8 equ _4 equ _2 equ 16 _1 equ 32 ;******************************************************** main: ;;;;;;;;;;;;;;;;;;;;;;BO BEN LA;;;;;;;;;;;;;;;;;;;;;;;;;;; mov btd,#_8 ;8a2 call a_2 call c_3 ;8c3 mov btd,#_4 ;4a2 call a_2 mov btd,#_16 ;16a2 call a_2 mov btd,#_8 ;8c3 call c_3 call a_2 ;8a2 mov bl,#_16 ;16call lang mov btd,#_16 ;16a2 call a_2 call b_2 ;16b2 call c_3 ;16c3 mov btd,#_8 ;8b2 call b_2 call b_2 ;8b2 mov btd,#_16 ;16b2 call b_2 mov btd,#_8 ;8g2 call g_2 mov btd,#_2 ;2a2 call a_2 mov btd,#_16 ;16a2 call a_2 mov btd,#_8 ;8c3 call c_3 mov btd,#_4 ;4a2 call a_2 mov btd,#_16 ;16a2 call a_2 mov btd,#_8 ;8c3 call c_3 mov btd,#_16 ;16a2 mov btd,#_4 ;4d2, call d_2 mov btd,#_8 ;8e2, call e_2 call b_1 ;8b1, mov btd,#_4 ;4d2, call d_2 mov btd,#_8 ;8e3, call e_3 mov btd,#_2 ;2e2, call e_2 mov bl,#_8 ;8-, call lang mov btd,#_8 ;8e2, call e_2 mov btd,#_4 ;4d2, call d_2 mov btd,#_8 ;8e3, call e_3 call b_1 ;8b1, mov btd,#_4 ;4g2, call g_2 mov btd,#_8 ;8a2, call a_2 mov btd,#_2 ;2b2, call b_2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov bl,#_1 call lang ;;;;;;;;;;;;;;;;;;BAI TINH DON PHUONG;;;;;;;;;;;;;;;;;; mov btd,#_8 ;8d1 call d_1 mov btd,#_4 ;4d1 call d_1 mov btd,#_8 ;8d1 call d_1 call d_1 ;8d1 call a_1t ;8#a1 call a_1 ;8a1 mov btd,#_2 ;2#a1 call a_1 mov btd,#_8 ;8c2 call c_2 call a_1t ;8#a1 mov btd,#_2 ;2a1 call a_1 mov btd,#_4 call f_1 call f_1 mov btd,#_8 call d_1 mov btd,#_2 call g_1 mov bl,#_16 call lang mov btd,#_8 call d_1 mov btd,#_4 call d_1 mov btd,#_8 call d_1 call d_1 call a_1t call c_2 mov btd,#_2 call a_1 mov btd,#_8 call g_1 call a_1 call a_1t call c_2 call c_2 call c_2 call c_2 mov btd,#_4 call a_1 mov btd,#_8 call a_1 mov btd,#_2 call g_1 mov bl,#_8 call lang mov btd,#_8 call g_1 call a_1 mov btd,#_2 call a_1 mov btd,#_4 call d_2 call d_2 call d_2t call c_2 ;4f1 ;4f1 ;8d1 ;2g1 ;16;8d1 ;4d1 ;8d1 ;8d1 ;8#a1 ;8c2 ;2#a1 ;8g1 ;8a1 ;8#a1 ;8c2 ;8c2 ;8c2 ;8c2 ;4#a1 ;8a1 ;2g1 ;8;8g1 ;8a1 ;2#a1 ;4d2 ;4d2 ;4#d2 ;4c2 call a_1 ;4a1 call a_1t ;4#a1 mov btd,#_8 ;8c2 call c_2 mov btd,#_2 ;2d2 call d_2 mov bl,#_16 ;16call lang mov btd,#_8 ;8g1 call g_1 call a_1 ;8a1 mov btd,#_4 ;4#a1 call a_1t mov btd,#_8 ;8c2 call c_2 call a_1t ;8#a1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sjmp $ ;******************************************************* ;******************CHUONG TRINH CON CAC NOT************* c_1: ;not ;1911us bienlap=191 mov r3,btd lc_1: mov hieuchinhtruongdo,#16 loopc_1: mov bienlap,#191 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_1 djnz r3,lc_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; c_1t: ;not thang ;1804us mov r3,btd lc_1t: mov hieuchinhtruongdo,#17 loopc_1t: mov bienlap,#180 setb p1.4 bienlap=180 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_1t djnz r3,lc_1t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; d_1: ;not re ;1703us bienlap=170 mov r3,btd ld_1: mov hieuchinhtruongdo,#18 loopd_1: mov bienlap,#170 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_1 djnz r3,ld_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; d_1t: ;not re thang ;1607us mov r3,btd ld_1t: mov hieuchinhtruongdo,#19 loopd_1t: mov bienlap,#161 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_1t djnz btd,ld_1t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=161 e_1: ;not mi ;1517us bienlap=152 mov r3,btd le_1: mov hieuchinhtruongdo,#21 loope_1: mov bienlap,#152 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loope_1 djnz r3,le_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_1: ;not pha ;1432us bienlap=143 mov r3,btd lf_1: mov hieuchinhtruongdo,#22 loopf_1: mov bienlap,#143 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_1 djnz r3,lf_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_1t: ;not pha thang ;1351us mov r3,btd lf_1t: mov hieuchinhtruongdo,#23 loopf_1t: mov bienlap,#135 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_1t djnz r3,lf_1t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=135 g_1: ;not sol ;1276us bienlap=128 mov r3,btd lg_1: mov hieuchinhtruongdo,#25 loopg_1: mov bienlap,#128 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_1 djnz r3,lg_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; g_1t: ;not sol thang ;1204us mov r3,btd lg_1t: mov hieuchinhtruongdo,#26 loopg_1t: mov bienlap,#120 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_1t djnz r3,lg_1t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=120 a_1: ;not la ;1136us bienlap=114 mov r3,btd la_1: mov hieuchinhtruongdo,#28 loopa_1: mov bienlap,#114 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopa_1 djnz r3,la_1 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a_1t: ;not la thang ;1073us mov r3,btd la_1t: mov hieuchinhtruongdo,#29 loopa_1t: mov bienlap,#107 setb p1.4 call delay clr p1.4 call delay bienlap=107 djnz hieuchinhtruongdo,loopa_1t djnz r3,la_1t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; b_1: ;not si ;1012us bienlap=101 mov r3,btd lb_1: mov hieuchinhtruongdo,#31 loopb_1: mov bienlap,#101 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopb_1 djnz r3,lb_1 ret ;************************************ ; -c_2: ;not ;956us bienlap=96 mov r3,btd lc_2: mov hieuchinhtruongdo,#33 loopc_2: mov bienlap,#96 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_2 djnz r3,lc_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; c_2t: ;not thang ;902us mov r3,btd lc_2t: mov hieuchinhtruongdo,#35 loopc_2t: mov bienlap,#90 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_2t bienlap=90 djnz r3,lc_2t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; d_2: ;not re ;851us bienlap=85 mov r3,btd ld_2: mov hieuchinhtruongdo,#37 loopd_2: mov bienlap,#85 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_2 djnz r3,ld_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; d_2t: ;not re thang ;804us mov r3,btd ld_2t: mov hieuchinhtruongdo,#39 loopd_2t: mov bienlap,#80 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_2t djnz r3,ld_2t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=80 e_2: ;not mi ;758us bienlap=76 mov r3,btd le_2: mov hieuchinhtruongdo,#41 loope_2: mov bienlap,#76 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loope_2 djnz r3,le_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_2: ;not pha ;716us bienlap=72 mov r3,btd lf_2: mov hieuchinhtruongdo,#44 loopf_2: mov bienlap,#72 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_2 djnz r3,lf_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_2t: ;not pha thang ;676us mov r3,btd lf_2t: mov hieuchinhtruongdo,#46 loopf_2t: mov bienlap,#68 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_2t djnz r3,lf_2t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=68 g_2: ;not sol ;638us bienlap=64 mov r3,btd lg_2: mov hieuchinhtruongdo,#49 loopg_2: mov bienlap,#64 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_2 djnz r3,lg_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; g_2t: ;not sol thang ;602us mov r3,btd lg_2t: mov hieuchinhtruongdo,#52 loopg_2t: mov bienlap,#60 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_2t djnz r3,lg_2t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=60 a_2: ;not la ;568us bienlap=57 mov r3,btd la_2: mov hieuchinhtruongdo,#55 loopa_2: mov bienlap,#57 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopa_2 djnz r3,la_2 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a_2t: ;not la thang ;536us mov r3,btd la_2t: mov hieuchinhtruongdo,#58 loopa_2t: mov bienlap,#54 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopa_2t djnz r3,la_2t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=54 b_2: ;not si ;506us bienlap=51 mov r3,btd lb_2: mov hieuchinhtruongdo,#62 loopb_2: mov bienlap,#51 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopb_2 djnz r3,lb_2 ret ;************************************ ;************************************ ; -c_3: ;not ;478us bienlap=48 mov r3,btd lc_3: mov hieuchinhtruongdo,#65 loopc_3: mov bienlap,#48 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_3 djnz r3,lc_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; c_3t: ;not thang ;451us mov r3,btd lc_3t: mov hieuchinhtruongdo,#69 loopc_3t: mov bienlap,#45 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopc_3t djnz r3,lc_3t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=45 d_3: ;not re ;426us bienlap=43 mov r3,btd ld_3: mov hieuchinhtruongdo,#73 loopd_3: mov bienlap,#43 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_3 djnz r3,ld_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; d_3t: ;not re thang ;402us mov r3,btd ld_3t: mov hieuchinhtruongdo,#78 loopd_3t: mov bienlap,#40 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopd_3t djnz r3,ld_3t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=40 e_3: ;not mi ;379us bienlap=38 mov r3,btd le_3: mov hieuchinhtruongdo,#82 loope_3: mov bienlap,#38 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loope_3 djnz r3,le_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_3: ;not pha ;358us bienlap=36 mov r3,btd lf_3: mov hieuchinhtruongdo,#87 loopf_3: mov bienlap,#36 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_3 djnz r3,lf_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; f_3t: ;not pha thang ;338us mov r3,btd lf_3t: mov hieuchinhtruongdo,#92 loopf_3t: mov bienlap,#34 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopf_3t djnz r3,lf_3t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bienlap=34 g_3: ;not sol ;319us bienlap=32 mov r3,btd lg_3: mov hieuchinhtruongdo,#98 loopg_3: mov bienlap,#32 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_3 djnz r3,lg_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; g_3t: ;not sol thang ;301us bienlap=30 mov r3,btd lg_3t: mov hieuchinhtruongdo,#104 loopg_3t: mov bienlap,#30 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopg_3t djnz r3,lg_3t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a_3: ;not la ;284us bienlap=28 mov r3,btd la_3: mov hieuchinhtruongdo,#110 loopa_3: mov bienlap,#28 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopa_3 djnz r3,la_3 ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; a_3t: ;not la thang ;268us mov r3,btd la_3t: mov hieuchinhtruongdo,#117 loopa_3t: mov bienlap,#27 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopa_3t djnz r3,la_3t ret ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; b_3: ;not si mov r3,btd ;253us bienlap=27 bienlap=25 lb_3: mov hieuchinhtruongdo,#123 loopb_3: mov bienlap,#25 setb p1.4 call delay clr p1.4 call delay djnz hieuchinhtruongdo,loopb_3 djnz r3,lb_3 ret ;************************************ ; CHUONG TRINH LANG -lang: mov r4,bl llang: mov tmod,#01h mov th0,#high(-62487) mov tl0,#low(-62487) setb tr0 jnb tf0,$ clr tf0 clr tr0 djnz r4,llang ret delay: mov r0,bienlap loop: nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us nop ;1us djnz r0,loop ret ;2us end