《单片机原理与应用》实验报告.doc
文本预览下载声明
《单片机原理与应用》实验报告
学 院(部): 交通工程学院 专 业: 电子技术专业 学 生 姓 名: 刘信君 指 导 老 师: 欧 伟 明 班 级: 1402 学号 14401700627
2016年11月
目 录
实验一 存储器读写 3
实验二 I/O端口操作 4
实验三 定时中断 5
实验四 8位LED数码管动态扫描显示 6
实验五 外部中断 7
《单片机原理与应用》实验之目的:
初步掌握Keil C51软件的使用,包括单片机CPU源程序的编辑、编译、模拟调试;
了解Proteus软件的使用,初步掌握MCU应用系统的仿真调试,以学生自学为主;
了解Protel软件的使用,初步掌握电路原理图的绘制方法与技巧,以学生自学为主;
强化MCU知识点,MCU应用系统设计技巧。
实验一 存储器读写
一:实验目的
掌握汇编语言设计和实验步骤,掌握寄存器、存储器读写的汇编指令;
熟悉在Keil C51环境下观察MCU的内部RAM、外部RAM、I/O端口、程序存储器中内容的方法。
二:源程序清单:
ORG 0000H
SJMP start ;跳至start
ORG 30H
start:
MOV R0,#07H ;07H这个立即数给R0
MOV R1,#0FEH ;0FEH这个立即数给R1
ADD A,R0 ;R0里的内容给A
ADDC A,R1 ;R1和A的内容相加给A
MOV DPTR,#2000H ;2000H这个立即数给DPTR
MOVX @DPTR,A ;A的内容给DPTR内容对应地址
MOVX A,@DPTR ;DPTR内容对应地址的内容给A
INC A ;A的内容加一
MOV P1,A ;A的内容给P1
END
三:实验结果
四:思考题 试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。
源程序:
ORG 0000H
SJMP STRAT
ORG 0030H
START:MOV R1,#31H
MOV R2,#30H
MOV R3,#32H
CLR C
MOV A,R1
SUBB A,R2 ;比较R1与R2的大小
JC LOOP1;R1 ;R1小于R2时跳转
MOV A,R1
SUBB A,R3 ;比较R1与R3的大小
JC LOOP2
RET
LOOP1:RET
LOOP2:MOV A,R1
XCH A,R3;
MOV R1,A
MOV A,R2
SUBB A,R3 ;比较R2与R3的大小
JC LOOP3
RET
LOOP3:MOV A,R2
XCH A,R3
MOV R2,A ;排序
RET
总结:了解储存器读写,并学会了实际操作。
实验二 I/O端口操作
一、实验目的
掌握I/O端口读写指令(汇编指令、C51指令);
掌握在Proteus仿真软件环境下,进行硬件电路设计、仿真、调试的基本操作方法。
实验电路原理图:
程序清单
#include reg52.h
#include intrins.h
#define DataPort P2
void delay(unsigned int x);
main()
{
unsigned char i;
while(1)
{
DataPort = 0xfe;
for(i=0; i=7 ; i++)
{
delay(1000);
P2 =(P21)| 0x01;
}
}
}
void delay (unsigned int x)
{unsigned int idata i,j;
for(i=0;ix ; i++ )
{
for(j=0 ;j255 ; j++)
_nop_();
}
四:仿真结果
五:思考题9不妨设单片机应用系统的晶振频率为12MHz,试计算延时子程序的延时时间。
DELAY:MOV R1,#50
DELAY1:MOV R2,#100
HERE:DJNZ R2,HERE
DJNZ R1,DELAY1
RET
总结:掌握了I/O端口读写指令,掌握了在Proteus仿真软件环境下,进行硬件电路设计、仿真、调试的基本操作
显示全部