zoukankan      html  css  js  c++  java
  • 51单片机入门笔记(二)

    二.Keil软件使用及流水灯设计

    1.建立Keil工程。

    2.点亮第一个发光二极管(代码):

    #include<reg52.h>
    sbit led1=P2^5;
    void main()
    {
    led1=0;
    }

    在keil中,编译,然后在【project】->【options for Target 'Target1' 】->【output】->选中【Create HEX File】,确定;再编译后生成HEX文件。将该HEX文件烧写入单片机中。

    3.while语句(同C)

    4.for语句(同C)

    简单的延时语句(延时1秒):

    for(i=1000;i>0;i--)

    for(j=110;j>0;j--);

    5.keil仿真(可精确计算延时语句的时间)

    6.单片机的几个周期介绍:

    1)时钟周期:也称震荡周期,定义为时钟频率的倒数,是单片机最基本、最小的时间单位。

    2)状态周期:时钟周期的两倍。

    3)机器周期:单片机的基本操作周期,由12个时钟周期组成。

    4)指令周期:CPU执行一条指令所需要的时间。

    7.不带参数的函数的写法与调用(同C)

    8.带参数的函数的写法与调用(同C)

    9.利用C51库函数实现流水灯(_crol_  循环左移函数;_cror_  循环右移函数)

    代码:

    #include<reg52.h>
    #include<intrins.h>
    #define uchar unsigned char
    #define uint unsigned int
    void delayms(uint);
    uchar initial=0xfe;
    void main()
    {
    while(1)
    {
    P2=initial;
    delayms(500);
    initial=_crol_(initial,1);
    }
    }
    //***************************delayms(uint)
    void delayms(uint m)
    {
    uint i,j;
    for(i=m;i>0;i--)
    for(j=110;j>0;j--);
    }

    10.用左移实现8个LED灯从右到左一次点亮

    代码:

    #include<reg52.h>
    #define uchar unsigned char
    #define uint unsigned int
    void delayms(uint);
    uchar initial=0xff;
    void main()
    {
    while(1)
    {
    P2=initial;
    delayms(500);
    initial=initial<<1;
    }
    }
    //*****************延时 函数
    void delayms(uint m)
    {
    uint i,j;
    for(i=m;i>0;i--)
    for(j=110;j>0;j--);
    }

  • 相关阅读:
    [PHP] ::class的具体作用
    [linux] 查看所有的系统用户
    [PHP] composer install和composer update的区别
    [PHP] 解决composer install报错: it could not be found in any version, there may be a typo in the package name
    [git] git中origin的含义
    [git] 打标签命令
    [git] git clone指定分支代码
    [git]git中分支的概念
    [PHP] 对象和引用
    [正则]正则表达式里面的?: ?! ?= ?<=
  • 原文地址:https://www.cnblogs.com/ljd4you/p/6441963.html
Copyright © 2011-2022 走看看