电子科技大学微机系统原理与接口第二版课后习题答案chapter10习题解答
微机原理与接口技术(第二版)典型复习题与参考答案(1)

第2章思考与习题参考答案2-1简述微处理器的主要性能指标,性能公式〔2-1说明了什么?公式〔2-1: 性能=核心频率×每个周期执行指令的条数说明,微处理器的性能的提高不仅取决于工作频率,还依赖每周期执行指令的条数。
新的处理器代替老的处理器,就是根据这一性能公式来提高它的性能的。
即或单独提高频率,或单独增加每周期执行指令的条数,或既提高频率又增加每周期执行指令的条数。
由于核心频率的提高是有限制的,因此从Cure系列开始注重提高每个周期指令执行的条数来提高性能。
2-2简述微处理器的工作方式、各工作方式的含义和区别是什么?它们之间是如何切换的?答:1.五种工作方式:实地址方式、保护虚地址方式、虚拟86方式、系统管理方式以及IA-32E方式。
2.含义:<1>实地址方式是指处理器工作在8086/8088编程环境下的工作方式。
<2>保护地址方式,又称保护虚地址方式,简称保护方式,是真正发挥处理器潜能的一种工作方式。
所谓保护是指在执行多任务操作时,对不同任务使用的不同存储空间进行完全隔离,保护每个任务顺利执行。
<3>虚拟86方式是指一个多任务的环境,即模拟多个8086的工作方式。
在这个方式之下,处理器被模拟成多个8086微处理器同时工作。
<4> 系统管理方式〔SMM是为实现特定功能及系统安全提供的一种工作方式,SMM的功能主要包括电源管理以及为操作系统和正在运行的程序提供安全性。
SMM最显著的应用就是电源管理。
以上四种方式是IA-32所有处理器所具有的工作方式。
<5>从后期的P4到以Core为核心的处理器开始支持64位扩展技术,引入了IA-32E工作方式。
在这种方式下,处理器支持两种模式即兼容的工作方式〔兼容IA-32处理器的方式和64位工作方式。
在兼容模式下,允许在64位操作系统下运行原来的16位和32位应用程序,采用EM64T技术,支持64位操作,同时支持36位的地址,支持64位线性地址,默认的地址空间为64位,默认的数据宽度为32位,指令允许32/64地址和32/64数据的混合使用,因此又把Core为核心的处理器称为32/64处理器,与真正64位处理器有区别,可称之为具有64位功能的32位处理器。
微机系统原理与接口技术课后习题答案

第一章1.写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?(1) (0110 1110)二进制原码=(+110 1110)二进制真值=(+110)十进制真值(0110 1110)二进制反码=(+110 1110)二进制真值=(+110)十进制真值(0110 1110)二进制补码=(+110 1110)二进制真值=(+110)十进制真值(2) (1011 0101)二进制原码=(-011 0101)二进制真值=(-53)十进制真值(1011 0101)二进制反码=(-100 1010)二进制真值=(-74)十进制真值(1011 0101)二进制补码=(-100 1011)二进制真值=(-75)十进制真值2.写出下列二进制数的原码、反码和补码(设字长为8位):(1) (+101 0110)二进制真值=(0101 0110)原码=(0101 0110)反码=(0101 0110)补码(3) (-101 0110)二进制真值=(1101 0110)原码=(1010 1001)反码=(1010 1010)补码3.下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?(2) (1111 1111)二进制原码=(-127)十进制真值(1111 1111)二进制反码=(-0)十进制真值(1111 1111)二进制补码=(-1)十进制真值(3) (1000 0000)二进制原码=(+0)十进制真值(1000 0000)二进制反码=(-127)十进制真值(1000 0000)二进制补码=(-128)十进制真值4.已知X1=+0010100,Y1=+0100001,X2=?0010100,Y2=?0100001,试计算下列各式(设字长为8位):(1) [X1+Y1]补= [X1]补+ [Y1]补= 0001 0100 + 0010 0001 = 0011 0101(2) [X1-Y2]补= [X1]补+ [-Y2]补= 0001 0100 + 0010 0001 = 0011 0101(3) [X2-Y2]补= [X2]补+ [-Y2]补= 1110 1100 + 0010 0001 = 0000 1101(4) [X2+Y2]补= [X2]补+ [Y2]补= 1110 1100 + 1101 1111 = 1100 10115.用补码判断下列算式是否发生溢出,若不溢出,计算其结果(设字长为8位):(4)?85?60=[10101011]补+[11000100]补运算结果显示:最高位有进位,次高位无进位,结果溢出。
微机原理与接口技术课后答案第二版

微机原理与接口技术课后答案第二版【篇一:《微机原理与接口技术》(第二版)龚尚福-习题解析和实验指导】xt>2.2 8086微处理器由哪几部分组成?各部分的功能是什么?16355【解】:按功能可分为两部分:总线接口单元biu(bus interface unit)和执行单元eu(execution unit)。
总线接口单元biu是8086 cpu在存储器和i/o设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和i/o设备的所有操作都是由biu完成的。
所有对外部总线的操作都必须有正确的地址和适当的控制信号,biu中的各部件主要是围绕这个目标设计的。
它提供了16位双向数据总线、20位地址总线和若干条控制总线。
其具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。
cpu执行指令时,总线接口单元要配合执行单元,从指定的内存单元或i/o端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或i/o端口中。
执行单元eu中包含1个16位的运算器alu、8个16位的寄存器、1个16位标志寄存器fr、1个运算暂存器和执行单元的控制电路。
这个单元进行所有指令的解释和执行,同时管理上述有关的寄存器。
eu对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。
如果指令队列缓冲器中是空的,那么eu就要等待biu通过外部总线从存储器中取得指令并送到eu,通过译码电路分析,发出相应控制命令,控制alu数据总线中数据的流向。
2.3 简述8086 cpu的寄存器组织。
【解】:(1)通用寄存器:通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。
当用作16位时,称为ax、bx、cx、dx。
当用作8位时,ah、bh、ch、dh 存放高字节,al、bl、cl、dl存放低字节,并且可独立寻址。
这样,4个16位寄存器就可当作8个8位寄存器来使用。
微型计算机原理与接口技术(第二版)习题参考解答

mov al , ah
adc al , bl
mov result , cx
adc al , bh
daa
mov ax , [x1+1]
daa
mov cl , al
mov bx , [x2+1]
mov ch , al
mov al , ah 【解】(6)
adc al , bl
mov [result+1] , cx
; 基址变址相对寻址
寄存器寻址
(9) in al , 05
; 寄存器寻址
立即数
(10) mov ds , ax
; 寄存器寻址
寄存器寻址
2. 已知:DS=1000H,BX=0200H,SI=02H,内存 10200H~10205H 单元的内容分别为 10H,2AH,3CH,46H,59H,6BH。
下列每条指令执行完后 AX 寄存器内容各为什么?
(1) MOV AX , 0200
; 执行后,AX=0200H
(2) MOV AX , [200H]
; 执行后,AX=2A10H
(3) MOV AX , BX
; 执行后,AX=0200H
(4) MOV AX , 3[BX]
; 执行后,AX=5946H
(5) MOV AX , [BX+SI]
; 执行后,AX=463CH
题 5. 假设程序中的数据定义如下:
par
dw ?
pname db 16 dup(?)
count dd ?
plenth dw $-par 求 plenth 的值为多少?表示什么意义?
(1) mov ax , [100h]
; 直接寻址,
微机原理与接口技术课后习题答案

微机原理与接口技术习题解答第1章微型计算机系统〔习题〕简答题(1)计算机字长(Word)指的是什么(2)总线信号分成哪三组信号(3)PC机主存采用DRAM组成还是SRAM组成(4)Cache是什么意思(5)ROM-BIOS是什么(6)中断是什么(7)32位PC机主板的芯片组是什么(8)教材中MASM是指什么(9)处理器的“取指-译码-执行周期”是指什么(10)本课程的主要内容属于计算机系统层次结构中哪个层次〔解答〕①处理器每个单位时间可以处理的二进制数据位数称计算机字长。
②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③ PC机主存采用DRAM组成。
④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧ MASM是微软开发的宏汇编程序。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑩机器语言层,即指令集结构。
(学生很多认为是:汇编语言层。
前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)〔习题〕判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。
(2)IA-64结构是IA-32结构的64位扩展,也就是Intel 64结构。
(3)8086的数据总线为16位,也就是说8086的数据总线的个数、或说条数、位数是16。
(4)微机主存只要使用RAM芯片就可以了。
(5)处理器并不直接连接外设,而是通过I/O接口电路与外设连接。
微机原理与接口技术课后习题答案

微机原理与接口技术习题解答第1章微型计算机系统〔习题〕简答题(1)计算机字长(Word)指的是什么(2)总线信号分成哪三组信号(3)PC机主存采用DRAM组成还是SRAM组成(4)Cache是什么意思(5)ROM-BIOS是什么(6)中断是什么(7)32位PC机主板的芯片组是什么(8)教材中MASM是指什么(9)处理器的“取指-译码-执行周期”是指什么(10)本课程的主要内容属于计算机系统层次结构中哪个层次〔解答〕①处理器每个单位时间可以处理的二进制数据位数称计算机字长。
②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③ PC机主存采用DRAM组成。
④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧ MASM是微软开发的宏汇编程序。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑩机器语言层,即指令集结构。
(学生很多认为是:汇编语言层。
前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)〔习题〕判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。
(2)IA-64结构是IA-32结构的64位扩展,也就是Intel 64结构。
(3)8086的数据总线为16位,也就是说8086的数据总线的个数、或说条数、位数是16。
(4)微机主存只要使用RAM芯片就可以了。
(5)处理器并不直接连接外设,而是通过I/O接口电路与外设连接。
微机原理与接口技术课后答案第二版

微机原理与接口技术课后答案第二版----05740ed2-6eb2-11ec-8cac-7cb59b590d7d【篇一:《微机原理与接口技术》(第二版)龚尚福-习题分析和实验指南]xt>2.28086微处理器由哪几部分组成?各部分的功能是什么?16355【解决方案】:根据功能可分为两部分:总线接口单元(BIU)和执行单元(EU)。
总线接口单元biu是8086cpu在存储器和i/o设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和i/o设备的所有操作都是由biu完成的。
所有对外部总线的操作都必须有正确的地址和适当的控制信号,biu中的各部件主要是围绕这个目标设计的。
它提供了16位双向数据总线、20位地址总线和若干条控制总线。
它的具体任务是从内存单元预取指令,并将其发送到指令队列缓冲区进行临时存储。
当CPU执行指令时,总线接口单元应配合执行单元从指定的存储器单元或I/O端口取出数据并传输到执行单元,或将执行单元的处理结果传输到指定的存储器单元或I/O端口。
执行单元eu中包含1个16位的运算器alu、8个16位的寄存器、1个16位标志寄存器fr、1个运算暂存器和执行单元的控制电路。
这个单元进行所有指令的解释和执行,同时管理上述有关的寄存器。
eu对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取一个字节。
如果指令队列缓冲器中是空的,那么eu就要等待biu通过外部总线从存储器中取得指令并送到eu,通过译码电路分析,发出相应控制命令,控制alu数据总线中数据的流向。
2.3简要描述8086 CPU的寄存器组织。
【解】:(1)通用寄存器:通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。
当用作16位时,称为ax、bx、cx、dx。
当用作8位时,ah、bh、ch、dh存放高字节,al、bl、cl、dl存放低字节,并且可独立寻址。
这样,4个16位寄存器就可当作8个8位寄存器来使用。
电子科技大学微机系统原理与接口第二版课后习题答案chapter10习题解答

“微处理器系统原理与嵌入式系统设计”第十章习题解答10.2 简述以ARM微处理器为核心的最小硬件系统的组成?●ARM微处理器;●电源模块,包括CPU内核和I/O接口电源;●时钟模块,包括系统主时钟和实时时钟;●复位模块,包括系统加电复位、手动复位和内部复位;●存储器模块,包括程序保存存储器和程序运行存储器;●JTAG调试接口模块。
10.4 简述S3C2440A芯片中各模块时钟信号产生及配置的原理。
为降低系统功耗,可时钟信号进行哪些处理?系统复位信号与各时钟信号有什么关系?当系统主时钟送入S3C2440A芯片后,进入其时钟发生模块,由锁相环进行相应的处理,最终得到FCLK,HCLK,PCLK和UCLK四组时钟信号。
其中,FCLK信号主要供给ARM920T内核使用,HCLK主要供给AHB总线、存储器控制器、中断控制器、LCD控制器、DMA控制器和USB主机模块;PCLK主要供给访问APB总线的外设,例如WDT,I2S,I2C,PWM定时器,MMC接口,ADC,UART,GPIO,RTC和SPI模块;UCLK主要提供USB模块需要的48MHz 时钟。
为降低系统功耗,可对时钟信号进行门控管理。
最低功耗情况下,只开启FCLK信号,其他时钟信号关闭;若需对其他外设,只需使能相应总线及外设的时钟信号有效即可。
系统复位信号一般包括加电复位、手动复位和内部复位三类。
其中,加电复位和手动复位信号均来自外部复位电路,内部复位信号一般来自系统内部事务处理(例如看门狗复位等)。
因此,系统对外部复位信号波形有一定的要求,若不能满足要求系统将不能正常工作。
在S3C2440A芯片中,要完成正确的系统复位,在处理电源保持稳定之后,该信号必须至少维持4个FCLK时钟的低电平状态。
10.6 利用S3C2440A的GPIO端口,设计包含8个LED的流水灯电路,每个LED 间隔1S轮流点亮,试画出程序流程图并写出相关程序段。
假设利用S3C2440A芯片的GPIO端口G的第0~7引脚驱动8个LED电路,对应GPIO输出为0时LED灯亮,则相应程序流程图及相应程序段如下所示:GPGCON EQU 0x56000060GPGDAT EQU 0x56000064GPGUP EQU 0x56000068;配置GPGCON寄存器,设置相关引脚为输出功能LDR R0,=GPGCONLDR R1,[R0]BIC R1,R1,#0x0000FFFFORR R1,R1,#0x00005555STR R1,[R0];配置GPGUP寄存器,断开各上拉电阻LDR R0,=GPGUPLDR R1,[R0]ORR R1,R1,#0x00FFSTR R1,[R0];输出驱动数据,点亮对应LED等LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x00FESTR R3,[R2]LDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序…LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x007FSTR R3,[R2]LDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序B LOOPSTARDELAYSUB R0,R0,#1CMP R0,#0x0BNE DELAYMOV PC,LR10.7 在上题中,如果要加入一个按键,实现按键按下时流水灯停止流动,按键放开时流水灯正常流转的功能,思考应怎样修改电路和程序?在上题的基础上,添加一个GPIO口作为输入管脚(GPA的GPA[0]),按键按下GPA[0]值为1,否则为零。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“微处理器系统原理与嵌入式系统设计”第十章习题解答10.2 简述以ARM微处理器为核心的最小硬件系统的组成?●ARM微处理器;●电源模块,包括CPU内核和I/O接口电源;●时钟模块,包括系统主时钟和实时时钟;●复位模块,包括系统加电复位、手动复位和内部复位;●存储器模块,包括程序保存存储器和程序运行存储器;●JTAG调试接口模块。
10.4 简述S3C2440A芯片中各模块时钟信号产生及配置的原理。
为降低系统功耗,可时钟信号进行哪些处理?系统复位信号与各时钟信号有什么关系?当系统主时钟送入S3C2440A芯片后,进入其时钟发生模块,由锁相环进行相应的处理,最终得到FCLK,HCLK,PCLK和UCLK四组时钟信号。
其中,FCLK信号主要供给ARM920T内核使用,HCLK主要供给AHB总线、存储器控制器、中断控制器、LCD控制器、DMA控制器和USB主机模块;PCLK主要供给访问APB总线的外设,例如WDT,I2S,I2C,PWM定时器,MMC接口,ADC,UART,GPIO,RTC和SPI模块;UCLK主要提供USB模块需要的48MHz 时钟。
为降低系统功耗,可对时钟信号进行门控管理。
最低功耗情况下,只开启FCLK信号,其他时钟信号关闭;若需对其他外设,只需使能相应总线及外设的时钟信号有效即可。
系统复位信号一般包括加电复位、手动复位和内部复位三类。
其中,加电复位和手动复位信号均来自外部复位电路,内部复位信号一般来自系统内部事务处理(例如看门狗复位等)。
因此,系统对外部复位信号波形有一定的要求,若不能满足要求系统将不能正常工作。
在S3C2440A芯片中,要完成正确的系统复位,在处理电源保持稳定之后,该信号必须至少维持4个FCLK时钟的低电平状态。
10.6 利用S3C2440A的GPIO端口,设计包含8个LED的流水灯电路,每个LED 间隔1S轮流点亮,试画出程序流程图并写出相关程序段。
假设利用S3C2440A芯片的GPIO端口G的第0~7引脚驱动8个LED电路,对应GPIO输出为0时LED灯亮,则相应程序流程图及相应程序段如下所示:GPGCON EQU 0x56000060GPGDAT EQU 0x56000064GPGUP EQU 0x56000068;配置GPGCON寄存器,设置相关引脚为输出功能LDR R0,=GPGCONLDR R1,[R0]BIC R1,R1,#0x0000FFFFORR R1,R1,#0x00005555STR R1,[R0];配置GPGUP寄存器,断开各上拉电阻LDR R0,=GPGUPLDR R1,[R0]ORR R1,R1,#0x00FFSTR R1,[R0];输出驱动数据,点亮对应LED等LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x00FESTR R3,[R2]LDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序…LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x007FSTR R3,[R2]LDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序B LOOPSTARDELAYSUB R0,R0,#1CMP R0,#0x0BNE DELAYMOV PC,LR10.7 在上题中,如果要加入一个按键,实现按键按下时流水灯停止流动,按键放开时流水灯正常流转的功能,思考应怎样修改电路和程序?在上题的基础上,添加一个GPIO口作为输入管脚(GPA的GPA[0]),按键按下GPA[0]值为1,否则为零。
按键按下时流水灯停止流动,按键放开时流水灯重新启动。
故需在每次对GPGDAT寄存器赋值前/后进行判断操作(答案是后进行判断,之前判断也是正确的),若判断有按键按下,则跳转出改程序段,否者继续执行。
相应程序如下:GPACON EQU 0x56000000GPADAT EQU 0x56000004GPAUP EQU 0x56000008GPGCON EQU 0x56000060GPGDAT EQU 0x56000064GPGUP EQU 0x56000068;配置GPACON寄存器,设置相关引脚为输出功能LDR R0,=GPACONLDR R1,[R0]BIC R1,R1,#0x00000003ORR R1,R1,#0x00000000STR R1,[R0];配置GPAUP寄存器,断开各上拉电阻LDR R0,=GPAUPLDR R1,[R0]ORR R1,R1,#0x0001STR R1,[R0];配置GPGCON寄存器,设置相关引脚为输出功能LDR R0,=GPGCONLDR R1,[R0]BIC R1,R1,#0x0000FFFFORR R1,R1,#0x00005555STR R1,[R0];配置GPGUP寄存器,断开各上拉电阻LDR R0,=GPGUPLDR R1,[R0]ORR R1,R1,#0x00FFSTR R1,[R0];输出驱动数据,点亮对应LED等LOOPSTARLDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x00FESTR R3,[R2]LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0xFFFECMP R3,#0x1BEQ WAITLDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序…LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0x00FFORR R3,R3,#0x007FSTR R3,[R2]LDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0xFFFECMP R3,#0x1BEQ WAITLDR R0,=0xFFFFFF ;初始计数值BL DELAY ;调用延迟子程序B LOOPSTARDELAYSUB R0,R0,#1CMP R0,#0x0BNE DELAYMOV PC,LRWAITLDR R2,=GPGDATLDR R3,[R2]BIC R3,R3,#0xFFFECMP R3,#0x1BEQ WAITB LOOPSTAR10.8 在某采用小端存储的S3C2440系统中,处理器外设时钟PCLK=66.68MHz,使用其UART1接口实现串行通信,要求传输速率19200bps,不使用FIFO,关闭流控制,帧格式:8位数据位,2位停止位,偶校验。
试写出各初始化控制字,并编写初始化程序段。
;相关寄存器地址定义CLKDIVN EQU 0x4C000014 ;CLKDIVN for PCLK and FCLKCAMDIVN EQU 0x4C000018 ;CANDIVNULCON1 EQU 0x50004000 ;UART line control register 0UCON1 EQU 0x50004004 ;UART control register 0UFCON1 EQU 0x50004008 ;UART FIFO control register 0UMCON1 EQU 0x5000400C ;UART modem control register 0UBRDIV1 EQU 0x50004028 ;UART baud rate divisor register 0UTRSTAT1 EQU 0x50004010 ;UART TX/RX status register 0UTXH1 EQU 0x50004020 ;UART transmit buffer register 0URXH1 EQU 0x50004024 ;UART receive buffer register 0MPLLCON EQU 0x4C000004 ;MPLL control registerAREA SerialCommunication,CODE,READONLYENTRYldr r2,=MPLLCON ;设置MPLL为0x00076022 FCLK=Mpll=(2*m*Fin)/(p*(2的s次方)), Fin=16.9344MHz; m=(MDIV+8), p=(PDIV+2), s=SDIVmov r3,#0x22mov r4,#0x00076000ADD r3,r3,r4str r3,[r2]ldr r2,=CLKDIVN ; CLKDIVN 设置为0x03, PCLK=FCLK/4mov r3,#0x03str r3,[r2]ldr r2,=CAMDIVN ; CLKDIVN 设置为0x0200, PCLK=FCLK/4mov r3,#0x200str r3,[r2]ldr r2,=ULCON1 ; ULCON1 设置为0x07, 含义是正常操作模式,无校验,停止位2,8个数据位mov r3,#0x07str r3,[r2]ldr r2,=UCON1 ;UCON1 设置为0x05 表示发送、接收数据都使用查询方式,该处初始化为中断模式也正确mov r3,#0x05str r3,[r2]ldr r2,=UFCON1 ;UFCON1 设置为0x00 为不使用FIFOmov r3,#0x00str r3,[r2]ldr r2,=UMCON1 ;UMCON1 设置为0x00 为不使用流控mov r3,#0x00str r3,[r2]ldr r2,=UBRDIV1 ;UBRDIV1 设置为216,含义为波特率设为19200, 由下面公式算得:UBRDIVn = (int)(PCLK/bps*16)-1;其中PCLK =66.68MHzmov r3,#216 ;或者16进制表示0XD8strh r3,[r2]10.9 在上题中,若采用查询方式进行数据传输,要将位于地址DATA处的100字节发送到其他设备,试画出程序流程图,并写出相关程序段。
查询方式进行数据传输的代码段如下:CHECKLDR R2,= UTRSTAT1LDR R3,[R2]AND R3,R3,#0X02CMP R3,#0X02BNE WAITSET LDR R5,=DATALDRB R3,[R5],#1LDR R2,=UTXH1STRB R3,[R2]SUB R5,R5,#1CMP R5,#0x64BNE CHECK10.10 在10.8题中,若要实现处理器收到数据0xAA,则回应1字节数据0x55的功能,试画出采用查询方式传输的程序流程图,并写出相关程序段。
进一步思考如果采用中断方式工作,需要对软件进行怎样的修改?相应代码段如下:Array CHECKLDR R2,=UTRSTAT1LDR R3,[R2]AND R3,R3,#0X01CMP R3,#0X01BNE CHECKWAITLDR R3,[R2]AND R3,R3,#0X02CMP R3,#0X02BNE WAITSET LDR R2,=URXH1LDRB R3,[R2]CMP R3,#0xAAMOVEQ R3,#0x55LDR R2,=UTXH1STRB R3,[R2]B CHECK若采用中断方式工作的话,需要将UCON1配置寄存器设为中断工作模式;在接收到数据后触发中断,进入中断子程序,进行相应操作。