[讨论] AD+串口程序

护花使者   2007-7-27 08:56 楼主
#i nclude<pic.h> __CONFIG(0x1832); union adres {int y1; unsigned char adre[2]; }adresult; int AD_Value; bit sci_Sign,js=0; int Order[3]; int buf[4]; void adinitial(void); void sciint(void); void ad_Collect(void); void sci(int); //*SCI部件接收初始化子程序*/ void sciint() { TRISC7= 1 ;// |= 0xc0;//设置为输入 TRISC6= 1 ; BRGH = 1 ; //高波特率选择位 SPBRG = 25 ; //((20000000/9600)/16)-1 SYNC = 0 ;//异步 SPEN = 1 ;//串口使能 RCIE = 1 ;// USART数据接收中断使能位 TXIE = 0 ;//USART数据发送中断使能位 TXEN = 1 ;//发送 CREN = 1 ;//连续接收使能位 PEIE= 1 ; //开中断 } //A/D 转换初始化子程序 void adinitial() { ADCON0=0X41;// ADCON1=0X8E; TRISA0=1; } void ad_Collect() { float temp; ADGO=1; while(!ADIF); ADIF=0; adresult.adre[0]=ADRESL;//读取AD转换的结果到联合体数组. adresult.adre[1]=ADRESH; // AD_value="/ADRESH;// temp=(float)adresult.y1;//*5)/1023)*1000; temp=((temp*5)/1023)*100; AD_Value=(int)(temp*5);//adresult.y1;//(int)temp; } void" sci(int tran) { while(!TXIF); TXREG=tran; //*发出一个字符*/ TXIF=0; } void interrupt SCI_Admit(void) { // sci_Sign=1; int temp; if(RCIF) //判断是否是接收中断 { if(js) { if(Order[0]=='$') { temp++; Order[temp]=RCREG; if(temp==2) { js=0; sci_Sign=1; temp=0; } } else js=0; // RCIF=0; } else { Order[0]=RCREG; js=1; temp=0; } RCIF=0; } } /* if(js) { if(Order[1]=='R') { Order[2]=RCREG; sci_Sign=1; js=0; } else { Order[1]=RCREG; } temp++; Order[temp]=RCREG; if(temp==2) js=0; }*/ void int_to_asc(int dat) { int temp; buf[0]=(dat/1000)+'0'; temp=dat%100; buf[1]=((dat%1000)/100)+'0'; buf[2]=((dat%1000)%100)/10+'0'; buf[3]=((dat%1000)%100)%10+'0'; } void main() { int temp='V'; adinitial(); sciint(); //*SCI部件初始化*/ sci_Sign=0; ei(); TXEN = 1 ;//发送 CREN = 1 ;//连续接收使能位 while(1) { // ad_Collect(); if(sci_Sign) { if(Order[0]=='$') { if(Order[1]=='R'&&Order[2]=='V') { ad_Collect(); //AD_value="/123; //sci(AD_Value); int_to_asc(AD_Value); sci(temp); if(buf[0]!='0') sci(buf[0]); sci(buf[1]); sci('."'); sci(buf[2]); sci(buf[3]); Order[0]=0; Order[1]=0; Order[2]==0; } // sci(temp); } sci_Sign=0; } } }

回复评论 (4)

回复:AD+串口程序

作人随心、做事随缘。世间凡事岂能尽如人意。不求无怨无悔、但求无愧于心。
点赞  2007-7-27 13:34

回复:AD+串口程序

我也来学学C的~~~~
点赞  2007-7-27 13:35

回复:AD+串口程序

很好
南京璞晓电子   www.cpx0.com需要 msn:njlianjian@hotmail.com
点赞  2007-7-27 13:36
很好,可是看起来有些乱啊
点赞  2009-6-14 09:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复