欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求助!用51單片機計時器產生方波,可是改變不了占空比。 [打印本頁]

作者: a997181870    時間: 2019-6-11 20:00
標題: 求助!用51單片機計時器產生方波,可是改變不了占空比。
用C語言實現方波占空比的改變,占空比有5擋,循環5次,每次100ms,比如在x=3時,P1口先高電平300ms,然后低電平200ms。用外部中斷0讓x+1,外部中斷x-1。可是,仿真時無論如何占空比都是1:1,就是高電平和低電平的時間是一樣的,除了x=0和x=5的時候是一條直線。求助大佬幫忙看下,這是為什么。

2019-06-11_195054.png (44.18 KB, 下載次數: 46)

源程序

源程序

原理圖.png (24.21 KB, 下載次數: 42)

原理圖

原理圖

作者: yzwzfyz    時間: 2019-6-12 08:54
本帖最后由 yzwzfyz 于 2019-6-13 08:22 編輯

1、用定時器做一個1T中斷。
2、設置一個周期寄存器C,假設你需要的周期是100T,你就讓C=100。
3、設置一個占空比寄存器P,假設你需要的占空比是70,你就讓P=70。
關鍵點(方案):
定時器每次中斷后將C-1,如果P<>0,再將P-1,否則P不動!
1、當C-1=0時,讓IO口置1,同時將C復成100、將P復成70;否則不處理。
2、當P-1=0時,讓IO口清0;否則不處理。
這樣IO口的輸出就如你所愿了。

更高級一點做成活的。
再增設兩個寄存器M,N,將程序中的100用M替代、70用N替代。

這樣你只要改變M、N的值就可以任意改變周期與占空比了。而且隨時改變!不過要保證M>N,這很容易吧。

關鍵不是看你的程序,而是看你的構思!你的程序有什么看頭。
如果你能理解并認為我的方案可行,你就試著寫寫程序。

作者: xianfajushi    時間: 2019-6-12 09:10
https://blog.csdn.net/xianfajushi/article/details/81331101
作者: lwh999995    時間: 2019-6-12 14:24
你這是不了解什么叫占空比吧, 百度一下吧, 多看看別人怎么寫的
作者: 問青天磕大地    時間: 2019-6-12 16:44
好像沒有外部中斷觸發源,怎么觸發中斷???




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