单片机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京晓庄学院电子工程学院
实验报告
课程名称:单片机系统设计与应用
姓名:森
专业:电子信息科学与技术
年级:14级
学号:05
2016年12 月1 日
实验项目列表
序号实验项目名称成绩指导教师
1 单片机仿真软件的使用
2 单片机I/O接口应用实验——流水灯
3 外部中断实验——工业顺序控制模拟
4 定时/计数器实验——矩形波
5 定时/计数器实验——计数器
6 综合实验
7
8
9
10
注:
1、实验箱端口为com6。
2、芯片选择切换到51
3、停止运行使用实验箱上的复位按钮
实验室号:___ 实验时间:成绩:
实验一仿真软件的使用
1.实验目的和要求
1)熟悉Keil C51软件界面,以及编辑、编译、运行程序的步骤;
2)掌握单片机仿真软件使用和调试的方法。
2.实验原理
Keil C51软件使用
在Keil C51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
3.主要仪器设备(实验用的软硬件环境)
安装有Keil C51软件的PC机1台
4.操作方法与实验步骤
Keil C51软件使用
(1)建立用户文件夹
(2)建立工程
(3)建立文件并编码。输入以下源程序,并保存在项目所在的目录中
(4)把文件加入工程中
(5)编译工程。编译时观察在界面下方的“Build”页中的到编译错误信息和使用的系统资源情况等。
(6)调试。利用常用调试命令,如复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令进行调试,观察并分析调试结果。
(7)目标代码文件的生成。运行生成相应的.HEX文件。
5.实验内容及程序
1)从DATA区地址起始地址为40H的连续10个内存单元的内容传送到XDATA区起始地址为2000H的10个内存单元中。
注意:DATA区地址起始地址为40H的连续10个内存单元必须先赋初值。
P83-5源程序
#include
#define uchar unsigned char
xdata unsigned char buffer1[10]_at_ 0x2000;
//在xdata区定义数组变量BUF1,首地址为2000H
data unsigned char buffer2[10]_at_ 0x40;
//在data区定义数组变量BUF2,首地址为40H
void main(void)
uchar i;
for(i=0;i<10;i++)
buffer1[i]='A';
for(i=0;i<10;i++)
buffer2[i]=buffer1[i];//把data区中的内容传送给xdata区
while(1);
}
6.实验现象
P83-5运行效果图
2)将DATA区地址为20H的单元赋初值为05H,地址为21的单元赋初值为06H,将这两个单元的数据拼成56H,存入XDA TA区地址为2000H的单元。
程序(程序中请对应写出关键注释语句)
P275源程序
#include
#include
#define a XBYTE[0x2001]
#define b XBYTE[0x2002]
main(void)
{
a=0x05;
b=0x06;
a=a<<4;
b=a|b;
}
P275运行效果图
实验室号:___ 实验时间:成绩:
实验二单片机I/O接口应用—流水灯
1.实验目的和要求
1)进一步掌握单片机仿真软件的使用方法。
2)掌握单片机最小系统的构成。
3)掌握单片机I/O口的使用方法,如何控制I/O口检测按键及驱动LED发光二极管。
4)熟悉C51程序编程和调试方法。
2.电路原理图(附proteus电路原理图)
3.主要仪器设备(实验用的软硬件环境)
安装有Keil C51软件与Proteus仿真软件PC机1台
单片机试验箱一套
4.实验说明及实验步骤
●P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作为输入的口线,
必须向锁存器相应位写入“1”,该位才能作为输入。
●延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环实
现。在系统时间允许的情况下可以采用后一种方法。本实验中延时子程序采用指令循环来实现。
1)源程序设计
分析设计要求,根据任务要求,绘制源程序流程图,然后使用Keil C进行源程序文件的设计与调试,观察并分析程序调试结果。
2)硬件运行
加载目标代码至单片机中,运行,观察运行结果
5.实验内容及程序
1)在P1口实现流水灯。
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint i) //延时函数
{ uchar t;
while (i--)
{ for(t=0; t<120; t++);
}
}
void main( ) //主程序
{ P1=~0xfe; //高电平点亮第一个灯
while (1)
{
delay( 500 ); //500为延时参数
P1=_crol_(P1,1) ; //P1中的数据循环左移1位,实现流水灯}
}
2)任选某P端口接开关,控制流水灯的启动和停止。
接线:P10-P17接D0-D7;P2.x接K0
#include
#include
#define uchar unsigned char
#define uint unsigned int
void delay(uint i) //延时函数
{ uchar t;
while (i--)
{ for(t=0; t<120; t++);
}
}
sbit KEY=P2^0; //定义P2^0口作为开关
void main( ) //主程序
{ P1=~0xfe; //高电平点亮第一个灯