麻烦各位大侠帮帮忙 我用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;
}
}
麻烦各位了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
//系统配置
//__CONFIG(HS&PWRTEN&BOREN&PROTECT&WDTDIS);
我在软件设置了 难道还要在PROTEUS 里面设置?
一周热门 更多>