感悟网 导航

实现单片机信号灯1-8依次循环点亮的程序怎么写 实现单片机信号灯1-8依次循环点亮的程序怎么写?

作者&投稿:卓羽 (若有异议请与网页底部的电邮联系)
实现单片机信号灯1-8依次循环点亮的程序怎么写~

电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?

下面是c语言程序源码
#include
void delay100ms(); //如果函数是在主函数后面定义,那么一定要在主函数前面声明
void main()
{
int i;
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--)

把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去
# include "reg51.h" // 包含头文件
#define uchar unsigned char
void delay02s(void) // 延时0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}

void main (void) // 主函数
{
uchar i,j;
while (1) // 死循环
{
j=0x01; // j初始化为0x01,左移初始值
for(i=0;i<8;i++) // for循环语句,完成8个循环
{
P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出
delay02s( ); // 延时0.2s
j= j<<1; // 左移1位
}
j=0x80; // 设置右移初始值j为0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}

把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去



把各个花样写在子函数,中断中对变量加1,在判断是否大于5,大于5就对变量清零。因为你要5种花样。主函数判断变量的值,1时执行从左到右依次点亮,2时执行从左到右逐个依次熄灭。依次下去



# include "reg51.h" // 包含头文件
#define uchar unsigned char
void delay02s(void) // 延时0.2s子程序
{
unsigned char i,j,k;
for ( i=2;i>0;i-- )
for (j=200;j>0;j-- )
for (k=250;k>0;k-- );
}

void main (void) // 主函数
{
uchar i,j;
while (1) // 死循环
{
j=0x01; // j初始化为0x01,左移初始值
for(i=0;i<8;i++) // for循环语句,完成8个循环
{
P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出
delay02s( ); // 延时0.2s
j= j<<1; // 左移1位
}
j=0x80; // 设置右移初始值j为0x80
for (i=0;i<8;i++)
{
P1= ~ j;
delay02s( );
j= j>>1; // 右移1位
}
}
}

寄存器里放0x01,然后延时一段时间后左移,循环。

就是流水灯的程序。

最简单的了。

《实现单片机信号灯1-8依次循环点亮的程序怎么写》
答:电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?下面是c语言程序源码 include <reg51.h> void delay100ms(); //如果函数是在主函数后面定义...

《实现单片机信号灯1-8依次循环点亮的程序怎么写?》
答:delay02s( ); // 延时0.2s j= j<<1; // 左移1位 } j=0x80; // 设置右移初始值j为0x80 for (i=0;i<8;i++){ P1= ~ j;delay02s( );j= j>>1; // 右移1位 } } }

《单片机按键按五次灯亮》
答:单片机如何设置灯L1到L8循环亮5次的程序:例题:使LED灯先全部闪五次,再实现从L1到L8依次亮起,最后实现从L1到L8依次熄灭。(注:扩展方式为io,即J13跳帽接到io处)#include"reg52.h"流水灯程序最简单了,而且在知道这里可以搜到无数个例子。循环5次停下来,用for控制循环5次,结束后,用一个...

《单片机p0循环点亮八盏灯的程序怎么写?》
答:一、硬件接线 首先,电路接线是最重要的环节,需要将外部组件与单片机核心引脚相连接,如接线正确,接地和电源,以及led灯和信号脚之间的接法、灯丝与中断脚的线路等,全部调整正确才能正常工作。二、编程操作 接着,编写程序,设置数字输出端口,将接线好的八盏灯分别设定为1-8口,编写时序程序,循环点亮...

《通过89s51单片机实现交通灯》
答:通过89s51单片机实现交通灯东西红灯亮南北绿灯亮15s,东西红灯亮南北黄灯闪烁5s,东西绿灯亮南北红灯亮15s,东西等闪烁南北红等亮5s的循环控制点亮,选用单片机I/O口的线控制各盏灯。... 通过89s51单片机实现交通灯东西红灯亮南北绿灯亮15s,东西红灯亮南北黄灯闪烁5s,东西绿灯亮南北红灯亮15s,东西等闪烁南北红等亮5s的循...

《各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要 ...》
答:MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP1,A;输出到P1 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP1,A;输出到P1 CALLDELAY;DJNZR2,LOOP1;右移7次 JMPMAIN DELAY:MOVR3,#20;延时0.2s D1:MOVR4,#...

《编写单片机的流水灯。8个流水灯。先从左向右亮再从左向右灭。求代码...》
答:uiDataOne = uiDataOne << 1;} /* 输入第二个数据:uiDataTwo */ for (i = 0; i < 8; i++){ /* 给出脉冲信号,首先将CLK置为0 */ HC595CLK = 0;if (0 != (uiDataTwo & 0x80)){ HC595DATA = 1;} else { HC595DATA = 0;} /* 给出脉冲信号,首先将CLK置为1 */...

《51单片机交通灯红灯绿灯19秒黄灯闪烁三秒》
答:51单片机交通灯红灯绿灯19秒黄灯闪烁三秒可以采用4行4列的矩阵开关显示。用单片机做一交通信号灯控制装置,要求A东西绿灯亮5秒后闪2秒熄灭,黄灯闪2秒后熄灭,红灯亮9秒,B南北绿灯亮5秒后闪2秒熄灭,黄灯闪2秒后熄灭,红灯亮9秒C循环10个开关,2个控制交通灯,共输出3种状态红、绿、黄、全灭...

《求高手帮忙写一个汇编语言的简易交通灯程序》
答:步骤(1)南北绿灯亮15s,东西红灯亮15s。南北黄灯亮 3s,东西红灯亮 3s。南北红灯亮15s,东西绿灯亮15s。南北红灯亮 3s,东西黄灯亮 3s。循环步骤(1);=== 用汇编语言编写的程序如下,在12MHz的条件下,已经通过了仿真调试。;--- ORG 0000H MOV P0, #01111011B ;P0.7=P0.2=0...

《如何让单片机亮的灯中加入一个闪烁的灯》
答:闪烁其实就是让灯在亮--灭之间以一定时间周期连续循环工作实现的,按照题意,亮的灯中加入一个闪烁,比如有一组8个灯全亮,实现一个灯闪烁流水方法如下:ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV A,#0FEH LOOP:MOV P0,#00H ;全亮 LCALL DELAY MOV P0,A ;灭一个灯 LCALL DELAY RL...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网