欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
PIC16單片機按鍵控制源程序錯誤
[打印本頁]
作者:
RINIDABA
時間:
2020-6-4 15:36
標題:
PIC16單片機按鍵控制源程序錯誤
PIC16系列單片機,RA1-3引腳接按鈕,三個按鈕控制RC1-3引腳的高低電平變化.RA1按鈕按下,RC1為高電平,RC2為高電平,RC3為低電平。
RA2按鈕按下,RC1為低電平,RC2為高電平,RC3為低電平。
RA3按鈕按下,RC1為高電平,RC2為高電平,RC3為高電平
下面是自己寫的,但是實現不了,不知道哪里錯了?求教
#include <pic.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint x) //延時函數
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main() //主函數
{
TRISA=1;PORTA=0xff;
TRISC=0;PORTC=0x00;
while(1)
{
if((PORTA & 0x02) != 0x02) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x02) != 0x02) //去抖完得再判斷一次
{
RC1=1;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x04) != 0x04) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x04) != 0x04) //去抖完得再判斷一次
{
RC1=0;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x08) != 0x08) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x08) != 0x08) //去抖完得再判斷一次
{
RC1=1;
RC2=1;
RC3=1;
}
}
}
}
1.png
(31.27 KB, 下載次數: 34)
下載附件
2020-6-4 15:36 上傳
作者:
RINIDABA
時間:
2020-6-4 17:44
有沒有大佬教我一下,謝謝了,現在我不知道怎么改我的程序了
作者:
RINIDABA
時間:
2020-6-4 17:45
有沒有大佬教我一下,小弟萬分感謝
作者:
zjjhtony
時間:
2020-6-6 09:19
對于PIC16F877A,需要考慮端口復用的問題。
你的RA1~RA3要把ADC功能關閉了。
具體請看ADCON1這個寄存器。
下面代碼增加了ADCON1=0X07,表示所有pa口都為數字口,不是ADC口。
#include <pic.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint x) //延時函數
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void main() //主函數
{
TRISA=1;PORTA=0xff;
ADCON1=0X07;
TRISC=0;PORTC=0x00;
while(1)
{
if((PORTA & 0x02) != 0x02) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x02) != 0x02) //去抖完得再判斷一次
{
RC1=1;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x04) != 0x04) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x04) != 0x04) //去抖完得再判斷一次
{
RC1=0;
RC2=1;
RC3=0;
}
}
if((PORTA & 0x08) != 0x08) //判斷按鍵是否有被按下,有則為0
{
delay(10); //去抖
if((PORTA & 0x08) != 0x08) //去抖完得再判斷一次
{
RC1=1;
RC2=1;
RC3=1;
}
}
}
}
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1