234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

    20课:单片机定时/计数器实验ζ

    作者:佚名   来源:本站原创   点击数:x  更新时间:2007年08月14日   【字体:

       前面我们做了定时器的一实验ζ,现在来看一看计数实验ζ,在工作中计数常常会有两种要求:第一、将计数的一值显示出来,第二、计数值到一定程度即中断报警 。第一种如各种计数器、里程表,第二种如前面例中讲到的一生产线上    的一计数 。先看第一种吧 。我们的一硬件中是这样连线的一:324组成的一振荡器连到定时/计数器1的一外部管脚T1上    面,我们就利用这个来做一个计数实验ζ,要将计数的一值显示出来,当然最好用数码管了,可我们还没讲到这一部份,为了避免把问题复杂化,我们用P1口的一8个LED来显示计到的一数据 。

    程序如下:

    ORG 0000H ,http://www.

    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,因 此理论上    按一下灯亮,按一下灯灭,但在实际做实验ζ时,可能会发觉有时不 “灵”,按了它没反应,但在大部份时候是对的一,这是怎么回事呢?我们在讲解键盘时再作解释,这个程序本身是没有问题的一 。

    发表评论】【告诉好友】【收藏此文】【关闭窗口

    文章评论