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

調(diào)節(jié)寬度,仿制正玄波,但是每個(gè)脈高都是一樣的,這樣的高次諧波影響很大,昨天想到這樣一個(gè)解決方法,51單片機(jī)其實(shí)可以做出每個(gè)高度不同的方波,圖片如下

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

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

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