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

📄 pic7.htm

📁 pic单片机原理
💻 HTM
字号:
<html>
<head>
<title>PIC学习/PIC 8位单片机的汇编语言</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 8位单片机的汇编语言</font></strong></td>
        </tr>
        <tr> 
          <td> <p></p></td>
        </tr>
        <tr valign="top"> 
          <td height="300"> <p>&nbsp;&nbsp;&nbsp; <span class="lh15">要单片机完成一项基本任务,必须将任务分解成一些具体步骤,再要求它去逐项执行每个步骤,还要对它下命令。该命令在单片机术语中称为“指令”(Inetruction)。完成一项任务所需的所有指令的有序集合就称为“程序”(Programm)。这些指令要预先一条一条顺序地放到单片机的程序存贮器中,单片机在运行时,片中的CPU从程序存贮器中逐条有序取出指令,执行指令,并将有关指令执行完毕,即可完成既定任务。<br>
                不同种类的单片机有不同的一套命令(即所谓“指令系统”)。PIC系列的单片机其指令系统与51系列的完全不同。PIC16F84有30余条指令构成的指令系统。每条指令由14位(bit)构成,这些位是二进制码的0和1,如果要使16F84端口B的B0位输出高电平,以点亮一只发光二极管LED,而B口的其余各位仍保持低电平,则需要使单片机执行下列各条指令(机器码):<br>
                11000000000000<br>
                00000001100110<br>
                11000000000001<br>
                00000010000110<br>
                10100000000100<br>
                早先的技术人员就是用这样的二进制码来编写程序的。上列程序,看起来像天书,很费解,但它完全能指挥单片机的运作。因为单片机实际上是一种复杂的数字逻辑电路。我们都知道,要数字电路运作,必须相应输入高、低电平,对正逻辑而言,高电平为1,低电平为0。上述指令顺序在不同的数位上出现的0和1,经译码后,即可完成各种不同的运作,逐步完成单片机所要执行的任务,如点亮一个LED。<br>
                上述各条指令的写法,虽然是完全面向单片机,是用来直接指示单片机该如何运作的。因此,这种由0、1组成的指令称为机器语言。<br>
                实际上,这种由二进码构成的指令集不但难读懂,而且用来编程也有困难。因为程序往往不是从头到尾顺序执行,有时还需中途转移到其它单元执行一段程序后再返回来。而指令是一条一条顺序存放在存贮器各个单元内的。因此,如果要转移,需指明具体转到哪个单元,即要写出该单元的地址。但在编写程序时,该程序有多长,具体要放到哪些单元中,都是未知数,又怎能具体指明要转到哪个单元呢?<br>
                由于用机器语言会使程序难写、难读,后来一种新型的语言形式——汇编语言就问世了。使用这种语言写程序较方便,也比较容易读懂。不过,和机器语言一样,不同类型的单片机有完全不同的汇编语言。就如不同地区的人有不同的方言一样。在汇编语言中,转移地址是用符号来表示的。现在,我们把上面由机器语言写成的程序改写成由汇编语言构成的程序:<br>
                movlw&nbsp;&nbsp;B‘00000000’<br>
                tris&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORT B<br>
                movlw&nbsp;&nbsp;B‘00000001’<br>
                movwf&nbsp;&nbsp;PORT B<br>
              fin: goto   fin<br>
                上列各条指令实际上是英语缩写和一些数组成的。如第一条中的movlw就是move Literal to w的缩写,其意义为照原样移入工作寄存器W,而“原样”就是后接引号内的数字‘00000000’。引号前的B表示后续的是二进制数。第二句是将W内的数复制到B口的三态(tri-state)控制寄存器中,以设定B口为输出,然后将00000001送入W中,再复制到B口;最后执行一条无限循环语句以保持B口的状态不变。从单片机外部看去,16F84的第6脚(即B0)维持为高电平,以点亮LED。<br>
                由上例可知,汇编语言较之机器语言要好懂得多。同时,最后一句自身循环也是一种转移语句,转移目的地就是此句所在单元地址,如用机器语言,就难以标出具体地址,而用汇编语言助记符fin即可替代。</span> 
            <p align="right"><span class="lh15">  

⌨️ 快捷键说明

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