学习PIC单片机的目的是制作433M无线开关,以前学过51和AVR单片机,基础是8位单片机,而PIC单片机入门实验中最典型的是点亮一只LED,这次也以此为例,试着走PIC开发的整个流程吧。 c语言已成为主流,但PIC单片机的汇编指令只有35条,便于记忆。 这次从非主流开始。
一、准备工作
1 .二手市场采购【PIC单片机原理及应用】第4版一本。
2 .淘宝上买PIC下载模拟器【PICkit3】。
3 .从废旧机器上取下一块PIC16F886的28脚单片机,用铜板制作简单的PIC最小系统板,可以下载模拟、按键输入、LED指示灯、AD输入。
4. PIC开发环境MPLAB X IDE V3.6。
5 .如下图所示连接硬件
PIC模拟下载器的针说明如下图所示
一只脚与单片机的一只脚连接; 4脚连接单片机28脚; 5脚连接单片机27脚; 六条腿空着。
二、新项目
三.配置位
PIC单片机的配置位很重要,相当于AVR单片机的保险丝位。 以下是对官方文档配置位的说明,如下图所示
由于最小系统板上没有外置石英振荡器,因此选择使用内部石英振荡器,并关闭看门狗。 另一个是所谓LVP设定为OFF。 否则,下载后就不工作了。 在以下粘贴设定方法
四.编写程序
这里有几点需要注意
1 .使用的IO端口是否具有上拉电阻功能。 因为也有没有的IO端口,所以在电路设计时如果需要的话,加上上拉电阻
2 .操作相应寄存器时,首先需要选择该寄存器所在的bank,设定是通过状态寄存器【STATUS】的RP0和RP1位进行控制,还是通过IRP (间接寻址)进行选择。
以下是控制LED秒间隔闪烁的程序
------------- -请参阅
#include'p16f886.inc '
; CONFIG1
; __config0x2FE4
__CONFIG _CONFIG1,_ fosc _ intrc _ no clkout _ wdte _ off _ pwrte _ on _ mclre _ on _ CP _ off _ CPD _ off
; CONFIG2
; __config0x3FFF
__CONFIG _CONFIG2,_BOR4V_BOR40V _WRT_OFF
; 使用配置位生成器在此插入配置代码
RES_VECT CODE0x0000; 处理器复位向量
GOTO START; 进入程序的开始
; 在此添加中断进行使用时
main _ Prog代码; 让连接器配置主程序
开始BSF状态,RP0; 选择体1
BSF OSCCON,SCS
MOVLW H'EF '; 向TRISC写入0x0F
movwf三桅帆船
BCf状态,RP0; 回到体0
LOOP BCF PORTC,RC4; 清除PORTC的RC4位
CALL DELAY_1S; 调用延迟1秒子程序
BSF PORTC、RC4; 请担任PORTC的RC4职位
CALL DELAY_1S
呼叫环路; 循环执行
; ------------- -请参阅
; 延迟1S子程序
; ------------- -请参阅
DELAY_1S MOVLW H'06 '; 在20H中写入0x06
MOVWF 20H
LOOP1 MOVLW H'EB '; 向21H写入0xEB
MOVWF 21H
LOOP2 MOVLW H'EC '; 向22H写入0xEC
MOVWF 22H
LOOP3 DECFSZ 22H; 2h减1,否则继续循环,0则跳
GOTO LOOP3
DECFSZ 21H; 21H减1,否则继续循环,0则跳
GOTO LOOP2
DECFSZ 20H; 20H减少1,如果不是0则继续循环,如果是0则跳
GOTO LOOP1
返回; 子程序返回
结束
下图为PIC16F886特殊功能寄存器,特殊功能寄存器因机型而异,需要确认芯片数据簿
总结:学习单片机不仅需要时间,还需要资金的投入。 你应该好好控制资金和时间的投入。 你必须充满自信。 我在进入PIC的过程中遇到了很多问题,有了想买现成的开发板的冲动。 后来问题解决了,学到了很多东西。 开发板是现成的,但对硬件开发相当不利。 技术应该多试一下。 其他人的理论通过实验验证了正确性,技术更是关于单片机的选择,可以选择你手上的任何PIC的芯片来学习。 功能强的芯片和功能差的芯片,基本体系结构和程序编制逻辑是一样的,即使学好一个,其他也差不多。