《2022年微机原理与接口技术作业 .pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术作业 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理与接口技术作业答案第 2 章 P52 280C51单片机引脚有哪些第二功能?【答】 80C51单片机的P0、P2和 P3引脚都具有第二功能。第一功能第二变异功能P0口地址总线 A0A7/数据总线D0 D7 P2口地址总线A8A15 P3.0 RXD (串行输入口 ) P3.1 TXD (串行输出口 ) P3.2 0INT ( 外部中断0) P3.3 1INT ( 外部中断1) P3.4 T0 ( 定时器 / 计数器 0 的外部输入 ) P3.5 T1 ( 定时器 / 计数器 0 的外部输出 ) P3.6 WR ( 外部读写存储器或I/O 的写选通 ) P3.7 RD ( 外部读写存储器
2、或I/O 的读选通 ) 480C51 单片机的存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内 RAM 和片外 RAM 的指令格式有何区别?【答】 80C51单片机采用哈佛(Har yard) 结构,即是将程序存储器和数据存储器截然分开,分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围分别可达 64KB。在物理上设有4 个存储器空间片内程序存储器;片外程序存储器;片内数据存储器;片外数据存储器。在逻辑上设有3 个存储器地址空间片内、片外统一的 64 KB 程序存储器地址
3、空间。片内 256B(80C52为 384 B)数据存储器地址空间。片内数据存储器空间,在物理上又包含两部分:对于 80C51型单片机, 从 0127 字节为片内数据存储器空间;从 128255 字节为特殊功能寄存器(SFR)空间(实际仅占用了20 多个字节)。片外 64 KB 的数据存储器地址空间。在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。访问片内RAM 采用 MOV 指令,访问片外RAM 则一定要采用MOVX 指令,因为MOVX 指令会产生控制信号RD或WR,用来访问片外RAM 。访问程序存储器地址空间,则应采用MOVC指令。680C51单片机片内RA
4、M 低 128 个存储单元划分为哪4 个主要部分?各部分主要功能是什么?【答】 80C51 片内 RAM 的低 128 个存储单元划分为4 个主要部分:寄存器区:共4 组寄存器,每组8 个存储单元,各组以R0R7作为单元编号。常用于保存操作数及中间结果等等。R0R7 也称为通用寄存器,占用00H1FH 共精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 8 页32 个单元地址。位寻址区: 20H 2FH ,既可作为一般RAM单元使用,按字节进行操作,也可以对单元中的每一位进行位操作,称为位寻址区。 寻址区共有16 个 RAM 单元,共计
5、128位,位地址为00H7FH。堆栈区:设置在用户RAM 区内。用户 RAM区:在内部RAM 低 128 单元中,除去前面3 个区,剩下的所有单元。13程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?为什么?【答】 程序存储器指令地址使用程序计数器PC指针, PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC的最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序的流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送入PC ,程序流向发生变化。堆栈地址使用堆栈
6、指示器SP ,SP在 80C51中存放当前的堆栈栈顶所指存储单元地址,是一个 8 位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR , 是一个 16 位的特殊功能寄存器,主要功能是作为片外数据存储器或I/O 寻址用的地址寄存器,这时会产生RD或WR控制信号,用于单片机对外扩的数据存储器或I/O 的控制。 数据指针DPTR 也可以作为访问程序存储器时的基址寄存器,这时寻址程序存储器中的表格、常数等单元,而不是寻址指令。第 3 章 P93 9MOV 、MOVC 、MOVX 指令有什么区别,分别用于那些场合,为什么?【答】 MOV 指令用于对内部RAM 的访问。M
7、OVC 指令用于对程序存储器的访问,从程序存储器中读取数据( 如表格、常数等) 。MOVX 指令采用间接寻址方式访问外部数据存储器,有Ri 和 DPTR两种间接寻址方式。MOVX指令执行时,在P3.7 引脚上输出RD有效信号或在P3.6 引脚上输出WR有效信号,可以用作外部数据存储器或I/O 的读或写选通信号,与单片机扩展电路有关。15已知 (R1)=20H,(20H)=AAH,请写出执行完下列程序段后A的内容。MOV A ,#55H ANL A,#0FFH ORL 20H ,A XRL A,R1 CPL A 【答】各指令执行结果如下:MOV A ,#55H ;(A)=55H ANL A,#0
8、FFH ;(A)=55H ORL 20H ,A ;(20H)=FFH XRL A,R1 ;(A)=AAH CPL A ;(A) =55H 执行完程序段后,A的内容为55H。16阅读下列程序,说明其功能。MOV R0 ,#30H MOV A , R0 RL A 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 8 页MOV R1 ,A RL A RL A ADD A , R1 MOV R0,A ; 【答】对程序注释如下:MOV R0 ,#30H ;(R0)=30H MOV A , R0 ;取数RL A ;(A) 2 MOV R1 ,A RL
9、 A ;(A) 4 RL A ;(A) 8 ADD A , R1 ; (A) 10 MOV R0,A ;存数功能:将30H中的数乘以10 以后再存回30H中。条件: 30H中的数不能大于25,2510=250 仍为一个字节。若30H中的数大于25,则应考虑进位。21读下列程序,请完成下列任务:画出 P1.0 P1.3 引脚上的波形图,并标出电压V时间 t 坐标。对源程序加以注释。ORG 0000H START: MOV SP ,#20H MOV 30H ,#01H MOV P1 ,#01H MLP0 :ACALL D50ms MOV A, 30H CJNE A, #08H,MLP1 MOV A
10、, #01H MOV DPTR,#ITAB MLP2 MOV 30H, A MOVC A,A+DPTR MOV P1, A SJMP MLP0 MLP1 :INC A SJMP MLP2 ITAB:DB 0, 1,2,4,8 DB 8, 4,2,1 D50ms :RET 【答】程序功能:P1.0 P1.3 引脚上的波形图如图3-2 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 8 页图 3-2 P1.0 P1.3 引脚上的波形图注释见源程序右边所述。ORG 0000H START: MOV SP ,#20H MOV 30H ,#
11、01H MOV P1 ,#01H ;P1.0 P1.3 引脚输出波形MLP0 :ACALL D50ms ;软件延时50ms MOV A, 30H CJNE A, #08H,MLP1 ;判表格中数据是否取完?MOV A, #01H ;取完,从表头开始取MOV DPTR,#ITAB ;表格首地址MLP2 MOV 30H, A MOVC A,A+DPTR ;取表格中数据MOV P1, A SJMP MLP0 MLP1 :INC A ;表格中数据未取完,准备取下一个SJMP MLP2 ITAB:DB 0, 1,2,4,8 ;表DB 8, 4,2,1 D50ms :;软件延时50ms子程序RET 第 4
12、 章 P132 10. 把长度为10H的字符串从内部RAM 的输入缓冲区INBUF向设在外部RAM 的输出缓冲区 OUTBUF 进行传送, 一直进行到遇见字符“ CR ”时停止,如字符串中无字符“ CR ”,则整个字符串全部传送。加上必要的伪指令,并对源程序加以注释。【答】程序如下:ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV R7,#10H ;数据长度MOV R0,#INBUF ;源数据首地址MOV DPTR,#OUTBUF ;目的数据首地址LOOP: MOV A ,R0 ;把源数据的值赋给A 精选学习资料 - - - - - - - - - 名师归纳总结
13、- - - - - - -第 4 页,共 8 页CJNE A, #0DH ,LOOP1 ;是“ CR ” (ASCII 码值为 0DH) ?SJMP END1 ;是“ CR ”,则结束传送LOOP1 :MOVX DPTR,A ;把 A的值赋给目的数据INC R0 ;源数据下一个地址值INC DPTR ;目的数据下一个地址值DJNZ R7,LOOP ;判数据传送是否完毕?END1 :SJMP END1 14. 80C51 单片机从内部RAM 的 31H单元开始存放一组8 位带符号数,字节个数在30H中。请编写程序统计出其中正数、零和负数的数目,并把统计结果分别存入20H、21H和 22H三个单元
14、中。加上必要的伪指令,并对源程序加以注释。【答】分析:带符号数以字节最高位D7的值来区分是正数( 包括零 ) 和负数。 D7=1,则该带符号数为负数。程序如下:POS_NUM EQU 20H ;正数个数ZERO_NUM EQU 21H ;零个数NEG_NUM EQU 22H ;负数个数ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV POS_NUM,#0 ;计数单位初始化为0 MOV ZERO_NUM,#0 MOV NEG_NUM,#0 MOV R1 ,30H ;数据长度MOV R0 ,#31H ;数据首地址LOOP: MOV A, R0 JB ACC.7, IN
15、C_NEG ;符号位为,该数为负数,跳转加1 CJNE A, #0,INC_POS INC ZERO_NUM ;该数为 0,0 个数加 1 AJMP LOOP1 INC_NEG: INC NEG_NUM ;负数个数加1 AJMP LOOP1 INC_POS: INC POS_NUM ;该数为正数,正数个数加1 LOOP1: INC R0 ;判断统计是否结束DJNZ R1,LOOP END 例如:已知 (30H)=08H,31H单元起存放数据为:00H ,80H ,7EH ,6DH ,2FH,34H,EDH ,FFH 。执行结果: (20H)=04H ,(21H)=01H ,(22H)=03H。
16、15. 两个 10 位的无符号二一十进制数,分别从内部RAM 的 40H单元和 50H单元开始存放。请编程计算该两个数的和,并从内部RAM 的 60H单元开始存放。 加上必要的伪指令,并对源程序加以注释。【答】分析: 10 位的无符号二一十进制数,占5 个字节,每个字节存放一个压缩BCD码(2 位 ) 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 8 页ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV R7 ,#05H ;十位 (5 个字节 ) 计数MOV R0 ,#40H ;被加数首址MOV R1 ,#
17、50H ;加数首址MOV R2 ,#60H ;和数首址CLR C ;清 C标志位ADDB :MOV A,R0 ADDC A,R1 DA A ;二十进制调整MOV B , R0 ;保护被加数地址MOV 20H ,R2 MOV R0 ,20H MOV R0,A ;存和MOV R2 ,20H ;恢复和数地址MOV R0 ,B ;恢复被加数地址INC R0 ;三个地址指针均加INC R1 INC R2 DJNZ R7 ,ADDB ;多字节加未结束,则循环HERE :SJMP HERE END 注意:寄存器间接寻址只针对R0和 R1,所以存和时不能使用指令MOV R2, A 。例如:40H44H内容为
18、78H,10H,10H,10H,10H 50H54H内容为 42H,10H,10H,10H,10H 即 BCD数 1 0 1 0 1 0 1 0 7 8 1 0 1 0 1 0 1 0 4 2 2 0 2 0 2 0 2 1 2 0 运行结果: 60H64H单元中的数为20H, 21H , 20H,20H,20H 第6章P177 4. 请编程实现80C51单片机产生频率为100kHz 等宽矩形波 ( 定时器 / 计数器 T0, 方式 0,定时器中断 ) ,假定 80C51的晶振频率为12MHz 。加上必要的伪指令,并对源程序加以注释。【答】 分析:100kHz 等宽矩形波, 周期为 10s,定
19、时周期为5s,机器周期为1 s。计算: TC=213(12 106 5106) 12=8187=1FFBH 方式 0:定时常数 TCH=FFH ,TCL=1BH 。ORG 0000H 0000 0130 AJMP MAIN ORG 000BH ;定时器T0 中断矢量000B 0141 AJMP INTER ORG 0030H 0030 758900 MAIN: MOV TMOD,#00H ;写控制字,设T0 为定时器,方式0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 8 页0033 758CFF MOV TH0 ,#0FFH ;写
20、定时常数,定时为5s 0036 758A1B MOV TL0 ,#1BH 0039 D28C SETB TR0 ;开启定时器T0 003B D2A9 SETB ET0 ;开定时器T0 中断003D D2AF SETB EA ;开中断003F 013F AJMP $ ;中断等待;定时器T0 中断0041 758CFF INTER: MOV TH0,#0FFH ;重写定时常数0044 758A1B MOV TL0 ,#1BH 0047 B290 CPL P1.0 ;P1口作为输出端,变反输出0049 32 RETI ;中断返回END 第8章P279 2. 如何构造80C51单片机并行扩展的系统总线
21、?【答】 80C51并行扩展的系统总线有三组。地址总线 (A0A15) : 由 P0口提供低8 位地址 A0A7,P0 口输出的低8 位地址 A0A7必须用锁存器锁存,锁存器的锁存控制信号为单片机引脚ALE输出的控制信号。由 P2 口提供高 8 位地址 A8A15。数据总线 (D0D7):由 P0 口提供, 其宽度为 8 位,数据总线要连到多个外围芯片上,而在同一时间里只能够有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。控制总线(CB ) :包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE 、PSEN、EA、WR。8. 外
22、接程序存储器的读信号为,外接数据存储器的读信号为。【答】外接程序存储器的读信号为PSEN,外接数据存储器的读信号为RD。14. 已知可编程I/O 接口芯片8255A的控制寄存器的地址为BFFFH , 要求设定 A口为基本输入, B口为基本输出,C口为输入方式。请编写从C口读入数据后,再从B口输出的程序段。并根据要求画出80C51 与 8255A 连接的逻辑原理图。加上必要的伪指令,并对源程序加以注释。【答】已知8255A 的控制寄存器地址为BFFFH ,若地址线A0、A1被用做 8255A 端口选择信号,则8255A 的 C 口地址为BFFEH ,B 口地址为BFFDH ,A 口地址为BFFC
23、H 。可以选用地址线 P2.6(A14) 作 8255A 的片选线。8255A 与 80C51 连接图如图8-7 所示。图 8-7 8255A 与 80C51 连接图程序如下:ORG 0000H MOV DPTR,#0BFFFH ;8255A 控制寄存器地址MOV A, #99H MOVX DPTR,A ;控制字 (PA 输入、 PB输出、 PC输入 ) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 8 页MOV DPTR,#0BFFEH ;C口地址MOVX A,DPTR ;PC输入MOV DPTR,#0BFFDH ;B口地址MOVX
24、 DPTR,A ;PB输出22. 利用 ADC0809芯片设计以80C51 为控制器的巡回检测系统。请画出电路连接图,并编写进行某一路模拟量转换的源程序。加上必要的伪指令,并对源程序加以注释。【答】巡回检测系统如图8-11 所示。图 8-11 巡回检测系统分析: 8 路模拟输入通道IN0-IN7的地址为 DFF8H DFFFH(P2.5=0)。ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#0DFF8H ;通道 0 地址MOV R0 ,#40H ;存储单元首址 LOOP:MOVX DPTR ,A ;启动 A/D 转换 LCALL D128s ;延时等待完成 MOVX A,DPTR ;读入转换值MOV R0 ,A ;存入内存D128 s: ;延时128s子程序RET END 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 8 页