標題: PIC單片機開發(fā)板之流水燈代碼 [打印本頁]

作者: 51黑芯片    時間: 2016-1-17 02:22
標題: PIC單片機開發(fā)板之流水燈代碼
這個是我自己diy的單片機開發(fā)板:http://www.torrancerestoration.com/bbs/dpj-42590-1.html
  1. /*
  2. 這是自已寫的流水燈,速度為500ms
  3. */
  4. #include<pic.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. __CONFIG(0x3B31);
  8. void delay(uint x)
  9. {
  10.      uint a,b;        for(a=x;a>0;a--)
  11.       for(b=110;b>0;b--);
  12. }
  13. void main()
  14. {
  15.      uchar i;             //變量定義最好放在第一行,否則會出錯(提示一大堆的錯誤)
  16.      TRISD=0x00;                        

  17.      TRISC=0x00; PORTC=0x00;  //把數(shù)碼管屏蔽掉
  18. //------------左移效果,向高位移動------------------------------
  19.      while(1)
  20.      {
  21.           PORTD=0x01;

  22. /*        RD0=1;    //這是靜態(tài)的,PORTD=0x??是動態(tài)的,如果加了蜂鳴器就得用動態(tài)的,用靜態(tài)的蜂鳴器會一直響。

  23.         同樣,573鎖存器是靜態(tài)的,而38譯碼器是動態(tài)的,無法做到靜態(tài)同時選中8個數(shù)碼管。38譯碼器每次譯一個碼,每次只能選中一個數(shù)碼管,所以無法做到同時選中8個數(shù)碼管*/
  24.           for(i=8;i>0;i--)

  25.                {
  26.                delay(500);
  27.                PORTD=PORTD<<1;   //左移(向高位移動,顯示效果為向右邊高位移動),移動形成流水效果
  28.               }
  29. //------------右移效果,向低位移動------------------------
  30. /*
  31. 心得:通過調(diào)試窗口,實踐得知PORTD=0x80才能形成右移效果。
  32. 犯的錯:之前設(shè)為0x08則為0000 1000。而0x80則為1000 0000
  33. */
  34.           PORTD=0x80;

  35.           for(i=8;i>0;i--)  //循環(huán)8次

  36.                {
  37.                delay(500);
  38.                PORTD=PORTD>>1;   //右移(向低位移動,顯示效果為向左邊高位移動),移動形成流水效果
  39.               }
  40.           }
  41. }
復制代碼





作者: seataozhang    時間: 2020-1-4 06:46
學習了,受益良多,感謝樓主分享,頂一下!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1