单片机原理及应用B答案_第1页
单片机原理及应用B答案_第2页
单片机原理及应用B答案_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、单片机原理及应用模拟卷 21、分析程序的执行结果,将结果填写到空格中ORG0000HMOV30H,#50HMOVR0,#30HMOVA,R0;(A=50H)MOVA,#79HMOVB,#20H;(A=:79HB=20H)DIVAB;(A=03HB=19H)PUSHBMOVB,#0AHMULAB;(A=:1EHB=00H)POPBADDA,B;(A=37HB=19H)MOV30H,A;(30H单元的内容=37H)LOOP: AJMPLOOP2、将MCS51内部RAM50H55H单元存放的12个16进制数变为ASCII码, 放到2800H单元开始的外部RAM中。解:ORG0000HLJMPMAIN

2、MAIN :MOVDPTR, #70HMOVR1, #1120HMOVR0, #06TOP:MOVA, DPTRPUSH ACCANL A , #0FH ;取出四位二进制数PUSH ACCCLRCSUBB A, #0AHPOPACC;弹回A中JC LOOP ;该数10 去 LOOPADDA, #07H;否则加07HLOOP: ADDA, #30H;加 30HMOVR2, APOPACCANL#0F0H ;取出下一个四位二进制数PUSHACCCLRCSUBBA,#0AHPOPACC ;弹回A中JC LOOP ;该数10 去 LOOP1ADDA, #07H;否则加07HLOOP1:ADD A,#3

3、0H;加 30HSWAPAORLA,R2MOVXR1, A;将结果存到 RAM中INCDPTRINCR1DECR0JNZTOP;判断转换完没有,未转换完则转 TOP3、用8031的TO定时/计数器,设计程序,实现在 P1.0输出50ms的方波,输 出100个方波后停止输出。#in elude <reg51.h>#defi ne uchar un sig ned charuchar a;void ma in (void)TMOD=0X01;TL0=0XB0;TH0=0X3C;EA=1;ET0=1;TR0=1;while(1)if(a=100)EA=0;TR0=0;void timer

4、O(void) interrupt 1TL0=0XB0;TH0=0X3C;cpl p1.0;a+;4、甲单片机利用方式1将内部RAM30H37H单元的ASCII码发送到乙机 编制甲机发送和乙机接收的程序(加奇校验)。A机发送程序设计ST:MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON ,#50HMOV R0,#30HMOV R1,#08HLOOP:MOV A,R0CALL FS INC R0DJNZ R1,LOOPRETFS:MOV C,PCPL CMOV ACC.7,CMOV SBUF AWAIT:JNB TI,WAITCLR

5、TIRETB机的接受程序设计接受串口发来的程序,假设存放在 30H37H中ST:MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON ,#50HMOV R0,#30HMOV R1,#08HLOOP:CALL JSJNC ERRORMOV R0, AINC R0DJNZ R1,LOOPRET ERROR:;出错处理,如返回出错信息等RETJS:JNB RI JSCLR RIMOV A, SBUFMOV P CANL A,#7FHRET5、利用8031和8位A/D (ADC0809)构成数据采集系统。每隔 20ms采集通 道0的一次数据,将

6、采集的数据存放在30H的内部RAM中。画出原理示意 图,写出较完整的程序清单。(提示:需要用定时器和外部中断)。MAIN : MOV TMOD,#01H 定时器 0 初始化MOV TL0,#10HMOV TH0,#27HMOV R0,#30HSETB TR0SETB ET0SETB EX0SETB EASJMP $定时器0中断服务子程序:ORG 000BHMOV DPTR,#7EF8H 启动 ADC,对 IN0 通/道进行AD转换CLR TR0MOV TL0,#10HMOV TH0,#27HSETB TR0RETI外部中断(INT0)子程序:ORG 0003HMOVX A,DPTRMOV R0

7、,AINC RORETI键盘扫描子程序:KEY1: ACALL KS1 ;调用判断有无键按下子程序JNZ LK1AJMP KEY1LK1 : ACALL TM12S ;调用12ms延时子程序ACALL KS1JNZ LK2AJMP KEY1LK2 : MOV R2 , #OFEH ;首列扫描字入 R2MOV R4,#00H ;首列号入 R4LK4 : MOV DPTR,#0FD01H ;列扫描字送 8155PA 口MOV A,R2MOVX DPTR,AINC DPTR ;指向 8155PC 口INC DPTRMOVX A,DPTRJB ACC.0,LONE ;第0行无键按下,查第1行MOV A

8、,#00H ;有键按下,该行首键号送 AAJMP LKPLONE : JB ACC.1,NEXTMOV A,#08HLKP : ADD A,R4 ;键号二行键号+列号PUSH ACCLK3 : ACALL KS1 ;等待键释放JNZ LK3 POP ACC ;键释放,键号放入 ARETNEXT : INC R4 ;指向下一列,列号加1MOV A,R2 ;判断8列是否全扫描完JNB ACC.7,KNDRL A ;求得下一列的扫描字MOV R2,AAJMP LK4KND : AJMP KEY1KS1 : MOV DPTR,#0FD01H ;指向 PA 口MOV A,#00H ;全扫描字MOVX D

9、PTR,AINC DPTR ;指向 PB 口INC DPTRMOVX A , DPTRCPLANL A,#03H ;屏蔽高6位RETTM12ms : MOV R7 , #18H ;延迟 12ms 子程序TM : MOV R6 , #0FFHTM6 : DJNZ R6, TM6DJNZ R7, TMRETLED显示子程序:MOV R0 , #30H ;设显示缓冲区首地址为 30HMOV R3,#02H ;扫描数位初值为 00000010BLD 0 : MOV A,R3 ;扫描数位送 PA 口MOV DPTR,#0FD01HMOVX DPTR,AINC DPTR ;得到B 口地址MOV A,R0 ;加偏移值,得到相应的显示代码ADD A,#0DHMOVC A,A+PCMOVX DPTR,AACALL LD1 ;调用延时1ms的子程序INC R0 MOV A,R3 ;如果6个显示器都扫描一遍,返回主程序ADD A,#01H ;使最高位是否为1判断扫描是完毕JB ACC。7,LD1RL A ;修改扫描

温馨提示

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

评论

0/150

提交评论