单片机实验--单片机IO口实验

简介: 单片机实验--单片机IO口实验
  • 实验目的
  1. 学习单片机程序开发软件Keil uVision的使用方法
  2. 学习单片机IO口控制LED的方法
  3. 学习使用循环程序设置延时时间的方法


  • 实验仪器

硬件:X86型兼容计算机,单片机开发板;软件:Keil uVision和烧录软件


  • 实验内容
  1. 设计程序控制LED逐个点亮并变换花色;
  2. 硬件方案:LED需用杜邦线连接到单片机任一IO口,为共阴极连接,故IO口输出低电平时LED点亮;
  3. 软件原理:使用循环程序控制LED点亮的时间;
  4. 要求:控制LED以循环方式点亮;



4.png


我们先用第一种方法实现--数组法。

#include<reg51.h>
#define uchar unsigned char
uchar tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay()
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void main()
{
  uchar i;
  while(1)
  {
    for(i=0;i<8;i++)
    {
      P1=tab[i];//向p1口送出点亮数据的数组元素
      delay();
    }
  }
}

下面我们用循环的方法去实现流水灯。

#include<reg52.h>
#include<intrins.h>
#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);
P1=_crol_(P1,1);
}
}

接下来,我们用最后一种方法--移位去实现。

#include<reg52.h>
void delay(unsigned int t)
{
unsigned i,j;
for(i=0;i<t;t++)
for(j=0;j<125;j++);
}
void main()
{
unsigned char i,temp;
while(1)
{
temp=0xfe;
for(i=0;i<8;i++)
{P0=~temp;
delay(500);
temp=temp<<1;
}
}
}

在这里,简单解释一下什么是头文件吧。


在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用 头文件的位置处,免去我们每次编写同类程序都要将头文件中的语句重复编写。 在代码中加入头文件有两种书写方法,分别为#include 和#include "reg52.h",包含头文件时都不需要在后面加分号。两种写法的区别如下:


①当使用<>包含头文件时,编译器先进入到软件安装文件夹处开始搜索这个 头文件,也就是 KEILC51/C51/INC 这个文件夹下,如果这个文件夹没有引用的头 文件,编译器将会报错。


②当使用""包含头文件时,编译器先进入到当前工程所在文件夹处开始搜索 该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安 装文件夹处搜索这个头文件,若找不到该头文件,编译器将报错。


相关文章
|
7月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
151 0
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
207 0
单片机实验:兰花草
单片机实验:兰花草
102 0
【单片机】按键声光报警实验(蜂鸣器)
【单片机】按键声光报警实验(蜂鸣器)
648 0
|
4月前
|
Ubuntu Linux
内核实验(九):添加IO驱动的阻塞读写功能
本文通过修改内核模块代码,介绍了如何在Linux内核中为IO驱动添加阻塞读写功能,使用等待队列和条件唤醒机制来实现读写操作的阻塞和非阻塞模式,并在Qemu虚拟机上进行了编译、部署和测试。
22 0
|
6月前
单片机IO口模拟串口实现原理
单片机IO口模拟串口实现原理
105 5
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
单片机实验:外部中断系统实验 如何1357,2468灯交替亮
457 0
|
C语言 芯片 智能硬件
51单片机基础实验1
51单片机基础实验1
212 0
51单片机实验(LED and KEY)
51单片机实验(LED and KEY)