Bài tập Kỹ thuật vi xử lý pptx

21 444 0
Bài tập Kỹ thuật vi xử lý pptx

Đ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

Bài tập dài Kỹ thuật vi xử lý Họ và tên : Nguyễn Văn Hùng Lớp : TBĐ1-K52 MSSV : 20071415 Email : hungbkpro_2007@yahoo.com No Yes cjne Bài 1 : Viết CT đảo dấu 100 byte dữ liệu từ ô nhớ 100H tại Ram ngoài : chương trình : Org 0000h ljmp start org 0003h ; int ex0 nop reti org 000bh nop reti ; int timer0 org 0013h ; int ex1 nop reti org 001bh nop reti ; int timer1 org 0023h ; ngat truyen tin khong dung nop reti org 0100h Start: Crl EA mov dptr , #0100H mov Ro ,#00H lap : Start dptr #0100H Ro #00H A @dptr A A A A + #01H @dptr A dptr + 1 Ro + 1 Ro = 64H Ro = 64H En d No Yes Yes movx A , @dptr cpl A add A , #01H movx @dptr , A inc dptr inc Ro cjne R0 , #64H , lap End =================================== Bài 2 : Viết chương trình chuyển 2 mảng dữ liệu 50 byte. Biết mảng 1 có địa chỉ 50H trong Ram trong và mảng 2 có địa chỉ 1234H trong Ram ngoài . Chương trình : Org 0000h ljmp start org 0003h ; int ex0 nop reti org 000bh nop reti ; int timer0 org 0013h ; int ex1 nop reti Start R0 #50H dptr #1234H R1 #00H A @R0 R2 A A @dptr @R0 A A R2 dptr + 1 Ro + 1 R1 + 1 Ro = 32H En d org 001bh nop reti ; int timer1 org 0023h ; ngat truyen tin khong dung nop reti org 0100h Start: Crl EA mov A , #50H mov dptr , #1234H mov R1 , #00H lap : mov A , @R0 mov R2 , A movx A , @dptr mov @R0 , A mov A , R2 movx @dptr , A inc dptr inc R0 inc R1 cjne R1 , #32H , lap End No Yes Cjne Bài 3 : Viết chương trình cộng hai số BCD 4 chữ số trong Ram trong , kết quả cất vào số thứ 1 . Biết số thứ nhất đặt tại ô nhớ 40H , và số thứ 2 đặt tại ô nhớ 50H Chương trình : Org 0000h ljmp start org 0003h ; int ex0 nop reti org 000bh nop reti ; int timer0 org 0013h ; int ex1 nop reti org 001bh nop reti ; int timer1 org 0023h ; ngat truyen tin khong dung nop reti org 0100h Start C #00H R0 #40H R1 #50H R2 #00H A @R0 A A + @R1 + (C) DAA @R0 A R0 + 1 R1 + 1 R2 + 1 R2 = # 04H End Start: Clr EA Clr C mov R0 , #40H mov R1 , #50H mov R2 , #00H lap : mov A , @R0 addc A , @R1 da a mov @R0 , A inc R0 int R1 inc R2 cjne R3 , #04H , lap End ======================== Bài 4 : Viết chương trình trừ hai số 8 byte kết quả cất vào ô thứ 2 . Biết số thứ nhất đặt tại ô nhớ 60H tại Ram trong , số thứ 2 đặt tại Ram ngoài 1000H. No cjne Yes Chương trình : Org 0000h Ljmp start org 0003h ; int ex0 nop reti org 000bh nop reti ; int timer0 org 0013h ; int ex1 nop reti org 001bh nop reti ; int timer1 org 0023h ; ngat truyen tin khong dung nop reti Org 0100h Start : Clr EA Clr C mov R0 , #60H mov R1 , #00H mov dptr , #1000H Start C # 00H R0 #60H R1 #00H dptr #1000H A @dptr A A - @R0 – (C) @dptr A dptr + 1 R0 + 1 R1 + 1 R1 = #08H End lap: movx A , @dptr subb A , @R0 movx @dptr , A inc dptr inc R0 inc R1 cjne R1 , #08H , lap end Bài 5 : viết chương trình sử dụng timer tạo xung tần 100HZ tại chân P1.0 . Biết xung nhịp thạch anh 12 MHZ ( Ton = 50% , Toff = 50% ). Ta có : Xung tại chân P1.0 có : f xung = 100 Hz => T xung = 0,01 => thời gian cao và thấp là : 0,5 T = 0,005 = 5000 µs Bộ định thời có : f đt = 1 12 .f thạch anh = 1 12 .12 ( MHZ ) = 1 MHZ từ đó tần số T đt = 1 6 10 = 1µs Số nhịp đồng hồ : n = 5000 1 = 5000 nhịp  Xác định giá trị nạp vào timer : 65536 – 5000 = 60536D = EC67H  Giá trị nạp vào là : TL0 = 78H ; TH0 = ECH. Yes No JNB SJMP Chương trình : ORG 0000H LJMP START ORG 0003H ; INT EX0 NOP RETI ORG 000BH NOP RETI ; INT TIMER0 ORG 0013H ; INT EX1 NOP RETI ORG 001BH NOP RETI ; INT TIMER1 ORG 0023H ; NGAT TRUYEN TIN KHONG DUNG OP RETI ORG 0100H START : CLR EA CLR P1.0 MOV TMOD , #10H MOV TL1 , #1AH MOV TH0 , #0ECH SETB TR0 BACK : JNB TFO , BACK MOV TL1 , #1AH Start CLR P1.0 TMOD #10H TL0 #78H TH0 #0ECH TR0 = 1 TF0 = 0 TL0 #78H TH0 #0ECH P1.5 P1.5 MOV TH0 , #0ECH CPL P1.0 SJMP BACK END Bài 6 : Viết chương trình tạo xung 1HZ tại chân P1.7 . Biết xung nhịp thạch anh 12 MHZ ( T on = 70 % , T off = 30% ) Ta có : Với f thạch anh = 12 MHZ thì theo trên ta có T định thời = 1µs Xung tại chân P1.7 có : f xung = 1 Hz => T xung = 1s => T on = 700 ms , T off = 300 ms chọn giá trị ban đầu là : TL0 = B0H , TH0 = 3CH từ đó ta có sau mỗi chu kỳ bộ timer đếm được FFFFH - 3CBOH = 16 4 – 15536 = 50 000 lần tức là : 50 000 . 1µs = 0.05s = 50 ms Vậy ta cần thiết kế sao cho bộ timer đếm được : 700 / 50 = 14 lần . rồi chân P1.7 đổi trạng thái và đếm được : 300/50 = 6 lần . cứ như thế ta sẽ đáp ứng được yêu cầu của bài. [...]... R3 , LAP CPL P1.7 JNB P1.7 , TOFF MOV R0,#0EH SJMP LAP TON: MOV R0,#06H SJMP LAP END Bài 7 : Vi t chương trình con đọc 500 byte dữ liệu từ cổng nối tiếp và cất vào vùng nhớ có địa chỉ đầu 456H Biết cổng nối tiếp đã được khởi tạo sẵn , cổng cho phép đọc khi cờ RI = 1 , và cờ RI sẽ tự xóa khi đọc xong 1 byte read Giải thuật và chương trình : Read: mov R0 #00H mov R1 , #00H R1 #00H mov dptr , #0456H dptr... R0 , #00H R0 jnb Yes A cjne R0 , #FAH , lap mov R0 , #FAH inc No RI = 1 cjne sbuf @dptr A R1 dptr + 1 R0 + 1 cjne R1 , #02H , lap ret No R0 = #FAH cjne Yes R0 #FAH R1 + 1 R1 = #02H Yes ret No start Bài 8 : vi t chương trình điều khiển đèn giao thông tại 1 ngã tư theo yêu cầu : TMOD #01H Điều khiển 0 là đèn sáng , 1 là đèn tắt TH0 # 03CH ta có sơ đồ điều khiển trạng thái như sau : TLO #0B0H 1 2 3 4 1... delay1s delay djnz R2 , back4 ljmp back1 delay : jnb jnb TF0 = 1 TF0 , delay No mov TH0,#3CH mov TL0,#0B0H TH0 TL0 R1 mov R1 ,#14H djnz R1 , delay ret djnz No #3CH Yes #0B0H #14H R1 - 1 R1 = 0 Yes ret Bài 9 : vi t chương trình hiển thị 2 LED 7 thanh đếm lùi từ 20s với sơ đồ phần cứng SV tự đề xuất start TMOD TH0 Org 0000h #3CH TL0 #0B0H R0 #14H P0 Chương trình : #01H #20H TR0 R1 =1 #10H reti org 0100h . Bài tập dài Kỹ thuật vi xử lý Họ và tên : Nguyễn Văn Hùng Lớp : TBĐ1-K52 MSSV : 20071415 Email : hungbkpro_2007@yahoo.com No Yes cjne Bài 1 : Vi t CT đảo dấu 100 byte. #01H movx @dptr , A inc dptr inc Ro cjne R0 , #64H , lap End =================================== Bài 2 : Vi t chương trình chuyển 2 mảng dữ liệu 50 byte. Biết mảng 1 có địa chỉ 50H trong Ram trong. , A mov A , R2 movx @dptr , A inc dptr inc R0 inc R1 cjne R1 , #32H , lap End No Yes Cjne Bài 3 : Vi t chương trình cộng hai số BCD 4 chữ số trong Ram trong , kết quả cất vào số thứ 1 . Biết

Ngày đăng: 06/07/2014, 19:20

Từ khóa liên quan

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

Tài liệu liên quan