0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PIC18F单片机的入门

454398 来源:网络整理 作者:网络整理 2019-12-06 11:02 次阅读

在编写了很多关于PIC16F系列微控制器的实验教程之后,我想到了继续发展到PIC18F的增强范围的PIC系列微控制器系列PIC18F。尽管PIC16F系列是出色的通用单片机,但仍出现了某些限制,例如,程序和数据存储器有限,堆栈尺寸小以及所有中断源必须共享一个中断向量。其有限的指令集也无法直接支持USBCAN等更高级的外围设备接口。 PIC18F系列的基础是要解决限制PIC16F系列的问题。 PIC18F系列单片机具有更大的指令集,更多的内存,更大的堆栈,更多的外部中断,更高的速度,增强的I/O端口架构以及我们将在接下来的教程中探索的更多功能。我已经决定,我不会像在PIC16F上那样花很多时间在焊接和制作自己的PIC18F微控制器原型板上。我将使用mikroElektronika的PIC板的StartUSB编写这些教程。

mikroElektronika的PIC板的StartUSB

那么PIC的StartUSB是什么?

PIC的StartUSB 是一个小型开发板,具有具有快速USB 2.0支持的PIC18F2550单片机。它具有用于所有MCU引脚的连接垫以及两个用于放置附加组件的附加原型设计区域。该板的最大优点是,该微控制器已使用快速USB引导加载程序进行了预编程,因此无需任何外部编程器。您可以使用mikroBootloader将与应用程序相关的HEX文件从PC传输到PIC的程序存储器。 MikroBootloader是mikroElektronika为其USB HID Bootloader开发的PC应用程序。板载miniUSB连接器振荡器(8.0 MHz晶体),复位电路,电源指示灯LED以及另外两个LED提供了快速启动所需的一切。另外两个LED通过跳线连接到PIC18F2550的RA1和RB1引脚。上图显示了具有所有组件和其他原型制作区域的StartUSB for PIC板。

今天的教程很重要,因为我们将讨论有关PIC板的StartUSB的完整设置,这将使您开始探索PIC18F系列单片机的世界。您需要安装的第一件事是mikroC Pro for PIC,这是由mikroElektronika为PIC12,PIC16和PIC18系列微控制器开发的C编译器。您可以下载该软件的演示版本,该版本将允许您编译最多2 K程序字的程序。安装编译器后,下载mikroBootloader,这是PC的应用程序,可与存储在StartUSB板上PIC18F2550单片机中的Bootloader程序进行通信。可以从以下链接下载用于PIC和mikrobootloader的StartUSB用户指南。

StartUSB板的用户手册提供了该板的电路图以及有关如何将其连接到PC以便使用mikroBootloader下载应用程序HEX文件的说明。在继续前进之前,请先阅读手册中的这些详细信息

用于USB的PIC板的StartUSB电路图,其中两个LED连接到RA1和RB1

使用“ Hello World”测试板

我们将通过一个简单的测试程序开始我们的旅程,该程序将确保一切设置正确且我们将准备使用PIC18F2550进行更高级的实验。该程序将以500 ms的持续时间交替闪烁两个板上LED(连接到RA1和RB1引脚)。在mikroC Pro for PIC中,以项目形式开发应用程序。如果您以前从未使用过mikroC Pro for PIC,那么mikroElektronika的文件“在mikroC Pro for PIC中创建第一个项目”将指导您创建第一个项目。遵循这些步骤时,选择单片机为PIC18F2550,将器件时钟选择为8.0 MHz。在主程序窗口中,键入以下程序。

/*

用于PIC板的StartUSB测试程序

说明:两个板上LED交替闪烁500 ms

MCU:PIC18F2550,外部晶振= 8.0 MHz,PLL的实际时钟= 48.0 MHz

版权@ Rajendra Bhatt

2011年3月29日

*/

//定义LED连接

sbit LED1 at RA1_bit;

sbit LED2 RB1_bit;

void main(){

CMCON = 0x07;//禁用比较器

ADCON1 = 0x0F;//禁用模拟功能

TRISA = 0x00;

TRISB = 0x00;

LED1 = 0;

LED2 = 1;

做{

LED1 =〜LED1;

LED2 =〜LED2;

Delay_ms(500);

} while(1);

}

下载mikroC项目文件

编译程序以获取HEX文件,然后使用mikroBootloader应用程序将其加载到PIC18F2550单片机中。请按照StartUSB板用户手册中提到的说明进行操作。加载程序后,请重置板并等待5秒钟,直到微控制器退出引导加载程序模式并开始执行新加载的应用程序。您将看到两个板载LED交替闪烁。等一下,它们被编程为以0.5秒的持续时间闪烁,但是您会看到它们的运行速度快得多。看来微控制器时钟比所应用的外部振荡器(8.0 MHz)快得多。由于存在内置的PLL电路,因此在PIC18F2550中是可能的。

用于PIC板的StartUSB上的LED闪烁

PIC18F2550板上的USB模块需要48.0 MHz的时钟才能全速运行。该时钟由内置96 MHz PLL模块通过将其输出除以2得到。PLL本身由来自主时钟源的4 MHz输入信号驱动,在本例中为8.0 MHz晶体。因此,可以通过使用PLL预分频器值2从8.0 MHz的源中获得驱动PLL所需的4.0 MHz。然后,将PLL(96 MHz)的输出除以2,以获得USB操作所需的48 MHz时钟。微控制器内核和其他外设也可以使用此时钟速度,但不是必须的。还有其他选项可以满足USB模块的时钟要求,并且仍然为从主振荡器源为其余器件提供时钟提供了灵活性。这些详细信息可在PIC18F2550的数据手册中找到。但是,对于用于PIC板的StartUSB,由于需要USB自举程序,USB模块和微控制器内核,两者都使用源自PLL的48.0 MHz时钟。不幸的是,引导加载程序不允许用户更改时钟设置,因此,它始终为48.0 MHz,除非您先擦除引导加载程序,然后使用外部编程器修改时钟设置的配置寄存器。因此,板载PIC18F2550单片机实际上以48.0 MHz而不是8.0 MHz运行。这就是LED闪烁快得多的原因。为了解决这个问题,请从mikroC的“项目”菜单中打开“编辑项目”窗口,并确保时钟设置与下面显示的匹配。

正确的时钟下一步,保存项目,再次编译,然后将HEX文件重新加载到PIC18F2550中。现在,您将看到LED以正确的速率闪烁。因此,您已经准备好使用PIC18F微控制器。请继续关注有关PIC18F的更多高级实验教程。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632691
  • PIC18F
    +关注

    关注

    0

    文章

    37

    浏览量

    17835
收藏 人收藏

    评论

    相关推荐

    EN8F509直接兼容替代PIC12F508,PIC12F509微芯单片机芯片#单片机

    单片机
    szenroo
    发布于 :2024年10月19日 11:29:23

    EN8F202直接替代微芯PIC10F200,PIC10F202,PIC10F204,PIC10F206单片机

    单片机
    szenroo
    发布于 :2024年10月14日 09:48:14

    PICmicro®中档单片机系列参考手册

    PIC单片机中文资料
    发表于 10-09 10:44 1次下载

    PIC单片机的优势和不足之处

    PIC单片机系列,作为美国微芯公司的杰出产品,凭借其卓越的性能和广泛的应用领域,在单片机市场上占据了举足轻重的地位。该系列分为基本级、中级和高级三个级别,旨在满足不同层次的应用需求。 PIC
    的头像 发表于 09-25 17:22 295次阅读

    32位M0核普冉单片机 PY32F003开发板20脚 快速入门 易于上手

    种类齐全,5个16bit定时器,18 个可用 I/O,一路12位ADC,UART 接口、I2C 接口和 SPI 接口都有。作为一款入门款MCU来说,性价比很高,FLASH和SRAM远远超过8位单片机
    的头像 发表于 09-12 16:28 378次阅读
    32位M0核普冉<b class='flag-5'>单片机</b> PY32<b class='flag-5'>F</b>003开发板20脚 快速<b class='flag-5'>入门</b> 易于上手

    十天学会单片机可能吗?单片机入门需要多久?

    一下,单片机入门其实并没有想象中那么难。对于那些有一定编程基础,尤其是有C语言基础的学习者来说,入门的过程可能仅需几天。例如,有人可能在三天内就掌握了单片机的基础
    的头像 发表于 09-05 08:00 813次阅读
    十天学会<b class='flag-5'>单片机</b>可能吗?<b class='flag-5'>单片机</b><b class='flag-5'>入门</b>需要多久?

    EN8F1823E完全替代PIC16F883,PIC16F1883,PIC16F1936,PIC16F1937

    PIC
    捷尚微辉芒微MCU单片机
    发布于 :2024年07月30日 16:59:15

    容嬷嬷语录:EN8F1821完全替代PIC12F1822、PIC16F15313微芯单片机!#单片机

    单片机
    捷尚微辉芒微MCU单片机
    发布于 :2024年07月09日 16:43:38

    单片机是什么?单片机编程如何入门

    单片机其实是一种很早的叫法了,最开始我们的前辈叫单板机或者叫单片机,因为那个时候单片机的处理能力还没有很强,现在我们所用的基本都是微型处理单元,也叫为控制器也称之为MCU
    的头像 发表于 03-28 08:03 1730次阅读
    <b class='flag-5'>单片机</b>是什么?<b class='flag-5'>单片机</b>编程如何<b class='flag-5'>入门</b>?

    PIC单片机振荡电路中如何选择晶体?

    PIC单片机振荡电路中如何选择晶体? 在PIC单片机振荡电路中选择晶体是一个重要的步骤,它直接影响到系统的稳定性和性能。本文将详细介绍如何选择适合的晶体以确保
    的头像 发表于 01-31 09:28 575次阅读

    Microchip推出PIC16F13145系列单片机

    随着嵌入式应用的日益复杂,对定制化硬件解决方案的需求也在不断增长。为了满足这一需求,Microchip Technology Inc.(微芯科技公司)近日推出了PIC16F13145系列单片机(MCU),为用户提供高度定制化的硬件选择。
    的头像 发表于 01-25 17:00 1124次阅读

    PIC18F2682/2685/4682/4685 数据手册

    电子发烧友网站提供《PIC18F2682/2685/4682/4685 数据手册.pdf》资料免费下载
    发表于 01-05 10:47 0次下载

    PIC18F与AD2S210控制三相无刷电机,激励频率为什么不能更新?

    专家好,最近在用PIC18F与AD2S210控制三相无刷电机,但是在需要对激励频率进行更新时,却无法更新,并且LOT和DOS两个地方一直为低,用示波器观察波形时,单片机的SDO输出正常,具体硬件配置
    发表于 12-28 08:24

    pic单片机汇编程序实例

    以下是一个简单的PIC单片机汇编程序示例,这个程序将实现一个LED闪烁的功能。 首先,我们需要了解PIC单片机的结构和指令集。PIC
    的头像 发表于 12-14 11:01 1772次阅读

    简单介绍Microchip的PIC18F8585 MCU

    Microchip的PIC18F8585 MCU,这是一款带CAN接口的MCU。
    发表于 11-24 16:52 1207次阅读
    简单介绍Microchip的<b class='flag-5'>PIC18F</b>8585 MCU