找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3901|回复: 2
打印 上一主题 下一主题
收起左侧

PIC单片机开发板之独立键盘扫描C语言代码

[复制链接]
跳转到指定楼层
楼主
ID:103513 发表于 2016-1-17 02:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是我自己diy的单片机开发板:http://www.51hei.com/bbs/dpj-42590-1.html


  1. /*
  2. 为自已写的独立键盘扫描
  3. 犯的错:unsigned密写成了unsigner一直提示找不到a,b
  4.   PORTD0=1;不行,要写成PORTD=0x01;才可以,如果一定要写,应写为RD0=1;
  5.   PORTD=0x03;不是第三个灯亮,而是0000 0011是两个灯亮
  6.   PORTD=0x8则是0000 1000是第4个灯亮。。。。。出错因原进制转化,刚开始写程序进制转化混掉了。
  7. */
  8. #include <pic.h>
  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. __CONFIG(0x3B31);
  12. const unsigned char table[] = {0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7c,0x7,0x7f,0x6f}; //数码管数组
  13. void delay(uchar x)  //延时函数
  14. {
  15.      uint a,b;
  16.      for(a=x;a>0;a--)
  17.       for(b=110;b>0;b--);
  18. }
  19. void scan();   //扫描键盘函数  声明
  20. void init()        //初始化函数
  21. {
  22.      TRISB=0xff;  

  23.      TRISD=0x00;  

  24.      TRISC=0X00;

  25.      TRISD=0x00;  

  26.      PORTC=0Xff;  

  27.      PORTD=0x00;

  28. }

  29. //-------------------主函数-----------------------------------------------------------
  30. void main()
  31. {
  32.      init ();
  33.      while(1)
  34.      {
  35.          scan();   //扫描键盘
  36.      }
  37. }
  38. //-------------------------------------------------------------------------------------

  39. void scan()  
  40. {
  41. if(RB0==0)
  42.       {
  43.       delay(10);
  44.       while(!RB0)  PORTD=0x01;   

  45.       }
  46. if(RB1==0)
  47.       {
  48.       delay(10);

  49.       while(!RB1) PORTD=0x02;
  50.       }
  51. if(RB2==0)
  52.   {
  53.       delay(10);

  54.       while(!RB2)       PORTD=0x04;
  55.   }
  56. if(RB3==0)
  57.   {
  58.       delay(10);

  59.       while(!RB3)       PORTD=0x08;
  60.   }
  61. }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:103513 发表于 2016-1-17 02:28 | 只看该作者
PORTC=0X00可以。我把你的程序运行一下,结果就闻到一股糊了味道。我一摸,18B20那个烫啊,接着就断点了。
一检测,RC0接18B20的,高电平,估计是烧了。不过没事,我工作还有很多18b20啊。呵呵

    主人:你会烧18B20估计是你极性接反了,1脚是接地,3脚才是电源,2脚还得加一个限流电阻10K啊!!!!
    10月31日 13:26
    主人:程序下载过来运行,永远不会烧的,除非你的硬件有问题程序是不会烧硬件的,既使写错了也没事,大不了运行出错。仅次而矣。
回复

使用道具 举报

板凳
ID:104119 发表于 2016-1-22 16:14 | 只看该作者
楼上很牛叉啊                        
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表