標(biāo)題: STC8a8k64S4A12單片機(jī)怎么實(shí)現(xiàn)流水呼吸燈?只有呼吸燈的PWM代碼 [打印本頁(yè)]

作者: duan030    時(shí)間: 2021-12-27 18:46
標(biāo)題: STC8a8k64S4A12單片機(jī)怎么實(shí)現(xiàn)流水呼吸燈?只有呼吸燈的PWM代碼
STC8a8k64S4A12怎么實(shí)現(xiàn)流水呼吸燈?只有呼吸燈的PWM代碼,現(xiàn)在想實(shí)現(xiàn)8個(gè)燈呈現(xiàn)波浪式的起伏,也算是流水呼吸燈了。目前只知道流水燈如何實(shí)現(xiàn),但加上呼吸燈效果就有些蒙圈,希望大佬們指點(diǎn)。
求助大佬們,非常非常感謝!


單片機(jī)源程序如下:
  1. #include "STC8A.h"
  2. #include "intrins.h"

  3. //測(cè)試工作頻率為11.0592MHz

  4. #define CYCLE  0x1000


  5. void PWM_Isr() interrupt 22
  6. {
  7.     static bit dir = 1;
  8.     static int val = 0;
  9.     char store;

  10.     if (PWMCFG & 0x80)
  11.     {
  12.         PWMCFG &= ~0x80;                        //清中斷標(biāo)志
  13.         if (dir)
  14.         {
  15.             val++;
  16.             if (val >= CYCLE) dir = 0;
  17.         }
  18.         else
  19.         {
  20.             val--;
  21.             if (val <= 1) dir = 1;
  22.         }
  23.    
  24.         store = P_SW2;
  25.         P_SW2 |= 0x80;
  26.         PWM0T2 = val;
  27.                                 PWM1T2 = val;
  28.                                 PWM2T2 = val;
  29.                                 PWM3T2 = val;
  30.                                 PWM4T2 = val;
  31.                                 PWM5T2 = val;
  32.                                 PWM6T2 = val;
  33.                                 PWM7T2 = val;
  34.         P_SW2 = store;
  35.     }
  36. }

  37. void main()
  38. {
  39.     P_SW2 = 0x80;
  40.     PWMCKS = 0x00;                              // PWM時(shí)鐘為系統(tǒng)時(shí)鐘
  41.     PWMC = CYCLE;                               //設(shè)置PWM周期為
  42.     PWM0T1= 0x0000;
  43.     PWM0T2= 0x0001;
  44.     PWM0CR= 0x80;                               //使能PWM0輸出
  45.                 PWM1T1= 0x0000;
  46.     PWM1T2= 0x0001;
  47.     PWM1CR= 0x80;                               //使能PWM1輸出
  48.                 PWM2T1= 0x0000;
  49.     PWM2T2= 0x0001;
  50.     PWM2CR= 0x80;
  51.           PWM3T1= 0x0000;
  52.     PWM3T2= 0x0001;
  53.     PWM3CR= 0x80;                               //使能PWM0輸出
  54.                 PWM4T1= 0x0000;
  55.     PWM4T2= 0x0001;
  56.     PWM4CR= 0x80;                               //使能PWM1輸出
  57.                 PWM5T1= 0x0000;
  58.     PWM5T2= 0x0001;
  59.     PWM5CR= 0x80;
  60.                 PWM6T1= 0x0000;
  61.     PWM6T2= 0x0001;
  62.     PWM6CR= 0x80;                               //使能PWM0輸出
  63.                 PWM7T1= 0x0000;
  64.     PWM7T2= 0x0001;
  65.     PWM7CR= 0x80;                               //使能PWM1輸出

  66.     P_SW2 = 0x00;

  67.     PWMCR = 0xc0;                               //啟動(dòng)PWM模塊
  68.     EA = 1;

  69.     while (1);
  70. }

復(fù)制代碼



作者: duan030    時(shí)間: 2021-12-27 18:46
注釋后面沒(méi)來(lái)得及改 但沒(méi)有關(guān)系
作者: jxrjamu    時(shí)間: 2021-12-27 20:28
輪流修改PWM0-PWM7的值

作者: duan030    時(shí)間: 2021-12-28 01:00
jxrjamu 發(fā)表于 2021-12-27 20:28
輪流修改PWM0-PWM7的值

已經(jīng)修改過(guò)了,只能夠同時(shí)亮暗呢,沒(méi)有逐個(gè)移動(dòng)的波浪式效果
作者: wulin    時(shí)間: 2021-12-28 05:50
duan030 發(fā)表于 2021-12-27 18:46
注釋后面沒(méi)來(lái)得及改 但沒(méi)有關(guān)系

把這個(gè)程序看明白稍加修改就能達(dá)目的
水滴流水燈.rar (14.93 KB, 下載次數(shù): 37)


作者: duan030    時(shí)間: 2021-12-28 08:46
wulin 發(fā)表于 2021-12-28 05:50
把這個(gè)程序看明白稍加修改就能達(dá)目的

感謝大佬!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1