标题: 求教实现灯闪烁并同时执行流水灯的单片机代码 [打印本页]

作者: zyj0603    时间: 2018-11-25 20:06
标题: 求教实现灯闪烁并同时执行流水灯的单片机代码
实现一号灯闪烁,并利用中断使得500ms执行一次流水灯,一次流水灯结束后一号灯重新闪烁,等待下一个500ms,重复如此。

急需解答,最好是完整代码,谢谢


作者: zhengaohui    时间: 2018-11-26 15:22
  1. //临时打的,没有测过,有错误稍微改改
  2. //就好了
  3. #include "reg52.h"
  4. sbir led=P1^0;
  5. char code a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  6. void delay(int t)//闪烁的延时
  7. {
  8. int i,j;
  9. for(i=0;i<t;i++)
  10. for(j=0;j<t;j++)
  11. }
  12. int main(void)
  13. {
  14. int flag=0;
  15. int count=0;
  16. int z;
  17. TMOD=0X01;
  18. TH0=(65535-50000)/256;
  19. TL0=(65535-50000)%256;
  20. EA=1;
  21. ET0=1;
  22. TR0=1;
  23. while(1)
  24. {
  25. led=~led;
  26. delay(150);
  27. if(flag==1)
  28. {
  29. for(z=0;z<8;z++)
  30. {
  31. flag=0;
  32. P1=a[z];
  33. delay(100);
  34. }
  35. }
  36. }
  37. }

  38. void time0(void) interrupt 1
  39. {
  40. TH0=(65535-50000)/256;
  41. TL0=(65535-50000)%256;
  42. count++;
  43. if(count>=10)
  44. {
  45. flag=1;
  46. count=0;
  47. }
  48. }
复制代码

作者: 灭雷决88    时间: 2018-11-26 17:27
#include"reg52.h"
void delay(unsigned int i)//延时函数
{
unsigned char j=0;
while(i--)
for(j=0;j<200;j++);
}
void main()//主函数
{
//设你的A通道是P0 B通道是P1
P0=0xff;P1=0x55;
while(1)
{
P0=~P0;//按位取反
P1=~P1;
delay(1000);
作者: 小黑来经营    时间: 2018-11-26 18:19
//临时打的,没有测过,有错误稍微改改
//就好了
#include "reg52.h"
sbir led=P1^0;
char code a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(int t)//闪烁的延时
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<t;j++)
}
int main(void)
{
int flag=0;
int count=0;
int z;
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
led=~led;
delay(150);
if(flag==1)
{
for(z=0;z<8;z++)
{
flag=0;
P1=a[z];
delay(100);
}
}
}
}

void time0(void) interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
count++;
if(count>=10)
{
flag=1;
count=0;
}
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1