1樓:匿名使用者
pwm 主要是定時器 和 暫存器的配置 只要配置合適 pwm就出來了
stc微控制器產生pwm,這有一個程式,有人能詳細解釋下它怎麼產生pwm波嗎,能逐句詳解嗎
2樓:匿名使用者
哥們,這個已經很詳細了;
大概說說吧,pwm[54]是定義的一組pwm脈寬輸出陣列,pwm脈寬輸出是0-255;0的時候脈寬輸出最大,255的時候脈寬輸出最小;
然後那個初始化pca,初始化定時器0就不說了,你自己下一個手冊看下就明白;
然後是中斷,每中斷一次index加1,然後判斷index是不是等於54,意思就是pwm[54]整個陣列裡面的pwm是不是都送了一次ccap暫存器;如果都陣列都送了一次,將index置零,從頭開始送;標誌位取反,如果標誌位zf=1,讓p14輸出pwm,p13關閉;,如果zf=0,讓p13輸出pwm,p14關閉;if(zf==0)後面的語句就是讓pwm[54]中的每一個數都送ccap暫存器一次;
其實按這個程式註釋的話,他本意是pwm波形從小變大p14輸出,pwm波形有大變小p13輸出;但是這個程式的實際效果是p14由小變大再由大變小。然後p14關閉,p13由小變大再由大變小
如此迴圈;
你最關心的pwm怎麼輸出:就是這兩個語句,ccap0h=pwm[index]; ccap1h=pwm[index]; index每中斷一次加1,那麼index是由0加到54,假如說index=0 ,那麼ccap0h=pwm[0]; ,pwm[0]對應數字裡面的255,暫存器ccap0h=255;這個暫存器等於255,pwm輸出就是一個小脈寬;下一次中斷ccap0h=240了,脈寬有增加了一點;至於ccap0h送一個資料就有脈寬輸出,這個是由微控制器硬體本身決定的;你看看手冊就知道了;
這個已經說得很明白了吧;累死,打字都打了20分鐘;
STC89C58微控制器ALE PSEN EA不需要,懸空可以嗎
可以懸空,ale是鎖存訊號,現在基本不用了。psen 29腳 在訪問片外程式儲存器時,此端輸出負脈衝作為儲存器讀選通訊號。cpu在向片外儲存器取指令期間,psen訊號在12個時鐘週期中兩次生效。不過,在訪問片外資料儲存器時,這兩次有效psen訊號不出現。psen端同樣可驅動8個lsttl負載。我們根...
我的STC微控制器型號是STC90C516RD 。在keil c中64Kflash程式儲存器怎麼全把它用上啊
記憶體不足516,可能買到假元件了 可以通過定義變數時加上 idata,xdata,code等關鍵字來指定變數儲存的位置。通常不指定的話,只能使用單位元組7位定址的128個位元組記憶體空間。其實不足128,很多地址空間已經被微控制器埠占用 如果使用idata的話可以定址最多256位元組的ram空間。...
51微控制器STC晶片,編譯雙串列埠程式失敗出現的不知名提示
破解有效日期已過,版本應該成了 2k 的試用版。需要新的破解註冊號 微控制器用stc isp 程式出現串列埠通訊失敗 已經提示bai了,還有 du一個程式在使用串列埠,是不是 zhi開啟串列埠調dao 試助手了,回把它關了,答或者有其他什麼程式正在用串列埠。如果不是,就是串列埠有問題,是用usb轉串...