微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 程序无法仿真

程序无法仿真

时间:10-02 整理:3721RD 点击:
#include <stdio.h>
#include <stdlib.h>
#include <pic.h>
#include<math.h>
char Ua;char T;char T1;char T2;char COS;char N=0;
void CSH(void)
{
    TRISA=0x01;
    TRISC=0x06;
    PORTB=0;
}
void delayms(int n)
{
  int i;
  for(i=n;i>0;i--);
}
void get_ad(void)
{
    int v;
    ADCON0=0x41;
    ADCON1=0x8e;
    ADIF=0;
    ADIE=1;
    GIE=1;
    delayms(100);
    GO=1;
    while(ADIF==1);
    v=ADRESH;
    v=v<<8|ADRESL;
    Ua=v/1023.0*5.0;
}
void ccp_u(void)
{
    CCP1CON=0x05;
    TMR1H=TMR1L=0;
    T1CON=0x31;
    PIR1=0;
    CCP1IE=1;
    INTCON=0xc0;
    if(CCP1IF==1)
    {
        T1=(CCPR1H<<8)|CCPR1L;
        CCP1IE=0;
        CCP1IF=0;
    }
}
void ccp_t(void)
{
    CCP1CON=0x07;
    TMR1H=TMR1L=0;
    T1CON=0x31;
    PIR1=0;
    CCP1IE=1;
    INTCON=0xc0;
    if(CCP1IF==1)
    {
        T=(CCPR1H<<8)|CCPR1L;
        T=T/16;
        CCP1IE=0;
        CCP1IF=0;
    }
}
void ccp_i(void)
{
    CCP2CON=0x05;
    TMR1H=TMR1L=0;
    T1CON=0x31;
    PIR2=0;
    CCP2IE=1;
    INTCON=0xc0;
    if(CCP2IF==1)
    {
        T2=(CCPR2H<<8)|CCPR2L;
        CCP2IE=0;
        CCP2IF=0;
    }
}
void GLYS(void)
{
   char a;
    a=fabs(T1-T2);
    for(a=a;a>=T;a=a-T)
    {
        COS=a/T;
    }
}
void main(void)
{
  void CSH();
  while(1)
  {
     get_ad();
     ccp_u();
     ccp_t();
     ccp_i();
     GLYS();
     if(Ua<=0.4)
     {
         if(COS<=0.9)
         {
             N=2*N+1;
         }
         PORTB=N;
     }
仿真的时候没有达到想要的效果,如果B端口有输出至少应该有灯亮。不知道是接线有问题还是程序出错,用的是pic16f877


用的啥仿真器?

proteus仿真。。

谢谢,小编提供的场地。
MICROCHIP 原装正品,另有可替换单片机(无需修改PCB资料,程序可共用PIC的) 有用到的兄弟多多支持!  电话13430885511(微信同号),QQ2355910801

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top