为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

弱智的PIC教程之10

2011-10-06 2页 doc 74KB 17阅读

用户头像

is_824057

暂无简介

举报
弱智的PIC教程之10【弱智的PIC教程之10】 【弱智的PIC教程之10】 几条指令与端口方向 本讲陆续解释单片机的指令。先讲解上一讲用到的几条指令。 【W寄存器】 讲解指令之前,我们先来介绍一个最最特殊的寄存器:WREG,简称W寄存器。 W寄存器特殊在哪里呢,我不说,用了你就知道。 W寄存器没有地址,甚至也没有名称(这点不好理解,但用了就知道)。 因为W寄存器最最特殊,我们把除W之外的所有寄存器(通用寄存器和特殊寄存器)全部简称为F寄存器。从这个角度来说,寄存器分两大类:W和F。为什么要强调F寄存器?后面用得上! 【端口方向】 上一讲中,POR...
弱智的PIC教程之10
【弱智的PIC教程之10】 【弱智的PIC教程之10】 几条指令与端口方向 本讲陆续解释单片机的指令。先讲解上一讲用到的几条指令。 【W寄存器】 讲解指令之前,我们先来介绍一个最最特殊的寄存器:WREG,简称W寄存器。 W寄存器特殊在哪里呢,我不说,用了你就知道。 W寄存器没有地址,甚至也没有名称(这点不好理解,但用了就知道)。 因为W寄存器最最特殊,我们把除W之外的所有寄存器(通用寄存器和特殊寄存器)全部简称为F寄存器。从这个角度来说,寄存器分两大类:W和F。为什么要强调F寄存器?后面用得上! 【端口方向】 上一讲中,PORTB是输出方向,输出高/低电平,来控制LED的亮/灭。 在实际应用中,PORTB也可设置为输入方向。例如要判断某个端口是高电平还是低电平,来执行相应的操作。这时该端口就应该设置为输入方向。 因为端口可设置为输出端口,也可设置为输入端口,故端口又称作“输入/输出端口”,简称:“I/O口”(Input/Output端口)。 如何设置端口的方向呢?通过设置TRISB寄存器。TRISB与PORTB相对应。TRISB寄存器也有8个位,分别为TRISB,7、TRISB,6、…、TRISB,1、TRISB,0。 例:我们需要PORTB,7端口设置为输出方向,则将TRISB,7设置为“0”。 例:设置PORTB,6端口为输入方向,则将TRISB,6设置为“1”。 例:上一讲中,PORTB,7~PORTB,0这8个端口全部为输出方向,则需要将TRISB,7 ~ TRISB,0全部设置为“0”,可用如下指令进行设置: MOVLW B’00000000’ MOVWF TRISB 下面介绍几条指令: 【CLRW】将W寄存器清0。 例如,执行前。W寄存器的值是:0X23;执行CLRW指令后,W寄存器的值就是:0X00 CLRW指令后面不用带操作数。 【CLRF】F寄存器清0指令。 例如: CLRF TRISB 将TRISB寄存器全部清0。其效果是将PORTB端口(8个端口)全部设置为输出方向。 【MOVLW】将一个数写入W寄存器。 例: MOVLW 0X35 ;将数值0X35写入到W寄存器。 执行前不管W的值是多少,执行后W=0X35。 【MOVWF】将W寄存器的值写入的F寄存器。 例: MOVWF TRISB ;将W的值写入的TRISB 假设执行前W=0XFF,TRISB=任意值,执行后:TRISB=0XFF,W不改变还是0XFF 【MOVFW】将F寄存器的值写入的W寄存器。 例: CLRW ;将W清0 MOVFW TRISB ;将TRISB的值写入W 第一句:W=0,第二句(假设TRISB=0X10,执行后:W=0X10 【例1】​ 将端口PORTB设置为输出方向,请编写指令。 【方法1】 MOVLW B’00000000’ ;将0X00写入寄存器,相当清空W寄存器 MOVWF TRISB ;将W寄存器的值写入TRISB 【方法2】 CLRW ;将W寄存器清0,即W=0x00 MOVWF TRISB ;将W写入到TRISB,即TRISB=0X00 【方法3】 CLRF TRISB ;清空TRISB,即TRISB=0X00 上述三种方法,都可达到同一个目的,就是使寄存器TRISB=0X00,使得PORTB的8个端口全部设置为输出方向。 【例2】​ 将端口PORTB设置为输入方向,请编写指令 MOVLW 0XFF ;0XFF就是B’11111111’ MOVWF TRISB 【例3】​ 将PORTB高4位端子输出方向,低4位设置为输入方向。 分析:PORTB的高4位是PORTB,7~PORTB,4,输出方向应该设置为0 而PORTB的低4位就是PORTB,3~PORTB,0,输入,设置为“1”。指令如下: MOVLW B’00001111’ MOVWF TRISB 或者写成 MOVLW 0X0F ;0X0F就是B’00001111’ MOVWF TRISB ;TRISB=B’00001111’ 再介绍一条指令: 【GOTO】跳转指令 GOTO LOOP ;程序不再向下顺序运行,而是跳转到LOOP处 ;LOOP是一个程序标号 好了,熟悉上面几条指令后,我们就来分析上一讲的程序代码,如下: ;标号 指令 操作数 ;注释   LIST P=16F628A ;暂不管   INCLUDE P16F628A.INC ;暂不管   ORG 0X00 ;暂不管   BANKSEL TRISB ;暂不管   CLRF TRISB ;将PORTB设置为输出方向   CLRF STATUS ;暂不管 LOOP MOVLW B'00000001' ;将B'00000001'送入W寄存器   MOVWF PORTB ;将W写入PORTB,RB0端口亮   MOVLW B'00000010'     MOVWF PORTB ;RB1输出高电平,对应的LED亮   MOVLW B'00000100'     MOVWF PORTB ;RB2输出高电平,对应的LED亮   MOVLW B'00001000'     MOVWF PORTB ;RB3输出高电平,对应的LED亮   MOVLW B'00010000'     MOVWF PORTB ;RB4输出高电平,对应的LED亮   MOVLW B'00100000'     MOVWF PORTB ;RB5输出高电平,对应的LED亮   MOVLW B'01000000'     MOVWF PORTB ;RB6输出高电平,对应的LED亮   MOVLW B'10000000'     MOVWF PORTB ;RB7输出高电平,对应的LED亮   GOTO LOOP     END   ;跳转到LOOP处,循环执行 PIC16系列单片机的汇编指令大概30多条,我们后续将陆续在实验中穿插讲解各条指令的用法。读者可以到Microchip网站上,去下载相应单片机型号的《数据》。例如,本教程讲到的PIC16F628A型号,可到下面的网址上下载:http://www.microchip.com 在117页第15章中,有关于指令综述的详细资料。读者可自行下载阅读。
/
本文档为【弱智的PIC教程之10】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索