单片机
返回首页

C51单片机小程序(一)

2020-06-22 来源:eefocus

好久没碰单片机了,有些生疏了。到现在还依稀记得自己独自坐在电脑屏幕前自学单片机,硬生生的去看了单片机的基础,现在想想还是挺有趣的。附上当初一点初学的单片机小程序,请大家多多指教!


用P1口作为输出口,接8位用作逻辑电平显示的发光二极管。设计程序使发光二极管间隔300ms先奇数亮再偶数亮,循环3次;一个发光二极管亮上下循环3次;两个分别从两边向中间流动3次;再从中间向两边流动3次;8个全部闪烁3次;关闭全部发光二极管,停止。


综合实验程序:


#库定义

#include

#include


sbit  led=P1^0;    #位定义

int i,j,k,num,e,p,m;            

void delay(int k)       #定义延时函数

{

 while(k--);

}

void timer0()   #定时器0的初始化

{

  TMOD=0X01;    #工作模式

    TR0=1;          

    EA=1;           #开启总中断

    ET0=1;

    TH0=0XDc;       #定时时间  需经过换算

    TL0=0X00;

}

void Pled()     

{

          EA=0;

                        //P1=0xfe;

                //delay(50000);

for(p=0;p<3;p++){               

    P1=0xfe;

    for(num=0;num<8;num++)

    {

   delay(50000);

     P1=_crol_(P1,1);    #_crol_(左移函数)

        if(num==6)

        {

            for(e=0;e<6;e++){

                delay(50000);

    P1=_cror_(P1,1);    #_cror_(左移函数)


 }

 }


            }

}

}

void flowmiddle()

{

for(m=0;m<3;m++)

{   

  P1=0x7e;

    delay(50000);

    P1=0XBD;

    delay(50000);

    P1=0XDB;

    delay(50000);

    P1=0XE7;

    delay(50000);

}

for(m=0;m<3;m++)

{   

        P1=0XE7;

    delay(50000);

    P1=0XDB;

    delay(50000);

    P1=0XBD;

    delay(50000);

    P1=0x7e;

    delay(50000);

}

  for(m=0;m<3;m++){

            P1=0xff;

            delay(50000);

            P1=0;

            delay(50000);

  }

}

void main()

{

    timer0();

     while(1){

       if(j==7)

         { j=0;

     Pled();

     flowmiddle();

} if(j==0)

{

P1=0xff;

}

     }

}

void time0() interrupt 1    #定时器0中断响应

{

    TH0=0Xdc;

    TL0=0X00;//10ms

    i++;

    if(i==30)

    {  i=0; 

        j++;

        if(j%2==0){

        P1=0x55;}

        if(j%2!=0)

        {

     P1=0xaa;

}  

  }

}


实验实现说明:使用定时器0设定一个计时300ms的计时器,通过判断变量j在计时器计时到后是奇偶数,分别亮对应的小灯,当变量到7时,清除变量值,并执行通过左右移操作,以及流向中间的操作。


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

  • SOC系统级芯片设计实验

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

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

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

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

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 单稳态控制电路设计与分析

  • 光控电路设计与分析

  • CCFL的工作原理及电子驱动电路解析

  • 开关电源的基本组成及工作原理

  • 基于M66T旋律发​​生器的电路图解析

    相关电子头条文章