2023年单片机程序题库_第1页
2023年单片机程序题库_第2页
2023年单片机程序题库_第3页
2023年单片机程序题库_第4页
2023年单片机程序题库_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.实现片外数据存储器数据传送(2023H)—>(21OOH)

MOVDPTR,#2023H

»MOVXA,@DPTR。

MOVDPTR,#2100H

»MOVX@DPTR,A

2.查表法求Y=X2。设X(0<X<15)在片内RAM的20H

单元中,规定查表求Y,存入片内RAM21H单元。

1)ORG1000H。

SQU:MOVDPTR,#3000H;拟定表首地址(基地址)

oMOVA,20H•;取X(变量:偏移量)

MOVCA,@A+DPTR»;查表求Y=X2

。MOV21日人。。;保存丫(结果)

°RETe;子程序结束

。…°;其它程序段

。ORG3000H;常数表格首地址

TAB:DB00,01,04,09,-,225;平方表

END

2)ORG1000H;程序起始地址

SQU:。MOVA,20Ho;取*

ADDA,#3»;修正偏移量

»MOVCA,@A+PC;查表求Y=X2(PC=1005H)

。。MOV21H,A存结果

。RET。;子程序结束

oTAB:.DB00,01,04-;平方表

DB09,—,225

3.分析下面程序

MOVRO,#0C8H;(R0)=200

CLRP1.7;P1.7为低电平

LOOP:CPLP1.7;P1.7变反(1|js)

NOP;(1ps)

NOP;(1ps)

DJNZRO,LOOP;(RO)WO则转(2)JS)

USWH卒s1。。个脉冲

Pl.7―I..................................................

IlOfiS

4.设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHZ。

机器周期数ORG0020H

1MOVR0,#0AH;外循环10次

1DL2:MOVR1,#MT;内循环MT次

1DL1:NOP

1NOP;空操作指令

2DJNZRI,DLI

2DJNZRO,DL2

RET

内循环DL1至I」指令DJNZR1,DL1的计算:(1+1+2)x2口sxMT=1000Us

MT=125=7DH总的延时时间:{1+[l+(l+l+2)x125+2]x10}x2us=1

0.062ms

5.试计算延时程序的执行时间

DELAY:MOVR6,#64H(=100)1

II:MOVR7,#0FFH(=255)b

12:DJNZR7,122

DJNZR6,Ih2

RET2。。。

延时时间计算:(设时钟fOSC=12MHz)T=lus

t=(1X1+1X100+2X100X255+2X100+2X1)XT=51.303ms

6.DELAY:MOVR6,#1001

DI:MOVR7,#101

D2:NOP。1

DJNZR7,D2。2t=6.606ms

oDJNZR6,Dio2

RETo2

计算延时程序的执行时间(设时钟fOSC=6MHz,T=2us)。

7.十六进制数转换为ASCII码:

HASC:CJNEA,#0AH,N。

N:JNCN1(C=0跳Nl)

ADDA,#30H

6JMP6E

N1:ADDA,#37H

SE:RET。

8.设从片内RAM30H单元和40H单元有两个16字节数,把它们相加,结果放于30H单

元开始的位置处(设结果不溢出)。

ORG1000H

oMOVR0,#30H

3MOVRI,#40H

oMOVR2,#16

CLRC

LOOP:MOVA,@R0

oADDCA,@R1

xx>40

oMOV@R0,A

2x20<x<40

INCR0%x<20

oINCRI

DJNZR2,L00P

正ND

9.按下面公式编写程序,x为无符号数,存在20h单元y存放在21h单元

ORG0030H

oMOVA,20H

CJNEA,#21H,LOOP1

LOOP1:JCNEXT1

CJNEA,#40H,LOOP2

LOOP2:JNCNEXT2

MOVB,#2

MULAB

AJMPNEXT2

NEXTkCPLA

NEXT2:MOV21H,A

END

从内部RAM22h单元开始存有一个无符号数数据块,长度n存于21h中。求出数据块中

的最小数,存于20h中。

ORG0030H

MOVRO,#22H;数据块起始地址

MOVRI,21H;数据个数n

MOV20H,#0FFH;最大数

LOOP:MOVA,@R0;取新数

INCRO;为取下一个新数作准备

CJNEA,20H,LOOP1;与原最大数比较

LOOP1:JNCNEXT;大,原最小数保存

MOV2OH,A;小,改变最小数

NEXT:DJNZRI,LOOP;循环

END

10.ASCH码转换为十六进制数:

AHEX:CLRC

SUBBA,#30H

CJNEoA,#0AH,N

N:JCoNl

oSJMPAE

N1:SUBB

oCJNEoA,#06H,N2

N2:JNCERR

ADDA,#0AH

oSJMPAE

ERR:MOVA,#0FFH

AE:oRET

8位二进制转换成BCD码。(用十进制表达的二进制码)

BINBCD1:MOVB,#100

DIVAB

MOV@R0,A

INCRO

MOVA,#10

XCHA,B;仆)=原(8),(8)=10

DIVAB

MOV@R0,A

INCRO

XCHAB

MOV@R0,A

RET

+5V

11.规定每次按动按键,使外接发光二极管LED改变一次亮灭状态。

解输入按键信号,输出改变状态。

:INT0P1.0LED单片机

1、跳变触发:每次跳变引起一次中断请求。

ORGOOOOoH;复位入口AJMPMAIN

INTO

oORG0003H;中断入口AJMPoPINIEF4-

oORG01O0H;主程序

MAIN:MOVSP,#40H;设栈底

ooSETBEA。;开总允许开关

SETBEXO;开INTO中断

SETBdT0;负跳变触发中断

H:SJMPH;执行其它任务

oORG0200H;中断服务程序

PINTO:CPLP1.0;改变LED

RETI;返回主程序

2、电平触发:可避免一次按键引起多次中断响应。

1)软件等待按键释放(撤消低电平);(2)硬件清除中断信号(标志位)。

ORG。OOOOH;复位入口

AJMPMAIN

ORGO。003H;中断入口

AJMPPINTO

°ORGO0100H«;主程序

MAIN:MOVSP,#4OH;设栈底

SETB,EA,;开总允许开关

T湘押M0GATEC/TMlMO

SETBEX0;啾

、______/_______/

。CLR»ITO;低电平触发中新

H:»SJMP»H。;执行其它任务

o»ORG02OOH;中断服务程序

PINT0:CPLP1.0;改变LED

WAIT:JNB»P3.2,WAIT;等按键释放(P3.2即INTO)

oRETI.;返回主程序

假设系统时钟为6MHz,编写定期器T0产生1秒定期的程序。

(l)T0工作方式的拟定

定期时间较长,采用哪一种工作方式?

由各种工作方式的特性,可计算出:

方式0最长可定期16.384ms;

方式1最长可定期131.072ms;

方式2最长可定期512s。

选方式1,每隔100ms中断一次,中断10次为1s。

(2)计算计数初值

由于:(216-X)X2X10-6=10-1

所以:X=15536=3CB0H

因此:TH0=3CH,TL0=B0H

(3)10次计数的实现

采用循环程序法。

(4)程序设计

ORG0OOOH

RESET:LJMPMAIN;上电,转主程序入口MAIN

ORGOOOBH;TO的中断入口

LJMPIT0P;转丁0中断解决程序IT0P

ORG1000H

MAIN:MOVSP,#60H;设堆栈指针

MOVB,#0AH;设循环次数10次

。MOVTMOD,#01H;设TO工作在方式1

MOVTL0,#0B0H;给TO设初值

MOVTHO,#3CH

。SETBTRO。:启动TO

SETBETO;允许TO中断

SETBEA;CPU开放中断

HERE:SJMPHERE;等待中断

ITOP:MOVTLO,#0BOH;T0中断子程序,重装初值

MOVTHO,#3CH;

。DJNZB,LOOP

CLRTRO;1s定期时间到,停止TO工作

LOOP:RETI

12.由P1.0输出方波信号,周期为2ms,设fosc=12MHz。

每隔1ms改变一次Pl.0的输出状态。用TO非门控方式1定期。

计算时间常数:X=216-t/T=216-1000/1=FC18H

START:MOVTMOD,#01H

MOVTL0,#18H

。。MOV»TH0,#OFCH

000SETBTRO

LOOP:JBQTF0,PTF0

。。SJMPLOOP

。PTFO:CPLP1.0

ooMOV。TLO,#18H

。。MOVTHO,#0FCH

oSJMPLOOP

ORG-OOOOH

AJMPoMAIN

ORGOOOBH<TO定期器

gAJMPOPTOINT

。ORGO1OOH

MAIN:MOV6P,#6OH

。MOVTMOD,#01H

。MOVoTLO,#18H

gMOV^TH0,#0FCH

SETBEA

。SETBOETO

。SETBTRO

HERE:SJMPHERE

P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论