|
程序是對的,但是因為我復制過來之后它的中文形式就變了
仿真圖的元器件不能改,最近的課程設計要交了,之前我仿真用的ADC008芯片仿真是對的,但是實驗室沒有器材,所以我改為ADC0809,目前仿真數碼管用的是4位共陽極的數碼。仿真圖的器材一定不要換。謝謝各位大佬了。
#include"reg51.h"
#include"intrins.h"
#define uint unsigned int;
#define uchar unsigned char;
sbit OE= P2^1;//¶¨òåADC0809êä3öÔêDíêä3öλ
sbit ST= P2^2;//¶¨òåADC0809×a»»ÔêDí¿ØÖÆÎ»
sbit EOC=P2^0;//¶¨òåμçÑ1êÇ·ñ×a»»íê3éμıê־λ
sbit CLOCK=P2^4;//ê±ÖóDÅoÅêäèëI/O¿ú
sbit C1=P2^6;
sbit C2=P2^7;//P2.6,P2.7¿úÎaá½Î»êyÂë1üμÄÆ¬Ñ¡DÅoÅ¿ØÖÆÎ»
sbit Dp=P2^5;//P2.5ÎaD¡êyμã¿ØÖÆÎ»
table[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//12Ñô¼«êyÂë1üÏÔ꾸÷¸öêy×ÖËù¶Ôó|μÄÖμ
unsigned int data dis[3]={0x00,0x00, 0x00};//×a»»oóμÄμçÑ1Öμ′¢′æêy×é
unsigned char getData;//¶¨òåÖD¼ä±äá¿
void delay(int t)
{
int i,j;
for(i=0;i<t;i++);
for(j=0;j<50;j++);
}
//Ñóê±oˉêy
void main()//Ö÷oˉêy
{
while(1)//½øèëÎTÏTÑ-»·
{
TMOD=0x02;//¶¨ê±0Îa·½ê½2
TH0=255;
TL0=255;//¶¨ê±Æ÷0éèÖÃ3õÖμ
EA=1;//¿a1ØÖD¶Ï
ET0=1;//ÔêDí¶¨ê±Æ÷0ÖD¶Ï
TR0=1;//′ò¿a¶¨ê±Æ÷T0
OE=0;//1رÕADCO809êä3öÔêDíλ
ST=0;//
ST=1;
_nop_();
ST=0;
delay(10);//ADC0809×a»»Æô¶ˉ£¬2¢Ñóê±μè′yADC0809×a»»íê3é
if(EOC==1)//ÅD¶ÏêÇ·ñ×a»»íê3飬èçÎa1£¬Ôò×a»»íê3é
{
OE=1;//′ò¿aêä3öÔêDíλ
getData=P0;//°ÑADC0809μÄ8λêy×Öá¿êä3ö¸3Öμ¸ø±äá¿getData
OE=0;//1رÕêä3öÔêDíλ
dis[1]= getData/51;
dis[2]= getData%51;
dis[2]=dis[2]*10;
dis[0]=dis[2]/51;//½«μçÑ1×a»»ÎaÕûêyÖ죬2¢′æèëêy×édis[].
C1=0;//1رÕμú¶tλêyÂë1ü
C2=1;//′ò¿aμúò»Î»êyÂë1ü
Dp=0;//′ò¿aD¡êyμã
P1=table[dis[1]];//ÏÔê¾Õûêy2¿·Ö
delay(10);//Ñóê±
C2=0;//1رÕμúò»Î»êyÂë1ü
C1=1;//′ò¿aμú¶tλêyÂë1ü
Dp=1;//1رÕD¡êyμã
P1=table[dis[0]];//ÏÔê¾D¡êy2¿·Ö
}
}
}
void to(void)interrupt 1 using 0//¶¨ê±Æ÷0ÖD¶Ïoˉêy£¬¸øADC0809ìá1©500KHZμÄê±ÖóDÅoÅ
{
CLOCK=~CLOCK;//ê±Öó¶Ëè¡·′
}
|
-
-
-
-
測量類電壓表.zip
2018-6-23 12:41 上傳
點擊文件名下載附件
83.31 KB, 下載次數: 2
|