单片机实验报告.docx

上传人:b****8 文档编号:9979320 上传时间:2023-02-07 格式:DOCX 页数:53 大小:951.78KB
下载 相关 举报
单片机实验报告.docx_第1页
第1页 / 共53页
单片机实验报告.docx_第2页
第2页 / 共53页
单片机实验报告.docx_第3页
第3页 / 共53页
单片机实验报告.docx_第4页
第4页 / 共53页
单片机实验报告.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

单片机实验报告.docx

《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(53页珍藏版)》请在冰豆网上搜索。

单片机实验报告.docx

单片机实验报告

 

单片机实验报告

 

学院:

机电工程学院年级:

2011

专业:

机械电子工程老师:

叶萍

姓名:

王宇学号:

1129401010

 

单片机实验报告

2014.4.3(实验一)

(1、)一个发光二极管闪烁

(2、)八个发光二极管轮流闪烁

实验程序:

ORG00H

again:

setbp1.0

lcalldelay

clrp1.0

lcalldelay

setbp1.0

lcalldelay

setbp1.1

lcalldelay

clrp1.1

lcalldelay

setbp1.1

lcalldelay

setbp1.2

lcalldelay

clrp1.2

lcalldelay

setbp1.2

lcalldelay

setbp1.3

lcalldelay

clrp1.3

lcalldelay

setbp1.3

lcalldelay

setbp1.4

lcalldelay

clrp1.4

lcalldelay

setbp1.4

lcalldelay

setbp1.5

lcalldelay

clrp1.5

lcalldelay

setbp1.5

lcalldelay

setbp1.6

lcalldelay

clrp1.6

lcalldelay

setbp1.6

lcalldelay

setbp1.7

lcalldelay

clrp1.7

lcalldelay

setbp1.7

lcalldelay

ljmpagain

DELAY:

MOVR3,#200

XX1:

MOVR2,#100

XX:

NOP

djnzR2,xx

djnzR3,xx1

ret

end

这次实验是对这两个软件界面的熟悉,熟练的找到各个元器件。

程序是先控制一个灯的闪烁,控制接口端高电平、低电平来回切换,并附加延时程序。

八个灯时,我就想到了控制p1.0~p1.7接口的高低电平,来控制着八个灯的来回闪烁。

2014.4.3(实验二)

(1、)显示0~9

实验程序:

org0000H

movR2,#0

xx:

movA,R2

movdptr,#tab

movcA,@A+dptr

movp0,A

lcalldelay

IncR2

cjneR2,#10,xx

movR2,#0

sjmpxx

ret

delay:

movR3,#200

xx1:

movR4,#200

xx2:

nop

nop

djnzR4,xx2

djnzR3,xx1

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

(2、)显示00~99

实验程序:

org00H

mov40H,#0

xx:

lcallbcd

movdptr,#tab

movA,41H

movcA,@A+dptr

movp0,A

movA,42H

movcA,@A+dptr

movp2,A

lcalldelay

Inc40H

movA,40H

cjneA,#100,xx

mov40H,#0

sjmpxx

delay:

movR3,#200

xx1:

movR4,#200

xx2:

nop

nop

djnzR4,xx2

djnzR3,xx1

ret

bcd:

movA,40H

movB,#10

divAB

mov41H,A

mov42H,B

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

这两个主要是基于第一次的实验基础上,实现同一时间多个数码管的亮暗,首先要找出共阴极数码管显示数字需要哪几个接口高电平、低电平。

然后控制其来回闪烁。

2014.4.17(实验三)数码管的动态显示

(1、)显示一个既定的两位数(65)

实验程序:

org000h

xx:

movp3,#0ffh

clrp3.0

movp2,#6dh

calldelay

movp3,#0ffh

clrp3.1

movp2,#7dh

calldelay

sjmpxx

DELAY:

MOVR3,#100

XX1:

MOVR2,#100

XX2:

NOP

djnzR2,xx2

djnzR3,xx1

ret

end

(2、)显示00~99

实验程序:

org00h

xx:

movA,50h

movB,#10

divAB

mov51h,A

mov52h,B

lcalldisplay

inc50h

mova,50h

cjnea,#100,xx

mov50H,#0

sjmpxx

display:

movp3,#0ffh

clrp3.0

movA,52H

movdptr,#tab

movcA,@A+dptr

movp2,A

calldelay

movp3,#0ffh

clrp3.1

mova,51H

movdptr,#tab

movca,@a+dptr

movp2,a

calldelay

delay:

MOVR3,#200

XX1:

MOVR2,#100

XX2:

NOP

djnzR2,xx2

djnzR3,xx1

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

这个主要是p2端数控,p3端位控。

在极短的时间里切换器显示位和数字,从而显示多位数字。

(3)

org0000h

xx:

movA,50h

movB,#100

divAB

mov51h,A

mov52h,B

movA,52h

movB,#10

divAB

mov52h,A

mov53h,B

lcalldisplay

inc50h

mova,50h

cjnea,#256,xx

mov50H,#0

sjmpxx

display:

movp3,#0ffh

clrp3.0

movA,51H

movdptr,#tab

movcA,@A+dptr

movp2,A

calldelay

movp3,#0ffh

clrp3.1

mova,52H

movdptr,#tab

movca,@a+dptr

movp2,a

calldelay

movp3,#0ffh

clrp3.2

mova,53H

movdptr,#tab

movca,@a+dptr

movp2,a

calldelay

delay:

MOVR3,#100

XX1:

MOVR2,#100

XX2:

NOP

djnzR2,xx2

djnzR3,xx1

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

实验四

(1)

org00h

xx:

movA,50h

movB,#10

divAB

mov51h,A

mov52h,B

lcalldelay2

jnbp3.6,next

sjmpxx

next:

lcalldelay1

jbp3.6,next

jnbp3.6,$

inc50h

mova,50h

cjnea,#100,xx

mov50H,#0

display:

movp3,#0ffh

clrp3.0

movA,52H

movdptr,#tab

movcA,@A+dptr

movp2,A

calldelay1

movp3,#0ffh

clrp3.1

mova,51H

movdptr,#tab

movca,@a+dptr

movp2,a

calldelay1

ret

delay1:

MOVR3,#200

XX1:

MOVR2,#20

XX2:

nop

djnzR2,xx2

djnzR3,xx1

ret

delay2:

movR5,#30

del1:

movR4,#20

del2:

nop

djnzR4,del2

lcalldisplay

djnzR5,del1

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

(2)

org00h

xx:

movA,50h

movB,#10

divAB

mov51h,A

mov52h,B

lcalldelay2

inc50h

mova,50h

cjnea,#100,xx

mov50H,#0

sjmpxx

display:

movp3,#0ffh

clrp3.0

movA,52H

movdptr,#tab

movcA,@A+dptr

movp2,A

calldelay1

movp3,#0ffh

clrp3.1

mova,51H

movdptr,#tab

movca,@a+dptr

movp2,a

calldelay1

ret

delay1:

MOVR3,#200

XX1:

MOVR2,#20

XX2:

nop

djnzR2,xx2

djnzR3,xx1

ret

delay2:

movR5,#30

del1:

movR4,#20

del2:

nop

djnzR4,del2

lcalldisplay

djnzR5,del1

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

end

实验五

(1)

org00h

ljmpstart

org03h

ljmpextt

org0030h

start:

movie,#81h

movtcon,#01h

xx:

ljmpxx

extt:

cplp1.0

movc,p1.0

cplc

movp1.4,c

cplp1.7

reti

end

(2)

org00h

ljmpstart

org0003h

ljmpinterrupt1

org0013h

ljmpinterrupt2

org0030h

main:

movR2,#0

xx:

movA,R2

movdptr,#tab

movcA,@A+dptr

movp0,A

lcalldelay

IncR2

cjneR2,#10,xx

movR2,#0

sjmpxx

ret

tab:

db3fH

db06H

db5bH

db4fH

db66H

db6dH

db7dH

db07H

db7fH

db6fH

delay:

movR3,#200

xx1:

movR4,#200

xx2:

nop

nop

djnzR4,xx2

djnzR3,xx1

ret

start:

movip,#00000001b

movie,#85h

movtcon,#05h

ljmpmain

aa:

ljmpaa

interrupt2:

pushacc

pushpsw

pushdpl

pushdph

again:

setbp1.0

lcalldelay

clrp1.0

lcalldelay

setbp1.0

lcalldelay

setbp1.1

lcalldelay

clrp1.1

lcalldelay

setbp1.1

lcalldelay

setbp1.2

lcalldelay

clrp1.2

lcalldelay

setbp1.2

lcalldelay

setbp1.3

lcalldelay

clrp1.3

lcalldelay

setbp1.3

lcalldelay

setbp1.4

lcalldelay

clrp1.4

lcalldelay

setbp1.4

lcalldelay

setbp1.5

lcalldelay

clrp1.5

lcalldelay

setbp1.5

lcalldelay

setbp1.6

lcalldelay

clrp1.6

lcalldelay

setbp1.6

lcalldelay

setbp1.7

lcalldelay

clrp1.7

lcalldelay

setbp1.7

lcalldelay

popdph

popdpl

poppsw

popacc

reti

interrupt1:

movp0,#01111101b

lcalldelay

reti

 

实验六

流程图

SECONDEQU30H

TCOUNTEQU31H

KCOUNTEQU32H

KEYBITP3.7

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVDPTR,#TABLE

MOVP0,#3FH

MOVP2,#3FH;开始,数码管显示"00"

MOVSECOND,#00H

MOVTCOUNT,#00H

MOVKCOUNT,#00H

MOVTMOD,#01H;定时器0工作在方式1

MOVTL0,#(65536-50000)/256

MOVTH0,#(65536-50000)MOD256

K1:

JBKEY,$;等待按键

LCALLDELAY

JBKEY,$

MOVA,KCOUNT

CJNEA,#00H,K2;判断按键次数

SETBTR0;第1次按键,启动定时器

MOVIE,#82H

JNBKEY,$

INCKCOUNT;按键抬起,按键次数值加1

LJMPK1

K2:

CJNEA,#01H,K3

CLRTR0;第2次按键,关闭定时器

MOVIE,#00H

JNBKEY,$

INCKCOUNT;按键抬起,按键次数值加1

LJMPK1

K3:

CJNEA,#02H,K1;第3次按键,返回初始状态

JNBKEY,$

LJMPSTART

INT_T0:

MOVTH0,#(65536-50000)/256

MOVTL0,#(65536-50000)MOD256

INCTCOUNT

MOVA,TCOUNT

CJNEA,#2,I2;是否计够0.1秒

MOVTCOUNT,#00H

INCSECOND

MOVA,SECOND

CJNEA,#100,I1;是否计够10秒

MOVSECOND,#00H

I1:

MOVA,SECOND

MOVB,#10

DIVAB

MOVCA,@A+DPTR;显示时间

MOVP0,A

MOVA,B

MOVCA,@A+DPTR

MOVP2,A

I2:

RETI

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DELAY:

MOVR6,#20

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

END

 

实验七

流程图

ledbufequ30h

hourequ40h

minuteequ41h

secondequ42h

org00h

ljmpstart

org000bh

ljmptoint

org0030h

start:

movtmod,#01h

movth0,#0b0h

movtl0,#3ch

movie,#10000010b

movhour,#0

movminute,#0

movsecond,#0

movR4,#0

movdptr,#ledmap

setbtr0

mloop:

movA,hour

movB,#10

divAB

movcA,@A+dptr

movledbuf,A

movA,B

movcA,@A+dptr

movledbuf+1,A

movledbuf+2,#40h

movA,minute

movB,#10

divAB

movcA,@A+dptr

movledbuf+3,A

movA,B

movcA,@A+dptr

movledbuf+4,A

movledbuf+5,#40h

movA,second

movB,#10

divAB

movcA,@A+dptr

movledbuf+6,A

movA,B

movcA,@A+dptr

movledbuf+7,A

calldisplayed

ljmpmloop

toint:

pushpsw

pushacc

incR4

cjneR4,#20,exit

movR4,#0

incsecond

movA,second

cjneA,#60,exit

movsecond,#0

incminute

movA,minute

cjneA,#60,exit

movminute,#0

inchour

movA,hour

cjneA,#24,exit

movhour,#0

exit:

movth0,#3ch

movtl0,#0b0h

popacc

poppsw

reti

delay:

movR7,#0ffh

del1:

nop

djnzR7,del1

djnzR6,del1

ret

ledmap:

db3fh,06h,5bh,4fh

db66h,6dh,7dh,07h

db7fh,6fh,77h,7ch

db39h,5eh,79h,71h

displayed:

movR0,#ledbuf

movR1,#8

movR2,#01111111b

loop:

movA,#0

movp0,A

movA,@R0

movp0,A

movA,R2

movp3,A

movR6,#01h

calldelay

movA,R2

RRA

movR2,A

incR0

djnzR1,loop

ret

end

 

实验八

(1)

流程图与试验七类似

ledbufequ30h

hourequ40h

minuteequ41h

secondequ42h

org00h

ljmpstart

org000bh

ljmptoint

org001bh

ljmptlint

org0030h

start:

movtmod,#11h

movtl0,#0b0h

movth0,#3ch

movth1,#0d8h

movtl1,#0f0h

movie,#10001010b

movhour,#0

movminute,#0

movsecond,#0

movR4,#0

movdptr,#ledmap

setbtr0

setbtr1

mloop:

movA,hour

movB,#10

divAB

movcA,@A+dptr

movledbuf,A

movA,B

movcA,@A+dptr

movledbuf+1,A

movledbuf+2,#40h

movA,minute

movB,#10

divAB

movcA,@A+dptr

movledbuf+3,A

movA,B

movcA,@A+dptr

movledbuf+4,A

movledbuf+5,#40h

movA,second

movB,#10

divAB

movcA,@A+dptr

movledbuf+6,A

movA,B

movcA,@A+dptr

movledbuf+7,A

ljmpmloop

toint:

pushpsw

pushacc

movth0,#3ch

movtl0,#0b0h

incR4

cjneR4,#20,exit

movR4,#0

incsecond

movA,second

cjneA,#60,exit

movsecond,#0

incminute

movA,minute

cjneA,#60,exit

movminute,#0

inchour

movA,hour

cjneA,#24,exit

movhour,#0

exit:

popacc

poppsw

reti

delay:

movR7,#0ffh

del1:

nop

djnzR7,del1

djnzR6,del1

ret

ledmap:

db3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1