|
基于51單片機(jī)+protues的AD/DA轉(zhuǎn)換實(shí)驗(yàn)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
AD/DA
單片機(jī)源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dula=P0^0;
- sbit wela=P0^1;
- sbit adwr=P3^6;
- sbit adrd=P3^7;
- sbit adcs=P0^2;
- sbit dacs=P0^3;
- sbit beep=P3^0;
- uchar code table[]={
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- uchar code table1[]={
- 0xbf,0x86,0xdb,0xcf,
- 0xe6,0xed,0xfd,0x87,
- 0xff,0xef};
- void delayms(uint);
- void display(char,char,char,char,char,char,char,char);
- void beeeep(uint);
- uint ge,ge_10,ge_100;
- void main()
- {
- uchar k,kk,kkk,freq;
- float temp;
-
- while(1)
- {
- adcs=0; //ad測(cè)電阻
- dacs=1;
- adwr=1;
- _nop_();
- adwr=0;
- _nop_();
- adwr=1;
- display(50,50,50,50,50,ge,ge_10,ge_100);
- P1=0xff;
- adrd=1;
- _nop_();
- adrd=0;
- _nop_();
-
- kk=P1;
- temp=kk*5/255;
- ge=temp; //個(gè)位
- temp=(temp-ge)*10;
- ge_10=temp; //十分位
- ge_100=(temp-ge_10)*10; //百分位
-
- adrd=1;
-
- freq=ge*100+ge_10*10+ge_100;
- dacs=0; //da開蜂鳴
- adcs=1;
- beeeep(freq);
- }
- }
- void delayms(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void beeeep(uint xfreq)
- {
- float t,tt;
- t=1000/xfreq;
- tt=xfreq;
- for(;tt>0;tt--)
- {
- beep=1;
- delayms(t);
- beep=0;
- }
- delayms(300);
- }
- void display(char aa,char bb,char cc,char dd,char ee,char ff,char gg,char hh)
- {
- uint k=1,p=1;
- uchar wei0,AA,BB,CC,DD,EE,FF,GG,HH;
- wei0=~0x01;
- AA=table[aa];
- BB=table[bb];
- CC=table[cc];
- DD=table[dd];
- EE=table[ee];
- FF=table[ff];
- GG=table[gg];
- HH=table[hh];
- for(k=1;k<9;k++)
- {
- P2=0xff;
- wela=1;
- wela=0;
- switch(k)
- {
- case 1:
- P2=AA;
- break;
- case 2:
- P2=BB;
- break;
- case 3:
- P2=CC;
- break;
- case 4:
- P2=DD;
- break;
- case 5:
- P2=EE;
- break;
- case 6:
- P2=FF;
- break;
- case 7:
- P2=GG;
- break;
- case 8:
- P2=HH;
- break;
- }
- dula=1;
- dula=0;
- P2=wei0;
- wela=1;
- wela=0;
- wei0=_crol_(wei0,1);
- delayms(2);
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
AD DA.rar
(26.73 KB, 下載次數(shù): 73)
2018-5-6 11:55 上傳
點(diǎn)擊文件名下載附件
|
|