sbit P37=P3^7;
sbit P36=P3^6;
sbit P00=P0^0;
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
sbit p13=P1^3;
char b,c,ls,ls1,tl=208;
int a,e=200,d=0,th=255;
//下面是波形表
char code bxb[128]={1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,0,0
,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,
0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0};
void main(void)
{
TMOD=TMOD|0x11;
TH0=th;
TL0=tl;
ET0=1;
TR0=1;
TH1=0xf8;
TL1=0x30;
ET1=1;
TR1=1;
EA=1;
while(1){
}
}
void timer0() interrupt 1
{
//這里做頻率和換向
if(ls1==0){ls1=1;}else{ls1=0;}
for(ls=128;ls>0;ls--)
{
if(ls1==0){
P37=bxb[ls];
}else{
P36=bxb[ls];
}
}
TH0=th;
TL0=tl;
}
void timer1() interrupt 3//下面是工作指示燈
{
TH1=0xf8;
TL1=0x30;
b++;
if(b==0){
b=0;
P00=~P00;
}
}
這樣能輸出差不多的正弦波嗎?要是把128點改為256點更好應該.
哪位達人給我看看啊,現在用萬用表顯示電壓很穩定,調節頻率也就改變電壓,就是沒有示波器,看不見波形,謝謝啦,要是可以的話把代碼弄進單片機里弄個圖上來那就更好了,
單片機簡單正弦波思路,高手給看看
全部回復(22)
正序查看
倒序查看
沙發還是自己做吧,這是我估計的波形,見笑啊,我就一小學文化,研究這個老費勁了,高手指點,萬分感謝.對了,改變TL,TH的值就變了頻率
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3687191258972512.jpg');}" onmousewheel="return imgzoom(this);">

0
回復
@urchin
沙發還是自己做吧,這是我估計的波形,見笑啊,我就一小學文化,研究這個老費勁了,高手指點,萬分感謝.對了,改變TL,TH的值就變了頻率[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191258972512.jpg');}"onmousewheel="returnimgzoom(this);">
有沒有燒芯片試過?
0
回復
@urchin
燒了,燒的AT89C52,就這么一個片子了,壞了就沒有了.我在研究脈寬調節,基本能調節了,調節為低頻時輸出功率要比高頻大好多,用LED測試,低頻明顯比高頻亮好多,也把這個表弄成256個點了,低頻時電壓穩定下降,萬用表指針一點不晃悠.數字萬用表也不跳字,適合帶負載啟動設備,啟動時電壓、頻率穩步上升的,就是波形啊,沒有示波器,買不起呀,哪位朋友給測測呢,輸出是P37,P36,謝謝朋友關注
你說你在做脈寬調節試驗,你在外圍做了AD?
其實也不用做換向,只要一個IO口輸出饅頭波SPWM脈沖,另用二個IO口輸出與饅頭波同步的方波就可以了.
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3379261258980456.jpg');}" onmousewheel="return imgzoom(this);">
其實也不用做換向,只要一個IO口輸出饅頭波SPWM脈沖,另用二個IO口輸出與饅頭波同步的方波就可以了.

0
回復
@蕭山老壽
你說你在做脈寬調節試驗,你在外圍做了AD?其實也不用做換向,只要一個IO口輸出饅頭波SPWM脈沖,另用二個IO口輸出與饅頭波同步的方波就可以了.[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261258980456.jpg');}"onmousewheel="returnimgzoom(this);">
沒有,單片機輸出的時候已經把脈寬加寬了,我只用LED測試和萬用表測的,我只是在按我的思路做呢,不知道結果是什么樣的,所以想請大師們給我測測教教我.思路很簡單,比如規定頻率50HZ,輸出50HZ以上頻率,按正常脈寬輸出,低于50HZ,按照低的比率加寬脈寬,我是這么想的也是這么做的,萊鳥,絕對萊鳥.可能我想的太簡單了吧,但是萬用表和LED顯示跟我想的差不多.還望指教,這樣可能會使波形更圓吧
0
回復
@蕭山老壽
你說你在做脈寬調節試驗,你在外圍做了AD?其實也不用做換向,只要一個IO口輸出饅頭波SPWM脈沖,另用二個IO口輸出與饅頭波同步的方波就可以了.[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261258980456.jpg');}"onmousewheel="returnimgzoom(this);">
原來這樣啊,哈哈,謝謝大師了,我為了換相都發愁了老半天啊,還請教了大師呢,不過大師講的我還是理解的不太好,以為還是要換相呢,哈哈,弄得我現在一頭霧水啊,悔恨當初沒好好上學呀,
0
回復
@urchin
10天前我還不知道什么是正弦波,什么是三角波,就知道方波,您說,對我來說您們是不是大師級呢?.我看了10天的書,現在竟然敢動手,也夠有膽量有魄力了吧,哈哈,賣元件的還說我呢,說我就等著元件爆炸吧,哈哈,果然炸了我100塊錢了呢,哈哈,不過要繼續,不能停.要是有你這樣的指教我,肯定比自己要少走不少的彎路,少爆炸好多的元件呢,哈哈,昨天看書看的頭疼,學歷太淺,看不怎么明白呢,哈哈,有個大師問我,什么是傅里葉,現在我明白點了,哈哈
我今天在89S51上燒進了你的程序,在開發板上試運行,在16腳17腳測得二路信號,
照片如下:
二路信號相差180度,每路信號的脈寬變化沒有256級,從最小到最大只有10級,中間那個很寬,所以不象是按正弦波規律變化的脈沖,可能是你的正弦表有點問題.
這是二路信號的關系:
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3379261259050030.jpg');}" onmousewheel="return imgzoom(this);">
這是單路放大的脈沖:
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3379261259050075.jpg');}" onmousewheel="return imgzoom(this);">
照片如下:
二路信號相差180度,每路信號的脈寬變化沒有256級,從最小到最大只有10級,中間那個很寬,所以不象是按正弦波規律變化的脈沖,可能是你的正弦表有點問題.
這是二路信號的關系:

這是單路放大的脈沖:

0
回復
@蕭山老壽
我今天在89S51上燒進了你的程序,在開發板上試運行,在16腳17腳測得二路信號,照片如下:二路信號相差180度,每路信號的脈寬變化沒有256級,從最小到最大只有10級,中間那個很寬,所以不象是按正弦波規律變化的脈沖,可能是你的正弦表有點問題.這是二路信號的關系:[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261259050030.jpg');}"onmousewheel="returnimgzoom(this);">這是單路放大的脈沖:[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261259050075.jpg');}"onmousewheel="returnimgzoom(this);">
謝謝啦,肯定是表有問題,按照別人的表我在試試,為了買個P溝道場管跑了一天了,剛回來.還是忘了買0832了,唉
應該是16級呀,這么變10級了呢,哈哈,初級選手,見笑了
應該是16級呀,這么變10級了呢,哈哈,初級選手,見笑了
0
回復
上次的波形錯誤真的是正弦表的事啊,沒有示波器,花了兩天時間研究出來個簡單示波器,只能畫方波,因為正弦波需要一個數模轉換芯片,沒有,就用一個單片機做的簡單的,現在我把新改的波形發上來,大師看看仿正弦波的話是不是要這樣的波形啊,我沒見過示波器是什么樣,就自己瞎做了,也不知道準不準,反正頻率肯定是不準,因為測試市電波形時在50--55頻率之間跳,肯定不準,僅供參考了.
大師給我看看波形,還有,哪位大師有示波器和單片機,幫忙在給我在真正的示波器上顯示下啊,感謝了
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3687191259235788.jpg');}" onmousewheel="return imgzoom(this);">
上面是測的市電波形,不知道對不對
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3687191259235870.jpg');}" onmousewheel="return imgzoom(this);">
這是我的波形,128個正弦點
紅色的是拉高電平,黃色的是拉低電平,藍色虛線是一秒的波形
單片機里換相的,單相交流電是這樣換相嗎?180度.謝謝大師,請指教啊
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3687191259236379.jpg');}" onmousewheel="return imgzoom(this);">
這是放大的波形
大師給我看看波形,還有,哪位大師有示波器和單片機,幫忙在給我在真正的示波器上顯示下啊,感謝了

上面是測的市電波形,不知道對不對

這是我的波形,128個正弦點
紅色的是拉高電平,黃色的是拉低電平,藍色虛線是一秒的波形
單片機里換相的,單相交流電是這樣換相嗎?180度.謝謝大師,請指教啊

這是放大的波形
0
回復
@urchin
上次的波形錯誤真的是正弦表的事啊,沒有示波器,花了兩天時間研究出來個簡單示波器,只能畫方波,因為正弦波需要一個數模轉換芯片,沒有,就用一個單片機做的簡單的,現在我把新改的波形發上來,大師看看仿正弦波的話是不是要這樣的波形啊,我沒見過示波器是什么樣,就自己瞎做了,也不知道準不準,反正頻率肯定是不準,因為測試市電波形時在50--55頻率之間跳,肯定不準,僅供參考了.大師給我看看波形,還有,哪位大師有示波器和單片機,幫忙在給我在真正的示波器上顯示下啊,感謝了[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235788.jpg');}"onmousewheel="returnimgzoom(this);">上面是測的市電波形,不知道對不對[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235870.jpg');}"onmousewheel="returnimgzoom(this);">這是我的波形,128個正弦點紅色的是拉高電平,黃色的是拉低電平,藍色虛線是一秒的波形單片機里換相的,單相交流電是這樣換相嗎?180度.謝謝大師,請指教啊[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259236379.jpg');}"onmousewheel="returnimgzoom(this);">這是放大的波形
第二個圖可能對的,二路相隔180度的正向SPWM波,你把編譯好的文件發過來,我明天再試試.
0
回復
@urchin
上次的波形錯誤真的是正弦表的事啊,沒有示波器,花了兩天時間研究出來個簡單示波器,只能畫方波,因為正弦波需要一個數模轉換芯片,沒有,就用一個單片機做的簡單的,現在我把新改的波形發上來,大師看看仿正弦波的話是不是要這樣的波形啊,我沒見過示波器是什么樣,就自己瞎做了,也不知道準不準,反正頻率肯定是不準,因為測試市電波形時在50--55頻率之間跳,肯定不準,僅供參考了.大師給我看看波形,還有,哪位大師有示波器和單片機,幫忙在給我在真正的示波器上顯示下啊,感謝了[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235788.jpg');}"onmousewheel="returnimgzoom(this);">上面是測的市電波形,不知道對不對[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235870.jpg');}"onmousewheel="returnimgzoom(this);">這是我的波形,128個正弦點紅色的是拉高電平,黃色的是拉低電平,藍色虛線是一秒的波形單片機里換相的,單相交流電是這樣換相嗎?180度.謝謝大師,請指教啊[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259236379.jpg');}"onmousewheel="returnimgzoom(this);">這是放大的波形
第三個圖,最左邊二個波形怎么擠在一起了?
0
回復
@urchin
上次的波形錯誤真的是正弦表的事啊,沒有示波器,花了兩天時間研究出來個簡單示波器,只能畫方波,因為正弦波需要一個數模轉換芯片,沒有,就用一個單片機做的簡單的,現在我把新改的波形發上來,大師看看仿正弦波的話是不是要這樣的波形啊,我沒見過示波器是什么樣,就自己瞎做了,也不知道準不準,反正頻率肯定是不準,因為測試市電波形時在50--55頻率之間跳,肯定不準,僅供參考了.大師給我看看波形,還有,哪位大師有示波器和單片機,幫忙在給我在真正的示波器上顯示下啊,感謝了[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235788.jpg');}"onmousewheel="returnimgzoom(this);">上面是測的市電波形,不知道對不對[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259235870.jpg');}"onmousewheel="returnimgzoom(this);">這是我的波形,128個正弦點紅色的是拉高電平,黃色的是拉低電平,藍色虛線是一秒的波形單片機里換相的,單相交流電是這樣換相嗎?180度.謝謝大師,請指教啊[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3687191259236379.jpg');}"onmousewheel="returnimgzoom(this);">這是放大的波形
如果SPWM以載波頻率20K計算,一個90度的周期(10MS)內要200個寬度不同的脈沖.
0
回復
@蕭山老壽
如果SPWM以載波頻率20K計算,一個90度的周期(10MS)內要200個寬度不同的脈沖.
實在是不知道這么感謝大師啊,那個擠在一起不知道是我的示波器采樣問題還是程序問題,但是波形看,有不擠在一起的,那就是說,不管哪的問題,都能解決,現在主要是看看我的示波器準不準,不能總麻煩大師不是.我不需要那高的頻率,有400HZ就夠了,還有大師,這樣輸波形的話,頻率是可以調整寬度,但是這樣仿正弦波,本來1HZ的頻率這樣輸出這么多個點,那就頻率高了呀,是不是這么計算呢.只能說謝謝,有機會到你那的話肯定要請你吃飯啊.我離北京不遠,來北京了告訴我,咱們坐坐!
發送到您郵箱里了
發送到您郵箱里了
0
回復
@urchin
實在是不知道這么感謝大師啊,那個擠在一起不知道是我的示波器采樣問題還是程序問題,但是波形看,有不擠在一起的,那就是說,不管哪的問題,都能解決,現在主要是看看我的示波器準不準,不能總麻煩大師不是.我不需要那高的頻率,有400HZ就夠了,還有大師,這樣輸波形的話,頻率是可以調整寬度,但是這樣仿正弦波,本來1HZ的頻率這樣輸出這么多個點,那就頻率高了呀,是不是這么計算呢.只能說謝謝,有機會到你那的話肯定要請你吃飯啊.我離北京不遠,來北京了告訴我,咱們坐坐!發送到您郵箱里了
這是第二個程序的波形,好象有點象了,你的示波器做得不錯.
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3379261259376076.jpg');}" onmousewheel="return imgzoom(this);">
500) {this.resized=true; this.width=500; this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/83/3379261259376085.jpg');}" onmousewheel="return imgzoom(this);">


0
回復
@蕭山老壽
這是第二個程序的波形,好象有點象了,你的示波器做得不錯.[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261259376076.jpg');}"onmousewheel="returnimgzoom(this);">[圖片]500){this.resized=true;this.width=500;this.alt='這是一張縮略圖,點擊可放大。\n按住CTRL,滾動鼠標滾輪可自由縮放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/83/3379261259376085.jpg');}"onmousewheel="returnimgzoom(this);">
謝謝大師幫忙并指教,努力中,這樣我就可以參考我的波形了,實在是感謝
0
回復