英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3520|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 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 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-29 07:27 , Processed in 0.056174 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表