MIPS架构下PIC单片机的UART通信

发布者:牟牟的侬最新更新时间:2011-11-22 关键字:MIPS架构  PIC单片机  UART通信 手机看文章 扫描二维码
随时随地手机看文章

1 PIC32系列单片机简介
    PIC32系列单片机是Microchip Technology Inc.(美国微芯科技公司)推出的高性能32位单片机,它是以MIPS32架构为基础设计的。目前推出的PIC32MX3XX分支为通用型,PIC32MX4XX分支带有USB功能,PIC32MX5XX分支带有USB和CAN功能,PIC32MX6XX分支带有USB和Ethernet功能,PICMX7XX分支则带有USB、CAN和Ethernet功能。PIC32系列单片机采用哈佛结构,带有5级流水线,工作频率最高80 MHz;具有高效指令架构、高性能硬件乘法器/累加器及多至8组32个内核寄存器,可实现1.56一款DMIPS/MHz的运行速度。此外,PIC32系统具有指令和ROM数据预取缓冲器的64字节高速缓存,128位宽的闪存,可缩短单个指令的取指时间,支持MIPSl6e 16位指令集构架,可最多减少40%的代码。
    PIC32系列单片机包括了闪存范围从32 KB到512 KB的可扩展器件,片上RAM从8 KB到128 KB,引脚与64/100引脚的16位单片机PIC24FJ-XXXGA系列兼容,新推出的PIC32MX5XX/6XX/7XX提供XBGA的封装。另外,PIC32系列单片机带有丰富的外设资源——5个定时器、16路通道的10位A/D转换器及通信接口,即SPI、I2C、UART和PMP,同时PIC32还有集成的CRC计算功能和基于模式的传输终端选择功能的DMA控制器。此外,PIC32MX5/6/7系列包括10/100 Mbps以太网、CAN2.0b控制器、USB主设备/从设备和OTG。
    PIC32系列单片机不仅比PIC 8位、16位单片机速度更快、性能更强,同时相对于ARM系列的32位单片机也具有一定的优势。虽然Microc-hip能选择的MISP 4K最高时钟频率只有80 MHz,但是由于MIPS内核简洁,多家处理器评估机构确认PIC32的处理能力总体性能更高,而且PI-C32的指令多为单周期指令,比多周期指令执行速度更迅捷。PIC32系列单片机多达128 KB的RAM,使其在数据处理上更具优。Microchip微公司还有一个非常独特的优势,就是该公司所有8、16和32位的器件都是充分兼容的,所有的这些全系列的产品使用的都是同样的开发工具,单一的开发环境,软件库也是全面兼容的,这对于客户更为方便。此外,Ashling、Green Hills及Hi-Tech提供了完整工具链支持,CM-X、Exp-ress Logic等提供RTOS支持,EasyGUI、Segger、RamTeX及Micrium等提供绘图工具支持。值得一提的是,微芯公司为开发人员准备了入门工具包,示例源文件,同时免费提供了如USB、TCP/IP协议栈,以及Graphics和FATl6文件系统开发的中间件模块。PIC32的MPLAB C32编译器包括了16位Microchip MCU兼容的软件外设函数库,以更加方便快捷地使用外没模块。PIC32系列单片机的结构框图如图1所示。


    Microchip集成开发工具支持所有PIC32型号单片机,包括MPLAB集成开发环境(IDE)、MPLAB C32 C编译器、MPLAB REAL ICE仿真系统、MPLAB ICD2在线调试器及Explore 16开发板等。PIC32系列单片机要求MAPLAB IDE版本要在8.0以上,现最新版本为8.43,MAPLAB IDE软件可以从微芯公司官方网站www.microchip.com免费下载。MPLAB ICD2在线调试器是一款低价位的PIC开发工具,可设置一个1次断点,调试能力较弱。MPLAB ICD3保留了与Microchip RJ-11接口的向后兼容,可轻松连接目标板,迅速进行器件编程;可多达1000个软件断点,2~5.5 V工作电压;可支持最低2.0 V的低电压调试,具有高速的编程能力,比MPLAB ICD2的编程速度快5~15倍。MPLAB REALICE仿真系统能够支持标准和先进的调试功能,如复杂断点、应用代码的追踪和数据采集、代码执行计时及实时变量监控。新推出的MPLAB PM3通用器件编程器支持全部的PIC器件产品及最新dsPIC30系列的编程。但是MPLAB REAL ICE,ICD3和PM3价格都比较昂贵,ICD2尽管功能有限,但价格便宜,可实现PIC32系列的编程仿真。关于具体PIC32各型号单片机所支持的编程器、仿真器、编译器以及各版本的IDE所支持的PIC系列型号可以在MPLAB IDE(8.0版本以上)的Configure『Select device…进行查看。[page]

2 P1032的UART串口编程
    下面以UART串口模块为例来叙述PIC32的开发过程,电路原理如图2所示。考虑到MAPLAB ICD3和MPLAB REAL ICE仿真器的价格较贵,采用了USB口的MPLAB ICD2(MPLAB IDE支持USB口的MPLABICD2,不支持串口的ICD2)。本实验采用MAPLAB IDE8.33集成开发环境,选择PIC32MX32-0F128H。


    在PIC32编程中,需要对配置字进行配置(主要是对系统时钟、外设时钟等进行配置)。这一工作可在程序中定义,也可以通过MPLAB IDE中的菜单Configure |Configuration Bits…对配置字进行设置;同时可通过Project | Select Language Toolsuite选择编译器,通过Configure | Select Device选择芯片型号。由于MPLAB IDE8.33集成开发环境程序只是对以前版本的升级改进,因此使用过MAPIAB IDE开发环境的开发人员可方便、快速地掌握其使用方法。本实验采用MPLAB C32编译器,程序1为直接使用MPLAB C32编译器中的软件外设函数库进行UART的操作;程序2则是采用读写寄存器对UART进行操作。程序实现上位机发送数据,PIC32单片机收到数据后返回上位机。

关键字:MIPS架构  PIC单片机  UART通信 引用地址:MIPS架构下PIC单片机的UART通信

上一篇:Microchip扩展独立实时时钟/日历器件系列
下一篇:PIC单片机AD转换数据存储及串口效率

推荐阅读最新更新时间:2024-03-16 12:46

pic单片机的模拟I2C通信
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Copyright (C) 1997 by Innovatus ; This code may be distributed and used freely provided that this ; copyright notice stays intact and that any modifications are noted. ; For more information about Innovatus: http://www.innovatus.com
[单片机]
基于AVR的串口与PC机通信代码(uart8位数据)
/************************************ AVR时钟:8.00MHz *波特率9600(51)8位数据,1位停止,当波特率设置为19200时,UBRR=25,4800=103 *注:波特率设置9600最佳,别的数据不稳定,不同波特率对应的UBRR值参考手册 *PC机向开发板发送一个字符,开发板将其大写字母回写给PC机 ***********************************/ #include iom16v.h #include macros.h void USART_Init( unsigned int baud ) { /* 设置波特率,baud的值查数据手
[单片机]
PIC单片机PICC编程实现延时函数及循环体优化
  很多人说C中不能精确控制延时时间,不能象汇编那样直观。其实不然,对延时函数深入了解一下就能设计出一个理想的框价出来。      一般的我们都用for(x=100;一x;){;}      此句等同与x=100;while(--x){;};或州x=0:x 100;x++){;)来写一个延时函数。      在这里要特别注意:X=100,并不表示只运行100个指令时间就跳出循环。      可以看看编译后的汇编:   从代码可以看出总的指令是是303个,其公式是8+3*(X—l)。注意其中循环 周期 是X一1是99个。      这里总结的是x为char类型的循环体,当x为int时候,其中受X值的影响较大。      建议设
[单片机]
用<font color='red'>PIC单片机</font>PICC编程实现延时函数及循环体优化
pic单片机4x4键盘扫描程序
//程序中没有做按键去抖,也没有考虑多个键同时按下的情况。 //最低两位 数码管 显示相应的按键(如按下S10,在显示10;按下S25,则显示25) //无按键按下的时候显示FF //按键跟按键的扫描结果满足如下关系: // 按键 扫描结果(result) 按键 扫描结果 // K10 0XE7 K18 0XB7 // K11 0XEB K19 0XBB // K12 0XED K20 0XBD // K13 0XEE K21 0XBE // K14 0XD7
[单片机]
SC1621摇控器-PIC单片机解码程序(已测试OK)
;*APPLICATION NOTE E6000 ICEXPLORER ****************** ;* Title: ; ;SC6121的遥控器发射码依次为:同步头(引导码)+32位数据码 ; ;(用户码低8位+用户码高8位+键码+键码的反码) ; ;引导码是由9MS的高电平加4.5MS的低电平构成, ; ;我们接收到的刚好反相为9MS的低电平加4.5MS的高电平. ; ;数据码'0'是由560US的高电平加560US的低电平构成 ; ;接收时反相为560US的低电平加560US的高电平构成=1.125mS ; ;数据码'1
[单片机]
PIC单片机之16C84单片机介绍(一)
PIC16C84是8位CMOS EEPROM单片机。它有高性能的类似于RISC 的指令,共有35条单字节的指令,所有的指令除程序分支指令需要两个指令周期外,都只需要一个指令周期。当主振频率为10MHZ时一个指令周期为400ns。程序指令的宽度为14位,在芯片内有1K×14的EEPROM程序存储器 。   数据的宽度为8位,在芯片内有36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器。8级深度的硬堆栈。具有直接、间接、相对寻址方式。有4个中断源;外部RBO/INT引脚;TMRO计时器溢出,PORTB 7: 4 引脚上信号的改变;数据写入EEPROM完成。   数据存储器的擦/写可达1000000次,数据的保持大
[模拟电子]
PIC单片机入门_MPLAB 集成开发环境和 MPASM编译器
1.七大汇编指令 1.1 #INCLUDE 语法: #include “文件名.*” 或 文件名.* 或无括号 或 引号 示例: #INCLUDE p12f675.inc 1.2 #DEFINE 用于定义变量和分配初始值;用户友好的名字被分配给常数,寄存器 ,管脚名等. 使程序易读; 例: #DEFINE MYCONSTANT H’5A’ 1.3 _ _CONFIG 设置配置位 1.4 ORG 语法: ORG address 例: ORG 0x0000 描述: 定义起始地址(0x0000). 1.5 EQU 语法: label equ expr 例: Seconds EQU 0x24 描述: 定义
[单片机]
<font color='red'>PIC单片机</font>入门_MPLAB 集成开发环境和 MPASM编译器
基于PIC单片机的SPWM控制技术
引言 在UPS等电力电子设备中,控制方法是核心技术。早期的控制方法使得输出为矩形波,谐波含量较高,滤波困难。SPWM技术较好地克服了这些缺点。目前SPWM的产生方法很多,汇总如下。 1)利用分立元件,采用模拟、数字混和电路生成SPWM波。此方法电路复杂,实现困难且不易改进; 2)由SPWM专用芯片SA828系列与微处理器直接连接生成SPWM波,SA828是由规则采样法产生SPWM波的,相对谐波较大且无法实现闭环控制; 3)利用CPLD(复杂可编程逻辑器件)设计,实现数字式SPWM发生器; 4)基于单片机实现SPWM,此方法控制电路简单可靠,利用软件产生SPWM波,减轻了对硬件的要求,且成本低,
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved