min 发表于 2012-8-17 18:26:58

求助如何解决电压检测中输出跳变的问题

本帖最后由 min 于 2012-8-17 18:32 编辑



以下内容含脚本,或可能导致页面不正常的代码
这是我设计的电压检测电路、可是在仿真运行的时候、电压还没到5V输出的引脚就发生了好几次跳变、
同样在电压还未到达0时也是这样、我已附上电路图和程序、哪位大侠帮忙看一下
<font face="Verdana">#include<pic.h>__CONFIG(0x3f39);
</font><font face="Verdana">void delay(unsigned int n)
{      unsigned int j;      char k;      for(j=0;j<n;j++)            
    for(k=246;k>0;k--)                NOP();            
    }void main(void){                         unsigned int x;      
char i; char m;                              
                                                         
// 设置一个中间数                                 
x=0;                                                      
   TRISB=0b00000000;            
                     RB1=0;                           
*   RB4=0;                              
RB5=0;                                                                                                                        
       // 设置B口为输出                              
*   TRISA0=1;                                                                                                                                                                                                         //设置A0口为AD通道                                 
ADCON0=0b01000001;                                                                                                            
*                   //                              
   ADCON1=0B00000000;   
*                                                                                                
                        //                  
               for(i=1;i<5;i++)                                                                                                                                             
//                              
NOP();                           
*   //上电检测                              
*   do                              
{         for(m=0;m<100;m++)      
         NOP();                                                
         ADGO=1;                                                                                                                                                                                                                         //                                                         while(ADGO==1);                                                
       ADIF=0;                                                      
   x=0;x=ADRESH;                                                
         x=x<<8;                                                   
   x=x+ADRESL;}      while(x*5/1023<5);                                                         
       RB4=1;                                                            
*   RB1=1;                                                            
   delay(15);                                                               
RB5=1;                                                               
RB4=0;                                                               
RB1=0;                                                      
   do                                                      
{         for(m=0;m<100;m++)                     
    NOP();                                                                     
ADGO=1;                                                                                                                                                                                                                         //                                                                                 while(ADGO==1);                                                                              
   ADIF=0;                                                                              
x=0;x=ADRESH;                                                                              
   x=x<<8;                                                                              
x=x+ADRESL;}                              
while(x*5/1023>0);                                                                                    
*   RB1=1;                                 RB5=0;                     
                                                         delay(10);                                                                                    
*                                 RB1=0;                                                               ;                                                                                                                        }<div><img src="file:///E:/games/QQ/Users/742973418/Image/V[)7)C@Z[6L2LI6(NCJ337G.jpg"/>
</div></font> [此贴子已经被作者于2010-12-20 11:48:04编辑过]
说明:上面显示的是代码内容。您可以先检查过代码没问题,或修改之后再运行.





页: [1]
查看完整版本: 求助如何解决电压检测中输出跳变的问题