当前位置:首页 > 嵌入式 > 嵌入式硬件

为了给前一段时间学习pic16f616型单片机的一个总结和方便大家的交流,我写了这篇关于pic单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见.   2.pic单片机的概述
  
  pic16f616是一款14引脚、8位的cmos单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率.   pic16f616这款单片机供电电压可以在2v到5.5v之间,内部集成了一个rc振荡器,频率可以配置成8mhz或者4mhz,也可以用外部晶振提供时钟.内部集成有ad转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能.三个定时器、pwm发生器等可以由用户编程.下面我来一一介绍关于pic单片机的这些模块和功能.   3.存储器
  
  pic16f616分为程序存储其和数据存储器,程序存储器的大小是2048words,数据存储器的大小是128bytes.   程序存储器中0000h的地址为复位地址,当上电或者看门狗计时器等复位的时候,均会导致pc指针指向复位地址.地址0004h为中断地址,当无论发生什么中断的时候,pc指针就会指向此地址.在地址0005h~07ffh可以移植程序.   数据存储器分为两个部分,分别叫做bank0和bank1,其中bank0的地址范围为:00h-7fh,bank1的地址范围为80h-ffh.一般的寄存器都放在里面.可以通过寄存器statusl里面的rp0位来选择bank0和bank1.   在编程序的时候要注意的是,当你要操作的寄存器在bank0的时候,先要选择bank0(将寄存器status的rp0位置0),然后再对你所要操作的寄存器进行操作,当你要操作的寄存器在bank1的时候,同理先要选择bank1.   如果想要定义一些变量,可以在数据存储器20h开始的地址定义,定义的地址范围为20h-7fh.一般这么多就够用了.   4.pic的输入输出端口
  
  在学习这个部分的时候,曾经遇到过一些问题.pic单片机的引脚不多,大多都是复用引脚,例如ad、io、比较器、外接晶振等等,所以在配置端口的时候,一定要知道每个功能怎样设置才能实现的,在这一小节中,我要讲的是通用io口的设置问题.   pic16f616有12个io口,但是有一个引脚(ra3)只能作为输入引脚用,不能用作输出,另外,a口具有电平变化中断的功能,而c口没有,在设计的时候要注意.   在设置的时候,一般要进行以下几项设置:   (1)设置端口是模拟端口还是数字端口,可以通过寄存器ansel来设置.例如你想用ad,就要将相应的引脚设置为模拟输入端口.   (2)如果你选择的是数字端口,接下来就要设置端口的方向,是输入还是输出(ra3除外),可通过寄存器trisa(a口)或trisc(c口)来设置.   (3)设置端口的输出电平,可以通过寄存器porta(a口)或portc(c口)来设置.   这是对io口的通用设置,但是这不是全部的设置,接下来的设置要看时a口还是c口了.对于a口,它有几个特殊的功能:内部弱上拉、电平变化中断、ra2/int引脚的沿中断.如果想要这些功能,就要对相应的寄存器进行设置.   弱上拉的设置:只有当引脚为输出的时候弱上拉才有效,可以通过寄存器wpua来设置相应引脚的弱上拉,值得一提的如果开启了弱上拉,会有多余的电流浪费, 这样对于低功耗的设计是不可取的,但是如果在进行一些例如键盘电路设计的候,可以开启弱上拉功能,这样就不需要在键盘电路中加上拉电阻了.   电平变化中断的设置:可以通过寄存器ioca来设置,但是首先要将相应引脚设置为数字端口且为输入状态.同时要将寄存器intcon的reie位设置为 1,总中断要允许(置寄存器intcon的gie位),如果设置相应引脚有这个功能,当此引脚电平发生的时候,就会产生一个中断,同时一些中断标志位被置上(intcon的raif位被置1),且总中断gie被置为0.在中断服务程序中,要软件清除raif位和重新置gie位才能继续开启此中断.
  
  ra2/int 脚的沿中断设置:同样首先要将相应引脚设置为数字端口且为输入状态,设置intcon的intf位为1,表示允许int引脚外部中断,寄存器 option_reg的integd位可以设置是上升沿中断还是下降沿中断.当发生中断时,intcon的intf位被置为1,gie被清零,在中断服务程序中,要软件清除intf位和重新置gie位才能继续开启此中断.

  对于c口,不能产生电平变化中断和沿中断.   

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python
关闭
关闭