一.外部中断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. 160512、nginx+多个tomcat集群+session共享(windows版)

    第一步:下载nginx的windows版本,解压即可使用,点击nginx.exe启动nginx 或cmd命令 1.启动: D:\nginx+tomcat\nginx-1.9.3>start ng ...

  2. 160426、JavaScript 秘密花园

    简介 关于作者 这篇文章的作者是两位 Stack Overflow 用户, 伊沃·韦特泽尔 Ivo Wetzel(写作) 和 张易江 Zhang Yi Jiang(设计). 贡献者 贡献者 中文翻译 ...

  3. java前后台开发之后台自动上传下载

    package downloadTest; import java.io.BufferedReader; import java.io.File; import java.io.FileInputSt ...

  4. CH5105 Cookies【贪心】【线性dp】

    5105 Cookies 0x50「动态规划」例题 描述 圣诞老人共有M个饼干,准备全部分给N个孩子.每个孩子有一个贪婪度,第 i 个孩子的贪婪度为 g[i].如果有 a[i] 个孩子拿到的饼干数比第 ...

  5. Why did we build Zuul? How We Use Zuul At Netflix

    Home · Netflix/zuul Wiki https://github.com/Netflix/zuul/wiki Arthur Gonigberg edited this page on M ...

  6. 剑指Offer——数组中重复的数字

    题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度 ...

  7. SmokePing安装手册

    SmokePing安装部署 SmokePing简介 Smokeping是一款用于网络性能监测的开源监控软件,主要用于对IDC的网络状况,网络质量,稳定性等做检测,通过rrdtool制图方式,图形化地展 ...

  8. HDFS基本操作的API

    一.从hdfs下载文件到windows本地: package com.css.hdfs01; import java.io.IOException; import java.net.URI; impo ...

  9. AngularJS filter:search 是如何匹配的 ng-repeat filter:search ,filter:{$:search},只取repeat的item的value 不含label

    1.  filter可以接收参数,参数用 : 进行分割,如下: {{ expression | filter:argument1:argument2:... }} 2.   filter参数是 对象 ...

  10. win下如何解决在chrome的同源访问问题

    引子:本来是想验证如果在网页中包含多个框架,那么就会存在两个以上的不同全局环境,如果从一个框架引用另一个框架的数据比如数组a,那么用 instanceof 判断这个数组a是不是另个框架Array的实例 ...