找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5780|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于加有單片機(jī)控制功能的TDA2009制作

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71407 發(fā)表于 2014-12-31 00:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


自2009年10月23日在宿舍里沒什么事做&&之前做的TDA2030又出了點(diǎn)問題&&在一個(gè)偶然的時(shí)候看到了一手機(jī)的盒子,所以想到用這個(gè)手機(jī)外殼做一個(gè)功放.開始構(gòu)思整個(gè)制作。
做功放首先要考慮的是做什么功放,思考了一段時(shí)間,最后決定做10+10W的TDA2009加AT89S52,CD4051等做為控制和檢測(cè)系統(tǒng).接下來(lái)要做的就是去收集任何關(guān)于2009的功放的資料和畫電路板了。
最初構(gòu)思結(jié)構(gòu):
整個(gè)電路以模塊化建設(shè)為主,以便于在以后有其他想法時(shí)不會(huì)因?yàn)樾枰渲械哪巢糠蛛娐范鴰н@這個(gè)功放板,再一個(gè)就是不必因?yàn)槠渲心巢糠蛛娐穱?yán)重?fù)p壞而丟棄整塊板。
  整個(gè)電路分為以下模塊:
1, 中央處理器模,以TA89S52為核心元件;
2, 功率模塊,以TDA2009為核心元件;
3, 信號(hào)采樣模塊以LM393為核心元件;
4, 控制,顯示模塊;
5, 電源模塊,其中正電源用全波整流輸出,5V電源用7805穩(wěn)壓輸出;負(fù)電源采用半波整流 7905穩(wěn)壓輸出;
6, 音量控制模塊等,以CD4051為核心元件。
     整個(gè)電路功能構(gòu)思(實(shí)際與構(gòu)思基本一致):
1, 信號(hào)輸入檢測(cè),在60秒內(nèi)無(wú)信號(hào)輸入自動(dòng)關(guān)機(jī);
2, 可進(jìn)入睡眠模式,既定時(shí)關(guān)機(jī)功能(范圍為1~60分種);
3, 10級(jí)LED電平顯示;
4, 工作時(shí)間顯示;
5, 欠壓,過(guò)流,短路延遲斷電保護(hù),保護(hù)裝置動(dòng)作后無(wú)需更換部件既可從新開機(jī);
6, 機(jī)體溫度檢測(cè),當(dāng)機(jī)體溫度到達(dá)n攝氏度時(shí)讓電路開始以聲音或光的方式發(fā)出警告。當(dāng)溫度繼續(xù)升高并到達(dá)一定高度時(shí)自動(dòng)打開電扇,溫度降低后又自動(dòng)關(guān)閉;
7, 可用按鍵控制音量等。
畫電路板中……
首先畫完的是功率,電源和音量控制模塊,原來(lái)的計(jì)劃是將這幾個(gè)模塊分開,但由于雕刻機(jī)的原因,他們只能在一起了,但他們之間沒有任何聯(lián)系,在必要的時(shí)候隨時(shí)可將他們割斷;
焊接并調(diào)試完成!!
接下來(lái)是畫中央處理器(CPU)和控制,顯示板面。
中央處理器部分:



正在雕刻控制部分:

、


CPU模塊:


顯示,控制面板:



     制作完這些模塊后就要進(jìn)行單片機(jī)(AT89S52)進(jìn)行調(diào)試了……
     開始編寫程序:
  (此程序版本為09.11.21)
      


  1. /***********************************************************
  2. 單片機(jī)引腳說(shuō)明:
  3. P1口:0為數(shù)碼管開關(guān)的總開關(guān);
  4.        1,2,3,4均為數(shù)碼管開關(guān);
  5.     5繼電器開關(guān);
  6.     6為嗡鳴器;
  7.     7風(fēng)扇(在原I/O口上加了一三極管)
  8. 三個(gè)外接LED:P2.5, 6,7;其中在主板上的LED是P2.5;
  9. 接有上拉電阻(接數(shù)碼管)的是P0口;
  10. LM393的是P2.3,4 ;其中第一組輸出是P2.4 ;
  11. P三口全部引出;
  12.       P2.0,1,2為CD4051控制端;
  13. 其他引腳:
  14.    電源:vss 16\GND38
  15.    寄存器選通:29;
  16. **************************************************************/
  17. #include<reg52.h>
  18. #define lxx unsigned char
  19. #define lxd unsigned int
  20. sbit lm393a=P2^4;
  21. sbit lm393b=P2^3;
  22. /****393因腳定義***/
  23. sbit zhongkaiguan=P1^0;
  24. sbit k1=P1^4;
  25. sbit k2=P1^3;
  26. sbit k3=P1^2;
  27. sbit k4=P1^1;
  28. /****數(shù)碼管開關(guān)****/
  29. sbit shijianjia=P3^0;
  30. sbit shijianjian=P3^1;
  31. sbit yljia=P3^4;
  32. sbit yljian=P3^5;
  33. sbit guanji=P3^6;
  34. /******按鍵*******/
  35. sbit xhsr=P2^6;     //信號(hào)輸輸入
  36. sbit jianchewendu=P2^7;  //檢測(cè)溫度
  37. sbit yxz=P2^5;
  38. /*******LED******/
  39. sbit a=P2^0;
  40. sbit b=P2^1;
  41. sbit c=P2^2;
  42. sbit xhjc=P3^7;
  43. sbit fs=P1^7;
  44. sbit jdq=P1^5;
  45. sbit wmq=P1^6;
  46. /*****特殊腳*****/
  47. bit wdjca;
  48. lxx sz[]={0x88,0xbe,0xc4,0x94,0xb2,0x91,0x81,0xbc,0x80,0x90,};
  49. lxx yl,yljc,wdjc,wjs,wjss,guanjis;
  50. lxd haomiao,Miao,fen,yxxs,miaotiaozhuan,ylxs,fens,xssj;
  51. void ys(lxd YS){while(YS--);}
  52. /*************************************************準(zhǔn)備工作******************************************************/
  53. void xs(void)
  54. {
  55.   
  56.   if(ylxs>=1){P0=sz[yl];k1=0;}else
  57.   {
  58.   k1=1;
  59.   if(Miao<=15){P0=sz[Miao%10];k1=0;ys(200);k1=1;
  60.   P0=sz[Miao/10%10];k2=0;ys(200);k2=1;
  61.    }
  62.    if(xssj>=1||fen<=1){P0=sz[fen%10];k3=0;ys(200);k3=1; if(fen/10%10){P0=sz[fen/10%10];k4=0;ys(200);k4=1;}}
  63.    else k2=k3=1;
  64.   
  65.   }
  66. }
  67. void csh(void)
  68. {
  69. TMOD=0x11;
  70. TH0=15535/256;TL0=15535%256;
  71. TR0=1;ET0=1;
  72. TR1=0;ET1=1;
  73. EX0=1;IT0=0;
  74. EX1=1;IT1=0;
  75. EA=1;
  76. }
  77. void ajpd(void)
  78. {
  79.   if(yljia==0){ys(20000);if(yljia==0){TR1=1;if(yl<=6)yl++;ylxs=120;}}
  80.   if(yljian==0){ys(20000);if(yljian==0){TR1=1;if(yl>=1)yl--;ylxs=120;}}
  81.   
  82.   if(lm393b==0){fs=0;}else {fs=1;}
  83.   if(lm393a==0){wjs=1;}else{wjs=0;}
  84.   
  85.   if(shijianjia==0){ys(20000);xssj=200;if(shijianjia==0&&fen<=59){fen++;}}
  86.   if(shijianjian==0){ys(20000);xssj=200;if(shijianjian==0&&fen>=2){fen--;}}
  87.   /*************************************/
  88. if(guanji==0){ys(50000);if(guanji==0){ys(50000);if(guanji==0)jdq=1;}}
  89.   /**************************************/
  90.   if(xhjc==1){Miao=60; xhsr=0;} else xhsr=1;
  91.   if(yl==0){a=1;b=1;c=1;}
  92.   if(yl==1){a=0;b=1;c=1;}
  93.   if(yl==2){a=1;b=0;c=1;}
  94.   if(yl==3){a=0;b=0;c=1;}
  95.   if(yl==4){a=1;b=1;c=0;}
  96.   if(yl==5){a=0;b=1;c=0;}
  97.   if(yl==6){a=1;b=0;c=0;}
  98.   if(yl==7){a=0;b=0;c=0;}
  99.   
  100. }
  101. void main(void)
  102. {
  103.   csh();
  104.    yl=3;
  105.    fen=59;
  106.    jdq=0;
  107.    Miao=30;
  108.   
  109.   zhongkaiguan=0;
  110.   while(1)
  111.    {
  112.    xs();
  113.    ajpd();
  114.    }
  115. }
  116. void nzd0(void)interrupt 1
  117. {
  118. TH0=15535/256;
  119. TL0=15535%256;
  120. haomiao++;
  121. if(wjs==1){wjss++;} //溫度是否達(dá)到??
  122. if(wjss>=10){jianchewendu=0;}else{jianchewendu=1;}
  123. if(wjss==30)wjss=0;
  124. if(haomiao==40){haomiao=0;Miao--;fens++;}
  125. if(fens==60){fen--;fens=0;}

  126. if(Miao==0||fen==0){jdq=1;}else jdq=0;
  127. miaotiaozhuan++;
  128. if(miaotiaozhuan>=40)yxz=0;else yxz=1;
  129. if(miaotiaozhuan==40)miaotiaozhuan=0;

  130. if(xssj>=1){xssj--;}

  131. }
  132. void nzdi(void)interrupt 3
  133.   {
  134.   TH1=15535/256;TL1=15535%256;
  135.   ylxs--;

  136.   if(ylxs==0){TR1=0;}
  137.   
  138.   }
  139. void wz0(void)
  140. {
  141.   yljc=yl;
  142.   yl=0;
  143. }
  144. void wz1(void)
  145.   {
  146.   
  147.   }
復(fù)制代碼



Over!!!
在編寫程序時(shí)遇到了問題:因?yàn)橐獙?duì)輸入信號(hào)檢測(cè)進(jìn)行編程,而在電路中我是將P3^7直接接到LM393的輸出,與LED并聯(lián),在LM393的電路中是高電平有效,而單片機(jī)又默認(rèn)I/O口的狀態(tài)為1,所以我認(rèn)為應(yīng)該讓P3^7初始化為0然后再檢測(cè)高電平?蓡栴}出現(xiàn)了:這樣做雖然可以檢測(cè)到是否有信號(hào)輸入,而在電平顯示中的最低位卻不亮了……
后來(lái)說(shuō)來(lái)神奇:我刪除了P3^7初始化為0的命令,再試就得了。我想我知道為什么讓他初始化為0為什么不亮了,原因是LM393的輸出能力有限,他輸出的1是LED兩端的2V電壓而且電流小,“拼不過(guò)” 單片機(jī)的0,但他的出現(xiàn)依然使得單片機(jī)的P3^7電壓升高但小于2V,所以單片機(jī)還可以檢測(cè)到有信號(hào)輸入但LED不亮。
但有點(diǎn)不明白為什么不讓P3^7初始化LED就不亮并且依然可以檢測(cè)到信號(hào)呢??
原因暫不明。。。。。。
結(jié)論:平時(shí)要注意自己的知識(shí)儲(chǔ)備!
把程序?qū)懭階T89S52后就開始試機(jī)了。(試機(jī)中……)
中央處理器,顯示局部調(diào)試:




調(diào)試成功后就可進(jìn)行整體試機(jī)了。
在試機(jī)的過(guò)程中損壞了一塊單片機(jī),原因暫不明。。。。。。。

OK,可以進(jìn)行整體調(diào)試了。
調(diào)試時(shí)也要不斷對(duì)他們進(jìn)行調(diào)整,比如為了美觀,將顯示面板的一排電平顯示的LED換成了綠色的等。
電路整體測(cè)試:




電路整體測(cè)試基本順利,一個(gè)電路一般是不能沒有外殼的,在設(shè)計(jì)電路時(shí)我是就打算將這一電路裝到一手機(jī)盒里,所以在畫PCB時(shí)就要量手機(jī)盒的相關(guān)尺寸,但測(cè)量總是會(huì)有誤差的,當(dāng)時(shí)測(cè)量是我就沒有考慮到裝電路板時(shí)要剪掉的那部分的尺寸,使得大當(dāng)裝上電路板時(shí)由于電路板有點(diǎn)小所導(dǎo)致的機(jī)殼前有點(diǎn)空缺。只是我一般都比較樂觀,既然有空缺那就將就著拿來(lái)當(dāng)空氣流通的窗口吧。。!
  結(jié)論:量一物體的尺寸時(shí)一定要考慮周到!
接下來(lái)就是裝機(jī)了。
將電路板裝入機(jī)盒:


(有點(diǎn)亂)

在即將完成制作時(shí)又發(fā)現(xiàn)了一個(gè)問題,既在沒有信號(hào)輸入時(shí)喇叭也會(huì)發(fā)出一些躁聲,懷疑是功率部分出了問題,將輸入信號(hào)未經(jīng)過(guò)音量控制部分發(fā)現(xiàn)躁聲消失;再懷疑是音量控制部分的問題。在這部分可能會(huì)造成干擾的只有電源和CD4051的三個(gè)控制端,所以試著在CD4051控制端的A,B,C分別接一50p的電容濾波,結(jié)果沒用。拿示波器來(lái)檢查,A,B,C端都有24MHz的干擾,即使加有電容依然不濟(jì)于事;接著檢查了其他線路,結(jié)果發(fā)現(xiàn)除了GND以外每一條都受到24MHz的干擾。所以又試者在單片機(jī)+5v電源處加一電感濾波,但結(jié)果好象不怎么明顯……
一個(gè)不經(jīng)意讓我發(fā)現(xiàn)似乎在掃描數(shù)碼管時(shí)干擾特別大,所以只要盡量不去掃描數(shù)碼管干擾應(yīng)該就可以減小好多。
又回頭編寫程序,讓信號(hào)輸入檢測(cè)時(shí)顯示的時(shí)間在小于15s時(shí)才顯示,定時(shí)關(guān)機(jī)在小于等于1時(shí)或有關(guān)于時(shí)間的按鍵按下時(shí)才顯示,否則4個(gè)數(shù)碼管全部關(guān)閉。
結(jié)果和我想的一樣,干擾果然少了好多——至少聽起來(lái)。

結(jié)論:電路出了問題不要只從硬件上找原因,要適當(dāng)?shù)目紤]考慮軟件,生活中同樣適用。
整個(gè)制作完成:(已經(jīng)在2009年11月21日星期六投入正常使用)



   
整個(gè)制作總結(jié):
      做這個(gè)制作所需的知識(shí)并不多,一個(gè)普通的電子專業(yè)的學(xué)生應(yīng)該都能做。在這過(guò)程中遇到了很多在設(shè)計(jì)時(shí)沒有想到的問題(上面只列出了一小部分,還有比如模塊與模塊之間都是采用插針連接的,怎么處理好接頭就是一個(gè)問題了等),從這些問題可以讓我感覺到平時(shí)積累知識(shí)的重要性和讓我感覺到想象與現(xiàn)實(shí)的差距。
    在一個(gè)就是自己做一個(gè)制作花的錢并不比買一個(gè)成品少,但又能充實(shí)自己的業(yè)余生活和積累一些相關(guān)經(jīng)驗(yàn),所以不要做這種制作太多,但又不要不做。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:70769 發(fā)表于 2015-1-1 23:53 | 只看該作者
GOOD!!!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表