⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic26.htm

📁 pic单片机原理
💻 HTM
字号:
<html>
<head>
<title>PIC单片机原理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
BODY {font-size:12px;font-family:宋体;}
td {font-size:12px;font-family:宋体;}

A:link {	COLOR: #0000ff; TEXT-DECORATION: underline}
A:visited {	COLOR:#0000ff; TEXT-DECORATION: underline}
A:active {	COLOR:red! important; TEXT-DECORATION: underline}
A:hover {	TEXT-DECORATION: none}
.b24 a:link {	FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:visited {FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:active {	FONT-SIZE: 12px; COLOR:#0000ff; TEXT-DECORATION: underline}
.b24 a:hover {	FONT-SIZE: 12px; COLOR:#990000; TEXT-DECORATION: none}
.lh13 {	LINE-HEIGHT: 130%}
.lh15 {	LINE-HEIGHT: 150%}
.lh17 {	LINE-HEIGHT: 170%}
.lh19 {	LINE-HEIGHT: 190%}
.lh30 {	LINE-HEIGHT: 300%}

-->
</style>
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" >
<table width="778" border="0" cellspacing="0" cellpadding="0">
  <tr align="center">
    <td>&nbsp;</td>
  </tr>
  <tr align="center"> 
    <td> <table width="700" border="0" cellspacing="0" cellpadding="0">
        <tr> 
          <td width="41%" height="46" valign="top"><img src="logo.gif" width="205" height="41"></td>
          <td height="46" width="59%" valign="bottom" align="right"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
              <tr> 
                <td align="right"><b><font style="font-size:16px" color="#990000">—— 
                  —— —— 技术资料下载中心</font></b> </td>
              </tr>
              <tr> 
                <td height="8"></td>
              </tr>
            </table></td>
        </tr>
        <tr> 
          <td height="1" colspan="2"></td>
        </tr>
        <tr bgcolor="#990000"> 
          <td height="1" colspan="2"></td>
        </tr>
        <tr> 
          <td colspan="2">&nbsp;</td>
        </tr>
        <tr> 
          <td colspan="2"><font style="font-size:16px" color="#000000"><b>>> <a href="index.htm">PIC单片机原理</a> 
            \</b></font></td>
        </tr>
      </table>
      <table width="700" border="0" cellspacing="0" cellpadding="2">
        <tr> 
          <td align="center"><strong><font color="#000000" size="3">PIC单片机16F84的内部硬件资源(五)</font></strong></td>
        </tr>
        <tr> 
          <td> <p>&nbsp;</p></td>
        </tr>
        <tr valign="top"> 
          <td height="300"> <p><span class="lh15">&nbsp;&nbsp; &nbsp;7&nbsp;&nbsp; 
              延时和定时<br>
                在设计单片机应用系统时,经常会遇到需要使某一过程(如加温、加压等)持续一段时间的情况,如连续加压1分钟,通电2分钟等。单片机如何正确确定这段时间呢?这里可通过两种方式,即延时和定时来实现。试看下例。<br>
                在应用系统中要求PIC16F84的RAO端控制一个发光二极管按一定频率闪亮,可通过右图的电路来实现。同时还必须为16F84编制一个程序。由电路图可知,要使发光二极管LED按一定的频率闪亮,只要使RAO端输出一个变化的高→低→高……电平即可。由此设计出如下的源程序(清单1):<br>
                list P=16F84,F=INHX8M<br>
                ;……<br>
                   ORG   0<br>
                   MOVLW 0 ;主程序开始<br>
                   TRIS  5   ;置RA口为输出<br>
                   BCF   5,0   ;RA口0位清零<br>
                LOOP:CALL  DELAY;闪动延时<br>
                   COMF 5   ;RA口求反,亮—灭交替<br>
                   GOTO LOOP   ;循环<br>
                ;……<br>
                DELAY      ;以下为延时子程序<br>
                    MOVLW  D′50<br>
                    MOVWF   8<br>
                LOOP1:MOVWF   9<br>
                LOOP2:DECFSZ   9,F<br>
                    GOTO   LOOP2<br>
                   DECFSZ   8,F<br>
                   GOTO    LOOP1<br>
                RETLW       0<br>
                由清单1可知,当主程序开始时,首先将工作寄存器W清零,然后将W寄存器的内容送TRISA寄存器,使其清零,以设置RA口为输出。接着又将RA口的第5位清零,使LED开始时处于熄灭状态。随之持续一段时间,即执行延时子程序,再将RA口取反,变为高电平输出,LED发光,再延时,又使RA口取反,LED熄灭……。这样,LED就一暗一亮,持续交替进行。<br>
                在这里,使LED亮、暗持续一段时间是通过单片机执行延时子程序DELAY来实现的。此延时程序的核心就是让单片机的CPU反复执行使寄存器内容减1的指令DECFSZ。即将十进制数50分别装入通用寄存器F8、F9,以进行50×50=2500次的减1操作。如果执行一次DECFSZ指令需1个指令周期(跳转时需2个周期),若设振荡频率为100kHz,即指令周期为40μs,则延时时间为2500×40=100000μs=100ms,即0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -