PIC程序求救

2020-02-08 12:17发布

#include<pic.h>

//__CONFIG(0X0004);
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & BOREN & PROTECT & CPD);  

void delay_us( unsigned char n )  
{  
while( n--  )  
{  
asm("nop");  
asm("nop");  
asm("nop");  
asm("nop");  
}  
}

void main()
{
   TRISIO=0b11111111; //初始化IO端口  
   delay_us(500);
   TRISIO=0b00000000; //初始化IO端口
//   CMCON=7; //不使用比较仪,即IO口为普通数字端口

        while(1)
   {
   GPIO0=1;
   GPIO1=1;
   GPIO2=1;
   GPIO4=1;

   }
}
这个代码,出来的各个脚电平居然是方波,难道PIC12F675不可以位操作么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
millwood0
1楼-- · 2020-02-08 15:50
"难道PIC12F675不可以位操作么?"

you should really read the @#%@#$ datasheet, particularly the IO port section to see how one should initialize the io port.
cjc4589
2楼-- · 2020-02-08 18:06
谢谢,ANSEL=0X00;
      CMCON=0X07;
gaolf_2000
3楼-- · 2020-02-08 20:44
这样试一下吧
while(1)
{
   GPIO0=1;asm("nop");
   GPIO1=1;asm("nop");
   GPIO2=1;asm("nop");
   GPIO4=1;asm("nop");
   delay_us(100);
   GPIO0=0;asm("nop");
   GPIO1=0;asm("nop");
   GPIO2=0;asm("nop");
   GPIO4=0;asm("nop");
   delay_us(500);
}
看看还是不是方波
leofoolish
4楼-- · 2020-02-09 01:34
 精彩回答 2  元偷偷看……
bbsniua
5楼-- · 2020-02-09 07:26
#include<pic.h>

__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & BORDIS & PROTECT & CPD);   

void main()
{
   CMCON =0b00000111; //不使用比较器,即IO口为普通数字端口
   ANSEL=0;          //AD端口初始化,不进行这一条的话全部带模拟输入的都不能正常输出
   TRISIO=0b00001000; //初始化IO端口,--------------------GP3不能作为输出,做为输入时记得接上拉,否则会浪费电  
   GPIO=0;//IO输出初始化

while(1)
   {
   GPIO0=1;
   GPIO1=1;
   GPIO2=1;
   GPIO4=1;
//GPIO=0x17;//实际可以这样
   }
}

一周热门 更多>