PIC学习记录(自动保存的)

上传人:cn****1 文档编号:489941772 上传时间:2023-05-12 格式:DOCX 页数:13 大小:58.86KB
返回 下载 相关 举报
PIC学习记录(自动保存的)_第1页
第1页 / 共13页
PIC学习记录(自动保存的)_第2页
第2页 / 共13页
PIC学习记录(自动保存的)_第3页
第3页 / 共13页
PIC学习记录(自动保存的)_第4页
第4页 / 共13页
PIC学习记录(自动保存的)_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《PIC学习记录(自动保存的)》由会员分享,可在线阅读,更多相关《PIC学习记录(自动保存的)(13页珍藏版)》请在金锄头文库上搜索。

1、PIC 器件具有几个包含配置位或熔丝的存储单元。这些位指定基本的器件操作,例如振荡器模式、看门狗定时器、编程模式和代码保护。未正确设置这些位可能导致代码失败或器件无法运行。对于 PIC18 器件,这些位可以使用配置 pragma 伪指令进行设置。(在未来版本中,也会对于其他 8 位器件引入 pragma 伪指令。)该 pragma 伪指令具有以下形式。#pragma config setting = state|value#pragma config register = value其中, setting 是配置设置描述符 (如 WDT), state 是所需状态的文本描述 (如OFF)。 v

2、alue 字段是一个可以优先用于描述符的数值。* PIC16F1x端口控制实验* 芯片型号:PIC16F1936* 主要特性:增强性中档8位CPU,8K Flash,512字节RAM,最高速度8MIPS,11通道10位 AD,2个比较器,96段LCD控制器,16通道电容触摸模块,3个增强性PWM/捕 获模块*/#include /* 配置芯片的工作方式,相当于其他单片机的熔丝位 */ CONFIG1#pragma config FOSC = INTOSC / 使用内部时钟#pragma config WDTE = OFF / 禁止看门狗#pragma config PWRTE = OFF /

3、PWRT disabled#pragma config MCLRE = ON / MCLR/VPP pin function is MCLR#pragma config CP = OFF / 禁止程序代码保护(debug时要关闭代码保护)#pragma config CPD = OFF / 禁止EEPROM的保护#pragma config BOREN = ON / 使能欠压复位#pragma config CLKOUTEN = OFF / 禁止CLKOUT功能#pragma config IESO = ON / Internal/External Switchover mode is ena

4、bled#pragma config FCMEN = ON / Fail-Safe Clock Monitor is enabled)/ CONFIG2#pragma config WRT = OFF / 禁止代码自编程保护#pragma config VCAPEN = OFF / All VCAP pin functionality is disabled#pragma config PLLEN = OFF / 禁止4x PLL#pragma config STVREN = ON / Stack Overflow or Underflow will cause a / Reset)#prag

5、ma config BORV = LO / 欠压复位电压为低档位(低档位为1.9V,高档位为2.5V)#pragma config LVP = OFF / 高压编程模式/* 定义系统时钟,在延时函数中需要这个定义 */#define _XTAL_FREQ 16000000UL#define Close_LED() LATBbits.LATB4 = 0 / RB4输出低电平#define Open_LED() LATBbits.LATB4 = 1 / RB4输出高电平int main(void) /* 禁止4X PLL,内部16MHz时钟源 */ OSCCON = 0B11111000; /*

6、清除PORTB数据锁存寄存器 */ LATB = 0; /* 设置RB4端口为输出口,注意PIC有点特殊,1为输入0为输出 */ TRISBbits.TRISB4 = 0; /* RB4输出低电平 */ LATBbits.LATB4 = 0; /* 设置RB5端口为输入 */ TRISBbits.TRISB5 = 1; /* RB5设置为数字端口 */ ANSELBbits.ANSB5 = 0; /* 使能RB5内部上拉,作为数字输入端口在设计时要注意并不是所有端口都有内部上 拉的 */ WPUBbits.WPUB5 = 1; /* 等待按键按下 */ while(PORTBbits.RB5

7、= 1) ; while (1) _delay_ms(1000); Open_LED(); _delay_ms(1000); Close_LED(); 器件配置位可以在WindowPic Memory ViewsConfiguration Bits中查询或者直接生成代码。 PIC单片机学习笔记 烽火经典语录PIC单片机指令介绍2009-02-26 20:38:50|分类: 单片机 |标签: |举报 |字号大中小订阅 PIC指令功能分类表类 型助记符操作说明命令说明影响标志位传 送 类 MOVF F,dFd将F寄存器的内容传送到F本身(d=1)或W(d=0)(影响状态位)ZMOVWF FWF将W

8、寄存器的内容传送到F,W内容不变-MOVLW KKW将8位立即数传送到W寄存器- SWAPF F,dF半字节交换dF寄存器的高4位和低4位交换位置后,结果存入F本身(d=1)或W(d=0)中-算 术 运 算 类 ADDWF F,dF+WdW寄存器的内容和F寄存器的内容相加,结果存入F(d=1)或W(d=0)中C,DC,Z ADDLW F,dK+WWW寄存器的内容和8位立即数相加,结果存入WC,DC,Z INCF F,dF+1dF寄存器的内容加1后,结果存入W(d=0)或F(d=1)中Z SUBWF F,dF-WdF寄存器的内容减去W寄存器的内容,结果存入W(d=0)或F(d=1)中C,DC,Z

9、SUBLW KK-WW8位立即数减掉W寄存器的内容,结果存入WC,DC,Z DECF F,dF-1dF寄存器的内容减1后,结果存入W(d=0)或F(d=1)中Z逻 辑 运 算 类 ANDWF F,dFWdW寄存器的内容和F寄存器的内容相与,结果存入F(d=1)或W(d=0)中ZANDLW KKWWW寄存器的内容和8位立即数相与,结果存入WZ IORWF F,dFWdW寄存器的内容和F寄存器的内容相或,结果存入F(d=1)或W(d=0)中ZIORLW KKWWW寄存器的内容和8位立即数相或,结果存入WZ XORWF F,dFWdW寄存器的内容和F寄存器的内容相异或,结果存入F(d=1)或W(d=

10、0)中ZXORLW KKWWW寄存器的内容和8位立即数相异或,结果存入WZ COMF F,dF取反dF寄存器的内容取反后,结果存入F(d=1)或W(d=0)中ZCLRF F0F,寄存器复位F寄存器的内容被清为全0ZCLRW -0W,寄存器复位W寄存器的内容被清为全0Z RLF F,dF带C循环左移d将F寄存器带C循环左移,结果存入F本身(d=1)或W(d=0)。C RRF F,dF带C循环右移d将F寄存器带C循环右移,结果存入F本身(d=1)或W(d=0)。C BCF F,B将F中第B位清0将寄存器的第B位清为0- BSF F,B将F中第B位置1将寄存器的第B位置1-程 序 跳 转 类 INC

11、FSZ F,dF+1d,结果若为0则跳一步F寄存器的内容加1后,结果存入F本身(d=1)或W(d=0)。如结果为0则跳过下一条指令,否则顺序执行- DECFSZ F,dF-1d,结果若为0则跳一步F寄存器的内容减1后,结果存入F本身(d=1)或W(d=0)。如结果为0则跳过下一条指令,否则顺序执行- BTFSC F,BF中第B位为0,则跳一步测试F寄存器的第B位。若F(B)=0,则跳过下一条指令,否则顺序执行- BTFSS F,BF中第B位为1,则跳一步测试F寄存器的第B位。若F(B)=1,则跳过下一条指令,否则顺序执行-CALL K调用子程序首先将PC+1推入堆栈,然后将11位常数K送入PC

12、(100),同时将PCLATH(4,3)PC(12,11),从而使PC=子程序入口地址- GOTO K无条件跳转将11位常数K送入PC(100),同时将PCLATH(4,3)PC(12,11),从而使PC=新地址-RETURN -从子程序返回将堆栈顶端单元的内容弹出并送入PC,从而返回主程序断点处-RETLW KW带参数子程序返回将堆栈顶端单元的内容弹出并送入PC,同时8位常数KW,从而带着参数返回主程序断点处-RETFIE -从中断服务子程序返回将堆栈顶端单元的内容弹出并送入PC,从而返回主程序断点处,同时将全局中断使能位GIE置1,从新开放中断-控 制 类SLEEP -进入睡眠方式该指令执行后,单片机进入低功耗睡眠模式,时基电路停振TO,PDCLRWDT -0WDT将WDT寄存器和分配给它的预分频器同时清为全0TO,PDNOP -空操作空操作2、 wri_为写入数据子程序,该子程序从ADDR寄存器确定的地址开始对EEPROM数据区写入(范例从10H开始),每进行一次写操作将使ADDR值加一;写入数据的初始值由VALU寄存器给定(范例值为90H),每进行一次写操作将使VALU值减一;写入规定个数(由WRC_寄存器给定,范例值为0FH)的数值后,结束写入,转至read_。3、 read_为读出数据子程序,该子程序从ADDR寄存器当前值确定的地址开始对EEPROM数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号