PIC单片机程序设计基础格式

发布者:星光小狐狸最新更新时间:2011-09-29 关键字:PIC单片机  程序设计  基础格式 手机看文章 扫描二维码
随时随地手机看文章

    PIC单片机程序设计基础格式

    为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。

    建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84?INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。

       TITLE“This is……”;程序标题
  ;程序说明
  LIST P="16F84",F=1NHX8M
  ;
  include
  -config_RC_Qsc &_WDT_0FF…
  ;资源定义和变量定义
  STATUS EQU 03
  FSR EQU 04
  PORTA EQU 05
  PORTB EQU 06
  J EQU 01F
  K EQU 01E
  ;…………………
      ORG 0000 ;
      goto MAIN ;跳过中断矢量
      ORG 0004
      goto INTSRV;子程序入口地址
  ;……………………………………
  MAIN    
     ;从0005H开始放主程序
      call Initports ;端口初始化
      call InitTimers;定时器初始化
       …
  INTSRV …     ;中断服务程序区
  SVBRTH…      ;子程序区
    END      ;程序结束符
  当然,在编写程序时可根据实际情况加以调整。下面是一份实际程序清单,要求将数据88H写入PIC16F84内部EEPROM的20H单元,而后再从20H单元将其读出。
  LIST P="16F84",F=INHX8M
  ;……………………………
  STATUS EQU  03  ;定义寄存器
  EEDATA EQU  08
  EEADR EQU  09
  INTCON EQU  0BH
  EECON1 EQU  88H
  EECON2 EQU  89H
  ;…………………………
  RD    EQU  0    ;定义位
  WR  EQU  1
  RP0   EQU  5
  GIE  EQU  7
  ;…………………………
        ORG  0
        GOTO WRSTART
  ;……………………………
       ORG  10H
  WRSTART         ;写入操作开始
       CLRW      ;清W,使W=0
       BCF STATUS,RP0 ;选BANK0
       MOVLW 20H
       MOVWF EEADR   ;地址→EEADR
       MOVLW 88H
       MOVWF EEDATA  ;写入数据→
                 ;EEDATA
       BSF STATUS,RP0 ;选BANK1
       BSF EECON1,2 ;写操作使能允许
       BCF INTCON,GIE ;关闭所有的中断
       MOVLW 0X55
       MOVWF EECON2  ;55H→EECON2
       MOVLW 0XAA
       MOVWF EECON2  ;AAH→EECON2
       BSF EECON1,WR ;启动写操作
       BSF INTCON,GIE ;恢复开中断
  RDSTART          ;读出操作开始
       BCF STATUS,RP0
       MOVLW 20H
       MOVWF EEADR   ;地址→EEADR
       BSF STATUS,RP0
       BSF EECON1,RD ;启动读操作
       BCF STATUS,RP0
       MOVF EEDATA,W ;将EEPROM
                 ;数据读入W
  END

关键字:PIC单片机  程序设计  基础格式 引用地址:PIC单片机程序设计基础格式

上一篇:触摸传感器QST108与PIC单片机的接口设计
下一篇:采用PIC单片机的LED点阵手写屏设计

推荐阅读最新更新时间:2024-03-16 12:42

基于ARM的硬件启动程序设计-分配中断向量表
ARM要求中断向量表必须防放置在从0x00000000地址开始的连续32字节的空间内。ARM9定义的中断向量在向量表中的地址如下面所示: 当中断发生后,ARM处理器会强制把PC指针指向中断向量表中对应的终端类型的地址处。 中断向量表的程序设计如下: CODE32 AREA Startup,CODE,READONLY ; /* 异常向量表 */ Vectors LDR PC, ResetAddr ;把ResetAdde地址上的存储器的内容装载到PC上 LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, Prefetc
[单片机]
基于ARM的硬件启动<font color='red'>程序设计</font>-分配中断向量表
PIC单片机开发板:数码管动态扫描程序,显示静态效果
//------------------------------------------------------------------------------------------------------------------------- /*这是自已写的:数码管动态扫描,显示静态效果 心得,显示看起来像乱码,实际上是位置不对(要选送段选,再打开位选)的缘故。 改为delay(300);则流水速度加快 */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31);// void delay(uchar x)
[单片机]
<font color='red'>PIC单片机</font>开发板:数码管动态扫描程序,显示静态效果
STM32开发笔记91: SX1268驱动程序设计(发送模式)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍发送模式的相关驱动程序。 一、TX模式 In TX mode after ramping-up the Power-Amplifier (PA) transmits the data buffer. In TX mode the circuit can operate in different sub-modes: single mode or single with timeout mode.(在TX模式下,功率放大器(PA)启动后便可以传输数据缓冲区中的数据。在TX模式下电路可以工作不同的子模式:单模式或单超时模式
[单片机]
STM32开发笔记91: SX1268驱动<font color='red'>程序设计</font>(发送模式)
PIC系列单片机程序设计基础分析与应用 上
  PIC单片机的查表程序可以利用子程序带值返回的特点来实现。具体是在主程序中先取表数据地址放入W,接着调用子程序,子程序的第一条指令将W置入PC,则程序跳到数据地址的地方,再由“RETLW”指令将数据放入W返回到主程序。下面程序以F10放表头地址。       MOVLW  TABLE     ;表头地址→F10         MOVWF  10           ┋       MOVLW  1        ;1→W,准备取“1”的线段值       ADDWF  10,1      ;F10+W =“1”的数据地址       CALL  CONVERT       MOVWF  6        ;线段值置到B口,点
[单片机]
PlC单片机C语言程序设计(10)
4.C程序pic07.c的SlM软件仿真调试 在《PIC单片机C语言程序设计(8)》和《PIC单片机C语言程序设计(9)》中,我们已对C程序pic07 C进行了编辑和编译,现在需要查看该程序能否达到预期的设计目标,即能否完成pic07.C的0~99秒增量计时LED数码显示功能(脉冲发生器),因此需要调试程序。 调试程序,可以使用MPLABICD2在线调试器、MPLABICE2000硬件仿真器等开发工具。对于初学C语言程序,又没有上述硬件仿真调试器的读者,最好选用MPLAB SIM软件模拟仿真器进行程序的调试。 模拟仿真调试是检查程序是否正确,能否实现预期功能的有效手段。有了它,可以实现程序的“单步运行”、“单步越过”、
[单片机]
PlC单片机C语言<font color='red'>程序设计</font>(10)
PIC单片机内部EEPROM的操作
//-------------------------------------------------------- //EEPROM字节写程序 //功能: 写一个字节到内部EEPROM //入口: EEADR =地址 // EEDATA =数据 //-------------------------------------------------------- void write_eeprom ( void ) { // while ( WR ) //等待上一次写操作结束 // { // asm ( clrwdt ); //喂狗 // } EEPGD = 0 ; //设置访问目标为EEPROM WREN = 1 ;
[单片机]
STM32F0开发笔记6: 在Keil中使用C++进行程序设计
希望在Keil中使用C++进行程序设计,开始时,总是报错,经过仔细分析,原因时Keil在默认情况下不支持C++进行程序设计。本文将介绍在Keil中使用C++进行程序设计的方法。 1、在Keil中使用C++进行程序设计,首先需要系统支持,如下图所示。 2、建立类,需要2个文件,cpp和hpp,在hpp中对类进行描述,在cpp中完成函数实现。 依循上述方法就可以使用C++进行程序设计了。
[单片机]
STM32F0开发笔记6: 在Keil中使用C++进行<font color='red'>程序设计</font>
串行实时时钟芯片DSl302程序设计中的问题与对策
   摘 要: 指出了串行实时时钟芯片DSl302程序设计中几个易被疏忽而导致错误的问题,分析了问题的原因,并给出了解决问题的方法。     关键词: 串行时钟 程序设计 问题 原因 解决方法     美国Dallas公司推出的串行接口实时时钟芯片DSl302可对时钟芯片备份电池进行涓流充电。由于该芯片具有体积小、功耗低、接口容易、占用CPU I/O口线少等主要特点,故该芯片可作为实时时钟广泛应用于智能化仪器仪表中。     笔者在调试中发现在对DSl302编程中有几个问题易被疏忽而导致错误,现提供给读者参考。     1 读操作出现的错误     按照参考文献 的读操作程序框图和参考文献
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved