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实现流水灯
推荐阅读最新更新时间: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
[单片机]
基于AT89C51单片机的LCD160音乐盒设计
一.系统概述 系统使用的模块有AT89C51单片机+LCD1602+按键+蜂鸣器。 系统内使用AT89C51单片机作为主控,使用LCD1602显示屏显示音乐信息,通过按键就能控制音乐盒的歌曲切换以及歌曲的开始和暂停,系统在运行后需要点击开机键才能开始工作。当点击播放键后以蜂鸣器为主体的播放装置就会开始播放歌曲。 二.仿真概述 1.通过LCD1602显示屏显示歌曲信息,其中包括歌曲序号和歌曲时间。 2.通过左侧的按键控制歌曲,其中包括上一首、下一首、播放暂停、开关机。 3.通过播放装置播放相应的歌曲。 三.程序设计 使用Keil 51进行程序设计,打开Proteus时程序是默认烧录的状态,如果没有烧录点击AT89
[单片机]
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位寄存器用于存放栈顶位置
[单片机]
MCS-51单片机与无线调制器的应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法
[单片机]
嵌入式学习笔记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)
[单片机]
一文详解80C51单片机的中断系统
中断系统是计算机或者单片机的主要功能部件。 有了中断系统,便可以使微处理器具备对外部的异步事件进行处理的能力。 当微处理器的CPU正在执行程序的过程中,如果外部硬件或者内部组件有紧急的请求(如通信,断点,发生重大故障等),中断系统就可以将当前的程序暂停,优先处理这些中断请求。 这种处理方式,对整个系统的稳定性,健壮性至关重要,同时也能大大提高处理器的效率,使得系统的应用更加灵活多变。 中断的概念 中断是指单片机在执行程序的过程中,当出现异常情况或特殊请求时,单片机停止当前程序的运行,转向对这些异常情况或特殊请求进行处理,当处理结束后再返回原程序的间断处,继续执行原程序,这一现象称为中断。 中断是单片机实时处理内部或外部事件的一
[单片机]