51单片机基础实验--花样流水灯

C语言程序2如下:

/* 该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#include<reg52.h>//包含reg.52文件
#include<intrins.h>//包含左右循环移位子函数库文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
void main()//main函数
{
????????  a=0xfe;//给a赋初值
????????  while(1)//while循环
????????  {
??????????????????  P1=a;???????????????? 
??????????????????  delay(1000);//1S延时子程序 
??????????????????  a=_crol_(a,1);
????????  }
}
 
void delay(uint z)//1ms延时子程序,通过z值改变延时
{
????????  uint x,y;
????????  for(x=z;x>0;x--)
??????????????????  for(y=110;y>0;y--);
}

C语言程序3如下:

/* 该实验是流水灯(8个发光二极管循环点亮),功能是流水灯(8个发光二极管循环以1S间隔点亮) */
#include<reg52.h>//包含reg.52文件
#include<intrins.h>//包含左右循环移位子函数库文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
void main()//main函数
{
????????  a=0x7f;//给a赋初值
????????  while(1)//while循环
????????  {
??????????????????  P1=a;???????????????? 
??????????????????  delay(1000);//1S延时子程序 
??????????????????  a=_cror_(a,1);
????????  }
}
 
void delay(uint z)//1ms延时子程序,通过z值改变延时时间
{
????????  uint x,y;
????????  for(x=z;x>0;x--)
??????????????????  for(y=110;y>0;y--);
}

本实验实现了单片机控制八个发光二极管并使其以1S时间间隔循环点亮,汇编语言中学习了循环左移函数以及DJNZ指令的应用方法。这个DJNZ在以后的编程中会京城用到的,所以大家一定要掌握好。C语言中,我们学习了表格的定义和使用,我们可以把很多数据放进表格,然后调用,是很方便的!另外还学习了IF判断语句,这也是经常用到的!还使用了带参数调用的延时子函数,这样会方便我们的延时!

  1. 51单片机基础实验1--点亮发光二极管
  2. 51单片机基础实验--发光二极管点亮并闪烁
  3. 51单片机基础实验--流水灯1
  4. 51单片机基础实验--花样流水灯
  5. 51单片机基础实验--蜂鸣器

返回单片机目录, ARM目录, 返回首页