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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3053|回復: 4
打印 上一主題 下一主題
收起左側

STC15W408AS單片機顯字風扇制作 附程序

  [復制鏈接]
跳轉到指定樓層
樓主
原先是個寫死的廣告風扇,經過抄板換芯片可以顯示任何漢字字母圖形。

制作出來的實物圖如下:


電路原理圖如下:





單片機源程序如下:
  1. /************旋轉LED指尖陀螺程序**************/

  2. //----------|D1        |D2        | D3|D4        | D5| D6| D7|D8        |D9 |D10|D11||P32 |  P55   |   P54         |        
  3. //----------|         |        |        |        |        |        |        |        |        |        |        ||          |                   |                 |
  4. //----------|P10|P11|P12|P13|P14|P15|P30|P31|P33|P36|P37||按鍵|紅外接收| 紅外發射|        

  5. //----------字模為12x12點陣,黑體,低位先,從左至右,0為亮燈
  6. //----------下載選擇IRC頻率 6.000 MHZ
  7. //----------分頻/4


  8. #include <STC8.H>
  9. #include"zjtl.h"
  10. //#include"intrins.h"
  11. #define uchar unsigned char        //宏定義
  12. #define uint unsigned int        //宏定義

  13. uchar i,s,d,zz;
  14. #define b 20
  15. sbit led1 = P1 ^ 0;
  16. sbit led2 = P1 ^ 1;
  17. sbit led3 = P1 ^ 2;
  18. sbit led4 = P1 ^ 3;
  19. sbit led5 = P1 ^ 4;
  20. sbit led6 = P1 ^ 5;
  21. sbit led7 = P3 ^ 0;
  22. sbit led8 = P3 ^ 1;
  23. sbit led9 = P3 ^ 3;
  24. sbit led10 = P3 ^ 6;
  25. sbit led11 = P3 ^ 7;

  26. uchar JS,ss,zz,xuanze;               
  27. uint ZS;                //累計轉數

  28. sbit k1=P3^2;
  29. sbit k2=P5^5;
  30. //sbit LED0=P3^0;
  31. sbit LED=P3^7;
  32. sbit LED_H=P5^4;        //紅外發射LED
  33. //sbit D7=P3^0;
  34. //sbit D8=P3^1;
  35. //sbit D9=P3^3;
  36. //sbit D10=P3^6;
  37. //sbit D11=P3^7;
  38. /**************************/

  39. uchar code huamian0[]={
  40.    
  41. 0xFF,0xFF,0xFF,0xFB,0x7F,0xFC,
  42. .......見附件.......
  43. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*" ",7*/
  44. /* (6 X 12 , 宋體 ) */
  45. };
  46. /*****************************************/

  47. /**********************************/
  48. /*****n延時子程序*****/
  49. /************************************************/
  50. void delay(uint a)        //延時
  51. {
  52.         uchar x;
  53.         while(a--)
  54.         {
  55.           for(x=0;x<150;x++);
  56.         }        
  57. }
  58. //////////////////////////////
  59. void delayus(uint f)
  60. {
  61.         while(f--);
  62. }
  63. /**************************/
  64. void Timer0Init(void)                //1毫秒@6.000MHz
  65. {
  66.         AUXR &= 0x7F;                //定時器時鐘12T模式
  67.         TMOD &= 0xF0;                //設置定時器模式
  68.         TMOD |= 0x01;                //設置定時器模式
  69.         TL0 = 0x0C;                //設置定時初值
  70.         TH0 = 0xFE;                //設置定時初值
  71.         TF0 = 0;                //清除TF0標志
  72.         TR0 = 1;                //定時器0開始計時
  73.         ET0 = 1;                //定時器T0中斷允許
  74. }
  75. /**********************************************/
  76. /*開機顯示*/
  77. void kaijiss()        //開機最外面LED閃爍三次        
  78. {        
  79.         uchar i;
  80. //        for(i=0;i<6;i++)
  81. //        {        
  82. //                P10=~P10;
  83. //                delay(100);
  84. //         }
  85. //         P10=1;
  86.         
  87. }
  88. /**********************************************/
  89. /****          LED顯示函數             ****/
  90. /**********************************************/
  91. void tuan(uchar *p)
  92. {        
  93.         uchar i;
  94.         
  95.         delayus(ss*100+3300);         //延時一個時間后
  96.         for(i=83;i>0;i--)
  97.         {
  98.                 P1=p[i*2];
  99.                 P2=p[i*2+1];
  100.                 P30=P16;
  101.                 P31=P17;
  102.                 P33=P20;
  103.                 P36=P21;
  104.                 P37=P22;
  105.         
  106.                 delayus(ss+35);                //顯示延時
  107.                
  108.         }
  109.         
  110.         P1=P2=P3=0xff;                //清除LED顯示
  111. }

  112. /***********************************/

  113. /*        比較器中斷 */
  114. void cmp_isr()interrupt 21           //
  115. {

  116.           CMPCR1&=~CMPIF;        //清除完成標志
  117.           JS=!!(CMPCR1&CMPRES);
  118.          
  119.           if(JS==0)
  120.           {
  121.          
  122.                   
  123.         /**/        
  124.                 switch(xuanze)
  125.                 {
  126.                         case(0):tuan(huamian0);break;
  127.                         case(1):tuan(huamian1);break;
  128.                         case(2):tuan(huamian2);break;
  129.                         case(3):tuan(huamian3);break;
  130.                 }
  131.         delay(15);
  132.                 ZS++;        //轉數累加
  133.                
  134.           }
  135. }
  136. /**************************************/
  137. /**************************************/
  138. /*定時器T0中斷服務*/
  139. void Timer0(void) interrupt 1
  140. {         
  141.            uchar c;
  142.                  d++;
  143.          if(d==40/4)           //一直檢測每10ms內當前轉數
  144.          {        d=0;
  145.                  c++;
  146.                  if(c==20)
  147.                 {
  148.                         P11=~P11;
  149.                 }
  150.                     
  151.         
  152.                 ss=ZS+1;
  153.                
  154.                
  155.                 ZS=0;                           //清零
  156.                
  157.            
  158.          }
  159.         TL0 = 0x0C;                //設置定時初值
  160.         TH0 = 0xFE;                //設置定時初值
  161. }
  162. /**************************************/                  
  163. /*外中斷0服務程序*/        
  164. void zhongduan(void) interrupt 0
  165. {
  166.          if(k1==0)
  167.          {
  168.                  delay(15);
  169.                 if(k1==0)
  170.                 {
  171.                         xuanze++;
  172.                         if(xuanze>=4)xuanze=0;         //
  173.                         LED=0;
  174.                 }
  175.                 while(!k1);
  176.                 LED=1;
  177.          }
  178.          
  179. }

  180. ////////////////////////////////////////////////
  181. ///////////////--主--函--數--///////////////////
  182. ////////////////////////////////////////////////
  183. void main()
  184. {

  185.         EA=1;        //開總中斷

  186.         EX0=1;        //允許使用外中斷
  187.         IT0=1;        //負跳變觸發方式(下降沿)

  188.    

  189.         Timer0Init();        //1毫秒@6.000MHz
  190.         msgl();                        //單片機工作模式
  191.         fenpin();                //單片機主頻設置
  192.         bjq();                        //比較器設置                 

  193.         
  194.         ioshezhi();                //io口設置
  195.         
  196.         kaijiss();                //開機最外面LED閃爍三次
  197.         


  198. ////////////////////////////////////////////

  199. //        while(1)
  200. //        {
  201. //                 LED_H=0;                //紅外發射LED
  202. //        
  203. //        }
  204. }
  205. ////////////////////////////////////////////
  206. ////////////////////////////////////////////
復制代碼

Keil代碼下載(附件內只含代碼,不含其他任何文件):
Keil代碼.7z (29.46 KB, 下載次數: 35)

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:904752 發表于 2022-9-27 16:49 | 只看該作者
從圖片上看好像不能轉吧
回復

使用道具 舉報

板凳
ID:281065 發表于 2022-9-27 17:02 | 只看該作者
tutu12138 發表于 2022-9-27 16:49
從圖片上看好像不能轉吧

板子固定在馬達軸上,燈排是固定在扇葉上,正負極通過彈簧和PCB上的大焊盤接觸,機械部分用的都是原裝,我只換了板子。
回復

使用道具 舉報

地板
ID:457227 發表于 2025-2-20 18:36 | 只看該作者
大佬能不能講一下刷新原理
回復

使用道具 舉報

5#
ID:1144005 發表于 2025-2-20 23:26 | 只看該作者
有創意
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区 | 九九九久久国产免费 | 欧美日韩国产一区二区三区不卡 | 久久99精品久久久97夜夜嗨 | 丁香六月激情 | 伊人网国产| 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 午夜成人免费视频 | 日韩中文欧美 | 久久国产精品精品 | 久久精品一区 | 性高湖久久久久久久久aaaaa | 殴美成人在线视频 | 好姑娘影视在线观看高清 | 黄色网址在线播放 | 不卡一二区 | 亚洲综合久久网 | 久久久av| 国产精品一区二区免费看 | 成人av网站在线观看 | 日本福利视频 | 91久久综合亚洲鲁鲁五月天 | 日本不卡在线视频 | 成人欧美一区二区三区在线观看 | 亚州成人 | 中文字幕在线第一页 | 国产一区二区三区四区在线观看 | 亚洲一区二区av在线 | 国产高清91| 日本国产一区二区 | 国产一区二区在线播放 | 国产精品99久 | 国产伦一区二区三区四区 | 免费视频久久久久 | 欧美一区成人 | 日韩影院一区 | 国产免费视频在线 | 狠狠做深爱婷婷综合一区 | 在线成人 | 久久99精品久久久久久狂牛 | 国产精品毛片av |