位置:51电子网 » 技术资料 » 单 片 机

PIC单片机循环程序应用实例

发布时间:2008/8/19 0:00:00 访问次数:532

  笔者在这里介绍一种定时程序,说明循环程序在pic单片机上的应用。笔者仍以pic16f84单片机为例建立其定时源程序清单。

  该定时器源程序只需改变一条指令的常数设置,即可使定时时间从分钟级到3??8小时的连续变化(4mhz晶振条件)。pic16f84单片机的硬件电路,请见本报第32期实验编程器1??01实验板电路。在该实验板电路上,若读者改变晶振的频率(2mhz、1mhz、500khz)等,很易直观看出定时时间成比例相应地增加,这对了解pic单片机的性能十分直观有趣。若在该源程序上再多设置一次循环,可使定时时间长达1月以上。
  
  该pic16f84定时源程序可直接在mplab集成开发环境软件下进行汇编,其汇编后生成的hex文件可在实验编程器1??01上对源程序进行固化并可在相应的实验板上直接观察实验的结果。pic16f84定时的源程序清单如下(文件各可自定义):
   list  p=pic16f84
   #include p16f84?盜nc
   count1 equ  0x1f
   count2 equ  0x1e
   count3 equ  0x1d
   count4 equ  0x1c
   org  0
   start clrw      ;与movlw0等效
   bsf   status,5;选体1
   movwf trisb ;设b口为输出
   bcf   status,5;status复位当前体0
   clrf  portb ;定时启动功能
   m1  btfss  porta,1;判断a口第d1位,d1=1间跳,d1=0顺
            ;序执行
   goto  m2
   goto  m1
   m2  movlw 0xaa  ;选b口定时位,led亮开始定时
   movwf portb  ;b口按0x10101010输出
   dely clrw      ;与movlw0等效
   movlw 0xff
   mvowf count1
   mvowf count2
   mvowf count3
   movlw 0    ;与clrw指令等效
   movlw 0x02   ;0x02送w(最大定时为0xff)
   movwf count4 ;定时值控制(细调)
   loop decfsz count1,1;cpunt减1,为0间跳
   goto loop
   decfsz count2,1;同上特点,这里d=1可不用
   goto  loop
   decfsz count3,1;同上
   goto loop
   decfsz count4,1;同上,但count4中值可自由选定
   goto loop
   clrw       ;与movlw0相同
   movlw 0x02   ;定时结束显示
   movwf portb
   m3 goto m3
   end       ;程序结束
 
  说明:该源程序中常数设置可由读者任意改变,改变之后即可达到任意时间的设定。 

  欲知详情,请登录维库电子市场网(www.dzsc.com



  笔者在这里介绍一种定时程序,说明循环程序在pic单片机上的应用。笔者仍以pic16f84单片机为例建立其定时源程序清单。

  该定时器源程序只需改变一条指令的常数设置,即可使定时时间从分钟级到3??8小时的连续变化(4mhz晶振条件)。pic16f84单片机的硬件电路,请见本报第32期实验编程器1??01实验板电路。在该实验板电路上,若读者改变晶振的频率(2mhz、1mhz、500khz)等,很易直观看出定时时间成比例相应地增加,这对了解pic单片机的性能十分直观有趣。若在该源程序上再多设置一次循环,可使定时时间长达1月以上。
  
  该pic16f84定时源程序可直接在mplab集成开发环境软件下进行汇编,其汇编后生成的hex文件可在实验编程器1??01上对源程序进行固化并可在相应的实验板上直接观察实验的结果。pic16f84定时的源程序清单如下(文件各可自定义):
   list  p=pic16f84
   #include p16f84?盜nc
   count1 equ  0x1f
   count2 equ  0x1e
   count3 equ  0x1d
   count4 equ  0x1c
   org  0
   start clrw      ;与movlw0等效
   bsf   status,5;选体1
   movwf trisb ;设b口为输出
   bcf   status,5;status复位当前体0
   clrf  portb ;定时启动功能
   m1  btfss  porta,1;判断a口第d1位,d1=1间跳,d1=0顺
            ;序执行
   goto  m2
   goto  m1
   m2  movlw 0xaa  ;选b口定时位,led亮开始定时
   movwf portb  ;b口按0x10101010输出
   dely clrw      ;与movlw0等效
   movlw 0xff
   mvowf count1
   mvowf count2
   mvowf count3
   movlw 0    ;与clrw指令等效
   movlw 0x02   ;0x02送w(最大定时为0xff)
   movwf count4 ;定时值控制(细调)
   loop decfsz count1,1;cpunt减1,为0间跳
   goto loop
   decfsz count2,1;同上特点,这里d=1可不用
   goto  loop
   decfsz count3,1;同上
   goto loop
   decfsz count4,1;同上,但count4中值可自由选定
   goto loop
   clrw       ;与movlw0相同
   movlw 0x02   ;定时结束显示
   movwf portb
   m3 goto m3
   end       ;程序结束
 
  说明:该源程序中常数设置可由读者任意改变,改变之后即可达到任意时间的设定。 

  欲知详情,请登录维库电子市场网(www.dzsc.com



相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!