PIC单片机程序结构框架

发布者:乐观向前最新更新时间:2019-12-06 来源: elecfans关键字:PIC单片机  程序  结构框架 手机看文章 扫描二维码
随时随地手机看文章

TI

TLE“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 Init

TI

mers;定时器初始化

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单片机程序结构框架

上一篇:pic单片机复位电路
下一篇:PIC单片机学习知识之程序设计(二)

推荐阅读最新更新时间:2024-11-12 20:29

机器人FOLGE程序是如何被调用激活的呢?
1.在CALL中调用已建立FOLGE程序. 2.CALL调用FOLGE程序: PGNO = PRG_NR$IN TO $IN Folgestarn打开Folge程序 -程序启动- SWITCH P_TYPE -程序使用类型选择 CASE 0 ;-以整数形式接受发出程序号 SWITCH PGNO CASE 10-如程序满足选择程序10 FOLGE10()-执行程序10 CASE 124 FOLGE124() CASE 125 FOLGE125() ENDSWITCH 3.程序启动控制环路:
[机器人]
关于STM32F407ZGT6的一些知识小结及串口1程序
一、关于STM32F4在通过串口通信的时候乱码问题 1.刚开始弄得时候,以为和stm32一样配置完串口之后就可以用了,结果后面发现串口打印出来的东西全是乱码。后面发现是STM32F4的固件库中使用的频率是25Mhz,而板子上的外部晶振是8Mhz的。因此需要去固件库的stm32f4xx.h中把HSE_VALUE改成8Mhz就可以了。 2.还有一种问题是,如果使用的是电平转换的问题。要直接从芯片的引脚进行通信的话,可以直接用一个TTL下载器直接相连,如CH340;如果板子上带有MAX3232芯片的电平转换,要通过DB9插口线转RS232电平为TTL电平然后和电脑相连。 #include stm32f4xx.h #inclu
[单片机]
关于STM32F407ZGT6的一些知识小结及串口1<font color='red'>程序</font>
PIC单片机广告灯程序
程序介绍:灯为左右移动加闪烁,程序中采用了调用子程序功能 //** Date: Wednesday, November 21, 2012 21:51:18 #define MX_PIC //Defines for microcontroller #define P16F690 #define MX_EE #define MX_EE_SIZE 256 #define MX_SPI #define MX_SPI_BCB #define MX_SPI_SDI 4 #define MX_SPI_SDO 7 #define MX_SPI_SCK 6 #define MX_UART #define MX_UART_B #d
[单片机]
<font color='red'>PIC单片机</font>广告灯<font color='red'>程序</font>
16c54四位LED时钟显示程序
title clock list p=16c54,n=66 PIC54 equ 1ffh ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;written by:PIC单片机www.pic16.com ;; ;;四位LED时钟显示程序 ;; ;;RB1-SW1秒设置 RB2-SW2分设置 RB3-SW3时设置 ;; ;;RB1--RB7接LED段码,RA0--RA3做选通 ;; ;;使用4M晶振TMR0滪分频为1:16 TMRO的循环时间为4.096MS 244次为一秒 ;; ;;用sec_nth计数 ;; ;;;;;;;;;;;;;;
[单片机]
PWM的C51程序
#include intrins.h #include stdio.h #include math.h #include UPSD3200.H #include upsd_pwm.h #define uint unsigned int #define uchar unsigned char PSD_REGS PSD8xx_reg _at_ csiop; #define KEYIO (~(PSD8xx_reg.DATAIN_A)) & 0x07 sbit CP=P4^7; sbit U_D=P1^1; void init_system(); // 系统初始化 uchar keyboard(); void uPSD_PWM4
[单片机]
LabVIEW的设计程序框图时应遵循的原则
  和本文编程语言类似,设计程序框图时也应该养成良好的编程习惯,使得设计出的图形化程序外观美观、便于理解,以便提高工作效率,减少不必要的失误。设计程序框图时应遵循以下原则:   (1)尽量使用从左到右, 自上而下的方式进行布局,尽管程序框图中只有连线和结构决定程序执行的顺序,而各个元素的位置并不决定程序执行的顺序。应该尽量避免从右到左的连线方式,使得程序框图显得有结构、有条理、便于理解。   (2)尽量不要创建占用多个屏幕的程序框图。如果一个程序框图过于庞大或复杂,将给调试和运行带来困难。如果程序框图要求较多,建议将不同的功能模块化,创建为不同的子Ⅵ,然后再通过调用子Ⅵ来实现。   (3)观察程序框图中的某些组件是否会被重
[测试测量]
将C程序转换成汇编程序
在keil软件中 方法:(假设当前工程中只有一个C代码文件) 第1步:新建一个工程,添加C文件,编译通过 第2步:右击Keil界面中Project Workspace里的C文件名,选择 Option for 第3步:点击 Generate Assembler SRC File Assemble SRC File 两个三态复选框使它们呈高亮并勾选,点击确定 第4步:将KEIL安装目录下C51/LIB/C51S.LIB(如果是SMALL模式)文件复制到工程目录下 第5步:添加库文件C51S.LIB文件到工程,即右击 Source Group $2,选择 Add Files to Group ,
[单片机]
单片机MSP430程序跑飞原因和解决方式积累
1.中断或主函数中有死循环,现象是程序停在某处。 2.堆栈溢出。现象是程序跑飞。 ***************************************************************************** 3、是否开了中断但是没有用。如: 开了中断: TA0CCTL0 = CCIE;// CCR0 interrupt enabled TA0CCTL1 = CCIE;// CCR1 interrupt enabled//时间周期1使能 TA0CCTL2 = CCIE;// CCR2 interrupt enabled//时间周期2使能 TA0CCTL3= CCIE;// CCR3
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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