找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3341|回复: 0
收起左侧

单片机led8个灯想怎么闪就怎么闪的源程序

[复制链接]
ID:280056 发表于 2018-1-26 19:54 | 显示全部楼层 |阅读模式
# include <reg52.h>
typedef unsigned int u16;//习惯性写入
typedef unsigned char u8;
/*define uchar unsigned char
  define uint unsigned int
define ulint unsigned long
//宏定义*/
sbit led=P0^0;//定义单个脚
//#define led P0//预转换 一组脚
void delay(u16 i)
{
while(i--);//延时
}
void main()
{
while(1)
{
  led=1;//端口为低电平,默认为低电平,预转换可用16进制
  delay(50000);//不精确,约450ms
  led=0;
  delay(50000);
}
}

//另一个(不会上传附件)
# include<reg52.h>
# include<intrins.h> //左右移函数需要
typedef unsigned int u16;
typedef unsigned char u8;
//sbit led=P0;//位定义
#define led P0//宏定义
void delay(u16 i)
{
while(i--);
}
void main()
{
u8 i;
led=0x01;
delay(50000);
while(1)
{
// for(i=0;i<8;i++)
//  {
//   P0=(0x01<<i);//将1右移i位,然后将结果赋值到P0口
////   P0=(0x80>>i);//将1左移i位,然后将结果赋值到P0口
//   delay(50000);
//  }
  for(i=0;i<7;i++)
  {
   led=_crol_(led,1);//左移
//   led=_cror_(led,1);//右移
   delay(50000);
  }
}
}

//另一个
# include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define led P0
u8 code lyt[17]={0x00,0x01,0x02,0x04,0x08,
                 0x10,0x20,0x40,0x80,0xff};
//对应1~8灯,第一个数据无意义,可用于消影
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
   led=lyt[9];
   delay(50000);
    led=lyt[0];
  delay(50000);
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表