单片机复习题解答+平时上课习题已通过测试.docx

上传人:b****6 文档编号:13746587 上传时间:2023-06-17 格式:DOCX 页数:48 大小:32.17KB
下载 相关 举报
单片机复习题解答+平时上课习题已通过测试.docx_第1页
第1页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第2页
第2页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第3页
第3页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第4页
第4页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第5页
第5页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第6页
第6页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第7页
第7页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第8页
第8页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第9页
第9页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第10页
第10页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第11页
第11页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第12页
第12页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第13页
第13页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第14页
第14页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第15页
第15页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第16页
第16页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第17页
第17页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第18页
第18页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第19页
第19页 / 共48页
单片机复习题解答+平时上课习题已通过测试.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机复习题解答+平时上课习题已通过测试.docx

《单片机复习题解答+平时上课习题已通过测试.docx》由会员分享,可在线阅读,更多相关《单片机复习题解答+平时上课习题已通过测试.docx(48页珍藏版)》请在冰点文库上搜索。

单片机复习题解答+平时上课习题已通过测试.docx

单片机复习题解答+平时上课习题已通过测试

单片机综合试验总复习题

1、程序在运行时出现下面提示,要消除提示框应如何操作?

 

按复位键,再按PCDBG键,点OK或者YES

 

2、IN6接模拟量,Y4接地址线,写出启动0809进行A/D转换及读入数据的指令

MOVA,#6;送通道数

MOVDPTR,#0C000H;0809地址送数据指针

MOVX@DPTR,A;启动AD转换

ACALLDELAY;延时

MOVXA,@DPTR;读转换值

 

3、欲将8255PA、PB口设为输入(方式0),PC口设为输出,写出相关指令。

(1001001092H)8255的初始化,参考实验指导书17页命令口控制字

MOVDPTR,#0FF2BH;8255命令口地址

MOVA,#92H

MOVX@DPTR,A

 

4、已知0809参考电压为5V,输入的模拟电压为3.5V,经A/D转换后,对应的数字量是多少?

255*3.5/5=178.5=179

B3H

5、已知00H~FFH对应的0832输出模拟量是-5V~+5V,若要输出2.5V,写出相应指令。

(0832片选端接Y4)。

255*0.75=191.25=192

C0

MOVDPTR,0C000H;0832地址

MOVA,#0C0H;三角波初值

MOVX@DPTR,A;输出

 

6、用定时/计数器1延时277.1ms,写出其初始化程序。

(65536-定时常数)*2us=27.71ms定时常数=51681C9E1

T1T0

10000000

因此TOMD置10H

 

MOVTMOD,#10H

MOVTH1,#0C9H

MOVTL1,#0E1H

MOVR0,#10

SETBEA

SETBET1

SETBTR1

7、编写出软件延时270ms的延时子程序(6mhz晶振)

DELAY:

MOVR5,#27

LOP0:

MOVR6,#10

LOP1:

MOVR7,250

DJNZR7,$

DJNZR6,LP1

DJNZR5,LP0

RET

8、计算下列延时子程序的延时时间。

DELAY:

MOVR0,#01

DEL:

NOP1

NOP1

DJNZR0,DEL2循环256次

RET1

(1+256*(1+1+2)+2)*2us=2054us

 

9、欲在数码管上显示“-5”,写出相应程序指令。

要点:

在扫描最后的表中加个负号显示对应的编码0BFH

程序:

ORG0000H

AJMPSTART

ORG0030H

START:

MOV10H,#5

MOV11H,#16

LOOP:

MOVR0,#10H

MOVR1,#1

MOVR2,#2

ACALLDISP

AJMPLOOP

DISP:

MOVDPTR,#DISPC

MOVA,@R0

MOVCA,@A+DPTR

MOVDPTR,#0FF22H

MOVX@DPTR,A

MOVDPTR,#0FF21H

MOVA,R1

MOVX@DPTR,A

RLA

MOVR1,A

MOVR7,#2

ACALLDELAY

INCR0

DJNZR2,DISP

RET

DELAY:

MOVR6,#249

DJNZR6,$

DJNZR7,DELAY

RET

DISPC:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH,0BFH

END

10、每0.331s读一次开关,当开关K=0时在数码管上显示片外7003H单元的数据,K=1时显示片内10H单元的数据。

用定时器定时。

0.331s=331ms=33.1ms*10(65536-定时常数)*2us=33.1ms定时常数48986BF5A

接线方法:

P1.0接K(没要求的话随便哪个开关)

程序开头可给7003H和10H单元存入数据以便测试

参考赋值程序:

MOVA,#34H

MOVDPTR,#7003H

MOVX@DPTR,A

MOVA,#56H

MOV10H,A

程序:

ORG0000H

AJMPSTART

ORG001BH

AJMPIN_T1

ORG0030H

START:

MOVSP,#60H

MOVTMOD,#10H

MOVTH1,#0BFH

MOVTL1,#5AH

MOVR3,#10

SETBET1

SETBEA

SETBTR1

LOOP:

MOVR0,#20H

MOVR1,#1

MOVR2,#2

ACALLDISP

AJMPLOOP

IN_T1:

PUSHDPH

PUSHDPL

PUSHACC

MOVTH1,#0BFH

MOVTL1,#5AH

DJNZR3,LAST

MOVR3,#10

JBP1.0,FISH;等于1转移至FISH,否则往下走

MOVDPTR,#7003H

MOVXA,@DPTR

AJMPNEXT

FISH:

MOVA,10H

NEXT:

MOVB,#10H

DIVAB

MOV20H,B

MOV21H,A

LAST:

POPACC

POPDPL

POPDPH

RETI

DISP:

MOVDPTR,#DISPC

MOVA,@R0

MOVCA,@A+DPTR

MOVDPTR,#0FF22H

MOVX@DPTR,A

MOVDPTR,#0FF21H

MOVA,R1

MOVX@DPTR,A

RLA

MOVR1,A

MOVR7,#2

ACALLDELAY

INCR0

DJNZR2,DISP

RET

DELAY:

MOVR6,#249

DJNZR6,$

DJNZR7,DELAY

RET

DISPC:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

11、在数码管上显示片内10H、11H、12H这三个单元中最大的数。

接线方法:

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序开头可给10H,11H,12H单元存入数值以便测试

参考赋值程序:

MOVA,#50H

MOV10H,A

MOVA,#51H

MOV11H,A

MOVA,#52H

MOV12H,A

程序:

ORG0000H

AJMPSTART

ORG0030H

START:

MOVSP,#60H

MOVSCON,#00H

MOVA,#50H

MOV10H,A

MOVA,#51H

MOV11H,A

MOVA,#52H

MOV12H,A

MOVA,10H

SUBBA,11H

JCBIG

MOVR1,10H

AJMPBIGER

BIG:

MOVR1,11H

BIGER:

MOVA,R1

SUBBA,12H

JCFISH

MOVA,R1

MOVB,#10H

DIVAB

MOV20H,B

MOV21H,A

MOVDPTR,#TAB

MOVA,20H

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

MOVR0,#5

DJNZR0,$

MOVA,21H

MOVCA,@A+DPTR

MOVSBUF,A

AJMPEXIT

FISH:

MOVA,12H

MOVB,#10H

DIVAB

MOV20H,B

MOV21H,A

MOVDPTR,#TAB

MOVA,20H

MOVCA,@A+DPTR

MOVSBUF,A

MOVR0,#5

DJNZR0,$

MOVA,21H

MOVCA,@A+DPTR

MOVSBUF,A

EXIT:

AJMP$

TAB:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

END

12、每147ms检测一次片内30H、31H单元中的数,将这两个单元中较大的值在数码管上显示出来(定时器定时)。

(65536-定时常数)*2us=14.7ms定时常数58186E34AH

程序中给已给30H单元存55H,31H存56H,便于测试

接线方法:

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG001BH

AJMPIN_T1

ORG0030H

START:

MOVA,#55H

MOV30H,A

MOVA,#56H

MOV31H,A

MOVSCON,#00;

MOVTMOD,#10H

MOVTH1,#0E3H

MOVTL1,#4AH

MOVR0,#10

SETBET1

SETBEA

SETBTR1

AJMP$

IN_T1:

PUSHACC

MOVTH1,#0E3H

MOVTL1,#4AH

DJNZR0,EXIT

MOVR0,#10

CLRC

MOVDPTR,#CDATE

MOVA,30H

SUBBA,31H

JCLOOP;进位为1转移

MOVA,30H

AJMPFISH

LOOP:

MOVA,31H

FISH:

MOVB,A

ANLA,#0FH

MOVCA,@A+DPTR

MOVSBUF,A

MOVR1,#5

DJNZR1,$

EXIT:

POPACC

RETI

CDATE:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

END

13、在数码管上按下列规律循环显示H,A,2,B,3,C,L每个字符显示770.3mS,用定时器定时。

(65536-定时常数)*2us=77.03ms定时常数27021698D

若显示字符顺序改变,可更改DB后面的值,参考实验指导书24页求显示码

接线方法:

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPINT_T0

ORG0030H

START:

MOVSP,#60

MOVTMOD,#10H

MOVTH0,#69H

MOVTL0,#8DH

MOVR0,#0H

MOVR1,#30

MOVSCON,#00H

SETBTR0

SETBET0

SETBEA

SJMP$

INT_T0:

MOVTH0,#69H

MOVTL0,#8DH

DJNZR1,EXIT

MOVR1,#30

MOVDPTR,#CDATA

MOVA,R0

MOVCA,@A+DPTR

MOVSBUF,A

INCR0

CJNER0,#7,EXIT

MOVR0,#0H

EXIT:

RETI

CDATA:

DB6EH,0EEH,0DAH,3EH,0F2H,9CH,1CH

END

14、8255PC口接8个开关,每0.3秒读一次开关状态,并将其显示在数码管上。

(用定时器定时)

接线方法:

PC口PC7-PC0接开关K1-7

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPIN_T0

ORG0030H

START:

MOVDPTR,#0FF2BH

MOVA,#89H

MOVX@DPTR,A

MOVTMOD,#01H

MOVTH0,#9EH

MOVTL0,#58H

MOVR1,#6

MOVSCON,#0

SETBTR0

SETBET0

SETBEA

SJMP$

IN_T0:

MOVTH0,#9EH

MOVTL0,#58H

DJNZR1,EXIT

MOVR1,#6

MOVDPTR,#0FF2AH;C口地址

MOVXA,@DPTR

MOVB,#10H

DIVAB;拆字也可用ANL指令屏蔽高低四位

MOV10H,B

MOV11H,A

MOVDPTR,#TAB

MOVA,10H

MOVCA,@A+DPTR

MOVSBUF,A

MOVR2,#5

DJNZR2,$

MOVA,11H

MOVCA,@A+DPTR

MOVSBUF,A

EXIT:

RETI

TAB:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

END

15、测T5端7ms的脉冲数,并将其显示在数码管上(4位)。

接线方法:

T5端接P3.4

程序:

ORG0000H

AJMPSTART

ORG001BH

AJMPIN_T1

ORG0030H

START:

MOVTMOD,#15H

MOVTH1,#0F2H

MOVTL1,#54H

MOVTL0,#0

SETBET1

SETBEA

SETBTR1

SETBTR0

LOOP:

MOVR0,#10H

MOVR1,#1

MOVR2,#4

ACALLDISP

AJMPLOOP

IN_T1:

PUSHACC

PUSHB

MOVTH1,#0F2H

MOVTL1,#54H

MOVA,TL0

MOVB,#10H

DIVAB

MOV10H,B

MOV11H,A

MOVA,TH0

MOVB,#10H

DIVAB

MOV12H,B

MOV13H,A;同样,拆字也可用ANL指令屏蔽高低四位,但指令较多

MOVTL0,#0

MOVTH0,#0

POPB

POPACC

RETI

DISP:

MOVDPTR,#DISPC

MOVA,@R0

MOVCA,@A+DPTR

MOVDPTR,#0FF22H

MOVX@DPTR,A

MOVDPTR,#0FF21H

MOVA,R1

MOVX@DPTR,A

RLA

MOVR1,A

MOVR7,#2

ACALLDELAY

INCR0

DJNZR2,DISP

RET

DELAY:

MOVR6,#249

DJNZR6,$

DJNZR7,DELAY

RET

DISPC:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

16、P1.0接K1,试编程实现将拨开关次数显示在数码管上

接线方法:

P1.0接K1

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG0030H

START:

MOVR0,#0

LP1:

MOVDPTR,#CDATA

MOVA,R0

MOVCA,@A+DPTR

MOVSBUF,A

MOVR1,#5

DJNZR1,$

LP:

JNBP1.0,$

ACALLDELAY

JNBP1.0,LP

LP2:

JBP1.0,$

ACALLDELAY

JBP1.0,LP2

INCR0

AJMPLP1

DELAY:

MOVR6,#10

LP3:

MOVR7,#250

DJNZR7,$

DJNZR6,LP3

RET

CDATA:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0B6H,0BEH,0E0H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

END

 

17、试编程使开关K为0时使8个发光二极管按规律1循环发光;开关为1时按规律2循环发光,每个状态显示880ms(定时器定时)。

1、L1--L2--L3--L4--L5--L6--L7--L8

2、L1L8—L2L7—L3L6—L4L5

接线方法:

P1.7-P1.0接LED灯1-8

P3.3接开关K(题目没说明的话任意一个开关都行)

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPIN_T0

ORG0030H

START:

MOVTMOD,#01H

MOVTH0,#54H

MOVTL0,#20H

MOVR0,#10

MOVR1,#0

MOVR2,#0

SETBET0

SETBEA

SETBTR0

AJMP$

LOOP1:

MOVDPTR,#TABL2

MOVA,R2

MOVCA,@A+DPTR

MOVP1,A

INCR2

CJNER2,#4,EXIT

MOVR2,#0

 

IN_T0:

MOVTH0,#54H

MOVTL0,#20H

DJNZR0,EXIT

MOVR0,#10

JBP3.3,LOOP1

LOOP2:

MOVDPTR,#TABL1

MOVA,R1

MOVCA,@A+DPTR

MOVP1,A

INCR1

CJNER1,#8,EXIT

MOVR1,#0

EXIT:

RETI

TABL1:

DB80H,40H,20H,10H,08H,04H,02H,01H

TABL2:

DB81H,42H,24H,18H

END

18、8255PC口接4个开关和4个LED发光二极管,试编程实现每0.5秒读一次开关值,并将开关状态显示到发光二极管LED上,用定时器定时。

10001000上C口入下C口出

88H

接线方法:

PC7-PC4接开关K1-4,PC3-PC0接LED灯1-4

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPIN_T0

ORG0030H

START:

MOVDPTR,#0FF2BH

MOVA,#88H

MOVX@DPTR,A

MOVTMOD,#01H

MOVTH0,#9EH

MOVTL0,#58H

MOVR1,#10

MOVSCON,#0

SETBTR0

SETBET0

SETBEA

AJMP$

IN_T0:

MOVTL0,#58H

MOVTH0,#9EH

DJNZR1,EXIT

MOVR1,#10

MOVDPTR,#0FF2AH

MOVXA,@DPTR

SWAPA

MOVX@DPTR,A

EXIT;RETI

END

19、P1.7~P1.4接开关,每0.5秒读一次开关,并将开关值显示在数码管上。

接线方法:

P1.7~P1.4接开关

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPIN_T0

ORG0030H

START:

MOVTMOD,#01H

MOVTH0,#9EH

MOVTL0,#58H

MOVR1,#10

MOVSCON,#0

SETBTR0

SETBET0

SETBEA

AJMP$

IN_T0:

MOVTL0,#58H

MOVTH0,#9EH

DJNZR1,EXIT

MOVR1,#10

MOVA,P1

MOVB,#10H

DIVAB

MOV20H,B

MOV21H,A

MOVDPTR,#TAB

MOVA,20H

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVSBUF,A

MOVR0,#5

DJNZR0,$

MOVA,21H

MOVCA,@A+DPTR

MOVSBUF,A

EXIT:

RETI

TAB:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

END

20、用定时器定时,设计一个10秒倒计时器,数码管从“10”、“09”、。

显示到“00”为止。

接线方法:

S/P区DATA插孔接BUS3区P3.0,CLK接P3.1

S/P区CLR接本区+5V

程序:

ORG0000H

AJMPSTART

ORG000BH

AJMPINT_T0

ORG0030H

START:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVR0,#10

MOVR1,#9

MOVSCON,#0

MOVDPTR,#TAB

MOVA,#0

MOVCA,@A+DPTR

CLRTI

MOVSBUF,A

JNBTI,$

MOVA,#1

MOVCA,@A+DPTR

MOVSBUF,A

SETBTR0

SETBET0

SETBEA

AJMP$

INT_T0:

MOVTL0,#3CH

MOVTH0,#0B0H

DJNZR0,EXIT

MOVR0,#10

MOVA,R1

MOVB,#10H

DIVAB

MOV10H,B

MOV11H,A

MOVDPTR,#TAB

MOVA,10H

MOVCA,@A+DPTR

MOVSBUF,A

JNBTI,$

MOVA,11H

MOVCA,@A+DPTR

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2