LED流水灯实验

#include "reg52.h"
#include <intrins.h>          //包含函数_crol_,_cror_

typedef unsigned int u16;               //对系统默认参数重新定义
typedef unsigned char u8;

#define LED_PORT    P2                   //使用宏定义P2端口

void delay_10us(u16 ten_us)               //delay_10us 延时函数,ten_us=1时,大概延时10us,输入ten_us
{
 while(ten_us--);
}

void main()
{
  u8 i = 0;                                      //无符号字符型i赋初值0
  
  LED_PORT = ~0X01;
  delay_10us(50000);
  while(1)
  {
   /*//方法一:使用移位加循环实现流水灯
   for (i = 0; i < 8; i++)
   {
    LED_PORT = ~(0x01 << i);             //将1右移一位,然后将结果赋值到LED_PORT
    delay_10us(50000);
   }  */
   //方法二:使用循环+_crol_或_cror_函数实现流水灯就,主要需要包含头文件#include<intrins.h>
   for (i = 0; i < 7; i++)                       //将LED左移一位
   {
    LED_PORT =_crol_(LED_PORT,1);           
    delay_10us(50000);
   }
   for (i = 0; i < 7; i++)                       //将LED右移一位
   {
    LED_PORT = _cror_(LED_PORT,1);
    delay_10us(50000);
   }
  }
  
}

函数定义解读:

intrins.h,函数,应用于程序设计,一般出C51单片机编程中,一般程序中需要使用到空指令_nop_();字符循环移位指令_crol_等时使用。

内部函数

播报

编辑

_crol_ 字符循环左移

_cror_ 字符循环右移

_irol_ 整数循环左移

_iror_ 整数循环右移

_lrol_ 长整数循环左移

_lror_ 长整数循环右移

_nop_ 空操作 (相当于8051 NOP 指令)

_testbit_ 测试并清零位 (相当于8051 JBC 指令)

函数名: _crol_,_irol_,_lrol_

原 型:

unsigned char _crol_(unsigned char val,unsigned char n);

unsigned int _irol_(unsigned int val,unsigned char n);

unsigned int _lrol_(unsigned int val,unsigned char n);

举例:

_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回

_testbit_: 相当于JBC bitvar测试该位变量并跳转同时清除。

_chkfloat_: 测试并返回源点数状态。

就是汇编中的子函数。

_crol_,_cror_:如果二进制数为01010101 那么_crol_(1) 左移1位后将高位补低位。

结果10101010。

功 能:_crol_,_irol_,_lrol_以位形式将val 左移n 位,该函数与8051“RLA”指令相关,上面几个函数不同于参数类型。

例:

#include <intrins.h>

main()

{

unsigned int y;

y=0x00ff;

y=_irol_(y,4);

}

函数名: _cror_,_iror_,_lror_

原 型:

unsigned char _cror_(unsigned char val,unsigned char n);

unsigned int _iror_(unsigned int val,unsigned char n);

unsigned int _lror_(unsigned long val,unsigned char n);

功 能:_cror_,_iror_,_lror_以位形式将val 右移n 位,该函数与8051“RRA”指令相关,上面几个函数不同于参数类型。

例:

#include <intrins.h>

main()

{

unsigned int y;

y=0x0ff00;

y=_iror_(y,4);

}

函数名: _nop_

原 型: void _nop_(void);

void_tuzi_(void);

void _nop_(void);

功 能:_nop_产生一个NOP 指令,该函数可用作C 程序的时间比较。C51 编译器在_nop_函数工作期间不产生函数调用,即在程序中直接执行了NOP 指令。

例:

P()=1;

_nop_();

P()=0;

函数名: _testbit_

原 型:bit _testbit_(bit x);

功 能:_testbit_产生一个JBC 指令,该函数测试一个位,当置位时返回1,否则返回0。如果该位置为1,则将该位复位为0。8051 的JBC 指令即用作此目的。_testbit_只能用于可直接寻址的位;在表达式中使用是不允许的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Panalog大数据日志审计系统libres_syn_delete.php命令执行漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 1、产品简介 Panalog大数据日志审计系统定位于将大数据产品应用于高校…

Element UI 组件的安装及使用

Element UI是基于Vue.js 的一套企业级的前端UI 组件库&#xff0c;它包含了丰富的UI组件供开发者使用&#xff0c;极大的提高生产效率。这篇文章将帮你快速了解Element UI的安装和使用。 一、安装 Element UI 首先&#xff0c;你需要在你的环境中安装Node.js&#xff0c;因为…

【.xml文件匹配不到】⭐️解决使用mybatis-plus找不到对应的xml文件导致的持久层方法报错

前言 小伙伴们大家好&#xff0c;很快嗷&#xff0c;到了年后的第一周&#xff0c;最近在自己电脑上敲项目时遇到一个平时可能不怎么遇到的问题&#xff0c;就是mybatis持久层框架使用时找不到对应的xml配置文件&#xff0c;也就导致自己写的持久层方法报错 接口报错内容&…

win11修改网络算法为BBR2_提升网络环境质量

Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法&#xff0c;玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法&#xff0c;BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。 如果你日常网络经常丢包或者高延迟可以尝试切换为BBR2算法。…

实施工程师前后端项目部署流程一次完成

目录 一、jdk安装具体步骤 二、tomcat安装具体步骤 三、MySql具体步骤 修改密码 登录 四、nginx安装 4.1、Nginx 4.2、操作步骤 安装ssl证书&#xff08;https&#xff09; 开80端口 测试 设置自启动 五、后端部署tomcat负载均衡 5.1、为什么要使用 5.2、搭建ngin…

抖音视频提取软件怎么用|抖音数据抓取工具

针对用户获取抖音视频的需求&#xff0c;我们开发了一款功能强大的抖音视频提取软件&#xff0c;旨在帮助用户轻松获取他们感兴趣的视频内容。无需逐个复制链接&#xff0c;无需繁琐的下载步骤&#xff0c;我们的软件让抖音视频获取变得简单快捷。 使用我们的软件非常简单&…

Open3D 基于最小生成树的法线定向 (27)

Open3D 基于最小生成树的法线定向 (27) 一、算法介绍二、算法实现一、算法介绍 法线计算的方向通常都存在方向问题,用Open3D估计的点云法线,是在每个点的局部进行拟合,估计的法线方向并不一致,Open3D提供了使用最小生成树调整法线到统一方向的方法,下面是具体的实现代码…

停车场管理(C语言)

【题目描述】停车场管理。设有一个可以停放n辆汽车的狭长停车场&#xff0c;它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后次序依次从停车场最里面向大门口处停放 (即最先到达的第一辆车停放在停车场的最里面) 。如果停车场已放满n辆车&#xff0c;则以后到达的车…

从Unity到Three.js(outline 模型描边功能)

指定模型高亮功能&#xff0c;附带设置背景颜色&#xff0c;获取随机数方法。 百度查看说是gltf格式的模型可以携带PBR材质信息&#xff0c;如果可以这样&#xff0c;那就完全可以在blender中配置好材质导出了&#xff0c;也就不需要像在unity中调整参数了。 import * as THRE…

从零实现一套低代码(保姆级教程)【后端服务】 --- 【22】实现数据库管理的前端页面

摘要 在上一篇中&#xff0c;我们实现了三个接口&#xff1a; 新增实体的接口删除实体的接口获取实体列表的接口 其实复杂的地方在于&#xff0c;我们创建一个实体&#xff0c;是在数据库中创建了一张表。而这张表中的数据&#xff0c;是要根据低代码平台中的操作进行更改。…

Qt中使用openGL

1. Qt与OpenGL的整合 Qt提供了QOpenGLWidget类&#xff0c;这是一个集成了OpenGL渲染能力的QWidget。通过使用QOpenGLWidget&#xff0c;开发者可以在Qt应用程序中嵌入OpenGL渲染的图形。QOpenGLWidget提供了一个框架&#xff0c;让OpenGL的渲染能够很好地集成在Qt的事件驱动模…

基于pytorch使用LSTM实现文本匹配任务

本文学习纪录 PyTorch深度学习项目实战100例 使用LSTM来实现文本匹配任务 使用LSTM&#xff08;Long Short-Term Memory&#xff09;网络来实现文本匹配任务是自然语言处理&#xff08;NLP&#xff09;中的一个常见应用。文本匹配任务的目标是确定两个文本段落是否在某种程度…

Vue + Echarts页面内存占用高问题解决

Vue Echarts页面内存占用高问题解决 1.问题描述 目前使用的是Vue2 Echarts4.x的组合&#xff0c;页面如下所示。 就是一个类似于神策的数据看板页面&#xff0c;左侧是一个导航栏&#xff0c;右侧看板页面中包含很多个报表图片&#xff0c;其中报表页面中对Echarts图表进…

挑战30天学完Python:Day21 类和对象

&#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点知识&#xff0c;但又没…

[python][whl]pymc所有版本下载地址汇总

pymc-2.3.7-cp27-cp27m-win_amd64.whl下载地址&#xff1a;https://download.csdn.net/download/FL1623863129/88631556 pymc-2.3.7-cp35-cp35m-win_amd64.whl下载地址&#xff1a;https://download.csdn.net/download/FL1623863129/88631555 pymc-2.3.8-cp36-cp36m-win_amd64.…

Python-读取串口接收到的数据

一、需求描述 现有一单片机在通过串口向外发送数据&#xff0c;需要使用Python编写程序进行数据的接收&#xff0c;并根据自定义的协议进行报文的解析。 二、自定义协议 因为单片机在通过串口发送数据时&#xff0c;是以字节为单位进行发送&#xff0c;对于接收方来说&#…

2-25练习题

6.假设循环队列用数组实现,其定义如下: #define SEQLEN 32 int seqn [ SEQLEN ]; /*用于存放队列数据的数组*/ int head;/*数组下标索引&#xff0c;指向队列头部&#xff0c;若队列不空&#xff0c;指向队列头元素*/ int tail;/*数组下标索引&#xff0c;指向队列尾部&#xf…

STL常用容器(string容器)---C++

STL常用容器目录 1.string容器1.1 string基本概念1.2 string构造函数1.3 string赋值操作1.4 string字符串拼接1.5 string查找和替换1.6 string字符串比较1.7 string字符存取1.8 string插入和删除1.9 string子串 1.string容器 1.1 string基本概念 本质&#xff1a; string是C…

电子签证小程序系统源码后台功能列表

基于ThinkPhp8.0uniapp 开发的电子签证小程序管理系统。能够真正帮助企业基于微信公众号H5、小程序、wap、pc、APP等&#xff0c;实现会员管理、数据分析,精准营销的电子商务管理系统。可满足企业新零售、批发、分销、预约、O2O、多店等各种业务需求&#xff0c;快速积累客户、…

搜索专项---IDA*

文章目录 排书回转游戏 一、排书OJ链接 本题思路:先考虑每一步的决策数量&#xff1a;当抽取长度为 i 的一段时&#xff0c;有 n−i1 种抽法&#xff0c;对于每种抽法&#xff0c;有 n−i 种放法。另外&#xff0c;将某一段向前移动&#xff0c;等价于将跳过的那段向后移动&am…