PIC16f873 用Proteus 仿真问题

2020-02-09 09:21发布

麻烦各位大侠帮帮忙 我用PIC16f873 在Proteus仿真的时候,设置好晶振10M 写了一个延时的函数 设置的是3US左右 用示波器看到的是100US!不知道大家有没有遇到这种情况。
相同的程序我用AVR M16去仿真却可以得到3us的延时!
AVR的程序如下
#include <iom16v.h>
#define Uchar unsigned char
#define Uint unsigned int
void Delay(Uchar ms)
     {
      Uchar i;
      while(ms--)
      {
       for(i=0; i<10; i--);
      }
     }
void main(void)
{
        DDRB = 0xFF;                        /*PB口设置为输出*/
               
        while (1)
        {
        Delay(1);
        PORTB = 0xFF;       
        Delay(1);       
        PORTB = 0x00;       
       
        }
}

PIC16F873程序如下



void Delay(Uchar ms)
     {
      Uchar i;
      while(ms--)
      {
       for(i=0; i<10; i--);
      }
     }
void main(void)
{
        TRISB1=0;;                        /*PB1口设置为输出*/
               
        while (1)
        {
        Delay(1);
        RB1 = 1;       
        Delay(1);       
        RB1 = 0;       
       
        }
}

麻烦各位了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
liaojinwei88
1楼-- · 2020-02-09 14:55
PIC在使用proteus仿真的一定要记得配置位的设定
在C语言里面例如__CONFIG( //配置的相关信息);
belief_seven
2楼-- · 2020-02-09 17:23
回复【1楼】liaojinwei88  
-----------------------------------------------------------------------

//系统配置
//__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTDIS);

我在软件设置了  难道还要在PROTEUS 里面设置?
wangqh1983
3楼-- · 2020-02-09 20:27
 精彩回答 2  元偷偷看……
wangqh1983
4楼-- · 2020-02-09 21:29

(原文件名:2011-4-2 13-40-54.png)
belief_seven
5楼-- · 2020-02-10 00:19
回复【3楼】wangqh1983  吴鸣
-----------------------------------------------------------------------
你好谢谢你!你说的4分频 16f系列的都是这样?

我是刚接触PIC的单片机 没仔细去看!

没错按的计算方法 去看了一下是对的 能问一下你的QQ是多少吗  有一些问题想请教一下你
真的谢谢你了
wangqh1983
6楼-- · 2020-02-10 02:25
大多数PIC芯片都是4分频,具体要看datasheet。dspic33系列 2分频。具体问题还是贴到坛里吧;这里杜绝私下沟通!再者我不怎么上QQ。
所有资料不是天上掉下来的,都是坛友们的努力;人人为我,我为人人!

一周热门 更多>