• 大小: 133KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 51单片机  proteus  

资源简介

花式流水灯包含现成的proteus仿真原理图和keil生成代码,课堂作业

资源截图

代码片段和文件信息

#include “reg52.h“
#include “intrins.h“


/*************************************************************************
- Function    : 花式流水实验
- Description : 间隔300ms先奇数亮再偶数亮,然后再循环三次:
                ①一个LED上下循环三次  ②分别从两边往中间流动三次
③8个LED全部闪烁3次;关闭LED。
- Hardware    : 硬件连接:LED0-LED7 -> P1.0-P1.7
- Author      : Y.
- Date        : 2017.12
 *************************************************************************/


/* 定义常用变量类型 */
#define u8 unsigned char
#define u16 unsigned int

/* 定义变量 */
u8 code tab[] = {0x7e0xbd0xdb0xe7};

/* 声明子函数 */
void target1();
void target2();
void target3();
void delay(u16);

/*************************************************************************
 Function    : 主程序
 Description : None 
**************************************************************************/
void main()
{
while(1)
{
target1();
delay(300);
target2();
delay(300);
target3();
delay(300);
}
}


/*************************************************************************
 Function    : 延时子程序
 Description : 延时 x 毫秒
**************************************************************************/
void delay(u16 xms)
{
u16 xy;
for(x=xms;x>0;x--)
{
for(y=125;y>0;y--);
}
}


/*************************************************************************
 Function    : 功能一
 Description : 奇数亮再偶数亮,循环三次
**************************************************************************/
void target1()
{
u8 i;
for(i=0;i<3;i++)
{
P1 = 0xaa;
delay(300);
P1 = 0x55;
delay(300);
}
P1 = 0xff;
}


/*************************************************************************
 Function    : 功能二
 Description : LED分别从两边往中间流动三次
**************************************************************************/
void target2()
{
u8 ijtempabnum;
temp = 0xfe;

for(i=0;i<3;i++)
{
for(j=0;j<8;j++)
{
P1 = temp;
delay(300);
temp = _crol_(temp1);             // 循环左移1位
}
}
P1 = 0xff;
delay(300);


for(a=0;a<3;a++)
{
num = 0;
for(b=0;b<4;b++)
{
P1 = tab[num];
delay(300);
num++;
}
}
P1 = 0xff;
}


/*************************************************************************
 Function    : 功能三
 Description : 8个LED全部闪烁3次;关闭LED
**************************************************************************/
void target3()
{
u8 c;
for(c=0;c<3;c++)
{
P1 = 0x00;
delay(300);
P1 = 0xff;
delay(300);
}

P1 = 0xff;                                  // 最后关闭所有LED
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-10-15 14:40  Project\
     文件        4229  2018-01-14 01:39  Project\led
     文件         959  2018-01-14 01:39  Project\led.build_log.htm
     文件         610  2018-01-14 01:39  Project\led.hex
     文件          36  2018-01-14 01:39  Project\led.lnp
     文件        6395  2018-01-14 01:39  Project\led.M51
     文件         484  2018-01-14 01:39  Project\led.plg
     文件      166854  2018-01-14 01:39  Project\led.uvgui.Administrator
     文件        5434  2018-01-14 01:39  Project\led.uvopt
     文件       13839  2018-01-14 01:39  Project\led.uvproj
     文件       56281  2018-01-14 01:39  Project\led_uvopt.bak
     文件           0  2018-01-14 01:39  Project\led_uvproj.bak
     文件        2570  2018-01-14 01:39  Project\main.c
     文件        6149  2018-01-14 01:39  Project\main.LST
     文件        4642  2018-01-14 01:39  Project\main.OBJ
     目录           0  2018-10-15 14:40  Proteus\
     文件       16046  2018-01-14 01:39  Proteus\Backup Of DIANLU.pdsbak
     文件       88120  2018-01-14 01:39  Proteus\DIANLU.DSN
     文件       16047  2018-01-14 01:39  Proteus\DIANLU.pdsprj
     文件        1939  2018-01-14 01:39  Proteus\DIANLU.pdsprj.SC-201712041225.Administrator.workspace
     文件         742  2018-01-14 01:39  Proteus\DIANLU.PWI
     文件       88127  2018-01-14 01:39  Proteus\Last Loaded DIANLU.DBK
     文件       69861  2018-01-14 01:39  simulate.PNG

评论

共有 条评论