微机原理与应用实验报告3

  • 格式:pdf
  • 大小:542.62 KB
  • 文档页数:18

实验4 开发工具的使用和单片机结构一、实验目的1、了解MSP430F1xx实验板结构,掌握MSP430F1xx实验板检测方法2、了解MSP430单片机开发工具EW430的基本使用方法3、掌握EW430下常用的View和DEBUG命令4、了解MSP430F149单片机结构5、掌握P1~P6基本输入/输出有关寄存器功能二、实验任务1. 了解MSP430F1xx实验板结构,掌握MSP430F1xx实验板检测方法1.1 任务要求参看“附录D MSP430F1xx实验板简介”中的原理图,了解+5V和+3.3V电源、发光二极管、按键、蜂鸣器等电路工作原理,设计检测这些电路的方法,并记录检测结果。

1.2 任务实现这部分内容实验课上在老师的带领下完成。

下面简述一下发光二极管、按键、蜂鸣器的检测方法。

发光二极管:将发光二极管的引脚(板上标记为LEDx的地方)接地,因为根据原理图,发光二极管的正极连着3.3V的电源,负极作为引脚引出,若将引脚接地,发光二极管应点亮。

按键:将按键的引脚(KEYx)与发光二极管的引脚(LEDx)相连,若按键按下,相当于将发光二极管的负极接地,发光二极管应点亮。

蜂鸣器:将蜂鸣器的引脚(BUZZ)接地,此时三极管导通,蜂鸣器应发声。

2. EW430开发工具的初步使用2.1 任务要求1) 用短线块(也称跳线块)将单片机的引脚P2.7~P2.0与发光二极管的控制端LED8~LED1短接;将单片机的引脚P1.7~P1.0与按键Key8~Key1短接2) 参看“附录E EW430的使用方法”中的一至六,在S_number_name工程空间下建立项目Lab_4,汇编语言源程序参看test_asm.s43,了解汇编语言程序项目建立、程序下载和运行方法。

3) 在Lab_4项目中,将test_asm.s43中的MOV #10h, R15 ,改为MOV #2, R15,重新编译、连接和下载,观看执行的结果有什么不同。

4) 退出EW4302.2 任务实现编译时显示以下出错信息:图4.2.1 test_asm.s43编译出错信息将原指令JUMP next修改为JMP next,编译、连接、下载成功后,8个发光二极管以一定频率同步闪烁。

将test_asm.s43中的MOV #10h, R15 ,改为MOV #2, R15后,发光二极管闪烁频率加快。

下面来分析一下这个程序。

MOV.B #0xFF, &P2DIRMOV #0, R12next: MOV.B R12, &P2OUTCALL #delayXOR #0xFF, R12JMP nextdelay: PUSH R14PUSH R15MOV #10h, R15ww2: MOV #0x4000, R14ww1: DEC R14JNZ ww1DEC R15JNZ ww2POP R15POP R14RET首先,把P2设置为输出端口。

然后给寄存器R12赋初值为0。

接着进入next部分,先是把R12中的数据由端口二输出(直接反映为二极管的亮灭),接着进入delay子程序,然后将R12中的数据的每一位和1异或,相当于将R12中的数据的每一位取反,然后又回到了next将R12的数据输出(刚才二极管是亮的话现在就会熄灭)。

再来分析一下delay子程序。

它先把R14、R15的初始数据放入堆栈,然后将R14赋值为#0x4000,将R15赋值为#10h。

这里有一个循环嵌套,先不断将R14中的数据减1直至其为0,此时R15中的数据减1,又将R14赋值为#0x4000,等到R14中的数据再次减为0时,R15中的数据又减1,直至R15中的数据减为0。

然后R15、R14从堆栈中获得初始数据。

本实验任务中将MOV #10h, R15,改为MOV #2, R15,实际上是将循环过程缩短了,因为本来要进行#10h次将#0x4000减到0的过程,现在只要进行#2次,表现在实验板上的现象就是二极管闪烁的频率加快。

3. 掌握查看和修改寄存器、存储器、外围模块端口寄存器方法3.1 任务要求(1) 将CPU寄存器R4、R5分别修改为0x1234,0x5678,将SR中C、Z标志置为1;(2) 将P2DIR修改为0xFF,将P2OUT修改为0x55;(3) 将地址为0200h开始的5个存储器单元改为0x12、0x34、0x56、0x78、0x90;(4) 将地址为0210h开始的6个存储器单元改为“MSP430”对应的ASCII码。

3.2 任务实现(1) View->Register->CPU Registers,然后修改R4、R5、C、Z的值即可,修改结果如下所示:图4.3.1 查看和修改寄存器(2) View->Register->Port 1/2,然后修改P2DIR和P2OUT的值即可,修改结果如下所示:图4.3.2 查看和修改IO端口(3) View->memory,然后修改5个存储器单元的值即可,修改结果如下所示:图4.3.3 查看和修改存储器(4) View->memory,然后修改5个存储器单元的值即可,注意在右边ASCII码区域修改。

修改结果如下所示:图4.3.4 查看和修改存储器4、了解端口P1~P6的选择PxSEL、方向PxDIR、输入PxIN、输出PxOUT各寄存器功能4.1 任务要求在Lab_4项目的DEBUG下,打开Register窗口,查看P1/P2端口,修改下面I/O寄存器,结合实验板原理图P1和P2端口的连接,解释观察到的现象。

1) 修改P2DIR = 0xFF,设置端口P2为输出方向,按照表4.4.1,修改P2OUT的值,记录看到发光二极管L8~L1的现象,并分析原因。

2) 修改P1DIR = 0x00,设置端口P1为输入方向,按照表4.4.2,按下相应的按键,打开Register窗口查看P1IN的值,可用按位查看的方式查看P1IN各位的值。

4.2 任务实现1) 表4.4.1L8~L1的状态P2.7~P2.0的逻辑值P2OUT = 0x00 全亮00000000P2OUT = 0xFF 全灭11111111P2OUT = 0xBD L7,L2亮10111101P2OUT = 0x6E L8,L5,L1亮01101110分析原因:P2.7~P2.0与发光二极管的控制端LED8~LED1短接,当P2的某一位为零时,对应的发光二极管就点亮。

2) 表4.4.2操作P1IN的值按下K8 0x7F(01111111)同时按下K5,K4 0xE7(11100111)同时按下K3,K1 0xFA(11111010)分析原因:P1.7~P1.0与按键Key8~Key1短接,按下按键时,对应KeyX端口与地短接,为低电平,相应P1.(X-1)就变为0。

5. 了解程序计数器PC(即R0寄存器)的变化规律5.1 任务要求1)已知复位后,MSP430F1xx的PC寄存器从存储器0xFFFE~0xFFFFH单元获取一个字内容作为执行的第一条指令地址,请问实验中查看到该地址的值是多少?程序执行的第一条指令是什么指令?如果用Go(F5)命令执行程序,CPU将从目前PC值指向的存储单元开始取指令并执行,用break可以暂停程序的执行,当前PC指针指向暂停处,用View中的命令可以查看当前MCU的状态,如当前各寄存器的值、各存储单元值等。

2)在调试器是FET DEBUG下,如果将FFFE~FFFFh内存的内容改为1200h,可否?为什么?3)更改项目的属性设置,选调试器是simulator,编译、连接后,进入DEBUG,先将存储器FFFE~FFFFh的内容改为1200h,在DEBUG下用reset操作复位后,观察此时PC值的变化,再发Go命令执行程序,出现什么结果?为什么?5.2 任务实现1) 实验中查看到该地址的值是1100,程序执行的第一条指令是init: MOV #SFE(CSTACK), SP,如下所示:图4.5.1 程序执行的第一条指令2) 不可以。

因为地址FFFE~FFFFh属于中断向量表,系统从这两个地址获取1个字的内容来初始化程序计数器PC,reset后PC也从这两个地址获取第一条指令地址(在这里是0x1100)。

中断向量表是只读的。

3) reset后PC值变为1200,点击Go会弹出下面的对话框,认为是用户的错误操作。

原因是此时reset后PC欲从0x1200这个地址获得第一条指令,但是那里其实什么也没有。

图4.5.2 系统报错6. 了解MSP430F149单片机(可在simulator下完成)6.1 任务要求用MSP430F149实验板,激活项目Lab_4,在option 中设置调试器为simulator,直接对自带的模板文件asm.s43进行编译、连接,然后进入debug,利用view/register查看CPU寄存器当前PC的初值,以及记录有哪些外围模块;用view/memory查看存储器,分别查看SFR(包含了所有外围模块内的I/O寄存器)、RAM、FLASH空间,记录各空间起始地址和末地址,计算各空间大小,结合数据手册MSP430x13x-14x.pdf了解MSP430F149存储系统空间分配情况,并绘制MSP430F149单片机寄存器组和存储系统空间分配图。

思考:阅读附录 D 实验板的原理图,包括MCU小板和实验接口板两部分,结合msp430x13x-14x.pdf、msp430x15x-16x.pdf中有关MCU引脚功能的介绍,回答:为什么实验板的硬件系统对MSP430F13x、MSP430F14x 和MSP430F16x是兼容的?对MSP430F157单片机兼容吗?为什么?(硬件兼容,指将实验板上的MCU更换为指定的MCU时,实验板系统仍能正常工作。

)6.2 任务实现PC的初值为0x1100,外围模块、各存储空间的起始地址、末地址和空间大小如下所示:图4.6.1 外围模块SFR RAM FLASH 起始地址0000 0200 1100末地址01FF 09FF FFFF空间大小(字节)0.5K 2K 59.75K MSP430F149单片机寄存器组和存储系统空间分配图如下所示:图4.6.2 MSP430F149单片机寄存器组和存储系统空间分配图观察MSP430F14x和MSP430F13x的引脚图发现,除了编号为33~48的部分引脚14x的功能多于13x之外,其他引脚的位置和功能都一样。

再观察MSP430F14x和MSP430F16x的引脚图发现,除了部分引脚16x的功能多于14x之外,其他引脚的位置和功能都一样。

所以即使更换实验板上的单片机,也能正常运行。

观察MSP430F14x和MSP430F157的引脚图发现,除了部分引脚15x的功能多于14x之外,其他引脚的位置和功能都一样,所以对MSP430F157应该也是兼容的。