3种方法实现流水灯

发布者:婉如Chanel最新更新时间:2015-05-13 来源: 51hei关键字:流水灯  上拉电阻 手机看文章 扫描二维码
随时随地手机看文章
(P0一般接10K的上拉电阻,此图复位电路没给出)

当然,有些比较有心的同学会做些有花样的,如这种“心”形的流水灯
下面试代码:

(1)用总线的方法实现流水灯

#include

#define uchar unsigned char

#define uint unsigned int

uchartable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint xms) //延时约1ms

{

       uintx,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uchar i;

       while(1)

       {

              for(i=0;i<8;i++)

              {

                     P0=table[i];

                     delay(500);

              }

       }

}

(2)移位实现流水灯

#include

#define uchar unsigned char

#define uint unsigned int

void delay(uint xms) //延时约1ms

{

       uintx,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uchar a,i;

       while(1)

       {

              a=0xfe;

              for(i=0;i<8;i++)

              {

                     P0=a;

                     a=a<<1;

                     a=a|0x01;

                     delay(500);

              }

       }

}

(3)用库函数实现流水灯

#include

#include//此头文件包含移位函数

#define uchar unsigned char

#define uint unsigned int

void delay(uint xms) //延时约1ms

{

       uint x,y;

       for(x=110;x>0;x--)

       for(y=xms;y>0;y--);

}

void main()

{

       uint a;

       a=0xfe;

       while(1)

       {

              P2=a;

              a=_crol_(a,1);

              delay(500);

       }

}

关键字:流水灯  上拉电阻 引用地址:3种方法实现流水灯

上一篇:自己做单片机实时操作系统1前言
下一篇:关于串口的时序

推荐阅读最新更新时间:2024-03-16 14:02

GPIO输出---LED流水灯(EasyARM2131)
/****************************************Copyright (c)******************* **--------------File Info------------------------------------------------ ** File name: main.c ** Last modified Date: 2011/04-09 ** Last Version: 1.0 ** Descriptions: The main() function example template ** **------------------------------------
[单片机]
PIC16F877A流水灯Proteus仿真程序
单片机源程序如下: //流水灯 #include pic.h //头文件 __CONFIG(0xff32); //配置熔丝位 //延时函数 void delay(unsigned int x) { unsigned int i,j; for(i=0;i x;i++) for(j=0;j 100;j++); } //主函数 void main() { unsigned char i,a; //设置变量 TRISB=0; //设置端口B为输出 PORTB=0;
[单片机]
PIC16F877A<font color='red'>流水灯</font>Proteus仿真程序
ARM9(S3C2440)的IO口--LED流水灯
概述 S3C2440A 包含了130 个多功能输入/输出口引脚并且它们为如下显示的八个端口: 端口A(GPA):25 位输出端口 端口B(GPB):11 位输入/输出端口 端口C(GPC):16 位输入/输出端口 端口D(GPD):16 位输入/输出端口 端口E(GPE):16 位输入/输出端口 端口F(GPF):8 位输入/输出端口 端口G(GPG):16 位输入/输出端口 端口H(GPH):9 位输入/输出端口 端口J(GPJ):13 位输入/输出端口 每个端口都可以简单的由软件配置为各种系统配置和设计要求。你必须在开始主程序前定义使用的每个引脚的功能。如果没有使用某个引脚的复用功能,这个引脚可
[单片机]
怎么解决引脚单片机的上拉电阻问题?
单片机 的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。 但是,程序控制不了单片机的输出电流。单片机的输出电流,很大程度上是取决于引脚上的外接器件。 单片机输出低电平时,将允许外部器件,向 单片机 引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”; 单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。 这些电流一般是多少?最大限度是多少?这就是常见的单片机输出驱动能力的问题。 早期的 51 系列单片机的带负载能力,是很小的,仅仅用“能带动多少个 TTL 输入端”来说明的。 P1、P2 和 P3口,每个引脚可以都带动 3 个
[电源管理]
基于MINI2440开发板的LED流水灯实验(含init.s)
晚上看完了S3C2140A的GPIO开发部分,然后对着2440的数据手册写了个LED的小程序,总结下,程序如下: 初始化部分程序: Init.s IMPORT Main CODE32 AREA Init,CODE,READONLY ENTRY ldr r0, =0x53000000 ;关门狗 mov r1, #0x0 str r1, ;关闭关门狗 ldr sp, =1024*4 ;设置堆栈,由于main函数里调用了其他函数,所以一定要设置堆栈 bl Main main
[单片机]
51单片机P0口什么时候使用上拉电阻?
P0口作为I/O口输出的时候时,输出低电平为0 输出高电平为高组态(并非5V,相当于悬空状态,也就是说P0 口不能真正的输出高电平)。给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。  P0作输入时不需要上拉电阻,但要先置1。因为P0口作一般I/O口时上拉场效应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。因此在输入前置1,使下拉场效应管截止,端口会处于高阻浮空状态,才可以正确读入数据。   由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。 1.一般51单片机的P
[单片机]
PIC16F628A LED流水灯示例程序
#include p IC .h __CONFIG(0x3f38); //看门狗关,内部RC震荡,RA6/RA7做I/O //----------------------------------- //延时函数 void delay() { int i; //定义循环变量 for(i=5000;i 0;i--) //循环次数控制 { NOP(); //消耗一个指令 周期 的时间 NOP(); } } //---------------------------------- //初始化函数 void init() { T
[单片机]
按键控制单片机改变流水灯速度
/* 程序效果:有三个按键,按下其中任意一个流水灯的速度改变 */ #include reg52.h //52系列单片机的头文件 #define uchar unsigned char//宏定义 #define uint unsigned int uchar count=40,flag=0; //定义刚开始的流水灯的速度,后一个为标志变量 void main() {   uchar i=0;//定义局部变量   EA=1; //打开总中断   ET0=1; //打开定时器   TR0=1; //启动定时器   TH0=(65536-50000)/256; //装初值   TL0=(65536-50000)%256;   P2=
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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