51单片机怎么产生外部脉冲??

作者&投稿:郝隶 (若有异议请与网页底部的电邮联系)
51单片机怎么实现外部脉冲计数~

#include
#define uint unsigned int
uint dat=0,time=0;
bit flag=0;
sbit key=P1^0;
void int00() interrupt 0
{
dat++;
}
void t0isr() interrupt 1
{
time++;
if(time>=400)flag=1;
}
main()
{
TMOD=0x22;
TH0=6;
TL0=6;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x40;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
while(flag==0);
TR0=0;
flag=0;
SBUF=dat;
while(TI==0);
TI=0;
SBUF=dat>>8;
while(TI==0);
TI=0;
}
}
}

模式设置还有外部改变电平状态。

当然可以啊,51的定时器/计数器功能,定时器用的多了你可能都忘记了51单片机有计数的功能,设置TMOD中的c/t位为1,这时的定时器计数器就处于计数模式了,可以对P3.4或P3.5引脚的下跳沿计数,你把这两个引脚接个按键就可以了,按一次加1,注意按键的消抖问题,最好使用硬件消抖吧
这样设置定时器/计数器T1,
TMOD=0x50;
TH1=0;
TL1=0;
TR1=1;
这样T1就可以对P3.5引脚上的下跳沿计数了,

题目和你想知道的是2 个完全不同的意思
加按键不是单片机产生脉冲,而是外加的信号。
51单片机所有的IO口都 可以加按键来计数的,不一定要用2 个外部中断。

用外部中断,按一次加一,不能用外部中断控制计数器,这样不是加一,而是启动定时器,会加很多一。。。

用外部中断控制计数器阿


大学单片机怎么在8×8点阵数码管上显示数字1
如果是仿真实现就比较容易,proteus 里有8×8点阵模块,用两片锁存器74HC573锁存列码和行码,用取模软件取出数字1的模,并按行取模,显示时,就按行扫描显示。要是实物,需要知道实物开发板的原理图才能写程序。仿真图如下:

单片机 中 IT0=1; EX0=0 是什么意思,用在什么时候
51单片机的IT0位是控制外部中断0的触发方式的。外部中断0触发方式控制位,1表示边沿触发,0表示电平触发。如果IT0设置为0,则外部中断0引脚被拉至低电平即可引发外部中断。如果IT0设置为1,则外部中断0引脚需要检测到下降沿才能引发外部中断。EX0是外部中断0的使能控制位,如果EX0设置为0,则外部中断0...

单片机如何读取外部电压?
sbit level=P1^0;\/\/将需要检测的引脚接个几K的电阻到P1口的第0位 \/\/判断 if(level)\/\/如果是高电平:需要(0.2*VCC+0.9V)的电压以上 { doing_something();} else \/\/否则为低电平:需要(0.2*VCC-0.1V)以下 { doing_another_thing();} ...

单片机的XTAL1、 XTAL2怎么接的
1、XTAL1、XTAL2引脚。这类引脚属于外接时钟引脚。前者为片内震荡电路的输入,后者为片内震荡电路的输出。2、RST引脚。这类引脚属于复位引脚,连续输入两个机器周期以上高电平就可以触发机制,完成单片机的复位初始化的工作,单片机就可以从头开始执行程序了。3、PSEN引脚。这类引脚的全称是程序存储器允许...

一个单片机同时产生两个频率不同的方波.这个可能吗
可以,只是频率不能太高 如定时100us中断一次,每中断一次将某一个管脚的电平状态态取反一次,就得到5kHZ方波,每中断2次或3次将另外一个管脚取反,就得到2·5KHZ或1·667kHZ的方波 如果定时很短,则中断很频繁,单片机就干不了其他工作了 因此产生方波频率不能太高 ...

1、单片机读写外部RAM数据用( )指令 A、MOV B、MOVD C、MOVX D、MOVC...
C MOV指令表示单片机内部的寄存器或者存储器之间相互传递数据(内部RAM);而MOVX则表示单片机内部的A累加器与片外的数据存储器传送数据.(这个是扩展的,51单片机只能扩展64K)(外部RAM);还有MOVC的指令,它们表示A向ROM(程序存储器)读取数据,因为程序存储器是固定的不可以写的,所以,A只能读数据,却不...

单片机如何用外部0中断中断外部中断1呢
外部中断0相应之后,随便置低一个脚,把中断一设置成下降沿触发。另一个方法是原子操作,可以在AVR中实现中断的嵌套,中断0响应后,中断标志位用软件清一下,再置低中断1引脚,中断1就响应了。

1.怎么玩转单片机-IO输出-点亮1个LED灯方法1
单片机智能控制 1.怎么玩转单片机-IO输出-点亮1个LED灯方法1,单片机智能控制 方法1 单片机智能控制,单片机源代码 \/*--- 名称:IO口高低电平控制 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ---*\/ includereg52.h \/\/包含头文件,一般...

89c51单片机外中断两种触发方式的区别,各适用于何种情况
外中断两种方式分为电平触发方式跟跳沿触发方式,区别如下:一、方式不同 1、电平触发方式:外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化。2、跳沿触发方式:外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断申请标志也不会丢失。

单片机TXAL1端口有什么作用?
1、XTAL1和XTAL2引脚,该单片机可以使用外部时钟也可以是使用内部时钟,当使用内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟信号时,NMOS接XTAL2,CMOS接XTAL1。2、原理:(1)XTAL1和XTAL2分别是一个反相器的输入和输出。NMOS的反相器是所谓的E-D结构的电路(...

鸡西市19284382824: 51单片机怎么产生外部脉冲?? -
菜翟伊迈: 题目和你想知道的是2 个完全不同的意思 加按键不是单片机产生脉冲,而是外加的信号. 51单片机所有的IO口都 可以加按键来计数的,不一定要用2 个外部中断.

鸡西市19284382824: 51单片机怎么产生外部脉冲??
菜翟伊迈: 当然可以啊,51的定时器/计数器功能,定时器用的多了你可能都忘记了51单片机有计数的功能,设置TMOD中的c/t位为1,这时的定时器计数器就处于计数模式了,可以对P3.4或P3.5引脚的下跳沿计数,你把这两个引脚接个按键就可以了,按一次加1,注意按键的消抖问题,最好使用硬件消抖吧 这样设置定时器/计数器T1, TMOD=0x50; TH1=0; TL1=0; TR1=1; 这样T1就可以对P3.5引脚上的下跳沿计数了,

鸡西市19284382824: 如何用51系列单片机发射脉冲? -
菜翟伊迈: 51单片机本身就有两个自带的可编程定时器/计数器T1,T2有四种工作方式,只要写入控制字和设置记数初值,就可以输出不同频率的脉冲.51单片机的为6M HZ,所以存入的值可以计算的为0F0H,选用方式1,控制字 MOV TMOD,#01H ;选用方式1 MOV TL0,#0F0H ;装入初值 SETB TR0 ;启动 SETB ET0 ;允许中断 SETB EA ;CUP开放中断

鸡西市19284382824: 51单片机怎样产生20M的脉冲? -
菜翟伊迈: 一般的51单片机做不到,建议你换单片机.不客气的说,51的功能非常弱,只能用于最普通的控制场合,要求稍微高一些就不行了(哪怕是速度快一点点或者可靠性高一点,都不用51).高频是电子电路有名的难点,几十兆脉冲不是闹着玩的.这么高频率,你恐怕得用像ARM9之类的嵌入式芯片来做.

鸡西市19284382824: 如何在51单片机输出口输出外部输入的脉冲宽度 -
菜翟伊迈: 建议你在int1引脚上,加一个反相器.这样,可以使用中断功能来完成.程序如下: org 0000h sjmp main org 000bh ljmo i_t0 org 00013h ljmp i_int1 main: mov r0,#0 mov tmod,#02h mov th0,#0 mov tl0,#0 setb it1 setb ea setb ex1 setb et0 sjmp $ ...

鸡西市19284382824: 单片机如何发出脉冲信号 -
菜翟伊迈: 什么单片机啊,最一般的用定时器中断设置io口的高低电平就可以,要是有PWM功能的就更方便了

鸡西市19284382824: 51单片机外部计数脉冲输入 T0(P3.4引脚),如用按扭开关产生计数脉冲,应采用什么电路? -
菜翟伊迈: 应选A双稳态电路消抖,相比其它选项双稳态电路消抖最有效,可以产生完整的计数脉冲.

鸡西市19284382824: 求:单片机80c51怎么做脉冲信号发生器 -
菜翟伊迈: * 程序名称:PWM占空比调整演示程序 * *程序思路说明: * * 只需要4个按键. * *关于频率和占空比的确定,对于12M晶振,输出频率为1KHZ,这样定时中断次数设定为 **10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01...

鸡西市19284382824: 怎么编程让51单片机实现每计来自外部的三个数脉冲而发生一次中断! -
菜翟伊迈: 用外部中断计数到3的时候,关闭外部中断EX1=0,进入中断子程序,处理完成,再打开外部中断EX1=1.主函数内打开外部中断后必须要有一个死循环.比如main() { EA=1; EX1=1; TCON=0x04; while(1); }

鸡西市19284382824: 51单片机计数器的外部脉冲是由哪个引脚引入的 -
菜翟伊迈: 1、是的.外部脉冲引入P3.4脚.不过你还要在TMOD里面设置好,TMOD=0x05;//T0对外计数,工作方式1. 2、是这样.你可以把信号分两路,分别接到INT0和T0,至于哪路工作你可以在程序里面设定.比如起始设置INT0工作,那就在初始化中把T0的中断禁止掉,ET0=0;如果满足某个条件,则设置关掉INT0的中断,改用T0接收脉冲.用C就是 if(某个条件) {EX0=0;TH0=0;TL0=0;TMOD=0x05;ET0=1;TR0=1;..... } else if(某个条件) {TR0=0;TH0=0;TL0=0;ET0=0;EX0=1;...... }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网