VB温度曲线绘制
上位机vb源码:
xine001_vb.zip
(5.13 MB, 下载次数: 116)
下位机单片机源程序:
xine001_keil.zip
(18.13 KB, 下载次数: 80)
单片机部分源码预览:
- #include <reg52.h>
- #include <intrins.h>
- #include <stdio.h>
- #define port_ad P2
- sbit ad_A=P0^0;
- sbit ad_B=P0^1;
- sbit ad_C=P0^2;
- sbit ad_ale=P0^3;
- sbit ad_st=P0^5;
- sbit ad_eoc=P0^6;
- sbit ad_oe=P0^7;
- unsigned char flag_com,ff,aa;
- float ff1;
- //void delayms(unsigned int x)
- //{
- // unsigned int i,j;
- // for(i=x;i>0;i--)
- // for(j=110;j>0;j--); //11.0592MHz
- //}
- unsigned char get_ad()
- {
- unsigned char val;
- ad_oe=0;
- ad_st=0;
- ad_eoc=1;
- ad_st=1;
- _nop_();
- ad_st=0;
- while(ad_eoc);
- while(!ad_eoc);
- //delayms(1);
- port_ad=0xff; //准双向
- ad_oe=1;
- _nop_();
- val=port_ad;
- _nop_();
- ad_oe=0;
- return val;
- }
- void init_com()
- {
- TMOD=0x20; //T1方式2
- TH1=0xfd;TL1=0xfd; //T1->波特率9600bps
- TR1=1;
- SCON=0x50;//scon:sm0,sm1,sm2,ren,...
- EA=1;ES=1;
- }
- void init_ad()
- {
- ad_C=0;ad_B=0;ad_A=0; //ADC0809通道1
- ad_ale=0;
- _nop_();
- ad_ale=1;
- }
- void main()
- {
- init_com();
- init_ad();
- while(1)
- {
- if(flag_com==1)
- {
- ES=0;
- flag_com=0;
- ff=get_ad();
- ff1=(float)ff*100.0/256.0;
- TI=1;
- printf("%4.1f",ff1);
- while(!TI);
- TI=0;
- ES=1;
- }
- }
- }
- void serial() interrupt 4
- {
- if(RI)
- {
- RI=0;
- aa=SBUF;
- flag_com=1;
- }
- }
复制代码
|