1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập thi vi xử lý bách khoa

14 424 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 24,44 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thi cuối kì vi xử lý đại học bách khoa hà nội, đề thi đầy đủ và chính xác so với yêu cầu bài toán đề ra. sinh viên có thể tham khảo để học tốt vi xử lý Thi cuối kì vi xử lý đại học bách khoa hà nội, đề thi đầy đủ và chính xác so với yêu cầu bài toán đề ra. sinh viên có thể tham khảo để học tốt vi xử lý

Trang 1

ĐỀ 30

;chuong trinh cong 2 so 4 bytes

;bai1

;dia chi so 1: 49 ->54

;dia so 2: 60->64

;MSB tai o nho co dia chi nho

org 50h

mov R0,#54H

mov R1,#64H

mov R2,#4

clr C

lap:

mov A,@R0

addc A,@R1

mov @R0,A

dec R0

dec R1

DJNZ R2,lap

END

ĐỀ29

;dao dau n byte

; r1 dia chi dau

; r2 dia chi cuoi

mov R1,#50H

mov R2,#100H

lap:

mov A,@R1

cpl A

inc A

mov @R1,A

inc R1

cjne R1,#100h,lap

END

ĐỀ 28

;nhan thanh ghi R0 voi 1 so 2 byte trong bo nho

;coi byte cao la LSB

mov r1,#21h

nhan_R0:

mov b,r0

mov a,@r1

mul ab

mov r7,a ;r7 chua byte thap mov r6,b ;r6 chua byte cao dec r1

Trang 2

mov b,r0

mov a,@r1

mul ab

add a,r6

mov r6,a ;cat lsb vao r6

mov A,B

addc A,#0

mov r5,A ;cat msb vao r5

END

ĐỀ 27

;dich so m byte bo nho trong di n vi tri theo lenh RL

;R0 dia chi dau byte thap 20h->22h

; bit cao nhat cua byte cao duoc dich vao bit thap nhat cua byte thap

;gia su co 3 byte, quay 10 lan

mov R7,#10h

dich:

mov R0,#20h ;nhap dia chi byte cao

mov a,@R0

rlc a ;lay co nho cy

mov R0,#22h ; lay byte thap

mov R6,#3

lap:

mov a,R0

rlc a

mov @R0,a

dec R0

djnz R6,lap

djnz R7,dich

here:

sjmp here

ĐỀ 26

;DE26 (DONE)

;Tinh gia tri trung binh cua 10 so 1 byte

;So dau tien o gia tri thap nhat

;gia tri trung binh luu o R2

GiatriTB:

R0

loop:

MOV A,@R0 MOV B,#10

vao A, so du luu vao B

Trang 3

MOV R2,A ;va luu vao R2 MOV A,B

MOV R3,A

den nhan loop neu R7#0

hieuchinh:

MOV A,R3 MOV B,#10 DIV AB ADD A,R2 MOV R2,A ĐỀ25

;tim so lan lap cua 1 byte cho truoc trong B tim trong n byte bo nho

; R1= dia chi dau R2=do dai

mov R7,#0

lap:

mov A,@R1

cjne A,B,tiep

inc R7

tiep:

djnz R2,lap

here: sjmp here

END

ĐỀ 24

;tao 10 xung, tan so bat ki phat ra tu p0.0 p0.1

; xung chi phat ra khi p1.1=0

mov R7,#10

setb P1.1

mov P0,#00h

loop:

mov R6,250 ; tao delay

wait: jb P1.1,wait

cpl P0.0

cpl P0.1

delay: djnz R6,delay ;cau lenh het 2us =>delay 500us

cpl P0.0

cpl P0.1

djnz R7,loop

END

ĐỀ 23

;viet chuong trinh xoa n byte trong bo nho ngoai

;dia chi bat dau tu 8000H, n<256 co the dung bo dem R0-R7 8bit

n equ 50

Trang 4

mov dptr,#8000h

mov R7,#n

mov A,#00h

lap:

movx @dptr,A

inc dptr

djnz R7,lap

ret

END

;viet chuong trinh xoa n byte trong bo nho ngoai

;dia chi bat dau tu 8000H, 256<n<65536 can bo dem 16 bit ta phoi hop 2 thanh ghi 8 bit

;n>65536 ta phoi hop nhieu thanh ghi 8 bit

n equ 510

mov dptr,#8000h

mov R6,#2

lapngoai:

mov R7,#255

laptrong:

mov A,#0

movx @dptr,A

inc dptr

djnz R7,laptrong

djnz R6,lapngoai

ret

END

ĐỀ 22

;viet chuong trinh con doi n so BCD trong bo nho ngoai tu dia chi 4000H sang 2n byte dang ASCII

;cat tu dia chi 6000H

;45->34 35

n equ 20

mov R7,#n

mov R0,#10h

mov dptr,#4000h

lap:

movx A,@dptr ;Luu gia tri ma DPTR tro toi vao A

mov @R0,A

movx A,@dptr

swap A

anl A,#0fh ;xoa nua thap

mov @R0,A

inc dptr

inc R0

Trang 5

djnz R7,lap

mov dptr,#6000h ;tro den #6000 de luu cac so dang ASCII

lap2:

dec R0

mov A,@R0 ;Luu lan luot cac so ASCII vao @DPTR Tu so thu

n > 1

movx @dptr,A

inc dptr

CJNE R0,#10,lap2

END

ĐỀ 21

;viet chuong trinh doc 16byte tu adc, cat vao bo nho bat dau boi R0

;doc so lieu khi bit 0 cua thanh ghi trang thai ADC_status =1

;bit phai xoa bang phan mem

;coi p0 la port in

;chan wr(p2.0) noi voi soc, rd(p2.1) noi voi OE, cs(p2.2), int(p2.3) voi EOC

mov r7,#16

lap:

clr P2.1

setb p2.0

NOP

NOP

clr p2.0 ;dung chuyen doi

;kiem tra suon len cua EOC

wait0: jb p2.3,wait0 ;doi EOC dat tich cuc thap

wait1: jnb p2.3,wait1 ;doi EOC dat tich cuc cao

setb p2.1 ;cho phep doc tu ADC

NOP

NOP

mov @R0,P0

NOP

inc R0

clr P2.1 ; dung doc ADC

djnz R7,lap

ĐỀ 20

;cong 10 so BCD, ket qua o dang ASCII

;input: R1 dia chi dau, R3 do dai, output:

sumhi equ 59h ; dia chi o nho

sumlo equ 60h

mov R0,#30h

mov R3,#10

clr C

mov A,#0

mov sumhi,#30h ;noi dung o nho

lap:

Trang 6

add A,@R1

da A

jnc khongnho

inc sumhi

khongnho:

inc R1

djnz R3,lap

mov sumlo,A

;hieu chinh ascii sumlo o bai 9

ĐỀ 19

;dao vi tri 2 nua byte cua n o nho tro boi DPTR,R3=n

;thanh ghi thay doi: khong

push Acc

push 3

push dph

push dpl

clr A

lap:

movx A,@dptr

swap A

movx @dptr,A

inc dptr

djnz R3,lap

pop dpl

pop dph

pop 3

pop Acc

ret

END

ĐỀ 18

;ta0 byte checksum trong bo nho(n<65536) bang add cac byte

;dptr-> o nho, R2(H) R3(L): do dai sau

;output: byte checksum trong A

;thanh ghi thay doi: khong

tao_checksum:

push 1

push 2

push 3

push dph

push dpl

push Acc

mov R1,#0

lap:

movx A,@dptr

add A,R1

mov R1,A

inc dptr

Trang 7

dec R3

cjne R3,#0FFh,jump ;giam R2 neu R3 giam tu 00h xuong 0FFh

dec R2

jump:

cjne R2,#0,lap

cjne R3,#0,lap

pop Acc

pop dpl

pop dph

pop 3

pop 2

pop 1

END

ĐỀ 17

;doc 10 byte tu p1 cua mcs-51 theo che do doi thoai

;p0.1=ibf,p0.2=stb, so lieu doc duoc cat vao bo nho tro boi DPTR

setb P0.2

mov dptr,#9000h

mov R7,#10

lap:

jb p0.1,lap

mov A,P1

movx @DPTR,A

clr P0.2

setb P0.2

inc dptr

djnz R7,lap

END

ĐỀ16

; viet chuong trinh mcs-51 nhan 1 chuoi ki tu tu cong noi tiep bat dau ki tu #STX,ket thuc la

#EOT

;cat vao bo nho tro boi dptr

;kiem tra tinh san sang cua so lieu

mov TMOD,#20h ; chon timer 1, che do 2, tao baudrate

setb TCON.6

mov SCON,#50h ; chon mode 2, cho phep thu

STX equ 30h

EOT equ 3Fh

mov SBUF,#STX

wait:

jnb RI,wait ;cho co RI len 1 khi bo dem bao day

mov A,SBUF ;dua du lieu tu bo dem sang A

movx @dptr,A

inc dptr

Trang 8

cjne A,#EOT,wait

here:

sjmp here

END

ĐỀ 15

;dieu khien timer 0 tao ngat de tao xung vuong 50Hz tai bit P1.5

;thach anh tan so 12Mhz => tan so timer 1Mhz

; so nhip dem trong thoi gian muc cao la 10000 => dung mode 1 dem 16 bit

;gia tri nap vao thanh ghi là 65535-10000=55536D=D8F0h

mov tmod,#02h ; chon timer 0, che do 1

setb p1.5

lap:

mov tl0,#0f0h

mov th0,#0d8h

setb tr0

wait: jnb tf0,wait

clr tf0 clr tr0 cpl p1.5 sjmp lap END

ĐỀ 14

;tim dia chi offset cua 1 so 1 byte(trong B) cho truoc trong mien nho dia chi 1000->1200

;truong hop khong tim thay, tim thay nhieu so

;chua debug duoc

mov dptr,#1000h

mov R0,#0 ;dem so bien tim thay

mov R1,#20h ;luu gia tri vi tri cua bien tim thay

mov R7,#0 ;la bien dem

lap:

movx A,@dptr

xrl A,B

cjne A,#0,continue ; nhay den nhan neu k trung

inc R0

mov A,dph

mov @R1,A

inc R1

mov A,dpl

mov@R1,A

inc R1

continue:

inc R7

inc dptr

cjne R7,#200,lap

END

ĐỀ 13

Trang 9

; viet chuong trinh dieu khien cong p2 cua mcs-51 thanh cong ra doi thoai

; p1.0=OBF(tich cuc cao),p1.1=ack(thap)

;gui 10 byte trong bo nho dia chi dau trong dptr ra cong theo che do bat tay

setb p1.1

clr p1.0

mov r7,#10

lap:

movx A,@dptr

mov P2,A

wait: jb p1.1,wait

wait2: jnb p1.0,wait2

inc dptr

djnz r7,lap

end

ĐỀ 12

; nhan 100 byte so lieu tu cong noi tiep mcs-51

;cong duoc dinh nghia san che do, kiem tra tinh san sang cua cong

;so lieu cat trong dem dia chi dau trong dptr

;p0 là cong noi tiep, so lieu san sang khi p2.0=1 doc xong gui tin hieu tra loi bang 1 xung am qua p2.1

setb p2.1

mov R7,#100

lap:

doi: jnb p2.0,doi

clr p2.0

mov A,p0

movx @dptr,A

clr P2.1 ;gui tin hieu ack bao nhan xong giu lieu

setb P2.1

inc dptr

djnz R7,lap

END

ĐỀ 11

; viet chuong trinh doi n ky tu thanh chu hoa(neu dang o chu thuong)

;co dia chi dau trong R0, do dai là R7

;chu hoa là 41H-5a,chu thuong là 61H-7a

lap:

mov A,@R0 subb A,#061h

;anl A,#10000000b

;cjne A,#0,chutieptheo ;nhay neu co cy k phat len

jb Acc.7,chutieptheo subb a,#20h

Trang 10

mov @R0,a chutieptheo:

inc R0 djnz r7,lap END

ĐỀ 10

ĐỀ 09

;cong 2 so 5 byte dàn ASCII ket qua dang ASCII luu vao so thu 1

; truong hop ket qua 6 byte ?

; byte LSB so thu 1 tai R0, LSB so thu 2 tai R1

;giong trong danh may

sobyte equ 5

mov R0,#20h

mov R1,#30h

mov R7,#sobyte

clr C

loop1:

mov A,@R0

swap A

anl A,#0f0h

mov @R0,A

mov A,@R1

swap A

anl A,#0f0h

mov @R1,A

jnc khongnho

add A,#10h

khongnho:

add A,@R0

da A

swap A

mov @R0,A

inc R0

inc R1

djnz R7,loop1

mov R0,#20h ;doi sang ma ascii

mov R7,#sobyte

loop2:

mov A,@R0

add A,#30H

mov@R0,A

inc R0

djnz R7,loop2

ĐỀ 08

; viet dieu khien timer 0 tao thanh mach chia tan so che do counter dau ra bit p1.0

;f=f/n => cho timer dem den n/2 thi cpl p1.0

; vi du chia 30 : dem tu fff1h ->ffffh

Trang 11

;lowbyte equ F1h

;highbyte equ FFh

start:

setb p1.0

;mov IE,#10000010b ; cho phep ngat timer 0

mov tmod,#00000101b ; timer 0, che do counter mode 1 auto reload mov tl0,#0F1h

mov th0,#0FFh

setb tr0

loop:

JNB TF0,loop

clr TF0

CPL P1.0

SJMP loop

END

ĐỀ 07

; dich 1 so n byte di m vi tri theo cach cua lenh RR

;R0 dia chi dau byte thap 20h->22h

; bit thap nhat cua byte thap duoc dich vao bit cao nhat cua byte cao

;gia su co 3 byte, quay 10 lan

mov R7,#10h

dich:

mov R0,#22h ;nhap dia chi byte thap

mov a,@R0

rrc a ;lay co nho cy

mov R0,#20h ; lay byte cao

mov R6,#3

lap:

mov a,@R0

rrc a

mov @R0,a

dec R0

djnz R6,lap

djnz R7,dich

here:

sjmp here

ĐỀ 06

; viet chuong trinh con doi 2n chu so thap phna dang ascii thanh n byte dang BCD

;input R0, output: R1 byte lsb la byte cao

; BCD 0->9 ascii:30->39

mov r7,#20

lap:

mov A,@R0

anl A,#0fh ;xoa bo chu so 3 nam dau tien

mov @R1,A

dec R0

mov A,@R0

Trang 12

anl A,#0fh ; xoa bo chu so 3 tiep theo

swap A

add A,@R1

mov @R1,A

dec R1

dec R0

djnz R7,lap

END

ĐỀ 05

;viet chuong trinh tru 2 so 5 byte trong bo nho, ket qua cat vao so bi tru

;R0: dia chi dau so bi tru, R1: so tru

; thay doi:PSW

clr C

push Acc

mov R7,#5

lap:

mov A,@R0

subb A,@R1

dec R0

dec R1

djnz R7,lap

pop Acc

END

ĐỀ 04

; viet chuong trinh con cong 2 so BCD n chu so trong bo nho ket qua cat trong so hang dau

; luu y truong hop co nho, gia su n=20

;dia chi so dau trong R0, so thu 2 trong R1, byte cao la LSB

DC_so1 EQU 13h

DC_so2 EQU 23h

sobyte EQU 4

CongNbyte:

hang 1

MOV r1,#DC_so2 ;r1 tro toi byte thap nhat cua so hang 2

clr C loop:

Trang 13

nhanh neu R7=#0

here:

SJMPhere

ĐỀ 03

;dem cac so duong trong mien nho ngoai tu 1000H->2000H so dem trong R2 va R3 ( R3 la byte cao)

;so duong la so co bit D7=0

mov dptr,#1000h

mov R2,#0

mov R3,#0

mov R0,#4 ;nap bo dem

loop1:

mov R1,#250

loop2:

movx A,@dptr

anl A,#10000000b

cjne a,#00h,sotieptheo

inc R2

jnc sotieptheo

inc R3

sotieptheo:

inc dptr

djnz R0,loop1

djnz R1,loop2

END

ĐỀ 02

;viet chuong trinh con dem cac so am trong mien nho ngoai tro boi DPTR

;do dai trong R3, so dem trong R4

; so am la D7=1

mov R4,#0

loop:

movx A,@dptr

anl A,#10000000b

cjne A,#10000000b,sotieptheo

inc R4

sotieptheo:

inc dptr

djnz R3,loop

end

ĐỀ 01

;viet chuong trinh dem 100 xung tu bit P0.6

; bat dau dem khi bit P0.5 chuyen tu 0 len 1

;dem xong dat lai bit P0.7 bang 1

clr p0.7

clr p0.5

Trang 14

mov tmod,#00000100 ;timer 0 mode 0: Counter che do 8 bit mov ie,#10000010 ;cho phep ngat Timer0

mov TH0,#0ffh

mov TL0,#09bh

wait: jnb p0.5,wait

setb tr0

loop:

jnb TF0,loop

clr TF0

setb P0.7

Ngày đăng: 11/01/2016, 23:19

TỪ KHÓA LIÊN QUAN

w