单片机
返回首页

PIC单片机开发板之流水灯代码

2019-11-19 来源:51hei

/*

这是自已写的流水灯,速度为500ms

*/

#include

#define uchar unsigned char

#define uint unsigned int

__CONFIG(0x3B31);

void delay(uint x)

{

     uint a,b;        for(a=x;a>0;a--)

      for(b=110;b>0;b--);

}

void main()

{

     uchar i;             //变量定义最好放在第一行,否则会出错(提示一大堆的错误)

     TRISD=0x00;                         


     TRISC=0x00; PORTC=0x00;  //把数码管屏蔽掉

//------------左移效果,向高位移动------------------------------

     while(1)

     {

          PORTD=0x01;


/*        RD0=1;    //这是静态的,PORTD=0x??是动态的,如果加了蜂鸣器就得用动态的,用静态的蜂鸣器会一直响。


        同样,573锁存器是静态的,而38译码器是动态的,无法做到静态同时选中8个数码管。38译码器每次译一个码,每次只能选中一个数码管,所以无法做到同时选中8个数码管*/

          for(i=8;i>0;i--)


               {

               delay(500);

               PORTD=PORTD<<1;   //左移(向高位移动,显示效果为向右边高位移动),移动形成流水效果

              }

//------------右移效果,向低位移动------------------------

/*

心得:通过调试窗口,实践得知PORTD=0x80才能形成右移效果。

犯的错:之前设为0x08则为0000 1000。而0x80则为1000 0000

*/

          PORTD=0x80;


          for(i=8;i>0;i--)  //循环8次


               {

               delay(500);

               PORTD=PORTD>>1;   //右移(向低位移动,显示效果为向左边高位移动),移动形成流水效果

              }

          }

}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 用数字电路CD4069制作的万能遥控轻触开关

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章