#include "regx52.h"
void Delay(int time)
{
while(time--) //while循环一次需要10us
{
}
}
void Timer0Init(void) //1毫秒@11.0592MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x66; //设置定时初值
TH0 = 0xFC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1;
EA = 1;
PT0 = 0;
}
int i,count,LEDMode;
// 中断后需要执行的内容
void Timer0_motion() interrupt 1
{
TL0 = 0x66; //设置定时初值
TH0 = 0xFC; //设置定时初值
count++;
if(count == 500)
{
if(LEDMode == 0) //LED灯左移
{
if(i>=8)i=0;
P2=~(0x01< i++;
}
if(LEDMode == 1) //LED灯右移
{
if(i<0)i=7;
P2=~(0x01< i--;
}
count=0;
}
}
//独立按键的信号处理
int Key(void)
{
int KeyNumber = 0;
if(P3_1==0){Delay(1000);while(P3_1==0);Delay(1000);KeyNumber = 1;}
if(P3_0==0){Delay(2000);while(P3_0==0);Delay(2000);KeyNumber = 2;}
if(P3_2==0){Delay(2000);while(P3_2==0);Delay(2000);KeyNumber = 3;}
if(P3_3==0){Delay(2000);while(P3_3==0);Delay(2000);KeyNumber = 4;}
return KeyNumber;
}
int main()
{
int KeyNum;
//计时器初始化
Timer0Init();
while(1)
{
KeyNum=Key(); //接收返回独立按键的状态
if(KeyNum)
{
if(KeyNum == 1)
{
LEDMode++;
if(LEDMode>=2)LEDMode=0;
}
}
}
return 0;
}
实验现象
关键字:51单片机 定时器 中断系统
引用地址:
51单片机:定时器与中断系统的运用
推荐阅读最新更新时间:2024-11-05 06:49
采用51单片机设计的温室测试系统
设施农业是世界现代农业发展的主要方向之一,我国农业正处于从传统也向高产、优质、高效为目的的现代化农业转化新阶段,设施农业是我国今后比较长的时间内农业发展的个主要方向。 环境控制对果树生产的重要作用已经为国内外大量的科学实验和生产的实践所证实。只有在适宜的生长环境下果疏才能充分发挥其高产潜力。多年的有关果树生长环境的研究,不仪知道了农业生产,也为温室环境测控的研究提供了理论和依据。但如何利用传感器技术,白动检测技术,通讯技术,计算机技术的发展和温室栽培的推广研制出对温室温度,湿度,二氧化碳浓度的智能测控系统,为果树提供最佳的生长环境,一直是农业研究者面临的重要课题。 虽然国外采用了全智能控制,但是他们的成本太高,不适
[单片机]
AT89C51单片机数字逻辑无环流可逆调速系统设计
1 引言 生产中有许多机械要求既能正转,又能反转,而且常需要快速起动和制动,即需要可逆调速系统。由模拟电路实现的可逆调速系统,线路复杂,调整困难,可靠性低,缺乏灵活的控制。因此,这里给出一种基于单片机的逻辑无环流可逆调速控制系统设计方案。该系统设计采用全数字电路,实现数字脉冲触发、数字转速给定检测和数字PI算法等功能,由软件实现转速、电流调节及逻辑判断和复杂运算,具有不同于一般模拟电路的最优化、自适应、非线性、智能化等控制规律,而且更改灵活方便。 2 系统组成和控制原理 2.1 系统组成 该数字逻辑无环流可逆调速系统是由AT89C51单片机实现双闭环控制、无环流逻辑控制、触发脉冲的形成及相位控制,如图1所示。图1中,ASR为速
[单片机]
mini2440硬件篇之PWM定时器
1. 硬件原理 2440有5个16位定时器,其中0、1、2、3有PWM功能,有一根输出引脚,可以产生周期性高低电平变化。定时器4没有输出引脚。 2. 芯片手册 3. mini2440电路图 4. S3C2440寄存器 定时器时钟源是PCLK,先通过2个预分频器TCFG0 TCFG1降低频率,降频后就确定了定时器工作频率。初始设定值TCMPBn(用于比较反转输出电平)、TCNTBn。TCON控制定时器启动。TCMPBn的值装入TCMPn,TCNTBn的值装入TCNTn,每个定时器周期,TCNTn减1,可以通过TCNTOn读取计数值。当和TCMPn相等时,反转电平输出。减到0时,再次反转,如果TCON设置自动加载,则重复如上步骤。
[单片机]
51单片机总结——上拉电阻
上拉电阻的作用: (1) 用于为OC和OD门电路,提供驱动能力。 以OC(集电极开路)电路为例: 例如,达林顿管(其实就是复合三级管)集成块ULN2003. 内部一路的电路如图,就是一个集电极开路电路。 如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机P0口加上拉电阻的原理一样。 (2)提高高电平电位: 单片机P1口外接4 4矩阵键盘。另外复用P1.0~P1.3外接ULN2003控制驱动步进电机。 实验中遇到的问题:当接入ULN2003时键盘无法工作,去掉ULN2003后键盘工作正常。ULN2003工作正常。(注,两个部分
[单片机]
10. Systick定时器
一。Systick原理和配置方法 Systick定时器就是系统滴答定时器,CM3 内核的处理器,内部包含了一个 SysTick 定时器, SysTick 是一个 24 位的倒计数定时器,当计到 0 时,将从 RELOAD 寄存器中自动重装载定时初值。只要不把它在 SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠状态下也能工作。 Systick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。 二。4个Systick相关的寄存器 CTRL SysTick控制和状态寄存器 LOAD SysTick自动重装载初值寄存器 VAL SysTick当前值寄存器 CALIB
[单片机]
51单片机-定时器概念
1.生活的例子 通过上一章大家已经有了对中断知识的了解,像外部中断这种需要物理动作才能触发中断函数执行,但很多情况下我们需要的是中断函数在适当时刻可以自动得去执行,所以就需要定时器来辅助了。 定时器是单片机内部的一个硬件资源。 用生活常见现象举例:定时器相当于一个闹钟,我们调5分钟后闹钟就响,在这5分钟里我们想做什么就做什么,相当于我们自己是主函数里的任务,想运行什么任务就运行什么,也不用去理会闹钟还剩多少时间就响,我们只是一直做我们想做的事就行。 之后闹钟响了,这时我们不能再任性去做主函数的事了,得赶紧把中断函数里的事办完先,也就是要去执行中断函数了,主函数的事要暂停不做先,执行完中断函数之后继续回到主函数做我们的
[单片机]
51单片机实现独立按键的双击按键触发
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: Independent-KEY ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200506 ---- @ModifiedTime: 20200506 ---- @Description:
[单片机]
构造一个51单片机的实时操作系统
目前,大多数的产品开发是在基于一些小容量的单片机上进行的。51系列单片机,是我国目前使用最多的单片机系列之一,有非常广大的应用环境与前景,多年来的资源积累,使51系列单片机仍是许多开发者的首选。针对这种情况,近几年涌现出许多基于51内核的扩展芯片,功能越来越齐全,速度越来越快,也从一个侧面说明了51系列单片机在国内的生命力。 多年来我们一直想找一个合适的实时操作系统,作为自己的开发基础。根据开发需求,整合一些常用的嵌入式构件,以节约开发时间,尽最大可能地减少开发工作量;另外,要求这个实时操作系统能非常容易地嵌入到小容量的芯片中。毕竟,大系统是少数的,而小应用是多数而广泛的。显而易见,μC/OS—II是不太适合于以上要求的,而Keil
[单片机]