微机原理实验报告2.docx
《微机原理实验报告2.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告2.docx(9页珍藏版)》请在冰豆网上搜索。
微机原理实验报告2
实验报告
课程名称:
《微机原理》实验第3次实验
实验名称:
无符号数加减法的实现
实验时间:
2015年9月25日
实验地点:
XXXX组号__________
学号:
XXXX
姓名:
XXX
指导老师:
XX评定成绩:
___________
微机原理实验3
南京大学工程管理学院
一、实验设备:
计算机
二、实验用时:
4小时
三、实验内容:
1.编写子程序Add_16,实现双字节无符号数加法。
要求在地址0x70~0x73定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。
2.编写子程序Sub_16,实现双字节无符号数减法。
要求在地址0x20~0x23定义变量ACCALO、ACCAHI、ACCBLO、ACCBHI。
其中:
ACCALO;存放加数或减数低8位
ACCAHI;存放加数或减数高8位
ACCBLO;存放被加数或被减数低8位
ACCBHI存放被加数或被减数高8位
编写Main主程序,使用被数0x4C4B和数0x40D2对编写的子程序进行加法和减法测试。
(测试数字可以自选,注意数据大小对结果的影响。
)
四、实验报告要求:
1.程序框图和源程序清单
五、实验结果:
1、程序框图:
(1)
否
是
(2)
否
是
2、源程序清单:
(1)
listp=16f877A;标明所用的处理器类型
#include;调用头文件
ACCALOEQU0x70
ACCAHIEQU0x71
ACCBLOEQU0x72
ACCBHIEQU0x73
org0x0000;复位入口地址
main
MOVLW0x4b;
MOVWFACCBLO;
MOVLW0x4c;
MOVWFACCBHI;
MOVLW0xd2;
MOVWFACCALO;
MOVLW0x40;
MOVWFACCAHI;
CALLAdd_16;
NOP;
GOTO$;
Add_16
MOVFACCALO,w;
ADDWFACCBLO,f;
BTFSCSTATUS,C;
INCFACCBHI;
MOVFACCAHI,w;
ADDWFACCBHI,f;
RETURN;
END;程序结束
(2)
listp=16f877A;标明所用的处理器类型
#include;调用头文件
ACCALOEQU0x20
ACCAHIEQU0x21
ACCBLOEQU0x22
ACCBHIEQU0x23
w_temEQU0x74
org0x0000;复位入口地址
main
MOVLW0x25;
MOVWFACCBLO;
MOVLW0x20;
MOVWFACCBHI;
MOVLW0x40;
MOVWFACCALO;
MOVLW0x4c;
MOVWFACCAHI;
CALLSub_16;
NOP;
GOTO$;
Sub_16
MOVLW0x00;
MOVWFw_tem;
MOVFACCBLO,w;
XORLW0xff;
ADDLW0x01;
MOVWFACCBLO;
MOVFACCBLO,w;
ADDWFACCALO,f;
BTFSCSTATUS,C;
INCFw_tem,f;
MOVFACCBHI,w;
XORLWb'11111111';
MOVWFACCBHI;
MOVFACCAHI,w;
ADDWFw_tem,w;
ADDWFACCBHI,w;
MOVWFACCAHI;
RETURN;
END;程序结束
3、实验截图:
(1)
截图1
ACCAHI=0x40,ACCALO=0xd2,ACCBHI=0x4c,ACCBLO=0x4b,
最终结果:
ACCBHI=0x8d,ACCBLO=0x1d
(2)
截图2
ACCAHI=0x4c,ACCALO=0x40,ACCBHI=0x20,ACCBLO=0x25,
最终结果:
ACCAHI=0x2c,ACCALO=0x1b
六、实验结果分析及反思:
1、movlw是W寄存器赋立即数值,movwf是把W寄存器的内容传送至数据寄存器中,两者要注意区分;
2、对单片机的学习不应该只停留在理论阶段,应该多了解单片机的底层构件,这样在以后进行硬件仿真时遇到问题才不会手足无措,无计可施;
3、movf可以实现把数据寄存器的内容传送至目的寄存器,要注意它和movlw、movwf之间的区别;
4、状态寄存器STATUS中的C为1表示有进位或无借位,为0表示无进位或有借位;
七、实验总结:
1、实现无符号数加减法仅仅是指令的简单使用,不过应该注意看门狗的溢出复位问题,即应该注意给看门狗计数定时清零,应用clrwdt指令;
2、在做微机原理实验时,要有耐心,一般来说,微机原理实验的内容较多,所涉及的软件种类多,所以对于动手能力有很大的提升,对思维能力也有很好的帮助;
3、PIC单片机的I/O口在作为输出时,有很强的驱动能力,高电平输出时的拉电流和低电平时的灌电流都可以达到25mA。
而在作为输入时,端口会呈现出极高的输入阻抗,由端口引入的输入漏电流不超过1μA,对于输入信号来说基本上可以视为开路状态;
4、器件在休眠模式时,仍可正常工作的模块如下:
WDT定时器、
TIMER1定时器、数模转换器、LCD模块、比较器、参考电压模块、
欠压复位模块(电路);
5、PIC单片机关于中断编程有这几个原则:
中断服务程序尽量短,只做必须做的事情,其他的放到主循环里去做;其次,中断服务中尽量避免调用其他子程序,防止堆栈溢出;最后,不要在中断中做复杂运算;
6、PIC单片机I/O口的基本结构是由3个D触发器构成的锁存器、2个受控三态门、1个反相器、1个TTL电平缓冲器、1个具有双输入端的或门、1个具有双输入端的与门、互补推挽输出的PMOS管(P沟道场效应管)和NMOS管(N沟道场效应管)以及2个钳位二极管构成的。
下面我们要分析一下I/O口是怎样工作的,这对我们理解PIC单片机的性能是有帮助的;
7、上拉电阻就是把不确定的信号通过一个电阻嵌位在高电平,此电阻还起到限流的作用。
同理,下拉电阻是把不确定的信号嵌位在低电平。
上拉电阻是说的是器件的输入电流,而下拉说的则是输出电流;
8、指令助记符不能顶格书写(即不能够靠最左边),当前面没有标号时,必须至少保留一个空格;
9、操作码又称指令助记符,决定着指令的操作类型和操作性质,是汇编语言语句中的核心要素,每一条汇编指令都不可缺少,而其它三部分有些指令可以缺省;