【Keil5 C51】AT89C52 做流水灯实验(调用C51的库函数_crol_)

发布者:SereneWhisper最新更新时间:2020-05-14 来源: eefocus关键字:Keil5  C51  AT89C52  流水灯 手机看文章 扫描二维码
随时随地手机看文章

_crol_ 函数的介绍

Cx51 User’s Guide


Summary

#include


unsigned char _crol_ (

  unsigned char c,        /* character to rotate left */

  unsigned char b);       /* bit positions to rotate */


Description

The _crol_ routine rotates the bit pattern for the character c left b bits. This routine is implemented as an intrinsic function (从c变量中的第1开始位 一次向左移动b位, 比如b = 1 时这串数字会这样移动:1111110–>11111101)


Return Value

The crol routine returns the rotated value of c.(把移动之后的值返回给c)


Example

#include


void test_crol (void) {

  char a;

  char b;


  a = 0xA5;

  b = _crol_(a,3); /* b now is 0x2D */

}


流水灯代码

使用AT89C52芯片,晶振为11.0592MHz


#include

#include


#define uint unsigned int

#define uchar unsigned char

void delay(uint time);  

void main()

{

uint led = 0xfe; //11111110 

while(1){

P1 = led; //11111110 先让P1口的第一个灯亮

delay(500); //延时0.5s

led = _crol_(led,1); //调用_crol_函数,使led的变量从第一个开始左移 11111110-->11111101

//再返回给led ,此时led = 11111101

}

}


void delay(uint time)  //delay = 1 ms 0.001s

{

uint x;

uint y;

uint z;

for(z = time; z > 0; z--){

for(x = 1; x > 0; x--){

for(y = 115; y > 0; y--){}

}

}

}


Proteus仿真图

在这里插入图片描述
在这里插入图片描述

关键字:Keil5  C51  AT89C52  流水灯 引用地址:【Keil5 C51】AT89C52 做流水灯实验(调用C51的库函数_crol_)

上一篇:51单片机入门教程(2)——实现流水灯
下一篇:51单片机教程 第一个51程序 :点亮一个发光二极管

推荐阅读最新更新时间:2024-11-17 10:54

stm32f103的运行错误和keil5的一些变动
调试STM32F103ZET6过程中,自己写了下Systick滴答配置和中断函数,编译完无错误。迫不及待的将程序下到板子中,运行灯无闪烁。仔细查了下程序,管脚配置、外设时钟开启、中断配置未发现问题。使用开发器仿真后发现,程序停留在如下系统文件,红色位置。 SysTick_Handler PROC EXPORT SysTick_Handler B . ENDP 从网上查了原因,说是有中断未配置或中断配置有误。仔细看了一遍,才发现自己写的函数名如下: void Systick_Handler(void) ----------和系统文件中定义名不一样,一个大写的
[单片机]
C51中如何将数字转换成字符串的问题
将整数转换成字符串,在C51中你如何做? 这个问题似乎很简单,keilC中也用sprintf()函数嘛,用就行了。但对于 寸土寸金 的单片机来说,问 题可没那么简单。 看看我代码中这句弃之不用的代码吧: //sprintf(sFileLen, %d ,fileLen*128);print(sFileLen); //使用这个库函数,体积一下增加2563. 我 的程序空间马上溢出不够用了。 OMG! C51库函数,伤不起啊 能自己写就自己写,尽量不用库函数吧。谱太大,用不起啊。下面这个函数就是类似sprintf()的作用。 为了节省几个字节,结果就直接发出来了,不必存储到uchar 中了。 // 向串口发送一个整数,支持
[单片机]
水声信号功率放大器的设计与实现
在现代主动声纳系统中,往往需要针对不同背景噪音以及不同的要求,适时地选择信号波形,工作频率,信号时间宽度,带宽等。例如,常用的信号有单频矩形脉冲(CW),线性调频脉冲信号(LFM),双曲线调频信号等。不同的信号具有不同的特性。对于相同的多普勒分辨率,LFM脉冲的试验分辨能力要高于CW脉冲,而对于相同的时延分辨力,LFM则要高于CW脉冲。当目标多普勒频移较小时,相对于长CW脉冲而言,LFM脉冲具有较小的模糊面积,受到少一些的混响影响,而当目标多普勒增大时,长CW脉冲比LFM脉冲信号抗混响效果要好。 本文所提到的水声信号发生系统采用多功能的数据采集接口板作为信号源,可以通过编写程序方便产生所需的信号。其所产生的信号稳定,精度高,并且修
[单片机]
水声信号功率放大器的设计与实现
proteus仿真51流水灯和点阵(心形)
使用SDCC,不能简单套用keil环境下的语法,以下是SDCC中8051.h头文件与keil环境下reg51.h头文件的区别: 关于如何在proteus上调用在codeblocks上编写好的C51代码: 在proteus上双击51单片机或右击51单片机点击编辑属性 浏览到codeblocks编译后的hex文件即可。 现在开始流水灯: 原理图: 代码: #include mcs51/8051.h void delay() { for(int i=0;i 100;i++) for(int j=0;j 100;j++); } int main() { while(1) { for(
[单片机]
proteus仿真51<font color='red'>流水灯</font>和点阵(心形)
Hash查找法在Keil C51中的实现
摘要:散列(hash)是一种重要的存储方法,也是一种常见的查找方法。它是指在记录的存储位置和它的关键字之间建立一个确定的对应关系。本文以射频卡门禁控制器为例,说明用射频卡卡号作为关键字,用Hash查找法确定此卡能否开门,并给出对应的Keil C51程序。 单片机应用系统中,经常要涉及到数据的存储和查找。以射频卡门禁系统为例,见图1。系统由51系列单片机、射频卡(RF卡)读卡电路、存储单元24C256、继电器等部分组成。其基本原理为:用户刷卡后,RF卡读卡电路读出卡号,通过I/O口线送入单片机。单片机收到卡号后,在存储单元中查找此卡是否允许开门。如允许,则命令继电器动作,打开电磁门锁:如不允许,则返回。 iframe id="
[单片机]
Cepark 51基于RTX-51 tiny的花样流水灯
/* ** RTX-51的移植 ** 此程序是循环花样显示LED灯 ** 有三个显示样式,分别对应下面的三个进程 ** 下面的算法中用到了 时间到空间 的转换,使得算法简化不少 ** 此程序我已在Cepark 51开发板上试验通过。 ** P0口接8个LED灯,低电平点亮! */ #include reg51.h #include rtx51tny.h const unsigned char table ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 ,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xFF,0x00}; /*时间到空间的转换,如果table是: co
[单片机]
c51单片机中断号及中断向量
1、外部中断 0、 1;分别由引脚/INT0、/INT1的电平信号引起。 2、定时/计数器 0、1;分别由T0、 T1的溢出引起。 3、串行口发送、接收;发送完一个字节或接收到一个字节引起。 上述共5个中断源。 一、中断号 外部中断0 0 定时器T0 1 外部中断1 2 定时器T1 3 串口中断 4 二、 interrupt 和 using 在C51中断中的使用 8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个
[单片机]
<font color='red'>c51</font>单片机中断号及中断向量
用移位方式实现流水灯
org 00h ;程序上电从00h开始 ajmp main ;跳转到主程序 org 0030h ;主程序起始地址 main: mov a,#0feh ;给A赋值成11111110 mov r0,#8 loop: mov p0,a ;将A送到P1口,发光二极管低电平点亮 ; mov p2,a lcall delay ;调用延时子程序 rl a ;累加器A循环左移一位 djnz r0,loop mov p0,#0ffh mov a,#7fh mov r0,#8 loop1: mov p2,a ;将A送到P1口,发光二极管低电平点亮 ; mov p2,a lcall delay ;调用延时子程序 rr a ;累加器A循环左移一位
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved