C51 用一个外部中断0检测过零脉冲,并产生脉冲

发布者:会哭的蓝精灵最新更新时间:2016-11-21 来源: eefocus关键字:C51  外部中断0  过零脉冲  产生脉冲 手机看文章 扫描二维码
随时随地手机看文章

用一个外部中断0检测过零脉冲,然后用一个定时器产生一个脉冲即可。
#include
#define uint unsigned int /*宏定义*/
#define uchar unsigned char /*宏定义*/
//#define Time_5ms     (0x10000-5000)    //fosc=12M
#define   Time_100us (0x10000-100)

sbit P2_0=P2^0;

uint Time_5ms=10000;
void time_initial();

void main()
     {
       P2_0=0;     
       time_initial(); 
       while(1);                    
     }
void time_initial() //定时器初始化
     {
      TMOD=TMOD|0x01;
      TMOD=TMOD&0xF1;
      ET0=1; //定时器0的中断控制位
      EX0=1; //外部的中断0控制位
      IT0=1; //外部中断0为下降沿触发方式 
      EA=1; 
     }

void Time0() interrupt 1 //定时器0的中断函数?
    { //修改
      static bit P2_0_flag=1;

      P2_0=P2_0_flag;                
      if(P2_0_flag)
      {
        TH0=Time_100us/256;   
        TL0=Time_100us%256;
      }
      else
       TR0=0;
      P2_0_flag=~P2_0_flag;
    }

void int0() interrupt 0 // 外部的中断函数
     {
       static uint i;
       TR0=0;
       P2_0=0;
       i=0x10000-Time_5ms;
       TH0=i/256;    //修改
       TL0=i%256;
       TR0=1; 
     }


关键字:C51  外部中断0  过零脉冲  产生脉冲 引用地址:C51 用一个外部中断0检测过零脉冲,并产生脉冲

上一篇:水箱的温度PID控制系统的C51设计
下一篇:C51 NEC格式INT1下降沿方式红外解码程序

推荐阅读最新更新时间:2024-03-16 15:21

C51编程总结-单片机的奇怪知识2(Keil 编译器报错)
1:在C51 Keil 编译出现以下错误,error C249: 'DATA': SEGMENT TOO LARGE, error C249: 'DATA': SEGMENT TOO LARGE 解决办法:设置如下 2:在C51 Keil 编译出现警告:UNRESOLVED EXTERNAL SYMBOL *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: _DS1302_WRITE MODULE: .outputds1302.obj (DS1302) ADDRESS: 0A16H Program S
[单片机]
<font color='red'>C51</font>编程总结-单片机的奇怪知识2(Keil 编译器报错)
C51---4.2 动态数码管显示
消影 数码管的显示流程为 位选- 段选- 位选- 段选- 位选- 段选- … 单片机运行很快 在第一次位选- 段选后马上执行下一次位选 第二次的段选还没执行,导致上一次的段选进入残留,所以如果不进行消影,那么会导致显示错误。 代码 在数码管上显示数字1,2,3 #include REGX52.H //0 num 65535 void Delay_ms(unsigned int num) //@12.000MHz { unsigned char i, j; while(num) { i = 2; j = 239; do { while (--j); } while (--
[单片机]
C51---4.2 动态数码管显示
单片机c语言教程:C51开关分支语句
学习了条件语句,用多个条件语句能实现多方向条件分支,但是能发现使用过多的 条件语句实现多方向分支会使条件语句嵌套过多,程序冗长,这样读起来也很不好读。这个时候 使用开关语句同样能达到处理多分支选择的目的,又能使程序结构清晰。它的语法为下: switch (表达式) { case 常量表达式 1: 语句 1; break; case 常量表达式 2: 语句 2; break; case 常量表达式 3: 语句 3; break; case 常量表达式 n: 语句 n; break; default: 语句 } 运行中 switch 后面的表达式的值将会做为条件,与 case 后面的各个常量表达式的值相 对比,如果相等时则
[单片机]
C51单片机设计远程红外安防监控管理系统
  随着社会经济的发展和科学技术的进步,人们对办公场所的安全提出了更高的要求。特别对于企业而言,防火防盗更是必不可少的安全防范事件。针对传统的安防成本比较高、且实时性不强、集中管理控制困难、难以对安全隐患问题进行排查预警等情况; 现基于单片机技术和移动通信网络开发出一种实时、无线、便于管理、成本低廉的主动防护远程红外监控管理系统。   1 系统组成及功能   1.1 系统组成   整个系统主要由现场监控端、移动传输网络和监控中心三部分组成。现场监控端包括监控主机、传感器(包括红外传感器、烟雾传感器和门磁传感器)、摄像头和GPRS 通信模块。传输网络借由移动通信的GSM\\GPRS 网络,完成远程通信。监控中心由可靠的DCN
[单片机]
用<font color='red'>C51</font>单片机设计远程红外安防监控管理系统
C51的基础2《数据类型 》
2. 数据类型 在Turbo C语言中, 每个变量在使用之前必须定义其数据类型。Turbo C有以下几种类型: 整型(int)、浮点型(float)、字符型 (char)、指针型(*)、无值型(void)以及结构(struct)和联合(union)。其中前五种是Turbo C的基本数据类型、后两种数据类型(结 构和联合)将在第五章介绍。 2.1 整型(int) 一、整型数说明 加上不同的修饰符, 整型数有以下几种类型; signed short int 有符号短整型数说明。简写为short或int, 字长为2字节共16位二进制数, 数的范围是-32768 ~ 32767。 si
[单片机]
Keil C51 vs 标准C
深入理解并应用C51对标准ANSIC的扩展是学习C51的关键之一。因为大多数扩展功能都是直接针对8051系列CPU硬件的。大致有以下8类: 8051存储类型及存储区域 存储模式 存储器类型声明 变量类型声明 位变量与位寻址 特殊功能寄存器(SFR) C51指针 函数属性 具体说明如下 第一节 Keil C51扩展关键字 C51 V4.0版本有以下扩展关键字(共19个): _at_ idata sfr16 alien interrupt small bdata large _task_ Code bit pdata using reentrant xdata compact sbit data sfr 第二节 内存区域(Memory
[单片机]
C51系列单片机设计物体分级设备的测量光幕
1 引言 光幕是电子测量系统中应用比较多的一种设备。利用光幕可以测量恒速传送带上的物体高度、长度或宽度等一系列数据,以便为后面的电子系统提供相应的参数。本文给出了一种利用单片机实现物体高度测量的光幕测量方法。 2 光幕测量物体高度的基本原理 图1所示是一个用普通光幕测量物体高度的测试原理结构示意图。图中,光幕的一边等间距安装有多个红外发射管,另一边相应的有相同数量同样排列的红外接收管,每一个红外发射管都对应有一个相应的红外接收管,且安装在同一条直线上。当同一条直线上的红外发射管、红外接收管之间没有障碍物时,红外发射管发出的调制信号(光信号)能顺利到达红外接收管。红外接收管接收到调制信号后,相应的电路输出低电平,而在有障碍物的
[测试测量]
用<font color='red'>C51</font>系列单片机设计物体分级设备的测量光幕
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved