|
stc15f單片機(jī)ad和da仿真圖:
0.png (26.51 KB, 下載次數(shù): 134)
下載附件
2016-4-24 20:12 上傳
0.png (65.07 KB, 下載次數(shù): 131)
下載附件
2016-4-24 20:11 上傳
STC15F單片機(jī)AD與DA轉(zhuǎn)換接口設(shè)計(jì)檢測(cè)5V電壓
全部資料(壓縮包)下載:
帶仿真圖 A D與D A轉(zhuǎn)換接口設(shè)計(jì)檢測(cè)5V電壓.rar
(24.18 KB, 下載次數(shù): 62)
2016-4-24 09:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
下面是部分程序預(yù)覽(完整版本請(qǐng)下載本帖附件):
- #include <STC15F2K60S2.H>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code led[]={
- //0 1 2 3 4 5 6 7 8 9
- 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //定義字形碼表,共陽極
- ///////////////////////
- #define SI P00
- #define SCK P01
- #define RCK P02
- #define ADC_POWER 0x80 //ADC電源控制位
- #define ADC_FLAG 0x10 //ADC完成標(biāo)志
- #define ADC_START 0x08 //ADC起始控制位
- #define ADC_SPEEDLL 0x00 //540個(gè)時(shí)鐘
- /////////////////////////////////////////
- unsigned char disp[4]={0,0,0,0};
- ///////////////////////////////////////////
- void delay_ms(uint ms)
- { uint i,j;
- for(;ms>0;ms--)
- {
- for(i=0;i<7;i++)
- for(j=0;j<210;j++);
- }
- }
- /*----------------------------
- 初始化ADC
- ----------------------------*/
- void ADC_initiate()
- { P1ASF=0XFF;
- ADC_RES=0;
- ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
- delay_ms(1);
- }
- unsigned char ADC_STC12C5(unsigned char ch)
- { ADC_RES=0;
- ADC_CONTR|=ch;
- delay_ms(1);
- ADC_CONTR|=ADC_START;
- while(!(ADC_CONTR&ADC_FLAG));
- ADC_CONTR&=(~ADC_START);
- ADC_CONTR&=(~ADC_FLAG);
- return(ADC_RES);
- }
- void data_process(unsigned char value)
- { unsigned int temp;
- temp=value*196;
- disp[0]=temp/10000;
- disp[1]=(temp/1000)%10;
- disp[2]=(temp/100)%10;
- disp[3]=(temp/10)%10;
- }
- void sendData(unsigned char sendDat)
- { unsigned char i;
- for(i=0;i<8;i++)
- { if((sendDat&0x01)==0) SI=0;
- else SI=1; //發(fā)出最低位
- SCK=0;
- SCK=1; //上升沿,存儲(chǔ)一位數(shù)據(jù)。
- sendDat=sendDat>>1;
- }
- }
- void seg_display(unsigned char n)
- { unsigned char c, i;
-
- for(i=0;i<n;i++)
- { c=disp[i]; //取出待顯示字符
- if(i==0)
- sendData(led[c]+0x80); //送出字形碼數(shù)據(jù)
- else
- sendData(led[c]);
- }
- RCK=0;
- RCK=1; //輸出
- }
- void main()
- { unsigned char voltage;
- ADC_initiate(); //初始化
- delay_ms(10);
- while(1)
- {voltage=ADC_STC12C5(7);
- data_process(voltage);
- seg_display(4);
- delay_ms(10);
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|