山东大学微机原理试题.doc_第1页
山东大学微机原理试题.doc_第2页
山东大学微机原理试题.doc_第3页
山东大学微机原理试题.doc_第4页
山东大学微机原理试题.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

试卷11、分析程序的执行结果,将结果填写到空格中。(10分)ORG0000HMOV30H,#50HMOVR0,#30HMOVA,R0;(A= )MOVA,#79HMOVB,#20H ;(A= B= )DIVAB;(A= B= )PUSHBMOVB,#0AHMULAB;(A= B= )POPBADDA,B ;(A= B= )MOV30H,A;(30H单元的内容= )LOOP:AJMPLOOP2、将MCS51内部RAM50H55H单元存放的12个16进制数变为ASCII码,放到2800H单元开始的外部RAM中。(20分)3、编制四个十六进制单字节数相加后求平均的程序。(10分)4、用8031的T0定时/计数器,设计程序,实现在P1.0输出50ms的方波,输出100个方波后停止输出。(20分)5、甲单片机利用方式1将内部RAM30H37H单元的ASCII码发送到乙机。编制甲机发送和乙机接收的程序(加奇校验)。(20分)6、利用8031和8位A/D(ADC0809)构成数据采集系统。每隔20ms采集通道0的一次数据,将采集的数据存放在30H的内部RAM中。画出原理示意图,写出较完整的程序清单。(提示:需要用定时器和外部中断)。(20分)7、【附加题】试用8031和8155实现键盘和LED动态显示。画出原理示意图并编制键盘扫描程序和LED动态显示程序(16个键的键盘扫描和6位LED显示)。 答案11、 ORG 0000H MOV 30H,#50H MOV R0,#30H MOV A,R0 ;(A=50H) MOV A,79H MOV B,#20H ;(A=79H B=20H) DIV AB ;(A=03H B=19H) PUSH B MOV B,#0AH MUL AB ;(A=1EH B=00H) POP B ADD A,B ;(A=37H B=19H) MOV 30H,A ;(30H单元的内容=37H)LOOP: AJMP LOOP2、ORG 0000HLJMP MAINORG 0100HMAIN:CLR CMOV R2,#00HMOV R0,#50HMOV R1,#06HMOVDPTR,#2800HLOOP0:MOV A,R0PUSHACCANL A,#0FHLOOP1: CJNEA,#09H,NEXTLJMPASC1NEXT:SUBBA,#09HMOV00H,CADDCA,#09HMOVC,00HJC ASC1LJMPASC2ASC1:ADD A,#30HMOVXDPTR,AINCDPTRLJMPLOOP2ASC2:ADDA,#37HMOVXDPTR,AINCDPTRLJMPLOOP2LOOP2:CJNER2,#00H,ENDPINCR2POPACCANLA,#0F0HSWAPALJMPLOOP1ENDP:POPACCMOVR2,#00HINCR0DJNZR1,LOOP0END3、 CLR CCLR R1 /R1用于存放有可能产生的第八和第九位MOV R2,#03H MOV A,R0LOOP1: INC R0 ADD A,R0 JNC LOOP2 /如果有进位,就使R1加1 ADD R1,#01H CLR CLOOP2: DJNZ R2,LOOP1 RR A /使A的内容右移两位,高 RR A /两位用R1的低两位补齐 MOV C,P1。0 MOV A。6,C MOV C,P1。1 MOV A。7,C4、 ORG 2000HAJMP MAINORG 200AHMOV TL0,0D4H /定时器0重设初值CPL P1。0DJNZ R0,ENDRETIMAIN: MOV R0,#0C8H /产生100个方波 MOV TMOD,#01H /T0初始化 MOV TL0,#0D4H MOV TH0,#03H SETB TR0 /启动T0 SETB ET0 /T0开中断 SETB EA /CPU开中断 SJMP $ /等待END: END5、 甲机主程序: ORG 2000H MOV TMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8H MOV SCON,#40H /串行口工作方式1 SETB TR1 MOV R0,#30H MOV R1,#08H LOOP: MOV A,R0 LCALL OUT1 INC R0 DJNZ R1,LOOP串行口发送子程序: OUT1: MOV C,P /产生奇校验 CPL C MOV ACC。7,C MOV SBUF,A JNB TI,$ CLR TI RET乙机主程序: ORG 2000H MOV TMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8H SETB TR1 MOV R0,#30H MOV R1,#08HLOOP: LCALL IN1 JC ERROR MOV R0,ALOOP1: INC R0 DJNZ R1,LOOP串行口接收子程序: IN1: MOV SCON,#52H JNB RI,$ CLR RI MOV A,SBUF MOV C,P /判断奇校验 CPL C ANL A,#7FH RETERROR: MOV R0,#0FFH SJMP LOOP16、主程序:MAIN:MOV TMOD,#01H /定时器0初始化 MOV TL0,#10H MOV TH0,#27H MOV R0,#30H SETB TR0 SETB ET0 SETB EX0 SETB EA SJMP $定时器0中断服务子程序: ORG 000BH MOV DPTR,#7EF8H /启动ADC,对IN0通 /道进行AD转换CLR TR0 MOV TL0,#10H MOV TH0,#27H SETB TR0 RETI外部中断(INT0)子程序: ORG 0003H MOVX A,DPTR MOV R0,A INC R0 RETI键盘扫描子程序: KEY1: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 AJMP KEY1 LK1: ACALL TM12s ;调用12ms延时子程序 ACALL KS1 JNZ LK2 AJMP KEY1 LK2: MOV R2,#0FEH ;首列扫描字入R2 MOV R4,#00H ;首列号入R4 LK4: MOV DPTR,#0FD01H ;列扫描字送8155PA口 MOV A,R2 MOVX DPTR,A INC DPTR ;指向8155PC口 INC DPTR MOVX A,DPTR JB ACC.0,LONE;第0行无键按下,查第1行 MOV A,#00H ;有键按下,该行首键号送A AJMP LKP LONE: JB ACC.1,NEXT MOV A,#08H LKP: ADD A,R4 ;键号=行键号+列号 PUSH ACC LK3: ACALL KS1 ;等待键释放 JNZ LK3 POP ACC ;键释放,键号放入A RET NEXT: INC R4 ;指向下一列,列号加1 MOV A,R2 ;判断8列是否全扫描完 JNB ACC.7,KND RL A ;求得下一列的扫描字 MOV R2,A AJMP LK4 KND: AJMP KEY1 KS1: MOV DPTR,#0FD01H ;指向PA口 MOV A,#00H ;全扫描字MOVX DPTR,AINC DPTR ;指向PB口INC DPTRMOVX A,DPTRCPLANL A,#03H ;屏蔽高6位RET TM12ms: MOV R7,#18H ;延迟12ms子程序 TM : MOV R6,#0FFH TM6: DJNZ R6,TM6 DJNZ R7,TMRETLED显示子程序: MOV R0,#30H ;设显示缓冲区首地址为30H MOV R3,#02H ;扫描数位初值为00000010BLD 0: MOV A,R3 ;扫描数位送PA口 MOV DPTR,#0FD01H MOVX DPTR,A INC DPTR ;得到B口地址 MOV A,R0 ;加偏移值,得到相应的显示代码 ADD A,#0DH MOVC A,A+PC MOVX DPTR,A ACALL LD1 ;调用延时1ms的子程序 INC R0 MOV A,R3 ;如果6个显示器都扫描一遍,返回主程序 ADD A,#01H ;使最高位是否为

温馨提示

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

评论

0/150

提交评论