|
keilc實(shí)驗(yàn)作業(yè)——基于c51的ad轉(zhuǎn)換實(shí)驗(yàn)
標(biāo)準(zhǔn)答案分享
僅供參考下載
0.png (26.94 KB, 下載次數(shù): 57)
下載附件
2017-1-6 00:39 上傳
單片機(jī)源程序:
- //ADC0809 模數(shù)轉(zhuǎn)換顯示
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- sbit OE =P1^0;
- sbit EOC =P1^1;
- sbit ST =P1^2;
- sbit CLK=P1^3;
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--)
- for(i=0;i<120;i++);
- }
- void Display_Resulat(uchar m)
- {
- uint d=m;
- /**********根據(jù)當(dāng)前輸入量m大小 ,在【0-255】所占比例,轉(zhuǎn)換為當(dāng)前數(shù)字量 **********/
- float k=d*1.00;
- k=(k/256*1000);//1000代表當(dāng)前所設(shè)定電阻的值。256代表整體【0-255】的長(zhǎng)度
- d=k;
- /*****P0口分別顯示個(gè)、十、百、千等位的大小(段碼),P2顯示的位置(位碼)***********/
- P2=0xf7;
- P0=LEDData[d%10];
- DelayMS(10);
- P2=0xfb;
- P0=LEDData[d/10%10];
- DelayMS(10);
- P2=0xfd;
- P0=LEDData[d/100%10];
- DelayMS(10);
- P2=0xfe;
- P0=LEDData[d/1000];
- DelayMS(10);
- }
- void main()
- {
- TMOD=0x02;
- TH0=0x14;
- TL0=0x00;
- IE=0x82;
- TR0=1;
- while(1)
- {
- ST=0;ST=1;ST=0;
- while(EOC==0);
- OE=1;
- Display_Resulat(P3);
- OE=0;
- }
- }
- void Timer0_INT()interrupt 1
- {
- CLK=!CLK;
- }
復(fù)制代碼
0.png (70.51 KB, 下載次數(shù): 57)
下載附件
2017-1-6 00:39 上傳
所有資料下載:
實(shí)驗(yàn)三-ADC0809模數(shù)轉(zhuǎn)換.zip
(62.49 KB, 下載次數(shù): 48)
2017-1-3 18:32 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|