学习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仿真下载器的引脚说明如下图

1脚连接到单片机的1脚;4脚连接到单片机的28脚;5脚连接到单片机的27脚;6脚空。

二、新建项目









三、配置位
PIC单片机配置位很重要,相当于AVR单片机的熔丝位,以下是官方文档对于配置位的说明,如下图

因为最小系统板没有外接晶振,所以要选择使用内部晶振,看门狗也关闭,还有一个是LVP这个要设置为OFF,否则下载后不运行,下面贴设置方法



四、编写程序
这里有几点需要注意的
1. 使用的IO口是否有上拉电阻功能,因为有的IO口没有,在设计电路时需要的话就要加上拉电阻
2. 操作相应的寄存器时可能需要先选择该寄存器所在的存储体,设置由状态寄存器【STATUS】的RP0和RP1位控制,或IRP(间接寻址)来进行选择。

以下是控制LED间隔1秒闪烁的程序
---------------------------------------------------------------------------------------------------------------------------------
#include"p16f886.inc"

; CONFIG1
;__config 0x2FE4
__CONFIG _CONFIG1, _FOSC_INTRC_NOCLKOUT &_WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _CPD_OFF &_BOREN_ON & _IESO_ON & _FCMEN_ON & _LVP_OFF
; CONFIG2
;__config 0x3FFF
__CONFIG _CONFIG2, _BOR4V_BOR40V &_WRT_OFF
; 使用配置位生成器在这里插入配置代码

RES_VECT CODE 0x0000 ; 处理器复位向量
GOTO START ; 转到程序的开始

; 在这里添加中断如果使用

MAIN_PROGCODE ; 让连接器放置主程序

START BSF STATUS,RP0 ;选择体1
BSF OSCCON,SCS
MOVLW H'EF' ;向TRISC写入0x0F
MOVWF TRISC
BCF STATUS,RP0 ;返回体0
LOOP BCF PORTC,RC4 ;将PORTC的RC4位清零
CALL DELAY_1S ;调用延时1秒子程序
BSF PORTC,RC4 ;将PORTC的RC4位置位
CALL DELAY_1S
CALL LOOP ;循环执行

;-------------------------------------------------------------------------------
;延时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 ;22H自减一,不为0则继续循环,为0则间跳
GOTO LOOP3
DECFSZ 21H ;21H自减一,不为0则继续循环,为0则间跳
GOTO LOOP2
DECFSZ 20H ;20H自减一,不为0则继续循环,为0则间跳
GOTO LOOP1

RETURN ;子程序返回

END

下图是PIC16F886特殊功能寄存器,每个型号的特殊功能寄存器不太一样,需要查看芯片数据手册


总结:学单片机,不只需要时间,还需要资金的投入,应该控制好资金和时间的投入,信心要满满的,我入门PIC的过程中遇到很多问题,有想买个现成的开发板的冲动,后来问题解决了,也学到了不少,开发板虽然是现成的,但是对于硬件开发相当不利,技术应该更多的去尝试,别人的理论要通过实验来验证正确性,技术更是积累,时间久了,自然感到懂得多了,开发项目才能得心应手。关于单片机的选择,可以选择你手上拥有的任何一款PIC的芯片来学习,因为功能在强的芯片,和功能在差的芯片,基本的架构和程序编写逻辑是相同的,学好一款,其它大同小异。

PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886相关推荐

  1. python入门小项目-新手学Python必看的几个练手小项目,轻松不枯燥哦!

    Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看 ...

  2. PIC单片机入门教程(二)—— 安装集成开发环境(MPLAB X IDE)

    PIC单片机入门教程(二)-- 安装集成开发环境(MPLAB X IDE) 教程中使用的电脑运行Windows 10 专业版 64位系统 1.下载 MPLAB X IDE v4.05 历史版本:htt ...

  3. 学人工智能要看什么书?AI入门到进阶10本必看书

    学习人工智能可以从多个方面入手,从基础到进阶,不同的书籍可以帮助你建立不同的技能和知识体系.以下是我推荐的10本必看书: 学人工智能要看什么书?AI入门到进阶10本必看书 <Python编程从入 ...

  4. 学人工智能必看!具体职业细分

    学人工智能必看!具体职业细分 未来是人工智能的时代,这已经是不置可否的事实,下面我为大家介绍一下人工智能可以发展的方向,可能对大家未来的就业会有所帮助!! 1.金融预测 根据普华永道2017年的一份报 ...

  5. 【PMP考试扫盲】超详细的PMP项目管理入门基础知识,考证必看

    我今年 6 月刚考过 PMP,发现很多小伙伴都对 PMP 还不了解,这篇文章就是对 PMP 基础知识的一个全面解答,文章有点长,先给大家上个目录,方便大家直接查看对应内容~ 目录 [PMP考试扫盲]超 ...

  6. 我用python10年后,我发现学python必看这三本书!

    非常喜欢python 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建.web,到数据可视 ...

  7. 我用python10年后,我发现学python必看这三本书! 1

    非常喜欢python 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习! 它几乎可以做任何事,从简单的脚本创建.web,到数据可视 ...

  8. 网站建设十大忠告,新手建站必看

    网站建设十大忠告,新手建站必看 网站建设这条路,每个老鸟都是从什么都不懂的小白逐渐成长起来的.人人都可能犯过很多过后回想起来感叹"我真是蠢爆了"的错事.在前行的道路上,多听取前人的 ...

  9. 什么是数据库?数据库的作用想学数据库必看 (1)

    1.DDL (Data Definition Language) 数据定义语言 数据定义语言 , 用来定义数据库对象:库 丶 表 丶 列等; CREATE 丶 ALTER 丶 DROP2.DML (D ...

最新文章

  1. Quasar Akka Vertx Norbert 比较
  2. 又一次的Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
  3. python开发config层_Python全栈开发:configparser模块
  4. Android开发技术周报 Issue#101
  5. 设计模式之桥接模式(Java语言描述)
  6. 兼容多种浏览器“复制到剪贴板”的解决方案
  7. 全国计算机一级模拟考试电脑版,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
  8. matlab 回调函数,在Matlab中将实际值传递给回调函数
  9. windows10 2004补丁包直接升级20H2
  10. 关于ResourceBundle国际化的一些思考
  11. c语言指数公式_c语言指数函数
  12. 7.2判断是否手机端进行访问页面
  13. 陌上花开缓缓归(转)
  14. Android怎么自定义充电铃声,充电提示音怎么设置
  15. 登录界面与SQL数据库连接
  16. 点评国内SNS网站-转帖
  17. Java个人网页设计实验报告_web实验报告.doc
  18. 应广单片机入门之_按键点灯
  19. Json diff 定制化需求
  20. 浪潮英信服务器虚拟化,浪潮英信服务器NX5440M4

热门文章

  1. IOS(iPad、iPhone)删除已下载系统更新
  2. 数据链路层 (一)------ 计算机网络(三)
  3. 为什么狗狗听到铃声会叫
  4. Deep Learning for 3D Point Clouds: A Survey - 3D点云的深度学习:一项调查 (IEEE TPAMI 2020)
  5. 第四次作业:“师路南通网站”用户体验分析
  6. python小程序短信发送助手
  7. 2020 我的计算机保研历程
  8. 高德地图开发:英文地图的实现方式
  9. Iphone IPA软件制作教程
  10. 登录网页无法连接服务器,"无法连接到服务器,用户xxx登陆失败" 解决办法