本文目录一览

1,原创单片机流水灯程序

晕 比如你把8个led连到一个P口上 比如 p1^0——p1^7 sbit P1_0 = 1^0 ... sbit P1_7 = 1^7 然后用一个循环 把这几个引脚循环的使其中一个置高电平 使二极管点亮 就编程流水等了

原创单片机流水灯程序

2,单片机流水灯程序设计

//LED_IO,SW_IO unsigned char i; i = 0; while(1) { while(SW_IO);//switch LED_IO = 0xfe<<i; i++; if(i>=8) i = 0; wait1ms(1000); } 剩下的自己写吧

单片机流水灯程序设计

3,单片机流水灯程序

流水灯程序 #include#include unsigned char a; void main() { int i, j; a = 0xfe; while(1) { a = _crol_(a, 1); p0 = a; for(i = 250; i > 0; i--) for(j = 1000; j > 0; j--); } }
能说的更清楚一点吗?比如32个串口是怎么理解?(单片机哪来的32个串口),你的电路图是如何设计的?(硬件不同,程序当然不一样)
用的什么单片机? --------------------看了电路图,就知道了。既不是32个串口,也根本不使用串口;32个LED显示初始化: MOV P0, #3FH MOV P1, #3CH MOV P2, #2AH MOV P3, #47H;循环移位:_LOOP: MOV A, P0 RRC A MOV A, P1 RRC A MOV P1, A MOV A, P2 RRC A MOV P2, A MOV A, P3 RRC A MOV P3, A MOV A, P0 RRC A MOV P0, A LCALL _DELAY1S SJMP _LOOP;延时子程序:_DELAY1S:………… RET
楼主的意思可能是指51的32个IO口都用吧,对不?程序和普通的没什么区别啊

单片机流水灯程序

4,C51单片机编程按键控制流水灯

#include "reg51.h" unsigned char led[]=void delay(unsigned char time) unsigned int j=15000; for(;time>0;time--) for(;j>0;j--);}void main() bit dir=0,run=0; //标志位定义及初始化 char i; while(1) switch (P0 & 0x0f) case 0x0e:run=1;break; //K1动作,设run=1 case 0x0d:run=0,dir=0;break; // K2动作,设run=dir=0 case 0x0b:dir=1;break; //K3动作,设dir=1 case 0x07:dir=0;break; //K4动作,设dir=0 } if (run) //若run=dir=1,自上而下流动 if(dir) for(i=0;i<=3;i++) P2=led[i]; delay(200); } else for(i=3;i>=0;i--) P2=led[i]; delay(200); } else P2=0xff; //若run=0,全部灯灭 }}

5,单片机C语言编程控制流水灯

T0 工作模式2 计时器中断,一次200us,1s流水灯左移或右移一次。k3触发外部中断0,级别高于计时器中断,故暂停。#include <reg52.h>#include <intrins.h> #define uint unsigned int#define uchar unsigned charsbit k1=P1^0; //左循环按钮sbit k2=P1^1; //右循环按钮sbit k4=P1^2; //恢复暂停sbit k3=P3^2;//暂停void init();void showLED();void delay(uint xms);uint delayTime;uint goLeft=1;uint goRight=0;uint sFlag=0;void main() init(); while(1) if(k1==0) delay(10); if(k1==0) while(k1==0); goLeft=1; goRight=0; } } if(k2==0) delay(10); if(k2==0) while(k2==0); goLeft=0; goRight=1; } } }}void delay(uint xms) uint i,j; for(i=xms;i>0;i--) for(j=112;j>0;j--);}void init() P0=0xfe; TMOD=0x02; //T0 工作模式2 自动装填8位 200us TH0=0x38; TL0=0x38; EA=1; ET0=1; TR0=1; EX0=1; IT0=1;}void showLED() if(goLeft==1) P0=_crol_(P0,1); if(goRight==1) P0=_cror_(P0,1); }void moveDelay() interrupt 1 //一次中断200us if(delayTime==5000) showLED(); delayTime=0; } else delayTime++;}void stopLED() interrupt 0 while(1) if(k4==0) delay(10); if(k4==0) while(k4==0); break; } } }}

6,单片机的各种编程程序 比如流水灯

//实例:使用P0口流水点亮8位LED #include<reg51.h> //包含单片机寄存器的头文件/*******************************************************函数功能:主函数 ********************************************************/void main(void) while(1) P0=0xfe; //第一个灯亮 delay(); //调用延时函数 P0=0xfd; //第二个灯亮 delay(); //调用延时函数 P0=0xfb; //第三个灯亮 delay(); //调用延时函数 P0=0xf7; //第四个灯亮 delay(); //调用延时函数 P0=0xef; //第五个灯亮 delay(); //调用延时函数 P0=0xdf; //第六个灯亮 delay(); //调用延时函数 P0=0xbf; //第七个灯亮 delay(); //调用延时函数 P0=0x7f; //第八个灯亮 delay(); //调用延时函数 } }
那可多了去了,例如车的种类
就怎么闪,硬件上用595吸纳电流点亮LED,单片机随便选51,PIC,AVR,对于你们新生最好还是选51吧,虽然他的性能不咋样,但对于你这个项目戳戳有余。补充一点:对常亮的“道”字的LED建议分组级联,比如有12V电压,每个LED的压降为2V则,12V上可串联的LED个数最多为5个,限流为I(你的这个项目最好取10mA),限流电阻为R,那么限流电阻 R=(12-2x5)/I.然后按这样的方法将N个灯组并联即可,若果有220V直流(可用1N4007桥式电路将220V交流变直流)可按上述方法来搭,一次就可串联60~100个LED,注意不同颜色的LED压降不同,普亮的LED红黄蓝绿白分别为1.8V,2.3V,2.4V,2.4V,2.4V,而超高LED红黄蓝绿白分别2V,3V,3V,3V,3V。
如下即可实现流水灯: org 0000h mov tmod, #01h setb tr0 mov a, #0fehnx: mov p0, a mov r0, #50lp: mov tl0, #0efh mov th0, #0d8h jnb tf0, $ clr tf0 djnz r0, lp rl a ljmp nxend
楼主邮箱多少?我给你发本书。很经典的。各种简单有趣的单片机 实验

文章TAG:单片机流水灯编程  原创单片机流水灯程序  
下一篇