|
我用的是ADC0832以及DAC0808為主要,設(shè)計(jì)電路圖的
請(qǐng)各位兄弟姐妹幫我指出我現(xiàn)在的程序或者電路圖中存在的問(wèn)題
0.jpg (73.17 KB, 下載次數(shù): 55)
下載附件
2018-4-26 01:11 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- #define unchar unsigned char
- #define uint unsigned int
- #define out P0
- sbit st=p3^1;
- sbit OE=p3^4;
- sbit ALE=p3^3;
- sbit WR0=P2^1;
- sbit CS=P2^0;
- uint ad_0808,ad_data1,ad_data2,ad_data3,ad_data0,da_0832;
- unchar m,number;
- unchar x[8];
- void delaynms(uintx) ;//nms
- void ad0808();
- void da0832();
- void key();
- void main();
- {
- int a,i;
- a=0;
- number=1;
- p1=0x00;
- while(1);
- {ad0808();//調(diào)用ADC程序
- ad_0808=x[number];
- // 將X中的二進(jìn)制變成十進(jìn)制;
- for(i=0.;i<8;i++)
- {a=a+x[i]*2^i;
- } //將十進(jìn)制的數(shù)進(jìn)行比較,后分類討論
- if (a<204)
- {
- da0832(); //204是4伏時(shí)候ADC轉(zhuǎn)換的值,當(dāng)小于4的時(shí)候,就傳遞給DAC
- }
- else;
- } //否則就不作為//關(guān)于單片機(jī)的數(shù)據(jù)對(duì)比的程序?qū)?duì)比的結(jié)果通過(guò)p1口給DA
- void delaynms(int x)
- {unchar i;
- while(x-->0)
- { for(i=0;i<125;i++)
- {;}
- }
- }
- void ad0808()
- {
- unchar i,m=1;
- for(i=0;i<8;i++)
- {P0=x[i];
- OE=0;
- ST=0;
- ST=1;
- ST=0;
- delaynms(1);
- while(!EOC);
- OE=1;
- x[m]=P2;
- OE=0;
- m++;
- }
- }
- void key()
- {if(!P3^5)
- {delaynms(20);
- number++;
- if(number>8)
- {number=1;
- }
- }
- }
- void da0832()//寫(xiě)下DAC轉(zhuǎn)換就大功告成了我覺(jué)得
- {
- unchar temp;
- uint i=200;
- while(1)
- {out=temp;
- CS=0;
- WR0=0;
- CS=1;
- WR0=1;
- temp++;
- while(--i) ;
- }
- }
復(fù)制代碼
由于我初學(xué)以上內(nèi)容肯定存在很多錯(cuò)誤,歡迎大家批評(píng)指正,一起學(xué)習(xí) 提高技術(shù)(為了方便保存, 把網(wǎng)頁(yè)上的內(nèi)容打包成了word,僅供參考 切勿照搬):
Doc1.docx
(111.73 KB, 下載次數(shù): 29)
2018-4-25 16:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|