【单片机】06流水灯

您所在的位置:网站首页 51单片机心形流水灯程序流程图 【单片机】06流水灯

【单片机】06流水灯

2023-04-01 20:29| 来源: 网络整理| 查看: 265

上次课布置的流水灯实验,硬件上我们用8根导线分别将P1口的第0脚接到第0个灯,第1脚接到第1个灯,以此类推,直到将第7脚接到第7个灯上。软件上相信大家能想到的最简单的办法是先将第0个灯点亮,延时,再将1个灯点亮,再延时,依次类推直到将第7个灯点亮,延时,再将上面的步骤无限的循环执行,代码如下:

#include void main() { unsigned int i; while(1) { P1=0xFE; //11111110B 第0个灯亮,其他的灯灭 for(i=0;i1; 上面的语句x定义的是有符号字符型,x的初始值写成二进制是011111110B,注意了符号位是0,x>>1后x的值为00111111B,空出的最高位补的是符号位0。

综上分析,C51没有直接的循环移位运算符,但在intrins.h头文件中已经定义了这些功能的函数,可以直接调用,移位函数有: (1)unsigned char cror (unsigned char, unsignedchar);无符号字符型变量循环右移位 函数。 (2)unsigned int iror (unsigned int, unsigned char);无符号整型变量循环右移位函 数。 (3)unsigned long lror (unsigned long, unsigned char);无符号长整型变量循环右移位 函数 (4)unsigned char crol (unsigned char, unsigned char);无符号字符型变量循环左移位 函数。 (5)unsigned int irol (unsigned int, unsigned char);无符号字符型变量循环左移位 函数。 (6)unsigned long lrol (unsigned long, unsigned char);无符号字符型变量循环左移位 函数。 以上6个函数第一形参是循环移位的数据,第二形参是循环移位的次数,例如要将P0寄存器循环左移一位,函数的调用形式为: P0=_crol_ (P0, 1); 所以上面的流水灯代码可以改写为循环结构:

#include #include void main() { unsigned int i; P1=0xFE; while(1) { for(i=0;i for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3