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


    • 实验目的

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

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

    • 实验内容

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

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

    1. #include
    2. #define uchar unsigned char
    3. uchar tab[ ]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    4. void delay()
    5. {
    6. uchar i,j;
    7. for(i=0;i<255;i++)
    8. for(j=0;j<255;j++);
    9. }
    10. void main()
    11. {
    12. uchar i;
    13. while(1)
    14. {
    15. for(i=0;i<8;i++)
    16. {
    17. P1=tab[i];//向p1口送出点亮数据的数组元素
    18. delay();
    19. }
    20. }
    21. }

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

    1. #include
    2. #include
    3. #define uchar unsigned char
    4. #define uint unsigned int
    5. void delay(uint i)
    6. {
    7. uchar t;
    8. while(i--)
    9. {
    10. for(t=0;t<120;t++);
    11. }
    12. }
    13. void main()
    14. {
    15. P1=0xfe;
    16. while(1)
    17. {
    18. delay(500);
    19. P1=_crol_(P1,1);
    20. }
    21. }

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

    1. #include
    2. void delay(unsigned int t)
    3. {
    4. unsigned i,j;
    5. for(i=0;i
    6. for(j=0;j<125;j++);
    7. }
    8. void main()
    9. {
    10. unsigned char i,temp;
    11. while(1)
    12. {
    13. temp=0xfe;
    14. for(i=0;i<8;i++)
    15. {P0=~temp;
    16. delay(500);
    17. temp=temp<<1;
    18. }
    19. }
    20. }

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

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

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

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

  • 相关阅读:
    [附源码]JAVA毕业设计高速公路服务区管理系统(系统+LW)
    【分布式搜索引擎es】
    JS-前端在dom中预览pdf等文件
    Azure 机器学习 - 设置 AutoML 训练时序预测模型
    2000-2021年上市公司M&A并购溢价计算数据(含原始数据+Stata代码)
    Java poi 后台导出Excel
    .net core基于HttpClient实现的网络请求库
    work环境配置
    [I2C]I2C通信协议详解(一) --- 什么是I2C
    docker部署es+kibana
  • 原文地址:https://blog.csdn.net/BROKEN__Y/article/details/127460711