智能仪表实验.docx
- 文档编号:3685365
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:19
- 大小:247.06KB
智能仪表实验.docx
《智能仪表实验.docx》由会员分享,可在线阅读,更多相关《智能仪表实验.docx(19页珍藏版)》请在冰豆网上搜索。
智能仪表实验
智能仪表实验
实验一:
LED显示实验
实验程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitD1=P1^0;
sbitD2=P1^1;
sbitD3=P1^2;
sbitD4=P1^3;
sbitD5=P1^4;
sbitD6=P1^5;
sbitD7=P1^6;
voidDelay1ms()//@12.000MHz
{
unsignedchari,j;
i=2;
j=239;
do
{
while(--j);
}while(--i);
}
voidDelayNms(uintx)//@12.000MHz
{
uinti;
for(i=0;i Delay1ms(); } voidmain() { while (1) { P1=0X88;//D0,D1,D2,D4,D5,D6亮,显示0 DelayNms(1000); P1=0XDB;//D2,D5亮,显示1 DelayNms(1000); P1=0XA2;//D0,D2,D3,D4,D6亮,显示2 DelayNms(1000); P1=0X92;//D0,D2,D3,D5,D6亮,显示3 DelayNms(1000); P1=0XD1;//D1,D2,D3,D5亮,显示4 DelayNms(1000); P1=0X94;//D0,D1,D3,D5,D6亮,显示5 DelayNms(1000); P1=0X85;//D1,D3,D4,D5,D6亮,显示6 DelayNms(1000); P1=0XDA;//D0,D2,D5亮,显示7 DelayNms(1000); P1=0X80;//D0,D1,D2,D3,D4,D5,D6亮,显示8 DelayNms(1000); P1=0X90;//D0,D1,D2,D3,D5,D6亮,显示9 DelayNms(1000); } } 实验二: A/D转换实验: 实验程序: #include #include #include #defineucharunsignedchar #defineuintunsignedint ucharADCDat[3]; //ucharbdataADCbase_at_0x2f; sbitADC=PSW^5; sbitCOM=P3^1; voidTran() { ucharDat; Dat=ADCDat[0]; if((Dat&0x40)==0x40) { P1=0xFF;P2=0xFF;P3|=0XF0; return; } if((Dat&0x20)==0x20) { P1=0x00;P2=0x00;P3|=0X0F; return; } if((Dat&0x80)==0x80)COM=0; elseCOM=1; Dat=_crol_(ADCDat[0],4); Dat=Dat&0xf0;P3&=0X0f;P3|=Dat; P1=ADCDat[1];P2=ADCDat[2]; return; } voidmain() { //ADCDat=0x20; P0=0x0FF;TCON=0x01;IE=0x81; while (1) { //if(ADC==1) //{ //ADC=0;Tran(); //} } } voidint0()interrupt0using1 { ucharDat1; IE=0x00; Dat1=P0; if((Dat1&0xf0)==0) { Dat1=_crol_((Dat1&0x0f),4); ADCDat[0]=(Dat1&0xe0)|(_crol_(Dat1,4))&0x01; doDat1=P0; while((Dat1&0x80)==0); ADCDat[1]=_crol_((Dat1&0x0f),4); doDat1=P0; while((Dat1&0x40)==0); Dat1=Dat1&0x0f; ADCDat[1]=ADCDat[1]|Dat1; doDat1=P0; while((Dat1&0x20)==0); ADCDat[2]=_crol_((Dat1&0x0f),4); doDat1=P0; while((Dat1&0x10)==0); Dat1=Dat1&0x0f; ADCDat[2]=ADCDat[2]|Dat1; ADC=1; }Tran(); IE=0x81; } 实验三: D/A转换实验 实验程序: #include #include #include #defineucharunsignedchar #defineuintunsignedint ucharcodesine_table[]={0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1, 0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff, 0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3, 0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c, 0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e, 0x25,0x1d,0x15,0xf,0x9,0x5,0x2,0x0,0x0, 0x0,0x2,0x5,0x9,0xe,0x15,0x1c,0x25,0x2e, 0x38,0x43,0x4e,0x5a,0x66,0x73}; sbitK1=P2^7; sbitWR1=P2^5; voidDelay(ucharx) { uchari; while(--x)for(i=0;i<1;i++); } voidmain() { uchark; while (1) { if(K1==0) { for(k=0;k<64;k++) { WR1=1; P0=sine_table[k]; WR1=0; Delay (1); } } else { for(k=0;k<255;k=k+4) { WR1=1; P0=sine_table[k]; WR1=0; Delay (1); } } } } 实验四: 步进电机实验 实验程序: #include #defineucharunsignedchar #defineuintunsignedint ucharcodeFFW[]={0X03,0X02,0X06,0X04,0X0C,0X08,0X09,0X01,}; ucharcodeREV[]={0X01,0X09,0X08,0X0C,0X04,0X06,0X02,0X03,}; sbitK1=P3^0; sbitK2=P3^1; sbitK3=P3^2; voiddelay_ms(uintx) { uchart; while(x--) for(t=0;t<120;t++); } voidSTEP_MOTOR_FFW(ucharn) { uchari,j; for(i=0;i<1*n;i++) { for(j=0;j<8;j++) { if(K3==0)break; P1=FFW[j]; delay_ms(200); } } } voidSTEP_MOTOR_REV(ucharn) { uchari,j; for(i=0;i<1*n;i++) { for(j=0;j<8;j++) { if(K3==0)break; P1=REV[j]; delay_ms(200); } } } voidmain() { ucharn=3; while (1) { if(K1==0) { P0=0XFE; STEP_MOTOR_FFW(n); //if(K3==0)break; } elseif(K2==0) { P0=0XFD; STEP_MOTOR_REV(n); //if(K3==0)break; } else { P0=0XFb; //P1=0X03; } } } 实验五、六: 热电阻测温装置 实验程序: #include #include #include #defineuintunsignedint #defineucharunsignedchar sbitCS=P3^3;//使能。 sbitCLK=P3^0;//时钟 sbitDO=P3^1;//数据输出 sbitDI=P3^1;//数据输入 charCC[]="11001001"; uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; ucharcodetab2[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchartemp; uintvvv,i; uinttem; //通道的选择: 0x02就是单通道0;0x03就是单通道1; //0x00就是双通道ch0="+";ch0="-" //0x01就是双通道ch0="-";ch0="+" voiddelay(inttt)//延时 { while(tt--) {for(i=0;i<120;i++);} } voidstartADC() { CS=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); CS=0; _nop_(); _nop_(); DI=1; _nop_(); _nop_(); CLK=1; _nop_(); _nop_(); DI=0; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); } voidchoiceADC(uintCH)//CH为0选择通道ch0,为1,选择ch1进行AD转换 { startADC(); if(CH==0) { DI=1; _nop_(); CLK=1;//上升沿DI=1 _nop_(); CLK=0;//1个下降沿DI=1 _nop_(); DI=0; _nop_(); CLK=1; _nop_(); CLK=0;//第3个上升沿DI=0 _nop_(); } else { CLK=0; _nop_(); DI=1; _nop_(); CLK=1;//上升沿DI=1 _nop_(); CLK=0;//1个下降沿DI=1 _nop_(); DI=1; _nop_(); CLK=1;//第3个上升沿DI=0 _nop_(); } /********通道选择结束开始读取转换后的二进制数****/ CLK=1; _nop_(); CLK=0;//下降沿读数,一下进行判断和处理,共8次 for(i=0;i<8;i++) { DI=1; if(DO) { temp|=0x01; } else { temp&=0xfe; } CLK=0; _nop_(); CLK=1; temp=temp<<1; } vvv=temp; } voiddisplay(uintdat) { P2=0xfb; //P0=tab2[dat/100]; P0=(dat/100); delay (1); //P0=0xff; P2=0xfd; //P0=tab2[dat%100/10]; P0=(dat%100/10); delay (1); //P0=0xff; P2=0xfe; //P0=tab2[dat%10]; P0=(dat%10); delay (1); //P0=0xff; } voidmain() { P2=0x00; P0=0xff; while (1) { choiceADC(0); delay (1); tem=29013-100*sqrt(336701-(longint)(785012*vvv/10000)+578)/2; display(tem); //display(vvv); } } 实验七: 串口通信实验 实验程序: #include #include #defineucharunsignedchar #defineuintunsignedint ucharrb[101]; ucharbi=0; ucharcodedis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; ucharcodeLEDTABVCC[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E}; voiddelay(ucharm) { uchari; while(--m) for(i=0;i<120;i++); } voidmain() { uchari,a; P0=0Xff; rb[0]=0x0a; SCON=0X50; TMOD=0X20; TH1=0XFD; TL1=0XFD; PCON=0X00; IE=0X91; IT0=1; IP=0X01; TR1=1; while (1) {P2=0X01; for(i=0;i<6;i++) {if(i==0)P2=0X01; if(rb[i]==0x0a) break; P0=LEDTABVCC[rb[i]]; delay(10); //i++; P2=_crol_(P2,1); //P2=a; } //P0=0X00; bi=0; } } voiduart()interrupt4 { ucharc; if(RI==0) return; RI=0; c=SBUF; if(c>='0'&&c<='9') { rb[bi]=c-'0'; rb[bi+1]=0x0a; bi=(bi+1)%100; } } voidex0()interrupt0 { uchar*s="单片机与串口调试助手之间的通信! \r\n"; uchari=0; while(s[i]! ='\0') { SBUF=s[i]; while(TI==0); TI=0; i++; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能仪表 实验