嵌入式系统与单片机 流水灯 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
嵌入式系统与单片机
实验报告
学生姓名
学号
专业班级
指导教师
学院信息科学与工程学院完成时间2012年5月
[实验名称]
单片机流水灯。
[实验目的]
进一步熟悉keil仿真软件、伟福仿真器和实验板的使用。了解并熟悉实验板上单片机I/O口和LED灯的电路结构,掌握C51中单片机I/O口的编程方法,掌握顺序控制程序的简单编程。
[实验原理]
MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。四组并行I/O端口即可以按字节操作,又可以按位操作。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
图P1口的位结构
本实验用到的P1口内部结构如图3-1所示。作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。为了能读到真实的引脚信号,下面的场效应管必须截止,即锁存器的内容必须是1。为了能正确读取引脚信号,锁存器必须先写1。通过C51程序的编写,可以使I/O口的每根引脚在不同的时间输出不同的0、1信号,从而控制外部的设备。
[实验步骤]
1.keil的使用:
新建项目--选择单片机型号--建C语言程序--添加到项目--设置项目--编译加载--选择仿真板
新建项目添加到项目设置项目选择仿真板
2. 将实验板上51单片机的P1口的8根线与实验板上的8位LED灯连接,I/O口的一根引脚控制一个LED灯。根据实验板上LED的硬件连接,编写程序使8个LED灯从最下面依次点亮,每次只亮一盏灯。依此循环。
代码如下
#include"reg51.h"
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
main()
{int b;
while(1)
{
P1=0X7f;
mDelay(5000);
for(b=0;b<7;b++)
{P1=P1>>1|0X80;//P1=P1<<1;
mDelay(5000);
}
}
截图
3. 每次原来的灯保留
代码如下
#include"reg51.h"
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
main()
{int b;
while(1)
{
P1=0X7f;
mDelay(5000);
for(b=0;b<7;b++)
{P1=P1>>1;//P1=P1<<1;
mDelay(5000);
}
}
截图
[实验心得]
通过本实验,懂得如何安装kell软件以及实验仿真板,懂得KEIL C51单片机仿真软件的调试,初步了解并熟悉实验板上单片机I/O口和LED灯的电路结构,能通过软件修改程序实现仿真板上不同灯的亮灭情况,并希望通过多次试验对它有更多的了解。