51单片机用定时器0实现流水灯

发布者:温雅如风最新更新时间:2018-05-13 来源: eefocus关键字:51单片机  定时器0  流水灯 手机看文章 扫描二维码
随时随地手机看文章

51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值。原先写的都是用查表来移位的,个人感觉不怎么好,麻烦。直接用位运算的比较好。 n初始值为0,然后n每次循环都加1,P1口赋值语句为: P1=~(0x01<< n) ; 此处注意和P1=~(0xfe<< n) ; 的区别。

/*********调用头文件*****************/

    #include

    #include


    /***********宏定义*******************/

    #define uint unsigned int   

    #define uchar unsigned char 

    #define long_time0 10    //定时器0定时时间,每次50ms


    /************定义全局变量************/

    uint n=0;                //循环移位变量


    /************子函数声明**************/

    void init_time0(void);   //定时器0初始化子函数


    /*************主函数*****************/

    void main(void)

    {

        init_time0();


    }


    /*********定时器0初始化函数**********/

    void init_time0(void)

    {

            EA=1;                   //开总中断

            ET0=1;                  //开定时器0中断

            TMOD=0X01;              //选择方式1

            TH0=(65536-50000)/256;  //每次定时50秒

            TL0=(65526-50000)%256;

            TR0=1;                  //开启定时器

            while(1);               //等待定时器0中断

    }

    /************定时器中断函数**********/

    void time0(void) interrupt 1 using 0

    {

        static uint i=0;

        i++;

        if(long_time0==i)

        {

            P1=~(0x01<

            if(++n==8)n=0;

            i=0;                    //定时时间到清零

        }

        TH0=(65536-50000)/256;      //重新装入初值

        TL0=(65526-50000)%256;

    }




关键字:51单片机  定时器0  流水灯 引用地址:51单片机用定时器0实现流水灯

上一篇:用51单片机编写一个产生38K方波的程序
下一篇:sprintf在51单片机中转换字符出错问题解决

推荐阅读最新更新时间:2024-03-16 16:02

51单片机开发板程序----LED流水点亮(C语言)
//实例6:使用P0口流水点亮8位LED #include reg51.h //包含单片机寄存器的头文件 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) { unsigned char i,j; for(i=0;i 250;i++) for(j=0;j 250;j++) ; } /******************************************************* 函数功能:主函数 *****
[单片机]
51单片机数码管显示的数字钟
这是一个基于51单片机的数字钟程序用数码管来显示数据. 原理图源代码及仿真文件下载地址: http://www.51hei.com/bbs/dpj-20407-1.html 下面是源码: #include AT89X51.H unsigned char code dispcode ={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; unsigned char dispbitcode ={0
[单片机]
<font color='red'>51单片机</font>数码管显示的数字钟
基于AT89C51单片机的LCD160音乐盒设计
一.系统概述 系统使用的模块有AT89C51单片机+LCD1602+按键+蜂鸣器。 系统内使用AT89C51单片机作为主控,使用LCD1602显示屏显示音乐信息,通过按键就能控制音乐盒的歌曲切换以及歌曲的开始和暂停,系统在运行后需要点击开机键才能开始工作。当点击播放键后以蜂鸣器为主体的播放装置就会开始播放歌曲。 二.仿真概述 1.通过LCD1602显示屏显示歌曲信息,其中包括歌曲序号和歌曲时间。 2.通过左侧的按键控制歌曲,其中包括上一首、下一首、播放暂停、开关机。 3.通过播放装置播放相应的歌曲。 三.程序设计 使用Keil 51进行程序设计,打开Proteus时程序是默认烧录的状态,如果没有烧录点击AT89
[单片机]
基于AT89C<font color='red'>51单片机</font>的LCD160音乐盒设计
51单片机C语言学习 3
第三课 生成HEX文件和最小化系统   在开始C语言的主要内容时,我们先来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。我们先来打开第一课做的第一项目,打开它的所在目录,找到test.Uv2的文件就可以打开先前的项目了。然后右击图3-1中的1项目文件夹,弹出项目功能菜单,选Options for Target'Target1',弹出项目选项设置
[单片机]
一文读懂51单片机的RAM分区
51单片机RAM分为四个区域 1.工作寄存器区(00H~1FH) 2.位寻址区(20H~2FH) 3.用户RAM区(30H~7FH) 4.特殊功能寄存器(80H~FFH) 其中1.2.3处于RAM低128单元,4处于高128单元 也就是声明变量时data与idata位置 而栈就是在用户RAM区内人为开辟的一段空间,用于存放数据,而单片机也相应的为这段空间提供了硬件也就是SP寄存器 SP是一个8位寄存器用于存放栈顶位置
[单片机]
一文读懂<font color='red'>51单片机</font>的RAM分区
MCS-51单片机与无线调制器的应用
  GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法
[单片机]
MCS-<font color='red'>51单片机</font>与无线调制器的应用
嵌入式学习笔记8——51单片机之矩阵键盘
1. 独立键盘由单片机的一个I/O口驱动,如果开发的系统要用到很多按键时,为节省I/O口,我们一般使用4*4键盘,这样驱动16个键盘只需用一个8位I/O口就可以了。 2. 按键检测(检测哪个按键被按下): 针对上图电路,先让P3输出1111 0000,接着开始读P3,根据线与的概念,检测到P34~P37某个为0(假设P35为0),则可以确定按键所在的列;然后反过来,将P3输出1101 1111(高位保持上次检测的值),同样根据线与的概念,检测到P30~P33某个为0(假设P30为0,则P3为1101 1110),则可以确定按键所在的行,这样就确定了按下的按键的位置。整个检测时间肯定会小于按键按下的时间(约20ms)
[单片机]
嵌入式学习笔记8——<font color='red'>51单片机</font>之矩阵键盘
一文详解80C51单片机的中断系统
中断系统是计算机或者单片机的主要功能部件。 有了中断系统,便可以使微处理器具备对外部的异步事件进行处理的能力。 当微处理器的CPU正在执行程序的过程中,如果外部硬件或者内部组件有紧急的请求(如通信,断点,发生重大故障等),中断系统就可以将当前的程序暂停,优先处理这些中断请求。 这种处理方式,对整个系统的稳定性,健壮性至关重要,同时也能大大提高处理器的效率,使得系统的应用更加灵活多变。 中断的概念 中断是指单片机在执行程序的过程中,当出现异常情况或特殊请求时,单片机停止当前程序的运行,转向对这些异常情况或特殊请求进行处理,当处理结束后再返回原程序的间断处,继续执行原程序,这一现象称为中断。 中断是单片机实时处理内部或外部事件的一
[单片机]
一文详解80C<font color='red'>51单片机</font>的中断系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved