【已解决】pic16lf1823单片机引脚初始化问题

2019-03-25 18:50发布

本帖最后由 Tobey 于 2017-3-22 12:10 编辑

       和室友写了个简单的LED翻转程序,触摸感应区时翻转LED状态,由于LED输出电平在单片机初始化后是随机的,想让LED灯一开始是绿灯亮,之后再进行翻转操作,然而只要在进入循环前对LED引脚进行配置,程序运行结果就不对:触摸时LED状态翻转,随即又恢复至原来状态~~~若在进入循环前不对LED引脚进行配置,那么程序运行就正常,但是LED灯的初始状态就成随机的了,据说这段程序从开始就是错误的~~~然而我们还是没找到问题的出处,,

相关原理图:
QQ图片20170321211801.png 123.png

代码:
  1. #include<pic16LF1823.h>
  2. void main()
  3. {        
  4.         static bit led_status;                 //定义一个静态的位变量
  5.         ANSELC=0;
  6.     TRISCbits.TRISC1=0;                        // 配置LED引脚为输出
  7.         PORTCbits.RC1 = 1;                  // 去除这行代码则LED翻转正常~~~
  8.         TRISCbits.TRISC0=1;                        // 配置触摸感应引脚为输入
  9.         led_status = RC1;                   //把LED灯的当前状态赋给变量led_status
  10.                
  11.     while(1)
  12.     {
  13.                 if(RC0==1)                                 // 检测到触摸信号
  14.         {
  15.                         led_status=~led_status;
  16.                         while(RC0)
  17.                         RC1=led_status;                // 翻转LED灯状态

  18.                 }

  19.         }
  20. }
复制代码


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。