一.外部中断0、1(分别點亮一個LED)


/*******************************************************************************
* 标题: 计数器中断实验 * #include <reg52.h>
#include<intrins.h>
sbit led1 = P0^0;
sbit led2 = P0^1; void main(void)
{ // IT0=0; //低电平触发
IT0=1; //下降沿触发
EX0=1; // IT1=0; //低电平触发
IT1=1; //下降沿触发
EX1=1;
EA=1; while(1);
}
/********************************************************
* INT0中断函数 *
********************************************************/
void counter0(void) interrupt using
{ EX0=;
led1=~led1;
EX0=;
}
/********************************************************
* INT1中断函数 *
********************************************************/
void counter1(void) interrupt using
{ EX1=;
led2=~led2;
EX1=;
}
/********************************************************/

二.定时器计算器中断 0 (1S,LED灯闪烁)

#include <reg52.h>
#include <intrins.h> typedef unsigned char uchar;
typedef unsigned char uint; uint num1,num2;
sbit led1=P2^; void system_Ini()
{
TMOD = 0x00; //选择模式0 13位计数 最大计数8192 // TH0=0x1C; //12.000M 预装初值
//TL0=0x18;
TH0 = ( - )/;
TL0 = ( - )% ;
IE = 0x8A; //中断
TR0 = ; //开启T0定时器 }
void main()
{
system_Ini();
while();
} void T0zd(void) interrupt //3定时器1的中断号 1定时器0的中断号 0外部中断1 2外部中断2 4串口中断
{
//TH0 = 0xFc; //12.000
//TL0 = 0x18; TH0 = ( - )/ ;
TL0 = ( - )%;
num1++;
if(num1>)
{
num1=;
num2++;
if(num2>)
{num2=;P2=~P2;}
}
}

三.定时器计算器中断 1(1S,LED灯闪烁)


#include <reg52.h>
#include <intrins.h> typedef unsigned char uchar;
typedef unsigned char uint; uint USE_C; void main()
{
TMOD=0x10; //定时/计数器1工作于方式1
TH0=0x4C; //定时器初始值
TL0=0x00; //50ms定时常数
//THO=(65536-45872)/256; 11.0592MHZ
//TLO=(65536-45872)%256;
EA=; //开总中断
ET1=; //允许定时/计数器1 中断
TR1=; //启动定时/计数器1 中断 while();
} /*********************************************************
中断服务函数
**********************************************************/
void Time1(void) interrupt // using 0
{
TH1=0x4c; //50ms定时
TL1=0x00;
if (++USE_C == ) //每隔1秒发声
{ P2=~P2;
USE_C = ;
} }

四.定时器计算器中断 2(1S,LED灯闪烁)


#include <reg52.h>
#include <intrins.h> typedef unsigned char uchar;
typedef unsigned int uint; uint num; void main() // 该中断计数循环3686(晶振11.0592MHZ)次是一秒4000次(12MHZ)
{
TMOD=0x02;
TH0=;
TL0=; //当低八位记满溢出 TF0标指位为 1 反应给 CPU 申请中断 同时TH0 中数组 //自动装入(复制)TL0中
EA=;
ET0=;
TR0=;
while()
{
if(num==) // 若为11.0592 num=3686
{ P2=~P2;
num=;
}
}
}
void T0_time() interrupt using
{
num++;
}

五.定时器计算器中断 3(1S,0.5s,LED灯闪烁)

#include <reg52.h>
#include <intrins.h> typedef unsigned char uchar;
typedef unsigned int uint;
sbit led1=P2^;
sbit led2=P2^;
uint num1,num2; void main()
{ TMOD=0X03;
TH0=;
TL0=;
EA=;
ET0=;
ET1=;
TR0=;
TR1=;
while()
{
if(num1>=)//3686 11.0592
{
num1=;
led1=~led1;
}
if(num2>=)//1843 11.0592
{
num2=;
led2=~led2;
}
}
}
void TLO_time() interrupt //低八位用定时器计数器中断0的中断源
{
TL0=;
num1++;
}
void TH0_time() interrupt //高八位用定时器计数器中断1的中断源
{
TH0=;
num2++;
}

六.定时器计数器中断 0 (计数器中断)

/*******************************************************************************
* 标题: 计数器中断实验 *
* *
* *
* 实验说明:用单片机产生的脉冲波,作为T0外部事件的脉冲输入,对于HC6800EM3的型 *
* 号,可以自带的脉冲发生器作为T0外部事件的脉冲输入 *
* 连接方法:参开图片或视频 *
********************************************************************************
* *
* 请学员认真消化本例程,掌握定时器/计数器中断使用 *
********************************************************************************/ #include <reg52.h>
#include<intrins.h>
sbit LED = P0^;
sbit Pulse = P1^; void Timer0() interrupt
{
TH0 = 0Xa0; //给计数器装初值
TL0 = 0X00; LED = ~LED; //LED灯取反 } void main()
{
P0 = 0XFF;
TMOD = 0X05; //选用计数模式和 选用模式1
TH0 = 0Xa0; //给计数器装初值
TL0 = 0x00;
EA = ; //开发所有中断
ET0 = ; //开启定时器T0中断
TR0 = ; //启动T0定时器 while()
{
Pulse = ;
_nop_(); //空指令函数 用于产生方波
_nop_();
_nop_();
_nop_();
Pulse = ;
_nop_();
_nop_();
_nop_();
_nop_(); } }

写于2012年年末

STC51六中中断配置点亮一个LED的更多相关文章

  1. 点亮一个led

    1:RS232电平:计算机串口 高电平为-12v,低电平为+12v,所以计算机与单片机进行通信的时候需要加电平转换芯片max232(高电平为-9到-12,低电平为+3到+12之间的. max232通常 ...

  2. 从点亮一个LED开始,Cortex-A9裸机程序设计

    电路原理图: 如何点亮一个LED? 通过对原理图进行分析,我们能够发现给三极管的基极加上一个高点平时,三级管be结导通构成通路,此时二极管就点亮了.若要将LED熄灭只需取消高电平输出. 如何使三级管基 ...

  3. 单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  4. 点亮一个led灯

    /********************************* 代码功能:点亮一个led灯 使用函数: pinMode(引脚号,模式); digitalWrite(引脚号,电平状态); //默认 ...

  5. 进阶之路(基础篇) - 001 亮一个led灯

    /********************************* 代码功能:点亮一个led灯 使用函数: pinMode(引脚号,模式); digitalWrite(引脚号,电平状态); //默认 ...

  6. STM32学习笔记(一)——点亮一个LED

    引言 最近报名了2017全国大学生电子设计竞赛,我们学校是第一次参加这个比赛,由于8/9月份就要比赛了,所以现在准备是比较晚的了,指导老师说只能做控制类的题目了,让我们学习一下STM32单片机,51到 ...

  7. 第一个程序点亮一个LED灯

    #include <reg52.h> // 引用52包文件 可以理解为命名空间 sbit P1_0 = P1^0;   // 定义P1管脚0 void main()             ...

  8. linux IMX6 汇编点亮一个LED灯

    驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...

  9. 《STM32CubeMX配置STM32H743XI工程》第一讲《初始化UART,重定义printf函数,点亮一个LED灯》

    1.打开STM32CubeMX软件->新建一个工程(软件自行到ST官网下载安装) 2.输入对应的芯片型号(本次基于野火STM32H743XI Pro 开发板)点击Start Project生成项 ...

随机推荐

  1. R中实现脚本调用,以及函数调用

    R中实现脚本调用,以及函数调用 这里的列子是test.R调用mysql_con.R中的函数 mysql_con.R # 使用RMySQL操作数据库 # 载入DBI和RMySQL包 #library(D ...

  2. node jar sh

    https://nodejs.org/api/child_process.html Node.js v11.1.0 Documentation Index View on single page Vi ...

  3. nodejs(三)上之express

    express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速 ...

  4. java中的 final 关键字 修饰引用时的问题

    final使得被修饰的变量”不变”,但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变. 引用本身的不变: final StringBuffer a= ...

  5. python web框架 django 用pycharm 添加django项目

    用pycharm 创建django项目 用pycharm 启动django  用项目名启动 点击蓝色连接的url 直接跳转到页面 修改 运行django 程序 设置  可以改端口 可以在创建djang ...

  6. Java-小技巧-005-double类型保留两位小数4种方法

    4种方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberF ...

  7. 【Spring Task】定时任务详解实例-@Scheduled

    Spring的任务调度,采用注解的形式 spring的配置文件如下,先扫描到任务的类,打开spirng任务的标签 <beans xmlns="http://www.springfram ...

  8. 17.如何网页发起QQ聊天

    1.被发起的QQ需要再QQ推广开启QQ在线状态http://shang.qq.com/v3/widget.html 2.html代码 <html> <head></hea ...

  9. 『HTML5挑战经典』是英雄就下100层-开源讲座(一)从天而降的英雄

    是英雄就下100层是一款经典的手机小游戏,以前是在诺基亚手机上十分有名.今天我们就用HTML5和lufylegend一步步地实现它. 一,准备工作 首先,你需要下载lufylegend,下载地址如下: ...

  10. UVA10534:Wavio Sequence(最长递增和递减序列 n*logn)(LIS)好题

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68553#problem/B 题目要求: Wavio是一个整数序列,具有以下特性 ...