77范文网 - 专业文章范例文档资料分享平台

第四章 汇编语言程序设计(2)

来源:网络收集 时间:2020-06-19 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

INC DPTR XCH A,B MOVX @DPTR,A SJMP OVER IFEND: INC DPTR

DJNZ R2,GO_ON OVER: SJMP OVER

13、设在200H~204H单元中,存放5个压缩BCD码,编程将他们转换成ASCII码,存放到以205H单元为首地址的存储区。 答: MOV R2,#05H MOV R3,#02H MOV R4,#00H MOV R5,#02H MOV R6,#05H CHLP: MOV DPH,R3

MOV DPL,R4

MOVX A,@DPTR INC DPTR MOV R3,DPH MOV R4,DPL MOV B,A SWAP A

ANL A,#0FH ORL A,#30H MOV DPH,R5 MOV DPL,R6 MOVX @DPTR,A INC DPTR MOV A,B ANL A,#0FH ORL A,#30H MOVX @DPTR,A MOV R5,DPH MOV R6,DPL DJNZ R2,CHLP

14、有一无符号数据块长度在30H单元中,其首地址为31H单元,求出数据块中最大值,并存入40H中。

答: MOV R0,#31H MOV R1,30H MOV 40H,#00H LOOP: MOV A,@R0 CJNE A,40H,L1 SJMP AGAIN L1: JNC L2

SJMP AGAIN L2: MOV 40H,A AGAIN: INC R0

DJNZ R1,LOOP SJMP $ 15、略

16、在以2000H为首地址的存储区内,存放20个用ASCII码表示的0~9之间的数,试编程,将它们转换成BCD码,并以压缩BCD码的形式存在3000H~3009H单元中。 答: MOV R2,#10 MOV R3,#20H MOV R4,#00H MOV R5,#30H MOV R6,#00H LP: MOV DPH,R3 MOV DPL,R4 MOVX A,@DPTR ANL A,#0FH SWAP A XCH A,B INC DPTR MOVX A,@DPTR ANL A,#0FH ORL A,B INC DPTR MOV R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX @DPTR,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,LP SJMP $

17、试编程实现下列逻辑表达式功能。设P1.7~P1.0为8个变量的输入端,而其中P1.7又作为变量的输出端。 ;输入端定义

X0 EQU P1.0

X1 EQU P1.1 X2 EQU P1.2 X3 EQU P1.3 X4 EQU P1.4 X5 EQU P1.5 X6 EQU P1.6

X7 EQU P1.7

(1)Y?X0X1X2?X3?X4X5X6?X7

MOV ANL ANL ORL MOV MOV ANL ANL ORL ORL MOV

C,X0 C,X1 C,/X2 C,X3 00H,C C,X4 C,X5 C,X6 C,/X7 C,00H P1.7,C

(2)Y?X0X1?X2X3X4?X5X6X7

MOV C,X0 ANL C,X1 CPL C

MOV 00H,C MOV C,X2 ANL C,X3 ANL C,X4 CPL C

MOV 01H,C MOV C,X5 ANL C,X6 ANL C,X7 CPL C

ORL C,O1H CPL C

ORL C,00H MOV P1.7,C 18、略 19、略

20、试编写延时1s、1min、1h子程序。

;单片机时钟fosc=12MHz,计算为近似值 ;1s延时子程序 DLY_1S: MOV R0,#10 L3: MOV R1,#200 L2: MOV R2,#250 L1: DJNZ R2,L1 DJNZ R1,L2 DJNZ R0,L3

RET

;延时1min

DLY_1M: MOV R3,#60 L4: LCALL DLY_1S DJNZ R3,L4 RET

;延时1h

DLY_1H: MOV R4,#60 L5: LCALL DLY_1M DJNZ R4,L5 RET

21、用程序实现c=a2+b2。设a、b均小于10,a存在31H单元中,b存在32H单元中,c存33H单元。

答: ORG 1000H SR: MOV A,31H

ACALL SQR MOV R1,A MOV A,32H ACALL SQR ADD A,R1 MOV 33H,A SJMP $

;求平方子程序如下(采用查平方表的方法) SQR: INC A

MOVC A, @A+PC RET

TABLE: DB 0, 1, 4, 9, 16

DB 25,36,49,64,81 END

22、如何实现将内存单元40H~60H的数逐个对应传到片外2540H~2560H单元中? 答: MOV R0,#40H MOV DPTR,#2540H MOV R2,#21H L1: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,L1 SJMP $ 23、参考21题 24、参考21题

25、参考实验程序 26、参考实验程序

第五章 定时/计数器

1、89S51单片机内部有几个定时/计数器,他们有哪些专用寄存器组成?

答:89S51单片机内部有两个16位定时/计数器,为定时器0(T0)和定时器1(T1)。在定时器/计数器的16位的计数器是由两个8位的专用寄存器TH0、TL0,TH1、TL1组成。 2、89S51单片机的定时/计数器有哪几种工作方式,各有什么特点?

答:定时器/计数器有四种工作方式:方式0,方式1,方式2,方式3。其中,方式3只适用于T0。

以T0为例:①方式0,16位寄存器只用了13位,TL0的高三位未用。由TH0的8位和TL0的低5位组成一个13位计数器;②方式1,和方式0的工作相同,唯一的差别是TH0和TL0组成一个16位计数器;③方式2,把TL0配置成一个可以自动恢复初值的8位计数器,TH0作为常数缓冲器。TH0由软件预置值。当TL0产生溢出时,一方面使溢出标志TF0置1,同时把TH0中的8位数据重新装入TL0中;④方式3,将使TL0和TH0成为两个相互独立的8位计数器,TL0利用T0本身的一些控制,它的操作与方式0和方式1类似。而TH0被规定为只用作定时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。在这种情况下TH0控制了T1的中断。这时T1还可以设置为方式0~2,用于任何不需要中断控制的场合,或者用作串行口的波特率发生器。

3、定时/计数器用作定时方式时,其定时时间与哪些因素有关?作为计数时,对外界计数频率有何限制?

答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。定时时间与时钟频率和定时初值有关。

定时/计数器作计数时,由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。

4、当定时器T0用作方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?

答:定时器T0用作方式3时,由于TR1位已被T0占用,此时通过控制位C/T切换其定时或计数器工作方式。当设置好工作方式时,定时器T1自动开始运行,若要停止,只需送入一个置定时器T1为方式3的方式字。

5、已知89S51单片机系统时钟频率为24MHz,请利用定时器T0和P1.2输出矩形脉冲。矩形波高电平宽度50μs,低电平宽度350μs。 答: ORG 1000H

MOV TMOD,#02H ;设置工作方式 MOV TH0,#09CH ;设置定时器初值 MOV TL0,#09CH

SETB TR0 ;启动定时器

LOOP: SETB P1.2 ;P1.0输出高电平

MOV R0,#07H

DEL: JBC TF0 ,REP ;定时是否到?

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第四章 汇编语言程序设计(2)在线全文阅读。

第四章 汇编语言程序设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1110342.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: