当前位置:首页 > 单片机 > 单片机
[导读] PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习 1、PIC单片机程序的基

PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习

1、PIC单片机程序的基本格式
  先介绍二条伪指令:
  EQU ——标号赋值伪指令
  ORG ——地址定义伪指令
  PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:
   PIC16C54/55:1FFH
   PIC16C56:3FFH
   PIC16C57/58:7FFH
  一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式供参考。
  TITLE This is …… ;程序标题
  ;--------------------------------------
  ;名称定义和变量定义
  ;--------------------------------------
  F0    EQU  0
  RTCC  EQU  1
  PC    EQU  2
  STATUS  EQU  3
  FSR   EQU  4
  RA    EQU  5
  RB    EQU  6
  RC    EQU  7  
       ┋
  PIC16C54 EQU 1FFH ;芯片复位地址
  PIC16C56 EQU 3FFH
  PIC16C57 EQU 7FFH
  ;-----------------------------------------
  ORG PIC16C54 GOTO MAIN   ;在复位地址处转入主程序
  ORG   0          ;在0000H开始存放程序
  ;-----------------------------------------
  ;子程序区
  ;-----------------------------------------
  DELAY MOVLW 255
      ┋
      RETLW 0
  ;------------------------------------------
  ;主程序区
  ;------------------------------------------
  MAIN
     MOVLW B‘00000000’
     TRIS RB       ;RB已由伪指令定义为6,即B口
      ┋
  LOOP
     BSF RB,7 CALL DELAY        
     BCF RB,7 CALL DELAY
      ┋
     GO TO LOOP
  ;-------------------------------------------
     END       ;程序结束
   注:MAIN标号一定要处在0页面内。
  2、PIC单片机程序设计基础
  1) 设置 I/O 口的输入/输出方向
  PIC16C5X单片机的I/O 口皆为双向可编程,即每一根I/O 端线都可分别单独地由程序设置为输入或输出。这个过程由写I/O 控制寄存器TRIS f来实现,写入值为“1”,则为输入;写入值为“0”,则为输出。
    MOVLW 0FH  ;0000 1111(0FH)
            输入 输出
    TRIS 6    ;将W中的0FH写入B口控制器,
            ;B口高4位为输出,低4位为输入。
    MOVLW 0C0H ; 11 000000(0C0H)
              RB4,RB5输出0 RB6,RB7输出1
  2) 检查寄存器是否为零
  如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例:
    MOVF 10,1      ;F10→F10,结果影响零标记状态位Z
    BTFSS STATUS,Z    ;F10为零则跳
    GOTO NZ        ;Z=0即F10不为零转入标号NZ处程序
       ┋          ;Z=1即F10=0处理程序
  3) 比较二个寄存器的大小
  要比较二个寄存器的大小,可以将它们做减法运算,然后根据状态位C来判断。注意,相减的结果放入W,则不会影响二寄存器原有的值。
  例如F8和F9二个寄存器要比较大小:
    MOVF 8,0       ;F8→W
    SUBWF 9,0      ;F9—W(F8)→W
    BTFSC STATUS,Z   ;判断F8=F9否
    GO TO F8=F9
    BTFSC STATUS,C    ;C=0则跳
    GO TO F9>F8       ;C=1相减结果为正,F9>F8
    GOTO F9<
F9       ;C=0相减结果为负,F9  ┋

4) 循环n次的程序
  如果要使某段程序循环执行n次,可以用一个寄存器作计数器。下例以F10做计数器,使程序循环8次。
       COUNT EQU 10     ;定义F10名称为COUNT(计数器)
          ┋
       MOVLW 8
       MOVWF COUNT LOOP   ;循环体
   LOOP
           ┋
       DECFSZ COUNT,1    ;COUNT减1,结果为零则跳
       GOTO LOOP       ;结果不为零,继续循环
           ┋       ;结果为零,跳出循环
   5)“IF……THEN……”格式的程序
  下面以“IF X=Y THEN GOTO NEXT”格式为例。
       MOVF X,0      ;X→W
       SUBWF Y,0     ;Y—W(X)→W
       BTFSC STATUS,Z   ;X=Y 否
       GOTO NEXT      ;X=Y,跳到NEXT去执行。
          ┋       ;X≠Y
   6)“FOR……NEXT”格式的程序
  “FOR……NEXT”程序使循环在某个范围内进行。下例是“FOR X=0 TO 5”格式的程序。F10放X的初值,F11放X的终值。
      START  EQU  10
      DAEND  EQU  11
           ┋
      MOVLW 0
      MOVWF START     ; 0→START(F10)
      MOVLW 5
      MOVWF DAEND     ;5→DAEND(F11)
   LOOP
           ┋
      INCF START,1     ;START值加1
      MOVF START,0
      SUBWF DAEND,0     ;START=DAEND ?(X=5否)
      BTFSS STATUS,Z
      GOTO LOOP        ;X<5,继续循环
           ┋       ;X=5,结束循环
   7)“DO WHILE……END”格式的程序
  “DO WHILE……END”程序是在符合条件下执行循环。下例是“DO WHILE X=1”格式的程序。F10放X的值。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机

单片机,又称为微控制器或微处理器,是现代电子设备中的核心部件之一。它集成了中央处理器、存储器、输入输出接口等电路,通过外部信号引脚与外部设备进行通信,实现对设备的控制和管理。本文将详细介绍单片机的外部信号引脚名称及其功能...

关键字: 单片机 微控制器 中央处理器

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

PLC(可编程逻辑控制器)和单片机是两种不同的控制设备,它们之间存在明显的区别:

关键字: 单片机 plc 控制器

Holtek隆重推出全新一代32-bit Arm® Cortex®-M0+ 5V CAN MCU - HT32F53231/HT32F53241/HT32F53242/HT32F53252。这一系列单片机带有来自Bosc...

关键字: MCU 工业自动化 单片机

Holtek精益求精,宣布推出全新5V宽电压Arm® Cortex®-M0+ 32-bit MCU系列HT32F50431/HT32F50441/HT32F50442/HT32F50452。此系列MCU经多方位升级能满...

关键字: 单片机 智能家居 工业控制
关闭
关闭