找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4575|回復(fù): 2
收起左側(cè)

PIC單片機(jī)開發(fā)板之獨立鍵盤掃描C語言代碼

[復(fù)制鏈接]
ID:103513 發(fā)表于 2016-1-17 02:27 | 顯示全部樓層 |閱讀模式
這個是我自己diy的單片機(jī)開發(fā)板:http://www.torrancerestoration.com/bbs/dpj-42590-1.html


  1. /*
  2. 為自已寫的獨立鍵盤掃描
  3. 犯的錯:unsigned密寫成了unsigner一直提示找不到a,b
  4.   PORTD0=1;不行,要寫成PORTD=0x01;才可以,如果一定要寫,應(yīng)寫為RD0=1;
  5.   PORTD=0x03;不是第三個燈亮,而是0000 0011是兩個燈亮
  6.   PORTD=0x8則是0000 1000是第4個燈亮。。。。。出錯因原進(jìn)制轉(zhuǎn)化,剛開始寫程序進(jìn)制轉(zhuǎn)化混掉了。
  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}; //數(shù)碼管數(shù)組
  13. void delay(uchar x)  //延時函數(shù)
  14. {
  15.      uint a,b;
  16.      for(a=x;a>0;a--)
  17.       for(b=110;b>0;b--);
  18. }
  19. void scan();   //掃描鍵盤函數(shù)  聲明
  20. void init()        //初始化函數(shù)
  21. {
  22.      TRISB=0xff;  

  23.      TRISD=0x00;  

  24.      TRISC=0X00;

  25.      TRISD=0x00;  

  26.      PORTC=0Xff;  

  27.      PORTD=0x00;

  28. }

  29. //-------------------主函數(shù)-----------------------------------------------------------
  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. }
復(fù)制代碼



相關(guān)帖子

回復(fù)

使用道具 舉報

ID:103513 發(fā)表于 2016-1-17 02:28 | 顯示全部樓層
PORTC=0X00可以。我把你的程序運(yùn)行一下,結(jié)果就聞到一股糊了味道。我一摸,18B20那個燙啊,接著就斷點了。
一檢測,RC0接18B20的,高電平,估計是燒了。不過沒事,我工作還有很多18b20啊。呵呵

    主人:你會燒18B20估計是你極性接反了,1腳是接地,3腳才是電源,2腳還得加一個限流電阻10K。。。!
    10月31日 13:26
    主人:程序下載過來運(yùn)行,永遠(yuǎn)不會燒的,除非你的硬件有問題程序是不會燒硬件的,既使寫錯了也沒事,大不了運(yùn)行出錯。僅次而矣。
回復(fù)

使用道具 舉報

ID:104119 發(fā)表于 2016-1-22 16:14 | 顯示全部樓層
樓上很牛叉啊                        
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表