完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
学习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的芯片来学习,因为功能在强的芯片,和功能在差的芯片,基本的架构和程序编写逻辑是相同的,学好一款,其它大同小异。 |
|
|
|
只有小组成员才能发言,加入小组>>
2562 浏览 0 评论
1159浏览 2评论
762浏览 1评论
515浏览 0评论
272浏览 0评论
453浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 12:38 , Processed in 1.336809 second(s), Total 46, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号