51单片机学习

server/2024/10/20 10:11:19/

1.1控制一个灯亮

void main()
{
    P2=0xFE;
}

1.2控制一个灯闪烁

void Delay500ms()        //@12.000MHz
{
    unsigned char i, j, k;

    _nop_();
    i = 4;
    j = 205;
    k = 187;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}


void main()
{
    while(1)
    {
        P2=0xFE;
        Delay500ms();
        P2=0xFF;
        Delay500ms();
    }
}

1.3流水灯

void Delay500ms()        //@12.000MHz
{
    unsigned char i, j, k;

    _nop_();
    i = 4;
    j = 205;
    k = 187;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

void main()
{
    while(1)
    {
        P2=0xFE;
        Delay500ms();
        P2=0xFD;
        Delay500ms();
        P2=0xFB;
        Delay500ms();
        P2=0xF7;
        Delay500ms();
        P2=0xEF;
        Delay500ms();
        P2=0xDF;
        Delay500ms();
        P2=0xBF;
        Delay500ms();
        P2=0x7F;
        Delay500ms();
    }
}

2.1独立按键控制亮灭

void main()
{
    
    
    while(1)
    {
        if(P3_1 == 0)
        {
            P2_0=0;
        }
        else
        {
            P2_0=1;
        }
    }
}

2.2独立按键控制LED状态

void Delay(unsigned int xms)        //@12.000MHz
{
    unsigned char i, j;
  while(xms)
    {
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } 
        while (--i);
        xms--;
    }
}

void main()
{
    while(1)
    {
        if(P3_1==0)
        {
            Delay(20);
            while(P3_1==0);
            Delay(20);
            
            P2_0=~P2_0;
        }
    }
}

2.3独立按键控制LED显示二进制

void Delay(unsigned int xms)        //@12.000MHz
{
    while(xms)
    {
        unsigned char i, j;
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } 
        while (--i);
        xms--;
    }
}

void main()
{
    unsigned char LED_Num=0;//表示寄存器
    while(1)
    {
        if(P3_1 == 0)
        {
            Delay(20);
            while(P3_1 == 0);
            Delay(20);
            //默认P2后为高电平 1111 1111
            LED_Num++;//0000 0001
            P2=~LED_Num;//1111 1110
        }
    }
    
}

2.4独立按键控制LED移位

void Delay(unsigned int xms)        //@12.000MHz
{
    while(xms)
    {
        unsigned char i, j;
        i = 2;
        j = 239;
        do
        {
            while (--j);
        } 
        while (--i);
        xms--;
    }
}

unsigned char LED_Num = 0;


void main()
{
    P2=~0x01;//初始化
    
    while(1)
    {
        if(P3_1 == 0)
        {
            Delay(20);
            while(P3_1 == 0);
            Delay(20);
            
            LED_Num++;
            if(LED_Num>=8)
                LED_Num=0;
            P2=~(0x01<<LED_Num);//注意取反与括号的先后顺序
        }
        
        
        if(P3_0 == 0)
        {
            Delay(20);
            while(P3_0 == 0);
            Delay(20);
            if(LED_Num==0)
                LED_Num=7;
            else
                LED_Num--;
            
            P2=~(0x01<<LED_Num);
        }
    }
    
}


http://www.ppmy.cn/server/99455.html

相关文章

Python酷库之旅-第三方库Pandas(076)

目录 一、用法精讲 311、pandas.Series.str.encode方法 311-1、语法 311-2、参数 311-3、功能 311-4、返回值 311-5、说明 311-6、用法 311-6-1、数据准备 311-6-2、代码示例 311-6-3、结果输出 312、pandas.Series.str.endswith方法 312-1、语法 312-2、参数 3…

Java中XML的解析

第一章 XML概述 1.1 XML介绍 1.1.1 什么是XML XML 指可扩展标记语言&#xff08;EXtensible Markup Language&#xff09; XML 是一种标记语言&#xff0c;很类似 HTML&#xff0c;HTML文件也是XML文档 XML 的设计宗旨是传输数据&#xff0c;而非显示数据 XML 标签没有被预…

【C++】C++的内存处理 --- 智能指针

只有经历地狱般的磨炼&#xff0c; 才能练出创造天堂的力量 &#xff1b; 只有流过血的手指&#xff0c; 才能弹出世间的绝唱 。 --- 泰戈尔 --- 开始使用C智能指针 1 前言2 智能指针2.1 什么是智能指针2.2 C库中的智能指针2.3 循环指向问题与weak_ptr2.4 自定义删除器 3 …

【计算机网络——internet结构和ISP】

internet结构&#xff1a;网络的网络 端系统通过ISP接入internet&#xff0c;ISP提供有线或者无线接入方式&#xff0c;接入ISP不一定是当地电信局&#xff0c;电缆公司&#xff0c;也可以是大学为老师学生或者公司为雇员……。 ISP&#xff0c;internet and 端系统关系&…

【HBZ分享】Mysql索引的失效场景 以及 创建索引失败报错的原因

如何查看mysql某个表具有的索引 show INDEX from [表名]创建索引失败的场景 及 原因 假设有一张表如下: 使用utf8mb4的字符编码 CREATE TABLE api_case (id bigint unsigned NOT NULL AUTO_INCREMENT,name varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci N…

虚拟机vmware新建虚拟机无法从物理机连接问题排查

1.vmware的虚拟机设置里面添加桥接模式&#xff0c;添加后重启机器 2.检查服务里面是否将vmware相关服务全部开启 计算机 -- 管理 -- 服务 如果不是running状态&#xff0c;就右键开启服务 3.检查网路状态 控制面板 -- 网络和互联网 -- 网络和共享中心 -- 改变适配器设置 如…

【前端学习笔记】CSS基础三

一、CSS变量 CSS变量&#xff0c;也称为CSS自定义属性&#xff0c;是CSS3的一部分&#xff0c;允许开发者在CSS中定义和使用变量。这些变量可以存储值&#xff0c;然后在整个文档中重复使用这些值。使用CSS变量可以提高样式表的可维护性&#xff0c;并且使得主题和设计变量的更…

lvs详解及实例配置

目录 1.什么是负载均衡 1.1为什么用负载均衡 1.2.负载均衡类型 1.2.1.四层负载均衡 1.2.2.七层负载均衡 1.3 四层和七层的区别 2.LVS介绍 2.1LVS 的优势与不足 2.2LVS 核心组件和专业术语 3.ipvsadm命令 4.LVS集群中的增删改 4.1.管理集群服务中的增删改 4.2.管理集…