历史上的今天
今天是:2025年08月04日(星期一)
2018年08月04日 | PIC单片机之按键错误汇总
2018-08-04 来源:eefocus
1、主程序入口MIAN如果定义成VOID类型则会出现语句错误提示,程序无法编译,请使用如下语句:
int main(int argc, char const *argv[])
{
/* code */
return 0;
}
2、按键在定义时,对端口的定义尽量使用高电平置位,防止不必要的麻烦,(低电平情况下出现程序显示数字1,按键无响应)程序如下:
#include
#define uchar unsigned char
const uchar d_code[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XFF};
void delay(uchar n);
void init(void);
uchar key(void);
void display(uchar number);
int main(void){
init();
while(1){
display(key());
}
}
void delay(uchar n){
uchar i,j;
for(i=n;i>0;i--)
for(j=123;j>0;j--);
}
void init(void){
ANSELC=0;
ANSELD=0;
TRISC=0;
TRISD=0x78;//01111000
PORTC=0;
PORTD=1;
}
uchar key(void){
uchar key_number=0;
PORTDbits.RD7=1;
delay(5);
if(PORTDbits.RD3==1){
delay(1);
if(PORTDbits.RD3==1){
key_number=1;
}
}
else if(PORTDbits.RD4==1){
delay(1);
if(PORTDbits.RD4==1){
key_number=2;
}
}
else if(PORTDbits.RD5==1){
delay(1);
if(PORTDbits.RD5==1){
key_number=3;
}
}
else if(PORTDbits.RD6==1){
delay(1);
if(PORTDbits.RD6==1){
key_number=4;
}
}
else{
key_number=0;
}
return key_number;
}
void display(uchar number){
PORTDbits.RD0=1;
PORTC=d_code[number];
delay(5);
}
上一篇:PIC单片机之电容触摸按键
下一篇:PIC RB0外部中断程序
史海拾趣
|
ISE® Design Suite 软件最新手册 3月6日更新 [td]ISE Design Suite 11: Installation, Licensing, and Release Notes (PDF) [/td][td][/td] [ 本帖最后由 心仪 于 2010-3-31 14:15 编辑 ]… 查看全部问答> |
|
如何写mfc程序来和单片机通信,比如通过MFC程序来控制led灯什么的 如何写mfc程序来和单片机通信,比如通过MFC程序来控制led灯什么的。如果有源程序的话发一个。。。谢谢了。。… 查看全部问答> |




