久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4293|回復: 0
打印 上一主題 下一主題
收起左側(cè)

單片機花樣流水燈程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:516278 發(fā)表于 2019-9-16 10:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


單片機源程序如下:
  1. #include "reg51.h"
  2.                                                                                                                                                                         
  3. #define uchar unsigned char         //定義unsigned char 為 uchar
  4. #define uint  unsigned int

  5. sbit  F1 = P3^0;
  6. sbit  F2 = P3^1;

  7. uint  time =90;        //通過改變TIME的參數(shù)可以改變流水燈的變換速度                  


  8. /***************一微秒延時子程序******************/
  9. void delayus(uint delay){
  10.         while(delay--);
  11. }

  12. /***************一毫秒延時子程序******************/

  13. void delayms(uint delay){
  14.         while(delay--)
  15.                 delayus(300);
  16. }


  17. /*******************************變換方式一  子函數(shù) ***********************************/

  18. void run_LED_fun1()
  19. {
  20. uchar a,temp,temp1;
  21. temp=0x10;

  22. for(a=9;a>0;a--)   //P1口LED燈依次點亮
  23. {
  24. P1=~temp;

  25. delayms(time);
  26. temp<<=1;

  27. }

  28. temp=0x01;
  29. for(a=9;a>0;a--)   //P3口LED燈依次點亮
  30. {
  31. P3=~temp;

  32. delayms(time);
  33. temp<<=1;

  34. }


  35. temp=0x01;                  //P2口LED燈依次反向點亮

  36. for(a=9;a>0;a--)
  37. {
  38. P2=~temp;
  39. delayms(time);
  40. temp<<=1;

  41. }

  42. temp=0x80;                  //P0口LED燈依次反向點亮

  43. for(a=9;a>0;a--)
  44. {
  45. P0=~temp;
  46. delayms(time);
  47. temp>>=1;

  48. }




  49. temp=0x01;
  50. for(a=9;a>0;a--)   //P0口LED燈依次點亮
  51. {
  52. P0=~temp;

  53. delayms(time);
  54. temp<<=1;

  55. }

  56. temp=0x80;
  57. for(a=9;a>0;a--)   //P2口LED燈依次點亮
  58. {
  59. P2=~temp;

  60. delayms(time);
  61. temp>>=1;

  62. }



  63. temp=0x80;                  //P3口LED燈依次反向點亮

  64. for(a=9;a>0;a--)
  65. {
  66. P3=~temp;
  67. delayms(time);
  68. temp>>=1;

  69. }

  70. temp=0x80;                  //P1口LED燈依次反向點亮

  71. for(a=9;a>0;a--)
  72. {
  73. P1=~temp;
  74. delayms(time);
  75. temp>>=1;

  76. }


  77. temp=0xfe;
  78. for(a=8;a>0;a--)
  79. {
  80. P1=temp;
  81. delayms(time);
  82. temp<<=1;

  83. }


  84. temp=0xfe;
  85. for(a=8;a>0;a--)
  86. {
  87. P3=temp;
  88. delayms(time);
  89. temp<<=1;

  90. }


  91. temp=0xfe;
  92. for(a=8;a>0;a--)
  93. {
  94. P0=temp;
  95. delayms(time);
  96. temp<<=1;

  97. }


  98. temp=0x7f;
  99. for(a=8;a>0;a--)
  100. {
  101. P2=temp;
  102. delayms(time);
  103. temp>>=1;

  104. }


  105. temp=0x01;
  106. for(a=8;a>0;a--)
  107. {
  108. P2=temp;
  109. delayms(time);
  110. temp1=~temp;
  111. temp1<<=1;
  112. temp=~temp1;

  113. }

  114. temp=0x80;
  115. for(a=8;a>0;a--)
  116. {
  117. P0=temp;
  118. delayms(time);
  119. temp1=~temp;
  120. temp1>>=1;
  121. temp=~temp1;

  122. }

  123. temp=0x80;
  124. for(a=8;a>0;a--)
  125. {
  126. P3=temp;
  127. delayms(time);
  128. temp1=~temp;
  129. temp1>>=1;
  130. temp=~temp1;

  131. }
  132. temp=0x80;
  133. for(a=8;a>0;a--)
  134. {
  135. P1=temp;
  136. delayms(time);
  137. temp1=~temp;
  138. temp1>>=1;
  139. temp=~temp1;

  140. }

  141. }


  142. /*******************************變換方式二  子函數(shù) ***********************************/


  143. void run_LED_fun2()
  144. {
  145. uchar a,temp,temp1,temp2;

  146. temp=0x01;
  147. temp1=0x80;
  148. for(a=8;a>0;a--)   //P1口LED燈依次點亮
  149. {
  150. P1=~temp;
  151. P0=~temp;
  152. P3=~temp1;
  153. P2=~temp;
  154. delayms(time);
  155. temp<<=1;
  156. temp1>>=1;

  157. }

  158. temp=0x80;
  159. temp1=0x01;
  160. for(a=8;a>0;a--)   //P1口LED燈依次點亮
  161. {
  162. P1=~temp;
  163. P0=~temp;
  164. P3=~temp1;
  165. P2=~temp;
  166. delayms(time);
  167. temp>>=1;
  168. temp1<<=1;

  169. }

  170. temp=0xfe;
  171. temp1=0x7f;
  172. for(a=8;a>0;a--)
  173. {
  174. P1=temp;
  175. P0=temp;
  176. P3=temp1;
  177. P2=temp;
  178. delayms(time);
  179. temp<<=1;
  180. temp1>>=1;

  181. }

  182. temp=0x7f;
  183. temp1=0xfe;
  184. for(a=8;a>0;a--)
  185. {
  186. P1=~temp;
  187. P0=~temp;
  188. P3=~temp1;
  189. P2=~temp;
  190. delayms(time);

  191. temp2=~temp;
  192. temp>>=1;
  193. temp2=~temp;

  194. temp1<<=1;


  195. }


  196. }


  197. /*******************************變換方式三 子函數(shù) ***********************************/

  198. void run_LED_fun3()
  199. {

  200. P0=0x00;
  201. P1=0xff;
  202. P2=0xff;
  203. P3=0xff;
  204. delayms(5*time);

  205. P0=0xff;
  206. P1=0x00;
  207. P2=0xff;
  208. P3=0xff;
  209. delayms(5*time);

  210. P0=0xff;
  211. P1=0xff;
  212. P2=0xff;
  213. P3=0x00;
  214. delayms(5*time);

  215. P0=0xff;
  216. P1=0xff;
  217. P2=0x00;
  218. P3=0xff;
  219. delayms(5*time);

  220. P0=0xff;
  221. P1=0x00;
  222. P2=0xff;
  223. P3=0x00;
  224. delayms(5*time);

  225. P0=0x00;
  226. P1=0xff;
  227. P2=0x00;
  228. P3=0xff;
  229. delayms(5*time);
  230. P0=0xff;
  231. P1=0xff;
  232. P2=0xff;
  233. P3=0xff;

  234. }


  235. /*******************************變換方式四  子函數(shù) ***********************************/

  236. void run_LED_fun4()
  237. {
  238. uchar a,temp,temp1,temp2;
  239. P0=0xff;
  240. P1=0x00;
  241. P2=0xff;
  242. P3=0xff;
  243. delayms(time);

  244. temp=0xfe;
  245. temp1=0xfe;

  246. for(a=8;a>0;a--)
  247. {
  248. P1=~temp;

  249. P3=temp1;

  250. delayms(time);

  251. temp2=~temp;
  252. temp<<=1;
  253. temp2=~temp;

  254. temp1<<=1;
  255. }

  256. temp=0xfe;
  257. temp1=0x7f;

  258. for(a=8;a>0;a--)
  259. {
  260. P3=~temp;

  261. P2=temp;

  262. delayms(time);

  263. temp2=~temp;
  264. temp<<=1;
  265. temp2=~temp;

  266. temp1>>=1;
  267. }

  268. temp=0xfe;
  269. temp1=0x7f;



  270. for(a=8;a>0;a--)
  271. {
  272. P2=~temp;

  273. P0=temp1;

  274. delayms(time);

  275. //temp2=~temp1;
  276. temp<<=1;
  277. //temp2=~temp;

  278. temp1>>=1;
  279. }


  280. temp=0x7f;
  281. temp1=0xfe;

  282. for(a=8;a>0;a--)
  283. {
  284. P0=~temp;

  285. P1=temp1;

  286. delayms(time);

  287. temp2=~temp;
  288. temp>>=1;
  289. temp2=~temp;

  290. temp1<<=1;
  291. }



  292. }

  293. /*
  294. void  change_speed()
  295. {
  296. if(F1 == 0)
  297. {
  298. delayms(10);
  299. if(F1 == 0)
  300. {
  301. while(!F1);
  302. time = time +20;

  303. }
  304. }


  305. if(F2 == 0)
  306. {
  307. delayms(10);
  308. if(F2 == 0)
  309. {
  310. while(!F2);
  311. time = time -20;

  312. }
  313. }



  314. }


  315. */

  316. /*******************************主函數(shù) ***********************************/

  317. void main()
  318. {
  319. while(1)
  320. {


  321. run_LED_fun1();
  322. run_LED_fun2();
  323. run_LED_fun3();
  324. run_LED_fun4();


  325. }

  326. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日干天天干 | 91免费视频观看 | 国产精品免费一区二区三区四区 | 大香在线伊779 | 91麻豆精品国产91久久久久久 | 日韩国产一区二区三区 | 亚洲精品日韩综合观看成人91 | 亚洲国产黄色av | 日韩精品在线免费 | 亚洲444eee在线观看 | 日本在线一区二区三区 | 久久精品视频在线免费观看 | 久久国产精品一区二区 | 五月综合激情婷婷 | 免费国产精品久久久久久 | 一级免费视频 | 一区二区三区四区日韩 | 欧美jizzhd精品欧美巨大免费 | 亚洲免费在线 | 亚洲第一在线视频 | 狠狠的操 | 日本精品一区二区三区在线观看视频 | 久久久久久久久久久91 | 久久久夜夜夜 | 91精品国产91久久久久游泳池 | 玖草资源 | 国产精品福利在线观看 | 四虎影院久久 | 久久精品国产一区二区三区不卡 | 国产精品成人国产乱 | 四虎海外 | 久久99视频| 久久久久国产 | 玖玖在线免费视频 | av在线免费观看网址 | 欧美日韩专区 | 欧美一级免费 | 搞av.com | 午夜性色a√在线视频观看9 | 久草视频网站 | 久久久激情 |