找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3592|回复: 3
收起左侧

流水灯代码及电路图

[复制链接]
ID:149574 发表于 2016-11-23 08:04 | 显示全部楼层 |阅读模式
流水灯代码及电路图
0.png

  1. #include<reg51.h>          
  2. #include<intrins.h>
  3.         sbit k1 = P1^0;
  4.         sbit k2 = P1^1;
  5.         sbit k3 = P1^2;
  6.         sbit k4 = P1^3;
  7.         sbit led = P1;
  8. void delayms(unsigned char ms)   //延时子程序
  9. {
  10.    unsigned char i;
  11.    while(ms--)
  12.    {                         
  13.       for(i=0;i<120;i++);
  14.    }
  15. }
  16. void a()         //左右子程序
  17. {
  18. unsigned char         LED,i;
  19.         LED=0xfe;
  20.         P0=LED;
  21.         for (i=0;i<7;i++)
  22.           { delayms(200);
  23.             LED=LED<<1;
  24.                 LED=LED|0x01;
  25.            P0=LED;  
  26.           
  27.         }
  28.     }
  29. void b ( )         //右左子程序
  30. {
  31.     unsigned char         LED,i;
  32.         LED=0x7f;
  33.         P0=LED;
  34.         for (i=0;i<7;i++)
  35.           { delayms(200);
  36.             LED=LED>>1;
  37.                 LED=LED|0x80;
  38.            P0=LED;  
  39.           
  40.         }

  41. }
  42. void  c(  )         //来回子程序
  43. {
  44.     unsigned char         LED,j;
  45.         LED=0xfe;
  46.         P0=LED;
  47.           for (j=0;j<7;j++)
  48.           { delayms(250);
  49.           LED= _crol_(LED,1);    //循环左移1位,点亮下一个LED
  50.           P0=LED;
  51.         }
  52.          for (j=0;j<7;j++)
  53.          {delayms(250);
  54.          LED= _cror_(LED,1);     //循环右移1位,点亮下一个LED
  55.          P0=LED;
  56.          }
  57. }
  58. void d( )       
  59. {
  60. unsigned char         LED,i;
  61.         LED=0xfe;
  62.         P0=LED;
  63.           for (i=0;i<2;i++)
  64.           { delayms(250);
  65.           LED= _crol_(LED,1);    //循环左移1位,点亮下一个LED
  66.           P0=LED;
  67.         }
  68.          for (i=0;i<2;i++)
  69.          {delayms(250);
  70.          LED= _cror_(LED,1);     //循环右移1位,点亮下一个LED
  71.          P0=LED;
  72.          }
  73. }

  74. void main()  //主函数
  75. {       
  76.      while(1)
  77. {        if(k1 == 0)
  78.       a () ;
  79.         if(k2 == 0)
  80.           b () ;
  81.         if(k3 == 0)       
  82.       c () ;
  83.         if(k4 == 0)
  84.       d () ;       
  85. }
  86. }
  87. 秒表代码
  88. #includereg51.h>
  89. #define seg1 P0
  90. #define seg2 P2
  91. char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}
  92. void delay(int);
  93. main()
  94. {
  95. Int i;
  96. While(1)
  97. {for(i=0;i<100;i++)
  98. {
  99. Seg1=TAB[i]/10;delay(1000);
  100. Seg2=TAB[I]%10;DELAY(1000);
  101. }
  102. }
  103. void delay(int x)
  104. Int i,j;
  105. {
  106. for(i=0;i<x;i++)
  107. For(j=0;j<120;j++)
  108. }



  109. #include<reg51.h>
  110. #define Seg1 P0
  111. #define Seg2 P2
  112. char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98}
  113. void delay(int x)
  114. int i,j;
  115. {
  116. for(i=0;i<x;i++)
  117. for(j=0;j<120;j++)
  118. }
  119. main()
  120. {
  121. int i;
  122. while(1)
  123. {
  124. for(i=0;i<100;i++)
  125. {
  126. Seg1=TAB[i]/10;
  127. Seg2=TAB[i]%10;       
  128. delay(1000);
  129. if(i==99)
  130. i=0;
  131. }
  132. }
  133. }


  134. 三个开关
  135. #include<reg51.h>
  136. #define Seg1 P0
  137. #define Seg2 P2
  138. char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};
  139. //char code MAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};
  140. void delay(int);  
  141. void a()         //左右子程序
  142. {
  143. unsigned char         TAB,i;
  144.         P0=TAB;
  145.           for (i=0;i<100;i++)  ;
  146.           {
  147.           delay (200);
  148.           }
  149.    }
  150.     void b ( )         //右左子程序
  151. {
  152.     unsigned char         TAB,j;
  153.         for (j=0;j<100;j++)
  154.                 P0=TAB;
  155. }

  156.                  
  157.           void  c(  )         //来回子程序
  158. {
  159.     unsigned char TAB,j;
  160.         P0=TAB;         
  161.           for(j=99;        j>0;j--)
  162.           { delay (200);
  163.            P0=TAB;  
  164. }
  165. }
  166. main()
  167. {

  168. int i;
  169. while(1)
  170. for(i=0;i<100;i++)
  171. {
  172. Seg1=TAB[i/10];       
  173. Seg2=TAB[i%10];         delay(1000);
  174. if(i==99)
  175. i=0;
  176. }
  177. }
  178. void delay(int x)
  179. {int i,j;
  180. for(i=0;i<x;i++)
  181. for(j=0;j<120;j++);

  182. }





  183. 1234计数显示代码
  184. #include<reg52.h>
  185. #define uchar unsigned char
  186. #define uint unsigned int
  187. void delayms(uint ms)
  188. {
  189. uint j;
  190. while (ms--)
  191. { for(j=0;j<120;j++);
  192. }
  193. }
  194. void main(void)
  195. {
  196. while(1)
  197. {
  198. P2=0xfe;
  199. P0=0xf9;
  200. delayms(100);
  201. P2=0xfd;
  202. P0=0xa4;
  203. delayms(100);
  204. P2=0xfb;
  205. P0=0xb0;
  206. delayms(100);
  207. P2=0xf7;
  208. P0=0x99;
  209. delayms(100);
  210. P2=0xff;
  211. }
  212. }
复制代码



0.png

流水灯.rar

27.96 KB, 下载次数: 20, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:136592 发表于 2016-11-23 11:21 | 显示全部楼层
新人,赞个!~~
回复

使用道具 举报

ID:92010 发表于 2016-11-23 14:18 来自手机 | 显示全部楼层
学习了,赞一个
回复

使用道具 举报

ID:164851 发表于 2017-2-16 14:44 | 显示全部楼层
还好还好吧
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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