找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

中穎單片機SH88F516之LED流水燈源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:246796 發(fā)表于 2017-11-18 04:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
中穎單片機實現(xiàn)流水燈的源碼如下:
  1. /********************************************************************************************************
  2. 說明: 使用了外部中斷4,定時器中斷1,實現(xiàn)了跑馬燈程序
  3. 本程序通過按鍵S1改變LED燈工作的數(shù)量,按鍵S2改變LED燈閃爍的頻率,實現(xiàn)跑馬燈的效果  
  4. 要求:打開撥碼開關J8
  5. *********************************************************************************************************/
  6. #include <sh88f516.h>

  7. unsigned char Num,Fnum;
  8. unsigned char Disp;
  9. unsigned char Time0Count;
  10. bit DispFlag;
  11. void mcu_init();

  12. main()
  13. {

  14.         mcu_init();
  15.                                        
  16.     while(1)
  17.         {

  18.                 if(DispFlag)
  19.                 {
  20.                         DispFlag = 0;

  21.                     P0 = (P0&0xFC) | (Disp&0x03);                //端口0的低2位對應LED燈的D2 D3
  22.                         P1 = (P1&0x03) | (Disp&0xFC);            //端口1的高6位對應LED燈的D4-D9

  23.                         Disp <<= 1;
  24.                         if(CY)
  25.                             Disp |= 0x01;
  26.                 }

  27.         }

  28. }



  29. void mcu_init()
  30. {

  31.         CLKCON = 0x60;        //系統(tǒng)頻率=晶振頻率/12

  32.         P0M0 = 0x00;
  33.         P0M1 = 0xFF;        //推挽輸出模式

  34.         P1M0 = 0x00;
  35.         P1M1 = 0xFF;        //推挽輸出模式

  36.         IENC = 0x70;        //0111 0000 外部中斷4的選擇寄存器,1-打開,0-關閉
  37.         EXF0 = 0x80;        //上升沿觸發(fā)

  38.         TH0 = 0xFA;
  39.         TL0 = 0x00;       
  40.         TMOD = 0x01;        // Timer 0 is 16-bit counter, timer mode
  41.         ET0 = 1;            //enable timer 0 interrupt
  42.         TR0 = 1;            //enable timer 0

  43.         IEN1 = 0x40;        //ELPD EX4  EPWM ESCM    ECMP1 ES1 ECMP0 ESPI         0100 0000
  44.         EA = 1;                        //開啟總中斷

  45.         Num = 0;
  46.         Fnum = 4;
  47.         DispFlag = 1;
  48.         P0 = 0;
  49.         P1 = 0;
  50.         P2 =P2 |0x80;
  51.         Disp = 0x01;


  52. }

  53. void Timer0_int() interrupt 1
  54. {
  55.         Time0Count++;
  56.         if(Time0Count>=Fnum)
  57.         {
  58.                 Time0Count = 0;
  59.                 DispFlag = 1;
  60.         }
  61. }


  62. void EX4_INT() interrupt 13  //using 2  //外部中斷4的中斷號為13.
  63. {
  64.        
  65.         IEN1 &= 0xBF;

  66.         if(IF45)                                 //P2.5對應于板子上的S2
  67.         {       
  68.                 Fnum--;
  69.                 if(Fnum==0)
  70.                     Fnum = 6;

  71.         }

  72.         if(IF46)                                 //P2.6對應于板子上的S1
  73.         {       
  74.                 Num++;     
  75.                 if(Num==5)
  76.                     Num  = 0;

  77.                 switch(Num)
  78.                 {
  79.                     case 0:   Disp = 0x01;
  80.                               break;
  81.                         case 1:   Disp = 0x03;
  82.                               break;
  83.                         case 2:   Disp = 0x0F;
  84.                               break;
  85.                         case 3:   Disp = 0x11;
  86.                               break;
  87.                         case 4:   Disp = 0x55;
  88.                               break;
  89. ……………………

  90. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼



壓縮包里面包含有中穎單片機sh88f516常用功能的源碼,中文注釋都很詳細
下載地址:http://www.torrancerestoration.com/bbs/dpj-98300-1.html



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

使用道具 舉報

沙發(fā)
ID:294632 發(fā)表于 2018-3-20 17:53 | 只看該作者
單片機方案開發(fā)
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表