老古开发网首页
导航:老古开发网首页文章索引索引第2470页文章分类单片机第43页→[PIC系列8位单片机源程序的组成]
| -文章搜索 - 最新文章 - |

第2694篇:PIC系列8位单片机源程序的组成

发布时间:2006年8月2日 点击次数:1268
来源:   作者:
 

PIC系列8位单片机源程序的组成
 
  PIC系列单片机的源程序是指PIC的助记符指令编写的程序(汇编语言程序)。这里将对PIC源程序的格式要求和其源程序的建立或书写作简要的介绍。
  一般来说对PIC的源程序格式并没有要求统一的编写形式,用户可以根据习惯来编写,当然编写时应遵守汇编的一些规范。下面以PIC16F84芯片点亮一支发光二极管的汇编程序实例,介绍一种源程序编写的方法(格式),以供实际应用时参考。
  源程序清单
  1File TURNON.ASM
  2Assembly code for PIC16F84 microcontroller
  3Turns on an LED connected to B0
  4Uses RC oscillator,about 100kHz
  5CPU configuration
  6(it’s a 16F84,RC oscillator
  7watchdog timer off,power-up timer on)
  8processor 16F84
  9include <p16F84inc>
  10_config_RC_OSC&_WDT_OFF&_PWRTE_ON
  11Program
  12org 0;start at address 0
  13At startup,all ports are inputs
  14Set Port B to all outputs
  15movlw B‘00000000’;w=binary 00000000
  16tris Portb     ;copy w to port B control reg
  17Put a 1 in the lowest bit of port B
  18movlw B‘00000001’;w=binary 00000001
  19movwf portb    ;copy w to port B itself
  20Stop by going into an endless loop
  21fin:goto fin
  22end ;program ends here
  现对源程序清单逐行加以说明。
  第1行为文件(File)名,这里取名TURNONASM。TURNON意指一个接通(即接通LED)程序。ASM是源程序的扩展名。
  第2行说明是由适用于PIC16F84微控制器的汇编码编写的源程序。
  第3行说明程序用途是接通PIC16F84 PORTB的B0位LED。
  第4行说明由RC振荡器供给时钟,频率约为100kHz。
  第5、6、7行说明对16F84 CPU的结构设置(用RC振荡器,看门狗定时器即watchdog timer关,上电power-up定时器开,关于16F84的结构设置,后面将详谈)。
  第8、9、10行为伪指令。这是用来向汇编程序提供有关如何完成汇编的控制命令信息,它既是汇编过程的控制指令,也是汇编程序的操作指令。在这里8、9、10行还向汇编程序说明,单片机用的是16F84,用RC振荡器、看门狗定时器关断不用,但上电定时器接通使用。对照5、6行,可见二者内容相同,但一个是注释,专门为用户说明,另一个是伪指令,是为PC机的汇编程序提供命令信息。
  第11行又是注释,说明程序主体由此开始。
  第12行说明程序存放在由地址0开始的16F84单片机中的程序存贮器中,也是一条伪指令。
  第13、14两行为注释,说明后续的一段指令(两句)的作用,即在启动时,所有端口为输入,随即将B口设定为全输出(即各位均为输出)。
  第15行是汇编语言编写的第一条指令,即对二进制(B)数“00000000”存入工作寄存器W。
  第16行将W寄存器的内容(即00000000)传送到B口控制寄存器,使B口成为输出口。15、16行均带有注释。  第17行为注释,说明下面的二条指令是使B口的最低位为1。
  第18行的指令将二进制数00000001送入工作寄存器W,第19行指令则将W寄存器的内容复制到B口,则B口的最低位B0为高电平,其余各位则为低电平,使接到B0位的LED发光。
  第20行又是注释。说明下面的指令将使B0位为高的状态继续下去。
  第21行的指令为无限循环语句,维持B1口输出为高不变。
  第22行是伪指令END,表明程序到此结束。
  将清单所列程序在PC机上用一种名为MPASM的汇编软件进行汇编后,如无错误,即可获得扩展名为HEX的相应机器码文件,借助编程器将该文件的相应内容烧入PIC16F84的程序存储器内,并将编程好的芯片插入前述的电路板中,再加上电源,即可点亮16F84 B0位的LED。


欢迎进入老古论坛进行讨论
[单片机] 相关文章:
PIC单片机软件开发技巧
简介:
笔者的项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定......

[转载]一种新型光电定向系统的设计与实现
从单片机指针说到黑客程序
8051的汇编控制指令,占用字节,执行周期列表
几种AVR下载线
 
下一个:[综合电子]专用通信三网融合方式探讨
简介:
  一、专网的产生及其特性   业务的需求促使了现代通信技术和通信网络的发展,除了PSTN网络外,沿着铁路干线、长江流域、民用机场等分布着一些特殊的通信网络,它们在特殊的领域扮演着通信枢纽的角色。这些网络有其自身的特点:业务种类比较单一,用户对业务质量和稳定性要求较高,用户分布较散,其共性就是小而全。同PSTN网一样,大多数专网从单一的语音业务发展到今天的数据、视频等综合业务数字网。   专网的发展一直受到资金的制约,由于通信行业的逐步市场化,专网有其特殊性,需要可靠稳定的技术来支撑,......

上一个:[单片机]PIC 8位单片机的汇编语言

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:31毫秒