• 实验目的

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

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

  • 实验内容

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

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

#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 这个文件夹下,如果这个文件夹没有引用的头 文件,编译器将会报错。

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

单片机实验--单片机IO口实验相关推荐

  1. 汇编语言单片机c51基本i/o输入输出实验报告,实验二i-o口输入输出实验报告.doc...

    实验二i-o口输入输出实验报告 单片机实验报告 2 姓名 徐伟彬 学号 1215111035 时间 地点 实验题目 I/O口输入.输出实验 一.实验目的 1. 学习I/O口的使用方法. 2. 学习延时 ...

  2. 单片机两个IO口控制三个LED灯

    在项目中经常会遇到单片机IO口资源不够用的情况,那么如何让单片机的IO口利用最大化呢,这里分享一下用单片机两个IO口控制三个LED灯的几种方法. 方法一:      S1和S2分别接单片机两个IO口, ...

  3. 51单片机8255扩展c语言,51单片机8255A扩展IO口

    <51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...

  4. 按键防抖_单片机用一个IO口采集多个按键信号

    一般按键信号都是高低电平,对于每一个按键信号单片机都需要一个IO口进行采集,这种按键采集方式比较简单,但是占用的单片机IO口比较多. 如果按键非常多,例如键盘,可以采用行列阵列方式进行信号采集.这种方 ...

  5. 单片机的单个IO口可以发送数据吗_关于51单片机各个引脚它的功能你了解多少?...

    对于40引脚双列直插51单片机各个引脚功能情况分析. P0端口一默认是开漏准双向IO口,没有输出没有驱动能力,要做逻辑输出要在外部接上拉电阻. P0端口除了作为普通的输入输出功能,还可以用来当做数据总 ...

  6. 【51单片机STC89C52】IO口模拟PWM控制SG90舵机

    一.PWM PWM ,英文名 Pulse Width Modulation ,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编 ...

  7. I/0口输入输出实验 学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。

    学习IO口的位操作方法,分别选择P0.P1.P2.P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁. 程序: #include<reg51.h> sbit KEY=P1 ...

  8. 51单片机扩展io口实验c语言,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  9. 单片机并口应用实验c语言,用51单片机编写一个并行口实验

    满意答案 wxl1215 2013.11.11 采纳率:49%    等级:12 已帮助:17031人 #include #define uchar unsigned char #define uin ...

  10. 51单片机c语言io口程序,51单片机IO口直接驱动LED数码管方法

    1.实验任务 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地.在数码管上循环显示0-9数字,时间间隔0.2秒. 2.电路原 ...

最新文章

  1. SAP S4HANA TR传输之操作
  2. 百度爬虫爬到虚拟链接 网站被黑_网站地图sitemap对SEO优化有什么作用?
  3. 图形基础 GPU架构(5)并行计算
  4. HDU1403(后缀数组--最长公共子串)
  5. 数据结构--图(Graph)详解(四)
  6. Java调用Lua脚本(热载实现)
  7. 【DevCloud · 敏捷智库】如何进行需求优先级管理?
  8. AndroidStudio_解决butterknife在module中使用BindView Attribute value must be constant---Android原生开发工作笔记229
  9. [18/11/22] 将点分十进制的IP地址化成二进制输出
  10. C#内存共享通讯示例
  11. 【图像分割】基于K-means聚类算法图像分割【含Matlab源码 1476期】
  12. Java中解决String无法存储大量字符串的问题,解析Base64编码的图片并保存到本地
  13. 根据银行卡号查询银行名接口
  14. dw怎么在框架中加入网页_Dreamweaver如何用框架建立网站
  15. 蒙特卡洛思想(Monte Carlo思想)
  16. [原题复现+审计][0CTF 2016] WEB piapiapia(反序列化、数组绕过)[改变序列化长度,导致反序列化漏洞]...
  17. 1.30.Flink SQL案例将Kafka数据写入hive
  18. 怎么搭建自己的播客_如何开始自己的播客(逐步)
  19. php基础一(数组)
  20. 学习笔记-希尔算法(交换法和移位法)

热门文章

  1. Twaver-HTML5基础学习(5)告警元素(Alarm)的告警位置(偏移量以及定位理解)
  2. MATLAB读取图像相关的一些操作
  3. 英雄联盟服务器状态在线怎么解决,解决英雄联盟无法连接到服务器的方法 看完就明白了...
  4. JS通过WebSocket实现双屏信息同步显示
  5. java 实现将Object类型转换为int类型
  6. 中兴ZXDSL831驱动
  7. matlab 一维 平滑,MATLAB中数据平滑处理
  8. STM32下载编程工具 | STVP介绍、下载、安装和使用教程
  9. u盘写保护+计算机管理,U盘写保护的解决方法
  10. 分布式智能电网-BMS蓄电池安全管理系统在各行业应用