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

下载本文档

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

文档简介

.实现片外数据存储器数据传送(2023H)-->(21OOH)MOVDPTR,#2023HoMOVXA,@DPTR。MOVDPTR,#2100HoMOVX@DPTR,A.查表法求Y=X2。设X(0WXW15)在片内RAM的20H单元中,规定查表求Y,存入片内RAM21H单元。ORG1000H 。SQU:MOVDPTR,#3000H;拟定表首地址(基地址)oMOVA,20Ho;取X(变量:偏移量)MOVCA,@A+DPTRo;查表求y=X2。MOV2111八。。;保存丫(结果)。 RET”;子程序结束。… °;其它程序段。ORG3000H ;常数表格首地址TAB:DB00,01,04,09,-,225;平方表END2)ORG1000H ;程序起始地址SQU:。MOVA,20Ho ;取乂ADDA,#3。;修正偏移量oMOVCA,@A+PC ;查表求Y=X2(PC=1005H)gMOV21H,A 。;存结果。RET。;子程序结束oTAB:。DB00,01,04- ;平方表DB09,…,225536个「不能满足规定,必须借助硬件计数器或软件循环。TO定期初值:(方式l)t=10ms,X=5000D=1388H,C=(1388H)补=EC78HT1计数初值:(方式2)START:MOVTMOD,#61H。MOVTL1,#OCDHoMOVTH1,#OCDHoCLRPl.0SETBTR1LOOP1:CPLPl.7LOOP2:MOVTLO,#78HMOVTHO,#0ECHSETBTROL0OP3:JBOTF0,LOOP4SJMPLOOP3LOOP4:MOVTL0,#78H。MOVTHO,#0ECHCPLPL0JBCTF1,LOOP1SJMPLOOP2'ln_n—n.n/定可20ms4—ISL计数3.分析下面程序MOVRO,#0C8H;(R0)=200CLRP1.7;P1.7为低电平LOOP:CPL「1.7厅1.7变反(1以5 )NOP;(1|ns)NOP;(1|is)DJNZRO,LOOP;(RO)WO则转(2|as)产S-s筠100个脉冲Pl.7—I I10^is4,设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHZO机器周期数 ORGOO20H1 MOVRO,#0AH ;外循环10次1 DL2: MOVR1,#MT ;内循环MT次1 DL1:NOPNOP ;空操作指令DJNZR1,DL12 DJNZRO,DL2RET内循环DL1到指令DJNZR1,DL1的计算:(1+1+2)x2usxMT=1000UsMT=125=7DH 总的延时时间: {1+[l+(l+l+2)xl25+2]x10}x2us=10.062ms.试计算延时程序的执行时间DELAY:MOVR6,#64H(=100)1MOVR7,#0FFH(=255)b12:DJNZR7,12DJNZR6,Ih2RET2o8延时时间计算:(设时钟fOSC=12MHz)T=lust=(1X1+1X100+2X100X255+2X1O0+2X1)XT=51.303ms.DELAY:MOVR6,#100D1:D1:MOVR7,D1:MOVR7,D1:D1:MOVR7,#10D2:NOPDJNZR7,DJNZR7,DJNZR7,DJNZR7,DJNZR7,D2DJNZR7,D2。-DJNZR6,DI。RET计算延时程序的执行时间(设时钟fosC=6MHz,T=2us)。.十六进制数转换为ASCII码:HASCCJNEA,#0AH,NoN:JNCN1(C=0跳N1)ADDA,#30HoSJMPoSEN1:ADD A,#37HSE: RET。.设从片内RAM30H单元和40H单元有两个16字节数,把它们相加,结果放于30H单元开始的位置处(设结果不溢出)。ORG1000HoMOVR0,#30HoMOVRI,#40HoMOVR2,#16CLRCLOOP:MOVA,@R0X%>40X%>40y=<2x 20<x<40xx<20X%>40y=<2x 20<xX%>40y=<2x 20<x<40xx<20DJNZR2,LOOP-END.按下面公式编写程序,x为无符号数,存在20h单元y存放在21h单元ORG0030H。MOVA,20HCJNEA,#21H,LOOP1LOOP1:JCNEXT1CJNEA,#40H,LOOP2LOOP2:JNCNEXT2MOVB,#2MULABAJMPNEXT2NEXT1:CPLANEXT2:MOV21H,AEND从内部RAM22h单元开始存有一个无符号数数据块,长度n存于21h中。求出数据块中的最小数,存于20h中。ORG0030HMOVRO,#22H;数据块起始地址MOVRI,21H ;数据个数nMOV20H,#0FFH;最大数LOOP:MOVA,@R0;取新数INCRO;为取下一个新数作准备CJNEA,20H,LOOP1;与原最大数比较LOOP1:JNCNEXT;大,原最小数保存MOV2OH,A;小,改变最小数NEXT: DJNZRI,LOOP;循环END.ASCII码转换为十六进制数:AHEX:CLRCSUBBA,#30HCJNEoA,#0AH,NN:JCoNloSJMPAEN1:SUBBoCJNEoA,#06H,N2N2:JNCERRADDA,#0AHoSJMPAEERR:MOVA,#0FFHAE:oRET8位二进制转换成BCD码。(用十进制表达的二进制码)BINBCD1:MOVB,#100DIVABMOV@R0,AINCROMOVA,#10XCHA,BXCHA,BMOVA,#10XCHA,BXCHA,BXCHA,BXCHA,BXCHA,BDIVABMOV@R0,AINCROXCHABMOV@R0,ARET11.规定每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,PLO输出改变LED状态。1、跳变触发:每次跳变引起一次中断请求。0RGOOOOoH;复位入口AJMPMAINoORG0003HoORG0100HMAIN:MOVSP,#40H“SETBEXCHA,BDIVABMOV@R0,AINCROXCHABMOV@R0,ARET11.规定每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,PLO输出改变LED状态。1、跳变触发:每次跳变引起一次中断请求。0RGOOOOoH;复位入口AJMPMAINoORG0003HoORG0100HMAIN:MOVSP,#40H“SETBEAs;开总允许开关SETBEXO;开INTO中断SETB“T0;负跳变触发中断H:SJMP;执行其它任务©RG0200H;中断服务程序PINTO:CPLP1.0;改变LEDINTO;中断入口AJMPFINI单片机RETIRETIRETI;返回主程序RETI2、电平触发:可避免一次按键引起多次中断响应。1)软件等待按键释放(撤消低电平);(2)硬件清除中断信号(标志位)。ORG。OOOOHAJMPMAINORGS003H;中断入口AJMPAJMPORGS003H;中断入口AJMPAJMPAJMPAJMPAJMPPINTO。ORG0°1OOH6;主程序MAIN:MOVSP,#4OH;设栈底SETBeEA。;开总允1许开不AJMPPINTO。SETBEXO M。画C/TIMl|MOTOC\o"1-5"\h\z< /< >y y。CLRoITOo;低电平触发中断 T0H:oSJMPoH。;执行其它任务ooORG02OOH;中断服务程序PINT0:CPLP1.0 ;改变LEDWAIT:JNBoP3.2,WAIT;等按键释放(P3.2即INTO)。RETIe ;返回主程序假设系统时钟为6MHz,编写定期器T0产生1秒定期的程序。(1)TO工作方式的拟定定期时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出:方式0最长可定期16.384ms;方式1最长可定期131.072ms;方式2最长可定期512so选方式1,每隔100ms中断一次,中断10次为1s。(2)计算计数初值由于:(216-X)X2X10-6二10-1所以:X=15536=3CB0H因此:TH0=3CH,TL0=BOH(3)10次计数的实现采用循环程序法。(4)程序设计ORG0OOOHRESET:RESET:LJMPMAINRESET:LJMPMAINRESET:LJMPMAIN;RESET:LJMPMAIN;上电,转主程序入口MAINORGOOOBHORGOOOBHORGOOOBH;TO的中断入口ORGOOOBH;TO的中断入口LJMPIT0PLJMPIT0PLJMPIT0P;LJMPIT0P;转TO中断解决程序ITOPORG1000HMAIN:MOVSP,#60H;设堆栈指针MOVB,#0AH;设循环次数10次MOVTMOD,#01H;设TO工作在方式1MOVTL0,#0B0H;给TO设初值MOVTHO,#3CH,SETBTRO。;启动TOSETBETO;允许TO中断SETBEA;CPU开放中断HERE:SJMPHERE;等待中断ITOP:MOVTLO,#0B0H;T0中断子程序,重装初值MOVTHO,#3CH;oDJNZB,LOOPCLRTRO;Is定期时间到,停止TO工作LOOP:RETI.由P1.0输出方波信号,周期为2ms,设fosc=12MHz。每隔1ms改变一次Pl.0的输出状态。用TO非门控方式1定期。计算时间常数:X=216-t/T=216-1000/1=FC18HSTART:MOVTMOD,#01HMOVTL0,#18HMOV。TH0,#OFCHSETBTROLOOP:JBOTF0,PTF0。。SJMPLOOPoPTFO:CPLP1.0aMOV。TL0,#18HMOVTH0,#0FCH。 SJMPLOOPORG-OOOOHAJMPoMAINORG000BH<T0定期器°。AJMPoPTOINTo 0RGS1OOHMAIN:MOVoSP,#6OH。MOVTMOD,#01H。 MOV^TL

温馨提示

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

评论

0/150

提交评论