标题:
PIC单片机开发板之独立键盘扫描C语言代码
[打印本页]
作者:
51黑芯片
时间:
2016-1-17 02:27
标题:
PIC单片机开发板之独立键盘扫描C语言代码
这个是我自己diy的单片机开发板:
http://www.51hei.com/bbs/dpj-42590-1.html
/*
为自已写的独立键盘扫描
犯的错:unsigned密写成了unsigner一直提示找不到a,b
PORTD0=1;不行,要写成PORTD=0x01;才可以,如果一定要写,应写为RD0=1;
PORTD=0x03;不是第三个灯亮,而是0000 0011是两个灯亮
PORTD=0x8则是0000 1000是第4个灯亮。。。。。出错因原进制转化,刚开始写程序进制转化混掉了。
*/
#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
const unsigned char table[] = {0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7c,0x7,0x7f,0x6f}; //数码管数组
void delay(uchar x) //延时函数
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void scan(); //扫描键盘函数 声明
void init() //初始化函数
{
TRISB=0xff;
TRISD=0x00;
TRISC=0X00;
TRISD=0x00;
PORTC=0Xff;
PORTD=0x00;
}
//-------------------主函数-----------------------------------------------------------
void main()
{
init ();
while(1)
{
scan(); //扫描键盘
}
}
//-------------------------------------------------------------------------------------
void scan()
{
if(RB0==0)
{
delay(10);
while(!RB0) PORTD=0x01;
}
if(RB1==0)
{
delay(10);
while(!RB1) PORTD=0x02;
}
if(RB2==0)
{
delay(10);
while(!RB2) PORTD=0x04;
}
if(RB3==0)
{
delay(10);
while(!RB3) PORTD=0x08;
}
}
复制代码
作者:
51黑芯片
时间:
2016-1-17 02:28
PORTC=0X00可以。我把你的程序运行一下,结果就闻到一股糊了味道。我一摸,18B20那个烫啊,接着就断点了。
一检测,RC0接18B20的,高电平,估计是烧了。不过没事,我工作还有很多18b20啊。呵呵
主人:你会烧18B20估计是你极性接反了,1脚是接地,3脚才是电源,2脚还得加一个限流电阻10K啊!!!!
10月31日 13:26
主人:程序下载过来运行,永远不会烧的,除非你的硬件有问题程序是不会烧硬件的,既使写错了也没事,大不了运行出错。仅次而矣。
作者:
lsx435372
时间:
2016-1-22 16:14
楼上很牛叉啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1