• <i id="jb6ye"><bdo id="jb6ye"></bdo></i>
    1. <b id="jb6ye"><bdo id="jb6ye"><tr id="jb6ye"></tr></bdo></b><tt id="jb6ye"><tr id="jb6ye"><dfn id="jb6ye"></dfn></tr></tt><track id="jb6ye"><big id="jb6ye"></big></track>
    2. 专注电子技术学习与研究
      当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

      pic单片机采用查询定时器的闪灯实验报告

      作者:佚名   来源:互联网   点击数:  更新时间:2014年08月14日   【字体:

      1.  实验目的

      学习如何使用定时器

      2.  任务要求

      用可重定位汇编代码完成1s为周期的闪灯实验;

      画出程序流程图;

      验证程序的正确性;

      3.  实验器材

      单片机PIC16F886一片、LED灯一只、电阻任选、下载器(及相关的线)一个

      4.  实验方案

       

       

      图 1 硬件设计图

       

       


      图 2 软件流程图

      计算过程:选择Timer0,内部振荡器频率31KHz,要达到周期为1s,则0.5s翻转一次,则0.5s中需要执行的指令数是0.5*31k/4=3875,则若使TMR00加到溢出,预置数为0,则3875/256=15.136.那么分频比可选1:16,1:32,1:64,1:128,1:256.我们选择了最接近的1:16.

      预置数的计算:

      3875/16=256-T+2

      T=15.8,软件实测发现1516更加接近,15.

      调试方法:debug 单步调试和断点调试结合。先确保程序正确,再调整预置数提高精度。

      5.  实验现象分析

      最初由于代码错误LED一直处于亮的状态,由于调试时改动的代码太多不知道是具体由哪一步引起,或者可能是很多错误一起造成的。

      我们似乎没有地方可以用到可重用代码,所以最后没有采用。(也有可能是因为对可重用代码不理解。)

       

      实验最终结果:

      1LED正常亮灭,亮灭时间相同,没有奇怪现象

      2,软件仿真时T=0.9999483s,误差较小。

       

       

       

      附:

      #INCLUDE p16f886.inc  

      __config _CONFIG1, _LP_OSC _PWRTE_OFF _WDT_OFF _CP_OFF

      ORG 0x00

      NOP

      CLRF TMR0

      BANKSEL OPTION_REG;BANK3

      MOVLW B'000011'

      MOVWF OPTION_REG

      BANKSEL INTCON;

      MOVLW B'00000111'

      ANDWF INTCON,F

      BANKSEL OSCCON

      MOVLW B'00000011'

      MOVWF OSCCON

      BANKSEL ANSEL

      CLRF ANSEL

      BANKSEL TRISA;BANK1

      MOVLW B'00000000'

      MOVWF TRISA

      LP

      BANKSEL INTCON

      BTFSS INTCON,2

      GOTO LP

      GOTO LED

      LED

      BANKSEL INTCON

      BCF INTCON,2

      BANKSEL PORTA

      COMF PORTA,1

      BANKSEL TMR0

      MOVLW B'00001111'

      MOVWF TMR0

      GOTO LP

      END

       

      下一个实验:http://www.shijip2p.com/mcu/3996.html

      关闭窗口
      68日本xxxxxxxxx,水萝拉日语中字在线,德国videos高清,欧美色图片 网站地图