一.外部中断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. Servlet的请求转发和重定向

    在学习servlet中对于转发和重定向的理解是非常重要的,但是常常把重定向和转发给混了,今天特地花点时间来总结以下. 一.servlet的转发 1.请求原理图如下所示:  2.可以简单理解转发就好比一 ...

  2. andriod的apk文件相关的编译反编译工具

    1.smali-1.2.6.jar 用途:.smali文件 转成 classes.dex文件 说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改. 用法举例:命令行:jav ...

  3. windows server 2008 R2域中的DC部署 分类: AD域 Windows服务 2015-06-06 21:09 68人阅读 评论(0) 收藏

    整个晚上脑子都有点呆滞,想起申请注册好的博客还从来都不曾打理,上来添添生机.从哪里讲起呢,去年有那么一段时间整个人就陷在域里拔不出来,于是整理了一些文档,害怕自己糊里糊涂的脑子将这些东西会在一觉醒来全 ...

  4. find-if-an-item-is-in-a-javascript-array

    http://stackoverflow.com/questions/143847/best-way-to-find-if-an-item-is-in-a-javascript-array Best ...

  5. Apache 2.4 配置多个虚拟主机的问题

    以前一直用Apache2.2的版本,最近升级到了2.4的版本,尝尝新版本嘛. 不过遇到了几个问题,一个就是配置了多个virtualhost,虽然没有报错,不过除了第一可以正常访问外,其他的都存在403 ...

  6. ssh登录服务器

    ssh -i /home/zhangsuosheng/mykey.pub myusername@111.111.111.111

  7. 汉诺塔IV---hdu2077

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077 #include <stdio.h> #include <stdlib.h&g ...

  8. postgresql导出sql执行结果到文件的方法(转)

    原文:http://blog.sina.com.cn/s/blog_840dd283010178jz.html 对于一些特殊字符,比如字符

  9. windows通过ssh连接虚拟机中的ubuntu步骤

    linux端开启ssh服务 1.安装openssh-server包 sudo apt-get install openssh-server 2.启动ssh server sudo /etc/init. ...

  10. Mybatis框架学习总结-Mybatis框架搭建和使用

    Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使 ...