您的位置 首页 新能源

普通单片机教育 第十九讲 守时/计数器试验2

前面我们做了定时器的实验,现在来看一看计数实验,在工作中计数通常会有两种要求:第一、将计数的值显示出来,第二、计数值到一定程度即中

前面咱们做了守时器的试验,现在来看一看计数试验,在作业中计数一般会有两种要求:榜首、将计数的值显现出来,第二、计数值到必定程度即中止报警。榜首种如各种计数器里程表,第二种如前面例中讲到的出产线上的计数。先看榜首种吧。咱们的硬件中是这样连线的:324构成的振荡器连到守时/计数器1的外部引脚T1上面,咱们就使用这个来做一个计数试验,要将计数的值显现出来,当然最好用数码管了,可咱们还没讲到这一部份,为了防止把问题复杂化,咱们用P1口的8个LED来显现计到的数据。

程序如下:

ORG 0000H

AJMP START

ORG 30H

START:

MOV SP,#5FH

MOV TMOD,#01000000B ;守时/计数器1作计数用,0不必全置0

SETB TR1 ;发动计数器1开端运转.

LOOP: MOV A,TL0

MOV P1,A

AJMP LOOP

END

在硬件上用线将324的输出与T1连通(印板上有焊盘)运转这种程序,留意将板按正确的方位放置(LM324放在左手边,LED摆放是按从高位到低们摆放)看到什么?跟着324后接的LED的闪耀,单片机的8只LED也在不断改变,留意调查,是不是按二进制:

00000000

00000001

00000010

00000011

这样的次序在变呢?这就对了,这便是TL0中的数据。

程序二:

ORG 0000H

AJMP START

ORG 001BH

AJMP TIMER1 ;守时器1的中止处理

ORG 30H

START: MOV SP,#5FH

MOV TMOD,#01010000B ;守时/计数器1作计数用,形式1,0不必全置0

MOV TH1,#0FFH

MOV TL1,#0FAH ;预置值,要求每计到6个脉冲即为一个事情

SETB EA

SETB ET1 ;开总中止和守时器1中止答应

SETB TR1 ;发动计数器1开端运转.

AJMP $

TIMER1:

PUSH ACC

PUSH PSW

CPL P1.0 ;计数值到,即取反P1.0

MOV TH1,#0FFH

MOV TL1,#0FAH ;重置计数初值

POP PSW

POP ACC

RETI

END

上面这个程序完结的作业很简单,便是在每6个脉冲到来后取反一次P1。0,因而试验的成果应当是:LM324后接的LED亮、灭6次,则P1。0口所接LED亮或灭一次。这实践便是咱们上面讲的计数器的第二种使用。

程序三:外部中止试验

ORG 0000H

AJMP START

ORG 0003H ;外部中止地直进口

AJMP INT0

ORG 30H

START: MOV SP,#5FH

MOV P1,#0FFH ;灯全灭

MOV P3,#0FFH ;P3口置高电平

SETB EA

SETB EX0

AJMP $

INT0:

PUSH ACC

PUSH PSW

CPL P1.0

POP PSW

POP ACC

RETI

END

本程序的功用很简单,按一次按键1(接在12引脚上的)就引发一次中止0,取反一次P1。0,因而理论上按一下灯亮,按一下灯灭,但在实践做试验时,可能会发觉有时不“灵”,按了它没反应,但在大部份时分是对的,这是怎么回事呢?咱们在解说键盘时再作解说,这个程序自身是没有问题的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/261780.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部