找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2154|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

stm32板子學(xué)前準(zhǔn)備(正點(diǎn)原子精英開發(fā)板)+四個(gè)模式LED轉(zhuǎn)換

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

我是一個(gè)大學(xué)在校生,想要分享一下自己是如何一步步走入單片機(jī)這一有趣的世界里來的。我在單片機(jī)的世界里就是一個(gè)普通到不能再普通的一個(gè)小學(xué)生了。在剛開始時(shí)接觸它時(shí),我以為這門課與其他的科目一樣就只是書上理論而已。但是隨著在老師的帶領(lǐng)下我發(fā)現(xiàn)這一科目是一個(gè)有趣到爆的科目。我從單片機(jī)中找到了以前學(xué)習(xí)的樂趣。

我最開始接觸的是51單片機(jī),在51單片機(jī)中我慢慢摸索,慢慢跟著老師的節(jié)奏往前走,不知不覺已經(jīng)接觸51單片機(jī)已經(jīng)快兩年了,中間在學(xué)完自己該學(xué)的課后,在老師推薦下參加了一個(gè)小小的比賽,那才是我真正的踏入單片機(jī)大門的那一刻。我用一年的時(shí)間來準(zhǔn)備這一比賽,我相信大家都會有過像我一樣的感受,在自己寫出程序成功后開心到半夜睡不著。有時(shí)因?yàn)橐稽c(diǎn)代碼上的錯(cuò)誤會和一起的伙伴爭執(zhí)半天的經(jīng)歷吧。

那一年備賽是我大學(xué)生涯最愛的一段時(shí)間,感謝陪我一起的兄弟姐妹,更要感謝給我指導(dǎo)的老師,謝謝他們。

好了說了這么多是回顧一下以前,從今天開始我要開始一段新的學(xué)習(xí),因?yàn)橐呀?jīng)一年時(shí)間過去了,我最好的小伙伴已經(jīng)因一些特殊原因不再玩單片機(jī)了,所以我想再這里找到和我一起學(xué)習(xí)的小伙伴。

我前兩天買的正點(diǎn)原子精英板到了,我從明天開始學(xué)習(xí)32板子了,希望大家和我一起努力。

最后我給大家分享一個(gè)我前幾天寫的一個(gè)LED顯示系統(tǒng)的仿真和一個(gè)代碼吧。

LED顯示系統(tǒng)仿真圖:


四個(gè)模式轉(zhuǎn)換 單片機(jī)程序:


  1. /******************************************************************************
  2. **文件名:LED模式切換
  3. **日 期:2021/01/7
  4. **描 述:通過獨(dú)立按鍵控制LED燈模式之間的切換。
  5. ******************************************************************************/
  6. #include <reg52.h>
  7. #include "intrins.h"

  8. sbit k1=P3^5;
  9. sbit k2=P3^4;
  10. sbit k3=P3^3;
  11. sbit k4=P3^2;

  12. void moshi();
  13. void anjian();
  14. void Delay50ms();
  15. void Delay10ms();

  16. unsigned char mo,n;
  17. unsigned char moshiyi[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  18. unsigned char moshier[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  19. unsigned char moshisan[]={0xe7,0xdb,0xbd,0x7e,0xe7,0xdb,0xbd,0x7e};
  20. unsigned char moshisi[]={0x7e,0xbd,0xdb,0xe7,0x7e,0xbd,0xdb,0xe7};
  21. /******************************************************************************
  22. **函數(shù)名稱:主函數(shù)
  23. **函數(shù)功能:程序循環(huán)的主要途徑及開始的入口
  24. **入口參數(shù):無
  25. **出口參數(shù):無
  26. **備    注:無
  27. ******************************************************************************/
  28. void main()
  29. {
  30. while(1)
  31. {
  32. moshi();anjian();
  33. }
  34. }
  35. /******************************************************************************
  36. **函數(shù)名稱:模式選擇函數(shù)
  37. **函數(shù)功能:判斷模式
  38. **入口參數(shù):無
  39. **出口參數(shù):無
  40. **備    注:無
  41. ******************************************************************************/

  42. void moshi()
  43. {
  44.         if(mo==1)
  45.         {
  46.         P0=moshiyi[n];Delay50ms();n++;if(n==8) n=0;
  47.         }

  48.         if(mo==2)
  49.         {
  50.         P0=moshier[n];  Delay50ms();n++;        if(n==8) n=0;
  51.         }

  52.         if(mo==3)
  53.         {
  54.         P0=moshisan[n];        Delay50ms();n++;        if(n==8) n=0;
  55.         }

  56.         if(mo==4)
  57.         {
  58.         P0=moshisi[n];        Delay50ms();n++;        if(n==8) n=0;
  59.         }
  60. }
  61. /******************************************************************************
  62. **函數(shù)名稱:按鍵函數(shù)
  63. **函數(shù)功能:判斷按鍵并做出相應(yīng)選擇
  64. **入口參數(shù):無
  65. **出口參數(shù):無
  66. **備    注:無
  67. ******************************************************************************/

  68. void anjian()
  69. {
  70.         if(k1==0)
  71.         {
  72.         Delay10ms();
  73.         if(k1==0)
  74.         {
  75.         mo=1;
  76.         }
  77.         while(!k1);
  78.         }
  79.         
  80.         if(k2==0)
  81.         {
  82.         Delay10ms();        if(k2==0)
  83.         {
  84.         mo=2;
  85.         }
  86.         while(!k2);
  87.         }        
  88.   if(k3==0)
  89.         {
  90.         Delay10ms();if(k3==0)
  91.                 {
  92.                 mo=3;
  93.                 }
  94.                 while(!k3 );
  95.         }
  96.         
  97.                 if(k4==0)
  98.         {
  99.         Delay10ms();
  100.         if(k4==0)
  101.         {
  102.         mo=4;
  103.         }
  104.         while(!k4);
  105.         }
  106. }
  107. /******************************************************************************
  108. **函數(shù)名稱:延時(shí)函數(shù)
  109. **函數(shù)功能:延時(shí)50ms
  110. **入口參數(shù):無
  111. **出口參數(shù):無
  112. **備    注:無
  113. ******************************************************************************/

  114. void Delay50ms()                //@11.0592MHz
  115. {
  116.         unsigned char i, j, k;

  117.         _nop_();
  118.         _nop_();
  119.         i = 3;
  120.         j = 26;
  121.         k = 223;
  122.         do
  123.         {
  124.                 do
  125.                 {
  126.                         while (--k);
  127.                 } while (--j);
  128.         } while (--i);
  129. }
  130. /******************************************************************************
  131. **函數(shù)名稱:延時(shí)函數(shù)
  132. **函數(shù)功能:延時(shí)10ms
  133. **入口參數(shù):無
  134. **出口參數(shù):無
  135. **備    注:無
  136. ******************************************************************************/

  137. void Delay10ms()                //@11.0592MHz
  138. {
  139.         unsigned char i, j;

  140.         i = 108;
  141.         j = 145;
  142.         do
  143.         {
  144.                 while (--j);
  145.         } while (--i);
  146. }
復(fù)制代碼
附件截圖:


全部資料51hei下載地址:

LED四模式.zip (82.57 KB, 下載次數(shù): 7)


評分

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

查看全部評分

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表