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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11609|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電子燈箱控制器源碼-小項(xiàng)目分享

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74187 發(fā)表于 2018-10-12 09:19 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
大家都見過電子燈箱吧,就是路邊那種閃爍的,這種東西的邏輯控制很簡單,就是周邊流水燈循環(huán)跑馬燈,正轉(zhuǎn)10圈,反轉(zhuǎn)10圈,然后同時閃爍3秒,中間的字體是亮5秒,閃爍3秒,依次循環(huán),邏輯不難,我們用開發(fā)板上的小燈來實(shí)現(xiàn)這樣的效果,代碼如下: 005 電子燈箱控制器.rar (33.82 KB, 下載次數(shù): 78)

  1. /********************************************************
  2. *描述:8組小燈正轉(zhuǎn)10圈,反轉(zhuǎn)10圈,常亮5秒,閃爍3秒,依次循環(huán)
  3. ********************************************************/
  4. #include "stc15w.h"
  5. #include "intrins.h" //包含左移和右移指令
  6. #include "string.h"         //字符串
  7. #include "stdio.h"         //標(biāo)準(zhǔn)輸入輸出



  8. /*******************************************************************************
  9. * 文件名:位定義
  10. * 描  述:
  11. * 功  能:
  12. * 作  者:大核桃
  13. * 版本號:1.0.1(2017.05.23)
  14. *******************************************************************************/

  15. bit flag500ms = 0;//500ms翻轉(zhuǎn)一次

  16. sbit LED0 = P1^0;//
  17. sbit LED1 = P1^1;
  18. sbit LED2 = P1^2;
  19. sbit LED3 = P1^3;
  20. sbit LED4 = P1^4;
  21. sbit LED5 = P3^2;
  22. sbit LED6 = P0^0;
  23. sbit LED7 = P0^1;

  24. sbit DATA0 = P2^0;//
  25. sbit DATA1 = P2^1;//
  26. sbit DATA2 = P2^2;//
  27. sbit DATA3 = P2^3;//
  28. sbit DATA4 = P2^4;//
  29. sbit DATA5 = P2^5;//
  30. sbit DATA6 = P2^6;//
  31. sbit DATA7 = P2^7;//

  32. typedef unsigned char uint8;//0-255
  33. typedef unsigned int  uint16;//0-65535
  34. typedef unsigned long uint32;//0-65535*65535

  35. /*******************************************************************************
  36. * 文件名:函數(shù)前置聲明
  37. * 描  述:
  38. * 功  能:
  39. * 作  者:大核桃
  40. * 版本號:1.0.1(2017.05.23)
  41. *******************************************************************************/

  42. void Bsp_Power_Init(void);
  43. void Delay500ms();                //@11.0592MHz
  44. void Timer0Init(void);                //1毫秒@11.0592MHz



  45. /*******************************************************************************
  46. * 文件名:主循環(huán)入口
  47. * 描  述:
  48. * 功  能:
  49. * 作  者:大核桃
  50. * 版本號:1.0.1(2017.05.23)
  51. *******************************************************************************/
  52. void main(void)
  53. {
  54.         uint8 i = 0;

  55.         Bsp_Power_Init();//LED端口初始化
  56.         Timer0Init();    //定時器0初始化函數(shù)

  57.         LED0 = 1;


  58.         while(1)
  59.         {
  60.            for(i = 0; i < 3; i++)
  61.            {
  62.                         DATA0 = 0;
  63.                         Delay500ms();
  64.                         DATA0 = 1;
  65.                         Delay500ms();

  66.                         DATA1 = 0;
  67.                         Delay500ms();
  68.                         DATA1 = 1;
  69.                         Delay500ms();

  70.                         DATA2 = 0;
  71.                         Delay500ms();
  72.                         DATA2 = 1;
  73.                         Delay500ms();

  74.            }

  75.                    for(i = 0; i < 3; i++)
  76.            {
  77.                         DATA2 = 0;
  78.                         Delay500ms();
  79.                         DATA2 = 1;
  80.                         Delay500ms();

  81.                         DATA1 = 0;
  82.                         Delay500ms();
  83.                         DATA1 = 1;
  84.                         Delay500ms();

  85.                         DATA0 = 0;
  86.                         Delay500ms();
  87.                         DATA0 = 1;
  88.                         Delay500ms();

  89.            }

  90.                    for(i = 0; i < 3; i++)
  91.            {
  92.                         DATA2 = 0;
  93.                         DATA1 = 0;
  94.                         DATA0 = 0;
  95.                         Delay500ms();

  96.                         DATA2 = 1;
  97.                         DATA1 = 1;
  98.                         DATA0 = 1;
  99.                         Delay500ms();

  100.            }
  101.         }

  102. }

  103. /*******************************************************************************
  104. * 文件名:void Bsp_Power_Init()
  105. * 描  述: 數(shù)碼管上電顯示
  106. * 功  能:編程模塊化
  107. * 作  者:大核桃
  108. * 版本號:1.0.1(2017.05.23)
  109. *******************************************************************************/
  110. void Bsp_Power_Init(void)
  111. {
  112.         P0M1 = 0xFC;
  113.         P0M0 = 0X03;
  114.         P0 = 0X00;

  115.         P1M1 = 0xE0;
  116.         P1M0 = 0X1F;
  117.         P1 = 0X00;


  118.         //P2口開漏輸出
  119.         P2M1 = 0XFF;
  120.         P2M0 = 0XFF;
  121.         P2 = 0Xff;
  122. //        //P54,P55口為推挽輸出
  123.         P5M1 = 0X00;
  124.         P5M0 = 0X00;
  125.         P5 = 0xFF;

  126.         //P37,P36,3.2,P3.3 P3.4口為推挽輸出
  127.         P3M1 = 0X00;
  128.         P3M0 = 0XFC;
  129.         P3 = 0X23;

  130. }

  131. /*******************************************************************************
  132. * 文件名:void Delay500ms()                //@11.0592MHz
  133. * 描  述: 普通延時函數(shù)
  134. * 功  能:編程模塊化
  135. * 作  者:大核桃
  136. * 版本號:1.0.1(2017.05.23)
  137. *******************************************************************************/
  138. void Delay500ms()                //@11.0592MHz
  139. {
  140.         unsigned char i, j, k;

  141.         _nop_();
  142.         _nop_();
  143.         i = 22;
  144.         j = 3;
  145.         k = 227;
  146.         do
  147.         {
  148.                 do
  149.                 {
  150.                         while (--k);
  151.                 } while (--j);
  152.         } while (--i);
  153. }

  154. /*******************************************************************************
  155. * 文件名:void Timer0Init(void)
  156. * 描  述: 定時器0配置
  157. * 功  能:編程模塊化
  158. * 作  者:大核桃
  159. * 版本號:1.0.1(2017.05.23)
  160. *******************************************************************************/
  161. void Timer0Init(void)                //1毫秒@11.0592MHz
  162. {
  163.         AUXR |= 0x80;                //定時器時鐘1T模式
  164.         TMOD &= 0xF0;                //設(shè)置定時器模式 1111_
  165.         TMOD |= 0X01;       //16位模式,不可重裝

  166. //        TL0 = 0xCD;                    //設(shè)置定時初值
  167. //        TH0 = 0xD4;                     //設(shè)置定時初值

  168.         TL0 = (65535 - 11059) % 256;                    //設(shè)置定時初值
  169.         TH0 = (65535 - 11059) / 256;                     //設(shè)置定時初值


  170.         ET0 = 1;            //打開定時器0中斷使能
  171.         TR0 = 1;                    //定時器0開始計時
  172.         EA = 1;             //打開總中斷使能
  173. }

  174. void TIME0_IRQ_Handler() interrupt 1
  175. {
  176.         static uint16 tmr10ms = 0;
  177.         static uint8  tmr3s = 0;
  178.         static uint8  tmr5s = 0;
  179.         static uint8 a = 0;

  180.         TL0 = (65535 - 11059) % 256;                    //設(shè)置定時初值
  181.         TH0 = (65535 - 11059) / 256;                     //設(shè)置定時初值

  182.         //1ms溢出一次
  183.         tmr10ms++;

  184.         if(a)
  185.         {
  186.                 if(tmr10ms >= 500)
  187.                 {
  188.                         tmr10ms = 0;
  189.                         DATA4 = ~DATA4;//500ms閃爍依次
  190.                         tmr3s++;
  191.                 }

  192.                 if(tmr3s >= 6)
  193.                 {
  194.                     tmr3s = 0; //閃爍3次
  195.                         a = 0;
  196.                 }
  197.                         
  198.         }
  199.         else
  200.         {
  201.                 if(tmr10ms >= 500)
  202.                 {
  203.                         tmr10ms = 0;
  204.                         DATA4 = 0; //亮5秒
  205.                         tmr5s++;
  206.                 }

  207.                 if(tmr5s >= 10)
  208.                 {
  209.                     tmr5s = 0;
  210.                         a = 1;
  211.                 }         
  212.         }                                
  213. }

復(fù)制代碼




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:393796 發(fā)表于 2018-10-23 23:40 | 只看該作者
好東西呀!頂起來
回復(fù)

使用道具 舉報

板凳
ID:405817 發(fā)表于 2018-10-30 13:19 | 只看該作者
謝謝樓主的分享精神。
回復(fù)

使用道具 舉報

地板
ID:140706 發(fā)表于 2018-11-11 11:06 | 只看該作者
謝謝樓主的分享,好東西
回復(fù)

使用道具 舉報

5#
ID:426965 發(fā)表于 2018-11-20 17:25 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報

6#
ID:452412 發(fā)表于 2018-12-25 14:07 | 只看該作者
謝謝樓主的分享,好東西
回復(fù)

使用道具 舉報

7#
ID:461544 發(fā)表于 2019-4-26 22:54 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

8#
ID:579509 發(fā)表于 2019-7-8 18:16 | 只看該作者
努力學(xué)習(xí)中
回復(fù)

使用道具 舉報

9#
ID:584509 發(fā)表于 2019-7-16 15:33 | 只看該作者
謝謝樓主的分享,好東西
回復(fù)

使用道具 舉報

10#
ID:476623 發(fā)表于 2022-10-25 20:55 | 只看該作者
樓主辛苦了!下載了學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報

11#
ID:1049825 發(fā)表于 2022-10-31 20:45 | 只看該作者
學(xué)以致用,相輔相成,贊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲 欧美 日韩 精品 | 久热免费 | 国产精品福利在线 | 在线免费观看色 | 国产欧美日韩综合精品一区二区 | 亚洲人成在线播放 | 嫩草网 | 成人午夜av| 久久人爽爽人爽爽 | 视频一区二区在线观看 | 午夜三级网站 | 成人一区二区在线 | 91在线看| 精品成人 | 久久99精品久久久久久噜噜 | 精品国产99 | 午夜精品久久久久久久久久久久 | 看亚洲a级一级毛片 | 久久精品亚洲成在人线av网址 | 日韩在线视频观看 | 中文字幕在线视频免费观看 | 激情视频一区 | 亚洲欧美国产精品久久 | 91亚洲精品在线观看 | 久久91| 波多野结衣一区二区 | 中文字幕在线国产 | 久久91精品国产一区二区 | 国产一区在线免费观看视频 | 日韩成人免费av | 久久青青| 欧美一级全黄 | 成人在线小视频 | 福利视频一区二区 | 国产在线观看一区二区 | 亚洲综合一区二区三区 | 中文字幕视频免费 | 亚洲午夜久久久 | 成人在线视频一区 | 天堂在线网 | 国产精品99精品久久免费 |