收藏 分享(赏)

单片机原理及应用B答案.doc

上传人:精品资料 文档编号:10581699 上传时间:2019-12-02 格式:DOC 页数:6 大小:53.50KB
下载 相关 举报
单片机原理及应用B答案.doc_第1页
第1页 / 共6页
单片机原理及应用B答案.doc_第2页
第2页 / 共6页
单片机原理及应用B答案.doc_第3页
第3页 / 共6页
单片机原理及应用B答案.doc_第4页
第4页 / 共6页
单片机原理及应用B答案.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、单片机原理及应用模拟卷 2 1、分析程序的执行结果,将结果填写到空格中。ORG 0000HMOV 30H,#50HMOV R0,#30HMOV A,R0 ;(A= 50H )MOV A,#79HMOV B,#20H ;(A= 79H B= 20H )DIV AB ;(A= 03H B= 19H )PUSH BMOV B,#0AHMUL AB ;(A= 1EH B= 00H )POP BADD A,B ;(A= 37H B= 19H )MOV 30H,A ;(30H 单元的内容= 37H )LOOP: AJMP LOOP2、将 MCS51 内部 RAM50H55H 单元存放的 12 个 16 进

2、制数变为 ASCII 码,放到 2800H 单元开始的外部 RAM 中。解:ORG 0000HLJMP MAINMAIN: MOV DPTR, #70HMOV R1,#1120HMOV R0,#06TOP: MOV A,DPTRPUSH ACCANL A,#0FH ;取出四位二进制数PUSH ACCCLR CSUBB A,#0AHPOP ACC ;弹回 A 中JC LOOP ;该数10 去 LOOPADD A,#07H ;否则加 07HLOOP: ADD A,#30H ;加 30HMOV R2,APOP ACCANL #0F0H ;取出下一个四位二进制数PUSH ACCCLR CSUBB A,

3、#0AHPOP ACC ;弹回 A 中JC LOOP ;该数10 去 LOOP1ADD A,#07H ;否则加 07HLOOP1: ADD A,#30H ;加 30HSWAP AORL A,R2MOVX R1,A ;将结果存到 RAM 中INC DPTRINC R1DEC R0JNZ TOP ;判断转换完没有,未转换完则转 TOP3、用 8031 的 T0 定时/计数器,设计程序,实现在 P1.0 输出 50ms 的方波,输出 100 个方波后停止输出。#include #define uchar unsigned char uchar a; void main(void) TMOD=0X01

4、; TL0=0XB0; TH0=0X3C; EA=1; ET0=1; TR0=1; while(1) if(a=100) EA=0; TR0=0; void timer0(void) interrupt 1 TL0=0XB0; TH0=0X3C; cpl p1.0; a+; 4、甲单片机利用方式 1 将内部 RAM30H37H 单元的 ASCII 码发送到乙机。编制甲机发送和乙机接收的程序(加奇校验) 。A 机发送程序设计 ST: MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1 MOV SCON ,#50H MOV R0,#30H MOV

5、R1,#08H LOOP: MOV A,R0 CALL FS INC R0 DJNZ R1,LOOP RET FS: MOV C,P CPL C MOV ACC.7,C MOV SBUF A WAIT: JNB TI,WAIT CLR TI RET B 机的接受程序设计 接受串口发来的程序,假设存放在 30H37H 中 ST: MOV TMOD,#20H MOV TL1,#0E8H MOV TH1,#0E8H SETB TR1 MOV SCON ,#50H MOV R0,#30H MOV R1,#08H LOOP: CALL JS JNC ERROR MOV R0,A INC R0 DJNZ

6、R1,LOOP RET ERROR:;出错处理,如返回出错信息等 RET JS: JNB RI JS CLR RI MOV A, SBUF MOV P C ANL A,#7FH RET 5、利用 8031 和 8 位 A/D(ADC0809)构成数据采集系统。每隔 20ms 采集通道 0 的一次数据,将采集的数据存放在 30H 的内部 RAM 中。画出原理示意图,写出较完整的程序清单。 (提示:需要用定时器和外部中断) 。MAIN:MOV TMOD,#01H /定时器 0 初始化 MOV TL0,#10H MOV TH0,#27H MOV R0,#30H SETB TR0 SETB ET0 S

7、ETB 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

8、 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 L

9、K3: 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,A INC DPTR ;指向 PB 口 INC DPTR MOVX A,DPTR CPL ANL A,#03H ;屏蔽高 6 位 RET TM12ms:

10、MOV R7,#18H ;延迟 12ms 子程序 TM : MOV R6,#0FFH TM6: DJNZ R6,TM6 DJNZ R7,TM RET LED 显示子程序: MOV R0,#30H ;设显示缓冲区首地址为 30H MOV R3,#02H ;扫描数位初值为 00000010B LD 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 判断扫描是完毕 JB ACC。7,LD1 RL A ;修改扫描行 MOV R3,A AJMP LD0 LD 1: RET SEG 1:3FH ,06H,5BH ,4FH ,66H,6DH,7DH,07H,7FH,6FH DL 1: MOV R7,#02H ;延时 1ms 子程序 DL : MOV R6,#0FFH DL 6: DJNZ R6,DL6 DJNZ R7,DL RET

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报