Ôn thi tốt nghiệp: Các bài tập vi xử lý đơn giản
lượt xem 217
download
Ôn thi tốt nghiệp: Bài dạng 1:Chuyển đổi qua lại giữa các vùng nhớ của Ram trong và Ram ngoài Đề bài:Nạp 00h đến 10h vào vùng nhớ bắt đầu từ 10h của Ram nội, sau đó chuyển vùng này ra Ram
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Ôn thi tốt nghiệp: Các bài tập vi xử lý đơn giản
- Ôn thi tốt nghiệp: Bài dạng 1:Chuyển đổi qua lại giữa các vùng nhớ của Ram trong và Ram ngoài Đề bài:Nạp 00h đến 10h vào vùng nhớ bắt đầu từ 10h của Ram nội, sau đó chuyển vùng này ra Ram ngoài từ 100h.Sau đó lại chuyển 8 ô nhớ từ 108h Ram ngoài vào o nhớ 0D0 của Ram nội $include(reg51.inc) main: clr a mov r0,#10h;Cho R0 tro den o nho 10h lap:mov @r0,a ;chuyen a=00h vao o nho ma r0 tro =10h.(10h)=00h inc r0 inc a cjne a,#11h,lap ;Chuyen vung nho nay ra Ram ngoai tu 100h mov r0,#10h mov dptr,#100h ; cho dptr tro den vung nho 100h cua Ram ngoai mov r3,#00;bien dem lap1: mov a,@r0 ;Chuyen noi dung tro boi R0 vao thanh ghi A movx @dptr,a;Chuyen A ra Ram ngoai tai dia chi ma dptr tro vao inc r0 inc dptr inc r3 cjne r3,#17,lap1 ;Sau do lai chuyen noi dung 8 o nho cua Ram ngoai tu 108h sang Ram noi tu D0h mov r4,#8 mov dptr,#108h mov r0,#0d0h lap2:movx a,@dptr;Chuyen noi dung tro boi dptr vao thanh ghi A mov @r0,a inc r0
- i dptr nc djnz r4 ,lap2 j p $ m end Dang2: Vi ết chương tr ì nh t ạo sóng vuông t ần số f = 5 KHz t ại P1.0 dùng ngắt Ti m - 1 er ( gi ả sử t ần số t hạch anh l à 12 MHz) . G ải i f = 5 KHz → T = 200 μs ( 200 chu kỳ) → t hời gi an t r ì hoãn : 100 chu kỳ. Gi á t r ị đếm = 100 → dùng chế độ 8 bi t . Vậy : TM = 0010 0000b ( 20h) OD Nội dung t hanh ghi I E : I E = 1000 1000b ( 88h) Chương t r ì nh t hực hi ện như sau: ORG 0000h LJ M M n P ai ORG 001Bh CPL P1. 0 ; đảo bi t để t ạo xung vuông ( 2byt e) RETI ; t r ở về chương t r ì nh chí nh t ừ I SR ( 1byt e) M n: ai MOV TMOD, #20h ; Ti m - 1 : M er ode- 2 MOV I E, #88h ; Có t hể t hay t hế bằng 2 l ệnh sau: ; SETB EA ; SETB ET1 MOV TH1, # - 100) ( MOV TL1, # - 100) ( SETB TR1 SJ M $ P ; Lặp t ại chỗ, nghĩa l à chương t r ì nh không l àm gì cả, chờ ; Ti m t r àn ( các ứng dụng t hực t ế có t hể er xử l ý
- ; các công vi ệc khác) END Ví dụ 2 : Vi ết chương tr ình t ạo xung vuông t ần số : f = 10KHz t ại P1.0 dùng ngắt Timer-0 và xung vuông t ần số : f = 1 KHz t ại P1.1 dùng ngắt Timer-1 Gi ải Giá tr ị đếm cho Timer-0 : 50. Giá tr ị đếm cho timer 1: 500. → Timer-0 : 8 bit, Timer-1 : 16 bit TMOD= 0001 0010b = 12h N i dung thanh ghi IE : ộ ORG 0000h LJMP Main ORG 000Bh ; Địa chỉ vector ngắt của Timer-0 CPL P1.0 ; 2 byte : đảo bit để t ạo xung vuông RETI ; 1 byte ORG 001Bh ; Địa chỉ vector ngắt của Timer-1 MOV TH1,#HIGH(-500) ; 2 byte MOV TL1,#LOW(-500) ; 2 byte CPL P1.1 ; 2 byte RETI ; 1 byte Main: MOV TMOD,#12h MOV IE,#8Ah SETB TR0 SETB TR1 MOV TH1,#HIGH(-500) MOV TL1,#LOW(-500) MOV TH0,#(-50)
- MOV TL0,#(-50) SJMP $ END FLưu ý : Do Timer-1 hoạt động ở chế độ 16 bit nên m i l ần Timer tràn ỗ phải nạp l ại giá tr ị cho Timer-1. Ví dụ 3 : Vi ết chương tr ình dùng ngắt timer 0 sao cho cứ 1s thì tăng nội dung của các ô nhớ 30h, 31h, 32h theo quy lu ật đồng hồ (30h chứa gi ờ, 31h chứa phút, 32h chứa giây). Gi ải Yêu cầu chương tr ình tr ì hoãn là 1s trong khi Timer-0 cho phép tr ì hoãn t ối đa là 65536 μs → chọn giá tr ị đếm là 50000 và thực hi ện l ặp l ại 20 l ần (20 x 50000 = 1000000 μs = 1s). Vậy : TMOD= 0000 0001b (01h) IE = 1000 0010b (82h) Hour EQU 30h ; Định nghĩa Minute EQU 31h ; tr ước các ô nhớ Second EQU 32h ORG 0000h LJMP Main ORG 0003h LJMP Timer0_ISR Main : MOV TMOD,#01h MOV IE,#82h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) MOV R7,#20 ; Lặp 20 l ần SETB TR0 SJMP $ Timer0_ISR: MOV TH0,#HIGH(-50000)
- MOV TL0,#LOW(-50000) DJNZ R7, exitTimer0 ; N u chưa đủ 20 l ần thì thoát ế CALL I nc_cl ock ; Tăng theo quy lu ật đồng hồ MOV R7,#20 exitTimer0 : RETI Inc_clock : INC Second ; Tăng giây MOV A,Second CJNE A,#60, exitInc ; N u giây < 60 thì thoát ế MOV Second,#0 ; Ng c l ại thì gán giây = 0 ượ INC Minute ; và tăng phút MOV A,Minute CJNE A,#60, exitInc ; N u phút < 60 thi thoát ế MOV Minute,#0 ; Ng c l ại thì gán phút = 0 ượ INC Hour ; và tăng gi ờ MOV A,Hour CJNE A,#24, exitInc ; N u gi ờ < 24 thì thoát ế MOV Hour,#0 ; Ng c l ại thì gán gi ờ = 0 ượ exitInc: RET END
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: LT04
2 p | 73 | 6
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: TH41
7 p | 46 | 5
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: LT14
1 p | 52 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: TH13
11 p | 27 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: TH18
6 p | 30 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: TH38
10 p | 29 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: LT09
2 p | 76 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH12
9 p | 38 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH08
9 p | 35 | 4
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH27
9 p | 30 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH31
9 p | 40 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH23
9 p | 42 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH19
9 p | 38 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH16
9 p | 41 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH06
9 p | 41 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa 2 (2008 - 2011) môn Điện công nghiệp: TH43
6 p | 38 | 3
-
Đề thi tốt nghiệp Cao đẳng Nghề khóa II (2008 - 2011): Nghề Hàn - TH33
9 p | 37 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn