pic汇编实例Word格式文档下载.docx

上传人:b****4 文档编号:15978578 上传时间:2022-11-17 格式:DOCX 页数:22 大小:28.42KB
下载 相关 举报
pic汇编实例Word格式文档下载.docx_第1页
第1页 / 共22页
pic汇编实例Word格式文档下载.docx_第2页
第2页 / 共22页
pic汇编实例Word格式文档下载.docx_第3页
第3页 / 共22页
pic汇编实例Word格式文档下载.docx_第4页
第4页 / 共22页
pic汇编实例Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

pic汇编实例Word格式文档下载.docx

《pic汇编实例Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《pic汇编实例Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

pic汇编实例Word格式文档下载.docx

portc 

7h 

定义端口C的数据寄存器地址

trisc 

87h 

定义端口C的方向控制寄存器地址

flag 

25h 

定义一个控制左移/右移的标志寄存器

***********************************************************

org 

000h 

定义程序存放区域的起始地址

nop 

放置一条ICD必须的空操用指令

bsf 

status,5 

设置文件寄存器的体1

movlw 

00h 

对端口C的方向控制码00H先送W

movwf 

trisc 

再由W转移到方向控制寄存器

bcf 

恢复到文件寄存器体0

01h 

将00000001B先送W

portc 

再由W转移到数据寄存器

flag,0 

将左右移标志位置1,首先进行左移LED

status,0 

先清除C标志位

loop 

btfss 

测试进位/借位位,是1则修改标志

goto 

loop1 

是0则不修改标志

comf 

flag,1 

FLAG的BIT0作为标志位,把它取反

loop1 

判断标志位,是1则跳到循环左移

loop2 

是0则跳到循环右移

rlf 

portc,0 

循环左移端口C数据寄存器,结果送W

将结果再送回端口C的数据寄存器

loop3 

跳过下面两条指令

loop2 

rrf 

循环右移端口C数据寄存器,结果送回W

将结果再送回端口C的数据寄存器 

loop3 

call 

delay 

调用廷时子程序

loop 

返回

-------------------------廷时子程序----------------------------

delay 

子程序名,也是子程序入口地址

0ffh 

将外层循环参数值FFH经过W

20h 

送入用作外循环变量的20H单元

lp0 

movlw 

将内层循环参数值FFH经过W

21h 

送入用作内循环变量的21H单元

lp1 

decfsz 

21h,1 

变量21H内容递减,若为0跳跃

lp1 

跳转到LP1处

decfsz 

20h,1 

变量20H内容递减,若为0跳跃

lp0 

跳跃到LP0处

return 

返回主程序

end 

源程序结束

****************************************************************

 

进入该实战演练的工序流程如下:

1.软硬件的安装:

按照本说明书前面讲的”MPLAB-ICD的安装和使用”一节内介绍的方法操作即可.

2.创建源文件和编辑源文件;

在此介绍一种不同于前面讲的创建源文件的方法,用Windows附件中的”记事本”

这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的

分号”;

”必须用西文半角输入;

二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.

3.打开MPLAB集成开发环境:

首先在WINDOWS环境下,选用开始>

程序>

MicrochipMPLAB>

MPLAB命令,启动MPLAB

并进入MPLAB的桌面.

4.创建项目:

选用菜单File>

New或Project>

NewProject,在事先建立的一个专用子目录下创建一个新项目,将

用记事本创建的源文件加入到该项目中.

5.建立项目中的目标文件:

选择菜单Project>

BuildAll(项目>

建立所有文件),MPLAB将自动调用MPASM将项目

文件管理下的源文件(.asm)汇编成十六进制的目标文件(.hex).

6.ICD参数设置:

通过菜单命令Project>

EditProject或者Option>

DevelopmentMode,将开发模式设置为

”MPLABICDDebugger”,点击OK按钮,打开ICD的工作窗口,在调试阶段,可以按照说明书图2-10设置各项,但需注意

OSCILLATOR应设置为XT方式,尤其需要说明的是,选中“EnableDebugMode”(使能调试模式)选项,在向目

标单片机烧写机器码程序时,会将调试临控程序同时写入单片机的指定程序存储器区域,然后才允许用ICD方式调试。

7.电路设置:

将演示板的S1全部拔到ON,S4全部拔到OFF,S13的第5、第6、第7全部拔到OFF,LCD不要插在演示板上,

以使端口C只与8只发光二极管接通;

将用于选择频率的插针跳线插到”XTOSC”位置上.

8.向目标单片机烧写目标程序:

用户在点击功能按钮”Program”向目标单片机烧写机器码程序时,会等待一段时间,

并且在条状的状态信息栏中,出现提示信息。

有一点需要引起注意,就是PIC16F87X单片机的FLASH程序存储器的擦写

周期是有限的,大约为1000次,应尽量节省它的使用寿命。

9.运行和调试用户程序和用户电路:

在各项参数设置好后,将ICD的工作窗口最小化,利用前面讲的”运行及调试”中介

绍的几种方法进行调试.当用自动单步方式调试时,建议临时禁止廷时子程序发挥作用,具体的方法是,可在CALLDELAY指

令前添加一个分号,并且重新汇编一次.为了学习目的,在调试过程中可以人为地加入一些软件漏洞(BUG)或硬件故障,来模

仿单片机端口引脚的片内或片外故障.

10.定型烧写目标单片机;

经过多次重复上述步骤的反复修改和调试,使得程序和电路在联机状态完全正常,这时可以进行

定型烧写,即将ICD窗口中的”EnableDebugMode”(使能调试模式)选项消除,不再将调试临控程序写入单片机中.

11.独立运行验收:

上一步中的烧写过程完成后,即可将ICD模块和ICD仿真头(或演示板)之间的6芯电缆断开,让单片机在

演示板独立运行,观察实际效果.

MCD1实战二:

《单键触发8位二进制累加计数器》

程序文件名为"

MCD-LED2.ASM"

该程序的目的是让大家熟悉输入、输出端口的使用

该程序的功能是把演示板当做一个按键计数器。

刚刚接通电源时,8只发光二极管都不亮。

表示计数器初值为0,当按下开关S3(RB0)时,计数器的值加1,发光二极管D3点亮,表示值1,然后松开

按钮;

再次按下开关S3(RB0)时,计数器的值又加1,发光二极管D4点亮,表示值2,依次类推,反复循环。

程序清单:

*************************************************

portb 

6h 

定义端口B的数据寄存器地址

trisb 

86h 

定义端口B的方向控制寄存器地址

data1 

定义一个廷时变量寄存器

data2 

定义另一个廷时变量寄存器

n1 

d'

13'

定义一个外层循环廷时常数

n2 

定义一个内层廷时常数

rp0 

5h 

定义状态寄存器的页选位RP0

org000h 

放置一条ICD必须的空操作指令

bsfstatus,rp0 

设置文件寄存器体1

movlw00h 

将端口C的方向控制码00H先送W

movwftrisc 

再转到方向寄存器,将其设置为输出

movlw0ffh 

同理,将端口B设置为输入

movwftrisb 

bcfstatus,rp0 

送计器初值00H到RC口显示

movwfportc 

check 

btfscportb,0 

测试S3按下否?

是!

跳过下条指令

gotocheck 

否!

则循环检测

calldelay 

调用廷时子程序,消除按钮抖动的影响

btfscportb,0 

再次测试S3按下否?

则循不检测

incfportc,1 

端口C的数据寄存器加1,并送LED显示

check1 

btfssportb,0 

测试S3断开否?

gotocheck1 

btfssportb,0 

再次测试S3断开否?

*************10MS廷时子程序************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1