昨天拿出開發板燒寫下試試,發現提示錯誤,弄了一個下午,最后發現,學習板上寫支持AVR,可是16L的管腳用途跟51不一樣,根本就不能用,按照資料做了個最小系統燒寫,成功.
我的學習板買的是便宜的,100塊,帶燒寫仿真實驗,學習板好像是個人制作的,沒有網站,沒有技術支持,現在才知道貴的不貴了,沒辦法,自己走彎路吧.
上次用51仿制的波形

調節寬度,仿制正玄波,但是每個脈高都是一樣的,這樣的高次諧波影響很大,昨天想到這樣一個解決方法,51單片機其實可以做出每個高度不同的方波,圖片如下

這樣由不同寬度不同高度疊加起來的波形就很接近正玄波了,再由濾波器簡單濾波就是很平滑的正弦波了,經測試可以的,可是本人沒有示波器不能上傳波形,只能由萬用表測量1HZ以下的超低頻電壓變化來看.再由LED亮度漸變來看.
一個STC89S52可以給一個波形64分頻,也就是64個方波疊加出一個正玄波,個人認為,要比256分頻脈寬方波仿制出來的效果好.
好像現在研究這個沒什么實際意義了,因為PWM得專用芯片很多了,可能輸出的波形是純正弦波呢,沒用過呢,還不知道,不能亂說.這個只是筆記,您就當新手發神經吧.
好像說,這個高度寬度疊加做正弦波沒什么意義了,可是這個有其它意義,您繼續往下看,我們用這種方式通訊的話,那將最少提高通訊速度一倍以上,下面的只是想法,還需要實踐,先把想法說出來,很可能是天方夜譚,不過是新手接觸單片機以來的想法.
我們用的單片機大多是8位單片機,通訊時發送接收傳送的是2進制代碼,再由接收者解碼出8進制10進制16進制等,也就是說我們每發送一個數字,要至少8個脈沖,比如要發送10進制數170,就要傳送10101010,8個1,然后解碼成170來用,因為發送的是等高的脈沖,不能區分出0,1以外的數,脈沖波形如下

假設我們可以發送0,1,2,3四個數呢,我們把2個2進制數編程1個四進制數來發送,將快一倍的傳送速度,下面我們把2進制變成四進制,取出2個2進“00=0”“01=1”“10=2”“11=3”這樣變換,還是發送十進制數170,2進制為“10101010”4進制為“2222”四個2,我們把脈沖高度定義一下,脈沖高度定義“0電壓=0”“1V=1”"2V=2""3V=3"這樣我們發送不同的電壓高度,發送四個2V電壓,接收者收到電壓后解碼為每個2=兩個10,2222=10101010,這樣就得到的還是這個2進制數,但是傳送時只占用了4個脈沖的長度,速度提高了一倍,如果我們把脈沖高度精確到8進制呢,速度就又提高了一倍,現在我畫出發送四個2的波形

上圖每個方波對應一個數,簡單理解為電壓,1V電壓以下為0,2V以下電壓為1,3V電壓以下為2,4V電壓以下為3,這樣也就有了誤差,比如我們發送四個2,我們可以發送四個2.5V的電壓,上下都留有誤差值.
好了,筆記寫到這里,現在還需要先解決溫飽問題,這樣的傳送技術問題以后學到一定技術高度后在回來繼續學,對不對的高手們不要砸磚啊,哈哈,如果哪位大俠覺得感興趣可以一起學習交流啊,我QQ,25567239,6100291