bài tập vi xử lý họ vi điều khiển 8051 - lê chí công

24 638 2
bài tập vi xử lý họ vi điều khiển 8051 - lê chí công

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông BÀI T P VI X LÝ (H VI ĐI U KHI N 8051)Ậ Ử Ọ Ề Ể 1. C U TRÚC PH N C NG - GI I MÃ Đ A CHẤ Ầ Ứ Ả Ị Ỉ 1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mãử ụ ạ ổ ầ ế ể ế ế ạ ả đ a ch t o ra các tín hi u ch n chip t ng ng các vùng đ a ch sau:ị ỉ ạ ệ ọ ươ ứ ị ỉ Tín hi uệ ch n chipọ Vùng đ aị chỉ Đ c tính truyặ xu tấ 0CS 0000H - 3FFFH PSEN 1CS 4000H - 7FFFH PSEN 2CS 6000H - 7FFFH WR,RD 3CS 8000H - 87FFH RD 4CS 8800H - 8FFFH WR 1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mãử ụ ạ ổ ầ ế ể ế ế ạ ả đ a ch t o ra các tín hi u ch n chip t ng ng các vùng đ a ch sau:ị ỉ ạ ệ ọ ươ ứ ị ỉ Tín hi uệ ch n chipọ Vùng đ aị chỉ Đ c tính truyặ xu tấ 0CS 9800H - 9BFFH PSEN 1CS 9800H - 9BFFH WR,RD 2CS 9C00H - 9DFFH WR,RD 3CS 9E00H - 9EFFH WR,RD 1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi iỉ ộ ạ ổ ế ế ạ ả mã đ a ch t o ra m t tín hi u ch n chip /CS t ng ng t m đ a ch F000H-ị ỉ ạ ộ ệ ọ ươ ứ ầ ị ỉ F3FFH. 2. S D NG T P L NHỬ Ụ Ậ Ệ Truy xu t RAM n iấ ộ Trang 1/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ôế ớ ủ ộ ị ị ỉ nh tr c ti p và đ nh đ a ch ô nh gián ti p).ớ ự ế ị ị ỉ ớ ế 2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr cế ớ ủ ộ ị ị ỉ ớ ự ti p và đ nh đ a ch ô nh gián ti p).ế ị ị ỉ ớ ế 2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cáchế ộ ớ ủ ộ (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ị ỉ ớ ự ế ị ị ỉ ớ ế 2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nhế ọ ớ ủ ộ ị đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ỉ ớ ự ế ị ị ỉ ớ ế 2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c aế ể ữ ệ ớ ủ ộ ớ ủ RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh giánộ ị ị ỉ ớ ự ế ị ị ỉ ớ ti p).ế Truy xu t RAM ngoàiấ 2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.ế ớ ủ 2.7 Vi t CT xóa ô nh 0031H c a RAM ngoài.ế ớ ủ 2.8 Vi t CT đ c ô nh 0032H c a RAM ngoài vào thanh ghi A.ế ọ ớ ủ 2.8 Vi t CT ghi n i dung thanh ghi A vào ô nh 0033H c a RAM ngoài.ế ộ ớ ủ 2.10 Vi t CT chuy n d li u ô nh 0034H c a RAM ngoài vào ô nh 0035Hế ể ữ ệ ớ ủ ớ c a RAM ngoài.ủ Truy xu t Portấ 2.11 Vi t CT xu t 0FH ra Port 1.ế ấ 2.12 Vi t CT xu t F0H ra Port 2.ế ấ 2.13 Vi t CT xu t n i dung thanh ghi A ra Port 1.ế ấ ộ 2.14 Vi t CT nh p t Port 1 vào thanh ghi A.ế ậ ừ 2.15 Vi t CT nh p t Port 1 và xu t ra Port 2.ế ậ ừ ấ 2.16 Vi t CT xu t 1 (m c logic cao) ra chân P1.0ế ấ ứ 2.17 Vi t CT xu t 0 (m c logic th p) ra chân P1.1ế ấ ứ ấ Truy xu t RAM n i, RAM ngoài và Portấ ộ 2.18 Vi t CT chuy n d li u ô nh 40H (RAM n i) đ n ô nh 2000H (RAMế ể ữ ệ ớ ộ ế ớ ngoài). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh giánị ị ỉ ớ ự ế ị ị ỉ ớ ti p).ế 2.19 Vi t CT chuy n d li u ô nh 2001H (RAM ngoài) vào ô nh 41H (RAMế ể ữ ệ ớ ớ n i). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh giánộ ị ị ỉ ớ ự ế ị ị ỉ ớ ti p).ế 2.20 Vi t CT nh p t Port 1 vào ô nh 42H (RAM n i). Làm theo 2 cách (đ nhế ậ ừ ớ ộ ị đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ỉ ớ ự ế ị ị ỉ ớ ế Trang 2/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 2.21 Vi t CT nh p t Port 1 vào ô nh 2002H (RAM ngoài).ế ậ ừ ớ 2.22 Vi t CT l y ô nh 43H (RAM n i) xu t ra Port 1. Làm theo 2 cách (đ nhế ấ ớ ộ ấ ị đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ỉ ớ ự ế ị ị ỉ ớ ế 2.23 Vi t CT l y ô nh 2003H (RAM ngoài) xu t ra Port 1.ế ấ ớ ấ S d ng vòng l pử ụ ặ 2.24 Vi t CT xóa 20 ô nh RAM n i có đ a ch b t đ u là 30H.ế ớ ộ ị ỉ ắ ầ 2.25 Vi t CT xóa các ô nh RAM n i t đ a ch 20H đ n 7FH.ế ớ ộ ừ ị ỉ ế 2.26 Vi t CT xóa 250 ô nh RAM ngoài có đ a ch b t đ u là 4000H.ế ớ ị ỉ ắ ầ 2.27 Vi t CT xóa 2500 ô nh RAM ngoài có đ a ch b t đ u là 4000H.ế ớ ị ỉ ắ ầ 2.28 Vi t CT xóa toàn b RAM ngoài có dung l ng 8KB, bi t r ng đ a chế ộ ượ ế ằ ị ỉ đ u là 2000H.ầ 2.29 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ aế ể ộ ỗ ữ ệ ồ ộ ị ch đ u là 30H đ n vùng RAM n i có đ a ch đ u là 40H.ỉ ầ ế ộ ị ỉ ầ 2.30 Vi t CT chuy n m t chu i d li u g m 100 byte trong RAM ngoài có đ aế ể ộ ỗ ữ ệ ồ ị ch đ u là 2000H đ n vùng RAM ngoài có đ a ch đ u là 4000H.ỉ ầ ế ị ỉ ầ 2.31 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ aế ể ộ ỗ ữ ệ ồ ộ ị ch đ u là 30H đ n vùng RAM ngoài có đ a ch đ u là 4000H.ỉ ầ ế ị ỉ ầ 2.32 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM ngoài có đ aế ể ộ ỗ ữ ệ ồ ị ch đ u là 5F00H đ n vùng RAM n i có đ a ch đ u là 40H.ỉ ầ ế ộ ị ỉ ầ 2.33 Cho m t chu i d li u g m 20 byte liên ti p trong RAM n i, b t đ u tộ ỗ ữ ệ ồ ế ộ ắ ầ ừ đ a ch 20H. Hãy vi t CT l n l t xu t các d ki u này ra Port 1.ị ỉ ế ầ ượ ấ ữ ệ 2.34 Gi s Port 1 đ c n i đ n m t thi t b phát d li u (ví d nh 8 nútả ử ượ ố ế ộ ế ị ữ ệ ụ ư nh n). Hãy vi t CT nh n liên ti p 10 byte d li u t thi t b phát này và ghiấ ế ậ ế ữ ệ ừ ế ị vào 10 ô nh (RAM n i) liên ti p b t đ u t ô nh 50H.ớ ộ ế ắ ầ ừ ớ T o tr (delay)ạ ễ 2.35 Vi t CT con delay 100μs, bi t r ng th ch anh (xtal) dùng trong h th ngế ế ằ ạ ệ ố là: a. 12 MHz b. 6 MHz 2.36 Vi t CT con delay 100ms, bi t r ng th ch anh (xtal) dùng trong h th ngế ế ằ ạ ệ ố là: a. 12 MHz b. 11,0592 MHz 2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng là:ế ế ằ ạ ệ ố Trang 3/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông a. 12 MHz b. 24 MHz T o xungạ 2.38 Vi t CT t o m t xung d ng (ế ạ ộ ươ ) t i chân P1.0 v i đ r ng xungạ ớ ộ ộ 1ms, bi t r ng xtal là 12 MHz.ế ằ 2.39 Vi t CT t o chu i xung vuông có f = 100 KHz t i chân P1.1 (Xtal 12ế ạ ỗ ạ MHz). 2.40 Vi t CT t o chu i xung vuông có f = 100 KHz và có chu kỳ làm vi c D =ế ạ ỗ ệ 40% t i chân P1.2 (Xtal 12 MHz).ạ 2.41 Vi t CT t o chu i xung vuông có f = 10 KHz t i chân P1.3 (Xtal 24ế ạ ỗ ạ MHz). 2.42 Vi t CT t o chu i xung vuông có f = 10 KHz và có chu kỳ làm vi c D =ế ạ ỗ ệ 30% t i chân P1.3 (Xtal 24 MHz).ạ 2.43 Vi t CT t o chu i xung vuông có f = 10 Hz t i chân P1.4 (Xtal 12 MHz).ế ạ ỗ ạ 2.44 Vi t CT t o chu i xung vuông có f = 10 Hz và có chu kỳ làm vi c D =ế ạ ỗ ệ 25% t i chân P1.5 (Xtal 12 MHz).ạ Các phép toán 2.45 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u tộ ỗ ố ấ ộ ồ ố ắ ầ ừ ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh 2FHớ ế ộ ỗ ố ế ả ớ (gi s k t qu nh h n ho c b ng 255).ả ử ế ả ỏ ơ ặ ằ 2.46 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u tộ ỗ ố ấ ộ ồ ố ắ ầ ừ ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nhớ ế ộ ỗ ố ế ả ớ 2EH:2FH (ô nh 2EH ch a byte cao c a k t qu và ô nh 2FH ch a byte th pớ ứ ủ ế ả ớ ứ ấ c a k t qu ).ủ ế ả 2.47 Cho m t chu i s 16 bit không d u trong RAM n i g m 10 s b t đ u tộ ỗ ố ấ ộ ồ ố ắ ầ ừ ô nh 30H theo nguyên t c ô nh có đ a ch nh h n ch a byte cao và ô nh cóớ ắ ớ ị ỉ ỏ ơ ứ ớ đ a ch l n h n ch a byte th p. (Ví d : byte cao c a s 16 bit đ u tiên đ cị ỉ ớ ơ ứ ấ ụ ủ ố ầ ượ c t t i ô nh 30H và byte th p c a s 16 bit đ u tiên đ c c t t i ô nh 31H).ấ ạ ớ ấ ủ ố ầ ượ ấ ạ ớ Hãy vi t CT con c ng chu i s này và c t k t qu vào ô nh 2EH:2FH.ế ộ ỗ ố ấ ế ả ớ 2.48 Vi t CT con l y bù 2 s 16 bit ch a trong R2:R3.ế ấ ố ứ So sánh 2.49 Cho hai s 8 bit, s th 1 ch a trong (30H), s th 2 ch a trong (31H).ố ố ứ ứ ố ứ ứ Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng s th 2 thìế ố ế ố ứ ớ ơ ặ ằ ố ứ set c F0, n u ng c l i thì xóa c F0.ờ ế ượ ạ ờ Trang 4/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 2.50 Cho hai s 16 bit, s th 1 ch a trong (30H):(31H), s th 2 ch a trongố ố ứ ứ ố ứ ứ (32H):(33H). Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ngế ố ế ố ứ ớ ơ ặ ằ s th 2 thì set c F0, n u ng c l i thì xóa c F0.ố ứ ờ ế ượ ạ ờ 2.51 Cho m t chu i ký t d i d ng mã ASCII trong RAM n i, dài 20 byte,ộ ỗ ự ướ ạ ộ b t đ u t đ a ch 50H. Vi t CT xu t các ký t in hoa có trong chu i này raắ ầ ừ ị ỉ ế ấ ự ỗ Port 1. Bi t r ng mã ASCII c a ký t in hoa là t 65 (ch A) đ n 90 (ch Z).ế ằ ủ ự ừ ữ ế ữ 2.52 Vi t CT nh p m t chu i ký t t Port 1 d i d ng mã ASCII và ghi vàoế ậ ộ ỗ ự ừ ướ ạ RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng kýắ ầ ừ ị ỉ ế ằ ỗ ế ằ t CR (có mã ASCII là 0DH) và ghi c ký t này vào RAM.ự ả ự 2.53 Vi t CT nh p m t chu i ký t t Port 1 d i d ng mã ASCII và ghi vàoế ậ ộ ỗ ự ừ ướ ạ RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng kýắ ầ ừ ị ỉ ế ằ ỗ ế ằ t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM.ự ự 2.54 Vi t CT nh p m t chu i ký t t Port 1 d i d ng mã ASCII và ghi vàoế ậ ộ ỗ ự ừ ướ ạ RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng kýắ ầ ừ ị ỉ ế ằ ỗ ế ằ t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM mà thay b ngự ự ằ ký t null (có mã ASCII là 00H).ự 2.55 Cho m t chu i ký t d i d ng mã ASCII trong RAM n i, dài 20 byte,ộ ỗ ự ướ ạ ộ b t đ u t đ a ch 50H. Vi t CT đ i các ký t in hoa có trong chu i này thànhắ ầ ừ ị ỉ ế ổ ự ỗ ký t th ng. Bi t r ng mã ASCII c a ký t th ng b ng mã ASCII c a kýự ườ ế ằ ủ ự ườ ằ ủ t in hoa c ng thêm 32.ự ộ 2.56 Cho m t chu i ký t s d i d ng mã ASCII trong RAM n i, dài 20ộ ỗ ự ố ướ ạ ộ byte, b t đ u t đ a ch 50H. Vi t CT đ i các ký t s này thành mã BCD.ắ ầ ừ ị ỉ ế ổ ự ố Bi t r ng mã ASCII c a các ký t s là t 30H (s 0) đ n 39H (s 9).ế ằ ủ ự ố ừ ố ế ố S d ng l nh nh y có đi u ki nử ụ ệ ả ề ệ 2.57 Cho m t chu i d li u d i d ng s có d u trong RAM ngoài, dài 100ộ ỗ ữ ệ ướ ạ ố ấ byte, b t đ u t đ a ch 0100H. Vi t CT l n l t xu t các d li u trong chu iắ ầ ừ ị ỉ ế ầ ượ ấ ữ ệ ỗ ra Port 1 n u là s d ng (xem s 0 là d ng) và xu t ra Port 2 n u là s âm.ế ố ươ ố ươ ấ ế ố 2.58 Cho m t chu i d li u d i d ng s có d u trong RAM ngoài, b t đ uộ ỗ ữ ệ ướ ạ ố ấ ắ ầ t đ a ch 0100H và k t thúc b ng s 0. Vi t CT l n l t xu t các d li uừ ị ỉ ế ằ ố ế ầ ượ ấ ữ ệ trong chu i ra Port 1 n u là s d ng và xu t ra Port 2 n u là s âm.ỗ ế ố ươ ấ ế ố 2.59 Cho m t chu i d li u d i d ng s không d u trong RAM ngoài, b tộ ỗ ữ ệ ướ ạ ố ấ ắ đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT đ mầ ừ ị ỉ ộ ỗ ộ ớ ế ế s s ch n (chia h t cho 2) có trong chu i và c t vào ô nh 00FEH.ố ố ẵ ế ỗ ấ ớ 2.60 Cho m t chu i d li u d i d ng s không d u trong RAM ngoài, b tộ ỗ ữ ệ ướ ạ ố ấ ắ đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT ghiầ ừ ị ỉ ộ ỗ ộ ớ ế các s ch n (xem s 0 là s ch n) có trong chu i vào RAM n i b t đ u t đ aố ẵ ố ố ẵ ỗ ộ ắ ầ ừ ị ch 30H cho đ n khi g p s l thì d ng.ỉ ế ặ ố ẻ ừ 2.61 Vi t CT con có nhi m v l y 1 byte t 1 chu i data g m 20 byte c tế ệ ụ ấ ừ ỗ ồ ấ trong Ram ngoài b t đ u t đ a ch 2000H và xu t ra Port1. M i l n g i CTắ ầ ừ ị ỉ ấ ỗ ầ ọ Trang 5/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông con ch xu t 1 byte, l n g i k thì xu t byte k ti p, l n g i th 21 thì l iỉ ấ ầ ọ ế ấ ế ế ầ ọ ứ ạ xu t byte đ u, ấ ầ 3. TIMER 3.1 Vi t CT con mang tên DELAY500 có nhi m v t o tr 0,5ms dùng Timer.ế ệ ụ ạ ễ (Xtal 6MHz). 3.2 Vi t CT con mang tên DELAY10 có nhi m v t o tr 10ms dùng Timer.ế ệ ụ ạ ễ (Xtal 12MHz). 3.3 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=1KHz t iể ế ạ ạ P1.0. 3.4 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=50Hz t iể ế ạ ạ P1.1. 3.5 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=500Hzể ế ạ (D=25%) t i P1.2.ạ 3.6 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=20Hzể ế ạ (D=20%) t i P1.3.ạ 3.7 Vi t CT dùng Timer t o sóng vuông f=500Hz t i P1.4. (Xtal 12MHz).ế ạ ạ 3.8 Vi t CT dùng Timer t o sóng vuông f=20KHz t i P1.5. (Xtal 24MHz).ế ạ ạ 3.9 Vi t CT dùng Timer t o 2 sóng vuông có cùng f= 1KHz t i P1.6 và P1.7.ế ạ ạ Bi t r ng sóng vuông t i P1.7 ch m pha h n sóng vuông t i P1.6 100(s. (Xtalế ằ ạ ậ ơ ạ 12MHz). 3.10 Vi t CT dùng Timer đi u khi n đèn giao thông t i m t giao l . Cho bi tế ề ể ạ ộ ộ ế r ng:ằ Đèn Bit đi uề khi nể Thờ i gian Xanh 1 P1.0 25s Vàng 1 P1.1 3s Đ 1ỏ P1.2 Xanh 2 P1.3 33s Vàng 2 P1.4 3s Đ 2ỏ P1.5 Trang 6/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông Đèn sáng khi bit đi u khi n b ng 0.ề ể ằ 4. SERIAL PORT 4.1 Vi t CT đ c 1 chu i data ch a trong RAM n i t đ a ch 30H đ n 50H vàế ọ ỗ ứ ộ ừ ị ỉ ế xu t ra 1 thi t b (ví d nh màn hình tinh th l ng LCD) đ c n i v i portấ ế ị ụ ư ể ỏ ượ ố ớ n i ti p c a 8051 (ch đ UART 8 bit, 2400 baud). Cho Xtal 11,059 MHz.ố ế ủ ế ộ 4.2 Vi t CT nh n 1 chu i data t 1 thi t b ngoài (ví d nh máy đ c mãế ậ ỗ ừ ế ị ụ ư ọ v ch) n i v i 8051 qua port n i ti p (ch đ UART 8 bit, 4800 baud) và ghiạ ố ớ ố ế ế ộ data vào RAM n i t đ a ch 40H. Bi t r ng chu i data g m 20 byte và Xtalộ ừ ị ỉ ế ằ ỗ ồ 11,059MHz. 4.3 Vi t CT l y 1 chu i data ch a trong RAM ngoài b t đ u t đ a ch 2000Hế ấ ỗ ứ ắ ầ ừ ị ỉ và xu t ra 1 thi t b đ c n i v i port n i ti p c a 8051 (ch đ UART 8 bit,ấ ế ị ượ ố ớ ố ế ủ ế ộ 1200 baud). Chu i k t thúc b i ký t EOT (có mã ASCII là 04H) và ký t nàyỗ ế ở ự ự cũng đ c xu t ra (Xtal 11,059 MHz).ượ ấ 4.4 Làm l i bài 4.3 nh ng không xu t ký t EOT.ạ ư ấ ự 4.5 Vi t CT nh n 1 chu i data t 1 thi t b ngoài n i v i 8051 qua port n iế ậ ỗ ừ ế ị ố ớ ố ti p (ch đ UART 8 bit, 9600 baud) và ghi data vào RAM ngoài b t đ u tế ế ộ ắ ầ ừ đ a ch 4000H. Chu i data b t đ u b ng ký t STX (02H) và k t thúc b ng kýị ỉ ỗ ắ ầ ằ ự ế ằ t ETX (03H). Không ghi 2 ký t này vào RAM. Cho Xtal 11,059MHz.ự ự 4.6 Vi t CT con mang tên XUAT có nhi m v l y 1 chu i data ch a trongế ệ ụ ấ ỗ ứ RAM ngoài xu t ra port n i ti p ch đ UART 9 bit. Bit th 9 là bit parityấ ố ế ở ế ộ ứ ch n. Chu i data k t thúc b ng ký t null (00H). CT g i CT con XUAT s đ tẵ ỗ ế ằ ự ọ ẽ ặ đ a ch b t đ u c a chu i vào DPTR tr c khi g i CT con XUAT. Gi s portị ỉ ắ ầ ủ ỗ ướ ọ ả ử n i ti p đã đ c kh i đ ng.ố ế ượ ở ộ 4.7 Vi t CT con mang tên NHAP có nhi m v nh p 1 chu i data g m 30 byteế ệ ụ ậ ỗ ồ t port n i ti p ch đ UART 9 bit, bit th 9 là bit parity l . N u data nh nừ ố ế ở ế ộ ứ ẻ ế ậ đ c không b l i thì ghi vào 1 vùng nh c a RAM n i, n u b l i thì khôngượ ị ỗ ớ ủ ộ ế ị ỗ ghi. CT g i CT con NHAP s đ t đ a ch đ u c a vùng nh vào thanh ghi R0ọ ẽ ặ ị ỉ ầ ủ ớ tr c khi g i CT con NHAP. Gi s port n i ti p đã đ c kh i đ ng.ướ ọ ả ử ố ế ượ ở ộ 5. INTERRUPT 5.1 Vi t CT dùng ng t Timer đ t o sóng vuông f=2KHz t i P1.7. (Xtalế ắ ể ạ ạ 12MHz). 5.2 Vi t CT dùng ng t Timer đ t o sóng vuông f=200Hz t i P1.6. (Xtalế ắ ể ạ ạ 12MHz). 5.3 Vi t CT dùng ng t Timer đ t o đ ng th i 2 sóng vuông 1KHz và 50Hzế ắ ể ạ ồ ờ t i P1.0 và P1.1. (Xtal 6MHz)ạ Trang 7/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 5.4 Vi t CT l y 1 chu i data ch a trong Ram ngoài b t đ u t đ a ch 6200Hế ấ ỗ ứ ắ ầ ừ ị ỉ đ n đ a ch 62FFH và xu t ra Port1, m i l n xu t cách nhau 50ms. S d ngế ị ỉ ấ ỗ ầ ấ ử ụ ng t Timer. Xtal 12MHz.ắ 5.5 Vi t CT nh p data t thi t b ngoài k t n i v i 8051 qua Port1, m i l nế ậ ừ ế ị ế ố ớ ỗ ầ nh p cách nhau 5s, data nh p v đ c ghi vào vùng Ram n i b t đ u t đ aậ ậ ề ượ ộ ắ ầ ừ ị ch 50H đ n đ a ch 5FH. Bi t r ng sau khi ghi vào ô nh cu i cùng thì tr l iỉ ế ị ỉ ế ằ ớ ố ở ạ ghi vào ô nh đ u. S d ng ng t Timer. Xtal 12MHz.ớ ầ ử ụ ắ 5.6 Vi t CT phát liên t c chu i s t 0 đ n 9 ra port n i ti p theo ch đế ụ ỗ ố ừ ế ố ế ế ộ UART 8 bit, 2400 baud. S d ng ng t serial. Xtal 12MHz.ử ụ ắ 5.7 Vi t CT ch nh n data t 1 thi t b ngoài g i đ n 8051 qua port n i ti pế ờ ậ ừ ế ị ở ế ố ế (ch đ UART 8 bit, 19200 baud). N u nh n đ c ký t STX (02H) thì b tế ộ ế ậ ượ ự ậ sáng LED, n u nh n đ c ký t ETX (03H) thì t t LED, bi t r ng LED đ cế ậ ượ ự ắ ế ằ ượ đi u khi n b ng ngõ P1.3 (LED sáng khi bit đi u khi n b ng 1). S d ngề ể ằ ề ể ằ ử ụ ng t serial. Xtal 11,059MHz.ắ 5.8 Vi t CT ch nh n 1 xung c nh xu ng đ a vào chân /INT0 (P3.2), khi cóế ờ ậ ạ ố ư xung thì nh p data t Port1 và phát ra port n i ti p ch đ UART 9 bit 4800ậ ừ ố ế ở ế ộ baud, bit th 9 là bit parity l . Xtal 6MHz.ứ ẻ 5.9 Vi t CT đ m s xung đ a vào chân /INT1 (P3.3) và đi u khi n relay thôngế ế ố ư ề ể qua chân P3.0 (relay đóng khi P3.0 b ng 1), c t s đ m vào ô nh 40H c aằ ấ ố ế ớ ủ Ram n i, n u s đ m ch a đ n 100 thì đóng relay, n u s đ m đ t 100 thìộ ế ố ế ư ế ế ố ế ạ ng t relay.ắ ĐÁP ÁN VI X LÝ (H VI ĐI U KHI N 8051)Ử Ọ Ề Ể 1. C U TRÚC PH N C NG - GI I MÃ Đ A CHẤ Ầ Ứ Ả Ị Ỉ 1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mãử ụ ạ ổ ầ ế ể ế ế ạ ả đ a ch t o ra các tín hi u ch n chip t ng ng các vùng đ a ch sau:ị ỉ ạ ệ ọ ươ ứ ị ỉ Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu tệ ọ ị ỉ ặ ấ 0000H - 3FFFH 4000H - 7FFFH 6000H - 7FFFH 8000H - 87FFH Trang 8/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 8800H - 8FFFH 1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mãử ụ ạ ổ ầ ế ể ế ế ạ ả đ a ch t o ra các tín hi u ch n chip t ng ng các vùng đ a ch sau:ị ỉ ạ ệ ọ ươ ứ ị ỉ Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu tệ ọ ị ỉ ặ ấ 9800H - 9BFFH 9800H - 9BFFH 9C00H - 9DFFH 9E00H - 9EFFH 1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi iỉ ộ ạ ổ ế ế ạ ả mã đ a ch t o ra m t tín hi u ch n chip /CS t ng ng t m đ a ch F000H-ị ỉ ạ ộ ệ ọ ươ ứ ầ ị ỉ F3FFH. 2. S D NG T P L NHỬ Ụ Ậ Ệ Truy xu t RAM n iấ ộ 2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ôế ớ ủ ộ ị ị ỉ nh tr c ti p và đ nh đ a ch ô nh gián ti p).ớ ự ế ị ị ỉ ớ ế Cách 1: Đ nh đ a ch tr c ti pị ị ỉ ự ế ORG 0000H MOV 30H,#40H END Cách 2: Đ nh đ a ch gián ti pị ị ỉ ế ORG 0000H MOV R0,#30H MOV @R0,#40H END 2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr cế ớ ủ ộ ị ị ỉ ớ ự ti p và đ nh đ a ch ô nh gián ti p).ế ị ị ỉ ớ ế HD: Xóa là ghi giá tr 0.ị ORG 0000H MOV 31H,#OOOOH END. C2 ORG Trang 9/24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông MOV R0,#31H MOV @R0,#0000H END. 2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cáchế ộ ớ ủ ộ (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ị ỉ ớ ự ế ị ị ỉ ớ ế CÁCH 1: ORG 0000H MOV 32H,A END CÁCH 2: ORG 0000H MOV R0,#32H MOV @R0,A END 2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nhế ọ ớ ủ ộ ị đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).ị ỉ ớ ự ế ị ị ỉ ớ ế CÁCH 1: ORG 0000H MOV A,33H END CÁCH 2: ORG 0000H MOV R0,#33H MOV A,@R0 END 2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c aế ể ữ ệ ớ ủ ộ ớ ủ RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh giánộ ị ị ỉ ớ ự ế ị ị ỉ ớ ti p).ế CÁCH 1: ORG 0000H MOV 35H,34H END CÁCH 2: ORG 0000H MOV R0,#34H MOV A,@R0 INC R0 MOV @R0,A END Truy xu t RAM ngoàiấ 2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.ế ớ ủ ORG 0000H MOV A,#40H Trang 10/24 [...]... TMOD,#00000010B … delay500: MOV TL0, #-2 50 SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET 3.2 Vi t CT con mang tên DELAY10 có nhiệm vụ tạo trễ 10ms dùng Timer (Xtal 12MHz) … MOV TMOD,#00000001B … delay10: MOV TH0,#HIGH (-1 0000) MOV TL0,#LOW (-1 0000) SETB TR0 Trang 21/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông JNB TF0,$ CLR TR0 CLR TF0 RET 3.3 Dùng CT con DELAY500 (bài 3.1) để vi t CT tạo sóng vuông f=1KHz... Dùng CT con DELAY10 (bài 3.2) để vi t CT tạo sóng vuông f=50Hz tại P1.1 3.5 Dùng CT con DELAY500 (bài 3.1) để vi t CT tạo sóng vuông f=500Hz (D=25%) tại P1.2 3.6 Dùng CT con DELAY10 (bài 3.2) để vi t CT tạo sóng vuông f=20Hz (D=20%) tại P1.3 3.7 Vi t CT dùng Timer tạo sóng vuông f=500Hz tại P1.4 (Xtal 12MHz) 3.8 Vi t CT dùng Timer tạo sóng vuông f=20KHz tại P1.5 (Xtal 24MHz) 3.9 Vi t CT dùng Timer tạo... 3.10 Vi t CT dùng Timer điều khiển đèn giao thông tại một giao lộ Cho biết rằng: Đèn Bit điều khiển Thời gian Xanh 1 P1.0 25s Vàng 1 P1.1 3s Đỏ 1 P1.2 Xanh 2 P1.3 33s Vàng 2 P1.4 3s Đỏ 2 P1.5 Đèn sáng khi bit điều khiển bằng 0 4 SERIAL PORT 4.1 Vi t CT đọc 1 chuỗi data chứa trong RAM nội từ địa chỉ 30H đến 50H và xuất ra 1 thiết bị (ví dụ như màn hình tinh thể lỏng LCD) được nối với port nối tiếp của 8051. .. 2.42 Vi t CT tạo chuỗi xung vuông có f = 10 KHz và có chu kỳ làm vi c D = 30% tại chân P1.3 (Xtal 24 MHz) ORG 0000H lap: SETB P1.3 ACALL delay30 CLR P1.3 ACALL delay70 SJMP lap delay30: MOV R4,#15 DJNZ R4,$ RET delay70: MOV R4,#35 DJNZ R4,$ Trang 17/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông RET END 2.43 Vi t CT tạo chuỗi xung vuông có f = 10 Hz tại chân P1.4 (Xtal 12 MHz) 2.44 Vi t... ketthuc: NOP END 2.39 Vi t CT tạo chuỗi xung vuông có f = 100 KHz tại chân P1.1 (Xtal 12 MHz) ORG 0000H lap: CPL P1.1 Trang 16/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông NOP NOP SJMP lap END 2.40 Vi t CT tạo chuỗi xung vuông có f = 100 KHz và có chu kỳ làm vi c D = 40% tại chân P1.2 (Xtal 12 MHz) ORG 0000H lap: SETB P1.2 NOP NOP NOP CLR P1.2 NOP NOP NOP SJMP lap END 2.41 Vi t CT tạo chuỗi... 30H và byte thấp của số 16 bit đầu tiên được cất tại ô nhớ 31H) Hãy vi t CT con cộng chuỗi số này và cất kết quả vào ô nhớ 2EH:2FH 2.48 Vi t CT con lấy bù 2 số 16 bit chứa trong R2:R3 Trang 18/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông So sánh 2.49 Cho hai số 8 bit, số thứ 1 chứa trong (30H), số thứ 2 chứa trong (31H) Vi t CT con so sánh hai số này Nếu số thứ 1 lớn hơn hoặc bằng số thứ... DPTR Trang 13/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông DJNZ R7,lap1 END 2.27 Vi t CT xóa 2500 ô nhớ RAM ngoài có địa chỉ bắt đầu là 4000H ORG 0000H MOV DPTR,#4000H CLR A MOV R6,#10 lap2: MOV R7,#250 lap1: MOVX @DPTR,A INC DPTR DJNZ R7,lap1 DJNZ R6,lap2 END 2.28 Vi t CT xóa toàn bộ RAM ngoài có dung lượng 8KB, biết rằng địa chỉ đầu là 2000H HD: 8KB = 8192Byte 2.29 Vi t CT chuyển một...Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông MOV DPTR,#0030H MOVX @DPTR,A END 2.7 Vi t CT xóa ô nhớ 0031H của RAM ngoài ORG 0000H MOV A,#0000H MOV DPTR,#0031H MOVX @DPTR,A END HD: Ghi giá trị 0 2.8 Vi t CT đọc ô nhớ 0032H của RAM ngoài vào thanh ghi A ORG 0000H MOV DPTR,#0032H MOVX A,@DPTR END 2.8 Vi t CT ghi nội dung thanh ghi A vào ô nhớ 0033H... Vi t CT nhập từ Port 1 và xuất ra Port 2 0FH Trang 11/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông ORG 0000H MOV 0FH,P1 MOV P2,#0FH END 2.16 Vi t CT xuất 1 (mức logic cao) ra chân P1.0 ORG 0000H SETB P1.0 END 2.17 Vi t CT xuất 0 (mức logic thấp) ra chân P1.1 ORG 0000H CLR P1.1 END Truy xuất RAM nội, RAM ngoài và Port 2.18 Vi t CT chuyển dữ liệu ô nhớ 40H (RAM nội) đến ô nhớ 2000H (RAM... Xtal 11,059 MHz ORG 0000H MOV TMOD,#00100000B MOV SCON,#01010010B MOV TH1, #-1 2 SETB TR1 MOV R0,#30H lap: MOV A,@R0 JNB TI,$ CLR TI MOV SBUF,A INC R0 CJNE R0,#51H,lap Trang 22/24 Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện Tử Lê Chí Thông END 4.2 Vi t CT nhận 1 chuỗi data từ 1 thiết bị ngoài (ví dụ như máy đọc mã vạch) nối với 8051 qua port nối tiếp (chế độ UART 8 bit, 4800 baud) và ghi data vào RAM nội . ọ ị ỉ ặ ấ 0000H - 3FFFH 4000H - 7FFFH 6000H - 7FFFH 8000H - 87FFH Trang 8 /24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông 8800H - 8FFFH 1.2 S d ng 1 vi m ch 74138 và. Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông BÀI T P VI X LÝ (H VI ĐI U KHI N 8051) Ậ Ử Ọ Ề Ể 1. C U TRÚC PH N C NG - GI I MÃ Đ A CHẤ Ầ Ứ Ả Ị Ỉ 1.1 S d ng 1 vi m ch 74138 và các c ng. MHz 2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng là:ế ế ằ ạ ệ ố Trang 3 /24 Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n Tạ ọ ệ ệ ử Lê Chí Thông a. 12 MHz b. 24 MHz T

Ngày đăng: 18/11/2014, 22:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan