实现0.5秒间隔的单向流水灯

适合51单片机的代码,和仿真图,诚信合作,骗子别来,对于我来说,设计这个难度太大,同大家问问

具体仿真见我的博客。

img


// 12MHz晶振
#include "reg52.h"
#include "intrins.h"

#define time (65536-50000) // 单次定时50ms
unsigned char cn;
unsigned char temp;

void main(void)
{
      cn=10; //10*50ms=0.5s
      temp=0x7f;

    TMOD = 0x10;                    //set timer1 as mode1 (16-bit)
    TL1 = time;                     //initial timer1 low byte
    TH1 = time >> 8;                //initial timer1 high byte
    TR1 = 1;                        //timer1 start running
    ET1 = 1;                        //enable timer1 interrupt
      IT0 = 1;                        //set INT0 int type (1:Falling 0:Low level)
    EA = 1;                         //open global interrupt switch
    
      while(1);

}
。。。。
具体仿真见我的博客。






建议自学,初学主要是没概念,所以觉得难,等你入门了,就觉得这才是基础。

希望对你有所帮助,望采纳!

img

  • 上图为硬件电路及运行现象。
// 此程序为部分程序,具体请前往我的主页。
// 欢迎关注微信公众号【main工作室】,了解更多嵌入式内容。
#include <reg52.h>
#include <intrins.h>

// 定时器 0 中断初始化函数
void Timer0Init(void)            //50毫秒@11.0592MHz
{
    TMOD =  0X01;                //设置定时器0为工作方式1
    TH0  = (65536-50000)/256;    //设置定时初始值
    TL0  = (65536-50000)%256;    //设置定时初始值
    EA   = 1;                    //开总中断
    ET0  = 1;                    //开定时器0中断
    TR0  = 1;                    //启动定时器0
}

// 主函数
void main(void)
{
    
    Timer0Init();// 定时器 0 初始化
    
    while(1);
}
// 前往我的主页,获取全部工程文件。